remote Server Access by DEXCS2017 for OpenFOAM(R)

DEXCS2017 for OpenFOAM(R) では、これまでのFOCUSだけでなく名大スパコン、その他のリモートサーバーへのアクセスが可能になりました。

但し、サーバー名やログイン情報などはユーザーさん自身でカスタマイズしてもらう必要があるので、以下にその方法を記しておきます(備忘録)。

準備は少々面倒ですが、これでリモートサーバーでの計算がかなり楽ちんになること請け合いです。

  1. 準備するもの(秘密鍵など)
  2. 準備その1(手動でアクセス確認)
  3. 準備その2(パスワード登録して自動アクセス)
  4. 準備その3(TreeFoam)
  5. 準備その4(サーバー側設定)
  6. 使ってみよう!
  7. 不具合情報


準備するもの

 

FOCUSなどSSH(公開鍵認証)でアクセスする場合には、サーバー側に公開鍵を登録、手元にペアーとなる秘密鍵が必要になりますが、この秘密鍵を、ホームディレクトリ直下の .ssh というフォルダに(存在しなければ作成して)収納しておく。またその中には、configという名称のファイルを用意して、その中にサーバー名や秘密鍵を定義しておく。

ここで、これらファイルのパーミッションに注意。所定の値になっていなかったら下記のように変更する。

 

configファイルの記述例

朱字部分を自身のものに置き換えて使用して下さい)

Host FocusLogin        # FOCUS ログインサーバー
User u###0001       # FOCUSでのユーザー名
Hostname ssh.j-focus.jp
IdentityFile ~/.ssh/focus_rsa  # 秘密鍵
ServerAliveInterval 60

Host ffFocus          # FOCUS フロントエンドサーバー
HostName ff
User u###0001         # FOCUSでのユーザー名
ProxyCommand ssh FocusLogin -W %h:%p

Host moguraServer       # ローカルネットワーク内の計算サーバー
HostName 192.168.#.#     # 計算サーバーのIPアドレス
User dexcs          # 計算サーバーでのユーザー名
IdentityFile ~/.ssh/id_rsa.2    # ダミー
IdentitiesOnly yes       # パスワード認証(公開鍵認証は使わない)

Host nadaiCx         # 名大スパコンCx
HostName cx.cc.nagoya-u.ac.jp
User z#####          # 名大スパコンでのユーザー名
IdentityFile ~/.ssh/nadai_rsa   # 秘密鍵

 

準備その1(手動でアクセス確認)

上記の設定にミスがあると、そもそも自動アクセスできないので、以下のようにしてそれぞれのリモートサーバーにちゃんとログインできる事を確認しておきます。

SSH(公開鍵認証)でアクセスするFOCUSサーバーの場合

  1. ssh FocusLogin と入力
  2. yes を入力(初めてアクセスした場合のみ)
  3. 公開鍵を作成した際に使用したパスワードを入力
  4. exit を入力

 

SSH(パスワード認証)でアクセスする場合

  1. ssh moguraServer (config中で定義したHost)と入力
  2. yes を入力(初めてアクセスした場合のみ)
  3. config中で、ダミーの秘密鍵を定義してあるので、Warningが出ているが、無視してよい
  4. 登録してあるログインパスワードを入力
  5. exit を入力

 

準備その2(パスワード登録して自動アクセス)

TreeFoamにてリモートサーバーをマウントしたり、リモートでの作業(コマンド発行)をするには、通常、その都度パスワードが要求されますが、このパスワードを登録しておいて、必要時に自動発生させる仕組みとしてkeyringがあり、DEXCSではseahorse(下図のメニュー⇒アクセサリ⇒パスワードと鍵)を使って登録します。

以下のウィンドウが現れる

+ボタンを押すと、以下のメニューが現れる

「セキュアシェルの鍵」を選択して「続行」ボタンを押す

①の名前は何でも良い。

パスワードを尋ねられるが、無しでも良い。再度尋ねられる。

サーバーのアドレスは、.ssh/config中のHostで定義した名前を書く。ログイン名は、Userで定義してある名前を書く。

ここで入力するパスワードは、公開鍵を作成した際に使用したパスワード。上記サーバーアドレス、ログイン名、パスワードが正しく入力されていれば、下図のように、登録される。

端末に戻って、ログインできるかどうか確認。

  1. ssh FocusLogin と入力(ログインサーバーへアクセス)
  2. ⇒パスワード入力無しでログイン出来た。⇒ exit を入力
  3. ssh ffFocus と入力(フロントエンドサーバーへアクセス)
  4. yes を入力(フロントエンドサーバーには初めてアクセスしたので)
  5. ⇒パスワード入力無しでログイン出来た。⇒ exit を入力
  6. 再度 ssh ffFocus と入力
  7. ⇒パスワード入力無しでログイン出来た。⇒ exit を入力

 

SSH(パスワード認証)サーバー(本例ではmoguraServer)での登録も同様に実施できる

 

登録されたら、ここで鍵の名前(本例ではid_rsa.1)を覚えておいて、.ssh/configファイルを以下のように、「ダミー」で記されていた鍵の名前(朱字部分)を書き換える。

Host moguraServer       # ローカルネットワーク内の計算サーバー
HostName 192.168.#.#     # 計算サーバーのIPアドレス
User dexcs          # 計算サーバーでのユーザー名
IdentityFile ~/.ssh/id_rsa.1    # ダミー
IdentitiesOnly yes       # パスワード認証(公開鍵認証は使わない)

端末に戻って、ログインできるかどうか確認。

  1. ssh moguraServer と入力
  2. ⇒パスワード入力無しでログイン出来た。⇒ exit を入力

 

準備その3(TreeFoam)

TreeFoamを起動して終了する。

一旦TreeFoamを起動すれば、ホームディレクトリ直下に、.TreeFoamUser というフォルダが作成されており、

上図の順番で展開し、sshs_data をダブルクリックして編集する。編集方法はファイル中に、以下のように記されている。

参考に、本例では以下のように設定している。

設定が終わったら、再度TreeFoamを起動。

なお、事前にリモートサーバーをマウント用にデスクトップ上にserverという空フォルダを作成しておき、TreeFoamを起動したら、その空フォルダ(server)を選択(下図の状態)

上図中、赤枠あたりでマウス右クリックすると、以下のメニューが現れるので、

sshfsサーバーマウントを選択する。

本例では、3つのサーバーが登録されているので、上図のようにして取捨選択できる。選択したサーバーへの接続が完了すると、下のダイヤログが現れる。

OKボタンを押すと、TreeFoam上では。。。

空フォルダであった部分にリモートサーバーがマウントされ、しばらくすると展開できるようになる。

アンマウントは、右クリックして、sshfsサーバーアンマウントを選択(下図)。

 

準備その4(サーバー側設定)

以上の準備で基本的な操作は可能になるが、さらにサーバー側の設定で、より快適に使いやすい環境を構築できる。

サーバーをマウントしたら、/opt/TreeFoam/TreeFoamServer というフォルダをサーバーへコピーする(下図参照) 。

  1. TreeFoam上のserverフォルダをダブルクリックするとファイルマネージャが起動し、サーバー側を一覧できる。
  2. ローカルデスクトップ上のホームフォルダをダブルクリックし、ローカル側を一覧。
  3. ファイルシステムをクリック
  4. opt ⇒ TreeFoamをダブルクリック
  5. TreeFoamServerフォルダをサーバー側へドラッグ&ドロップ

サーバー側の.bash_profile の最後に、. setEnviron の1行(下の朱字部分)を追加

# .bash_profile# .bash_profile
# Get the aliases and functionsif [ -f ~/.bashrc ]; then . ~/.bashrcfi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
. setEnviron   # 追加

 

使ってみよう!

serverジョブ管理の起動例

ジョブ管理メニューそのものの使い方は同梱のTreeFoamマニュアルを参照下さい

FOCUSの場合

名大スパコンCxの場合

ローカルサーバーなど

現時点では、FOCUSスパコンと、名大スパコンCx,FxのJob管理メニューが使えるだけです。

これが使えないシステムでは、loginシェルを起動して作業することになります。

 

 

loginシェル起動

全サーバー共通

ジョブを流してみる

  1. ls と入力 (内容確認)
  2. sbatch submit.sh を入力
  3. squeue コマンドにてジョブの進行状況確認
  4. ls にて、計算進行中のファイル確認

注記:ここでマウントしたサーバー(moguraServer)はDEXCS2017 for OpenFOAM(R)を使ってインストールしたマシンで、バッチジョブコントロールシステムとしてはSLURMが動作中です。


不具合情報

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です