コンテンツにスキップ

付録. 計算ノードへのSSHアクセス

資源タイプrt_QFを指定してノード占有でジョブを実行する場合には、qsubコマンド実行時のオプション指定により、計算ノードへのSSHログインを有効にすることができます。

オプション 説明
-l USE_SSH=1 計算ノードへのSSHログインを有効にする。
-v SSH_PORT=port SSHのポート番号を指定する(デフォルト: 2222)。2200-2299 の範囲で指定可。
-v ALLOW_GROUP_SSH=1 ジョブ投入時に指定したABCIグループ内の他アカウントへSSHログインを許可する。

このオプションを有効にすると、インタラクティブノードから計算ノードへのSSHログインが可能になります。 複数ノードを使用するジョブを実行している場合は、計算ノード間で相互にSSHログインが可能になります。

デフォルトでは、SSHログインできるのは、ジョブを投入したユーザのみです。-v ALLOW_GROUP_SSH=1オプションを使用するとジョブ投入時に指定したシステムHグループに所属する他のユーザもSSHログインが可能になります。また、ジョブの実行が終了すると計算ノードにログインしているセッションは自動的に切断されます。

qsubコマンド実行時のジョブスクリプトの例を以下に示します。

#!/bin/bash

#PBS -l rt_QF=2
#PBS -l USE_SSH=1
#PBS -v SSH_PORT=2299
#PBS -v ALLOW_GROUP_SSH=1

cd ${PBS_O_WORKDIR}

...

ジョブの実行が開始されたら、qstatコマンドで割り当てられた計算ノードを確認します。

[username@qes01 ~]$ qstat -f 12345 | grep exec_host_list
exec_host_list        1:    qh001:80, qh002:80

qh001qh002が割り当てられたことが確認できました。

次にインタラクティブノードから計算ノード(qes01qh001)に、オプションで指定したポート番号を用いてSSHログインします。

[username@qes01 ~]$ ssh -p 2299 qh001
[username@qh001 ~]$ 

ジョブに割り当てられた計算ノード間(qh001qh002)でSSHログインする際も同様です。

[username@qh001 ~]$ ssh -p 2299 qh002
[username@qh002 ~]$

qsub -Iコマンドも同様に-l USE_SSH=1オプションを指定して実行することができます。

[username@qes01 ~]$ qsub-I -W group_lis=grpname -l rt_QF=1 -l USE_SSH=1 -v SSH_PORT=2299
[username@qh001 ~]$ hostname -s
qh001

別のターミナルからSSHログインします。

[username@qes01 ~]$ ssh -p 2299 qh001
[username@qh001 ~]$