その1の記事を書いてから2年近く経ってしまいましたが、ようやくDEXCSらしい使い方が出来るようになりました。
- マウント用の空フォルダ(focusServer)を選択(空フォルダであれば名前は何でも良い)
- 右クリック⇒ポップアップメニューの「sshfsサーバマウント」を選択
- マウントが完了すると、空フォルダに▼マークがつくのでこれをクリック⇒FOCUS上のファイル構造がツリー展開される(赤枠部分)
- 解析したいフォルダ(work/test)を選択し、解析ケースに設定。
- ポップアップメニューの「loginシェル起動」を選択すると、以下のターミナルが現れる。
所定のフォルダ(work/test)で所定(上の場合は2.4.x)のOpenFOAMコマンドを直ちに実行できるようになります。
バッチで実行中のジョブに対して、plotWatcherを起動して、下図のように計算の収束状況を確認する事もできます。
とはいうもの、FOCUSへの接続は、個別のカスタマイズが必要であり、その部分はユーザーが自身で設定していただくしかありません。また、ここを間違えると、やり直しもうまくいかないなどあったりするので、以下備忘録です。
必要な環境
- TreeFoam-2.37以降+sshfs(その1の記事を参照)
- DEXCS2015 for OpenFOAM公開版では不可だが、(DLページ)よりTreeFoamを最新版に更新して、sshfsを追加インストールすればOK.
- 2016年度オープンCAE講習会で使用したDEXCS特別版ならsshfsを追加インストールすればOK.
- 第48回オープンCAE勉強会@岐阜(夏合宿)で使用したDEXCS特別版ならsshfsとseahorseを追加インストールすればOK.
- DEXCS2016 for OpenFOAM ( coming soon… )
準備するもの
- 鍵交換方式を用いたSSH接続用の秘密鍵
設定(ローカルマシン)
- ホームディレクトリ直下の.TreeFoamUser/data/sshfs_data の朱字部分を編集(TreeFoamを一度でも実行すればこのファイルが存在するはず)
#
# sshfsによるサーバマウント
# ———————–
# FOCUSの例
#HostName ssh.j-focus.jp
User ****0001#マウントするホスト側のdir
# #/home1/<グループ名>/<ユーザ名>
HostDir /home1/****/****0001#local側のマウントする場所
#(TreeFoam側で設定する)
MountPoint
#
# sshによるサーバlogin
# ——————-
# FOCUSの例
##サーバlogin
login
ssh ff01Focus #logon先(~/.ssh/configで定義)#login後の環境設定
# サーバ側に「setEnviron」ファイルを作成する。
setEnviron
. ~/OF230terminal #OpenFOAMの環境設定
cd ~ #currentDirectoryを設定(TreeFoamが書き換える)青字部分は、FOCUSへログイン出来るようになったら、各自の必要な環境に応じて書き換える。(通常は指定したファイルOF230tweminalは存在せず、何も組み込まれない)
- ホームディレクトリ直下の.ssh フォルダを作成し、用意した秘密鍵(id_rsa)を収納。以下のconfigファイルも収納しておく。
Host FocusLogin
User ****0001
Hostname ssh.j-focus.jp
IdentityFile ~/.ssh/id_rsa
ServerAliveInterval 60Host ff01Focus
HostName ff
User ****0001
ProxyCommand ssh FocusLogin -W %h:%p
ServerAliveInterval 60
- 上記ファイルのパーミッションに注意。必要に応じて変更(下図参照)。
- keyringに秘密鍵パスワードを登録する為、seahorseを起動する(以下はDEXCS2015 linux mint17のGUI操作イメージ)
+ボタンを押すと、以下のメニューが現れる
Secure Shell Key を選択
名前は何でも良い
ここで入力するパスワードは何でも良いが、もう一度聞かれるので間違いなく入力すること。またちゃんと記憶しておくこと。
FOCUSのサーバーアドレスとログイン名を入力
ここで入力するパスワードは秘密鍵を作成する際に使用したパスワード
- とりあえず、コマンドラインにて、FOCUSへログイン出来る事を確認。
custom@custom ~ $ ssh ff01Focus
と入力してみる
上記ダイヤログが現れるので、ここで最初に入力したパスワードを入力すれば・・・
The authenticity of host ‘ff (<no hostip for proxy command>)’ can’t be established.
RSA key fingerprint is 6c:09:02:57:8f:4b:03:17:00:0a:dd:9f:39:d4:33:45.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘ff’ (RSA) to the list of known hosts.
Last login: Tue Sep 20 17:22:57 2016 from ***.***.4.11
[****0001@ff01 ~]$exit
logout
Connection to ff closed.
custom@custom ~ $
となってFOCUSのフロントエンドサーバーに、「秘密鍵のパスワードを入力しないで」接続できた! ということです。
- これにて本記事冒頭のTreeFoamでFOCUSサーバーをマウント/アンマウント出来るようになる。但しログインシェル起動は、このままでは単にFOCUSのフロントエンドサーバーに接続できるというだけで、冒頭のような使い勝手を実現するには、以下のFOCUSサイドでの環境設定が必要。
設定(FOCUS)
- TreeFoam上で、FOCUSサーバーのマウントポイント(focusServer)をダブルクリックすると、ファイルマネージャが立ち上がり、以下のように表示される。但しフォルダーの名前はあくまで筆者の環境であり、ユーザー毎に異なっているのは当然ですが、setEnviron という見慣れないファイルが存在しているはずです。
- このsetEnvironをダブルクリックしてテキストエディタで調べると、
となっており、これは設定(ローカルマシン)の最初に説明した.TreeFoamUser/data/sshfs_data の最下2行で定義された内容(最下行はログインシェルが起動されたフォルダ名に変更されている)になっており、TreeFoamが作成したものです。
- ここでたとえば、以下のような内容
#!/bin/bash
# OpenFOAM terminal
#module load gnu/openmpi165
unset FOAM_INST_DIR
source /home1/share/openfoam/2.3.0/gnu/openmpi/OpenFOAM-2.3.0/etc/bashrc. $WM_PROJECT_DIR/bin/tools/RunFunctions
echo “set OpenFOAM-2.3.0 environment.”
でOF230terminalというファイルを作成し、ホームフォルダ直下に収納しておけば、OpenFOAMの2.3.0の環境が組み込まれることになる。OpenFOAMの用途(ヴァージョン)に応じて、この内容を書き換えるなり、別のファイルを使いたい場合は、.TreeFoamUser/data/sshfs_data の下から2行目を変更する、
- 但し、このsetEnviron ファイルが自動作成出来たとしても、このままではこの環境は組み込まれない。組み込む為にはもう一工夫必要で、たとえば。.bash_profile ファイル中の最下行に、以下のように記述しておくのが一案です。
- これにて、TreeFoam上のwork/testにて右クリック⇒ポップアップメニューからログインシェルを起動すれば、以下のような端末が現れるようになる。
プラスアルファ
以上で基本的な設定は完了ですが、このままだとFOCUS上のファイル構造をツリー展開するのに、結構な待ち時間が生じてしまってイライラさせられます。実はこれに対する対策もすでに実現済みですが、TreeFoam本体の改良が必要で、その更新正式版が出来たら・・・ということで。
最後に
本記事の冒頭あたりに記したように、手順を間違えたりすると、keyringがうまく動いてくれない事がよくあって手こずりました。その際に参考になるかもしれない情報を以下に掲載しておきます。
この場合は、その端末上でパスワードを入力してやれば、とりあえずマウントしたりすることは出来るようになります。
- 上記方法にて、FOCUSへログイン出来ておれば、seahorseの設定を再度やり直してうまく動くようになる場合もありました。ローカルマシンの.sshフォルダは以下のようなファイル構成になっているはずですが、known_hosts を削除してやり直すとうまく動くようになる場合もありました。
- 近日公開予定のDEXCS2016(Linux mint 18)では、seahorseの起動メニューが異なる
ばかりでなく、デフォルトでkeyring そのものを自動起動させる一手間も必要でした(DEXCS2016では組み込み済です)。