PBS Professional ネットワーク構成の基本確認
Shiratori Altair
Altair Employee
この文書ではPBS Professionalに必要な基本的なネットワークを確認するコマンドとその実行例を例示します。
当文書では以下の4台で環境を構成している例を使用します。
pbs-head: 管理サーバ pbs_server,pbs_sched,pbs_commの各デーモンが稼働
node01: 計算ノード pbs_momデーモンが稼働
node02: 計算ノード pbs_momデーモンが稼働
front-end: コマンド専用サーバ PBSコマンドのみをインストール
* 各サーバのホスト名とIPの紐づけは以下
192.168.57.132 pbs-head
192.168.57.133 node01
192.168.57.137 node02
192.168.57.138 front-end
1.管理サーバと各計算ノード間のネットワーク接続を確認
1.1.pbsnodesコマンドのアウトプットでnodeのstateが"free"であることを確認。
以下例ではstateが"free"なので問題なく通信できています。
stateが"free"でなく"down","state-unknown, down","unresolvable" 等の場合は[1.2]以降で詳細を確認します。
[root@pbs-head ~]# pbsnodes -aS
vnode state OS hardware host queue mem ncpus nmics ngpus comment
--------------- --------------- -------- -------- --------------- ---------- -------- ------- ------- ------- ---------
node01 free -- -- node01 -- 794mb 1 0 0 --
node02 free -- -- node02 -- 2gb 1 0 0 --
[root@pbs-head ~]#
1.2.管理サーバ上で、各計算ノードとの間のTCP connection状況を確認
1.2.1.pbs_serverデーモンと、pbs_commデーモンのPIDを確認
[root@pbs-head ~]# ps -ef | grep [p]bs_server.bin
root 5915 1 0 13:28 ? 00:00:00 /opt/pbs/sbin/pbs_server.bin
[root@pbs-head ~]#
[root@pbs-head ~]# ps -ef | grep [p]bs_comm
root 5776 1 0 13:28 ? 00:00:00 /opt/pbs/sbin/pbs_comm
[root@pbs-head ~]#
1.2.2.[1.2.1]で確認したPIDを元にListen portとTCPのコネクションを確認
* ポイント1: pbs_server.binがTCP 15001でLISTENしていること
* ポイント2: pbs_commがTCP 17001でLISTENしていること
* ポイント3: pbs_commと計算ノードnode01(IP:192.168.57.133)がTCP 17001でESTABLISHEDしていること
* ポイント4: pbs_commと計算ノードnode02(IP:192.168.57.137)がTCP 17001でESTABLISHEDしていること
* netstatコマンドを使用した例
[root@pbs-head ~]# netstat -tnap | head -n 2; netstat -tnap | grep -e 5915 -e 5776
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:15001 0.0.0.0:* LISTEN 5915/pbs_server.bin
tcp 0 0 0.0.0.0:17001 0.0.0.0:* LISTEN 5776/pbs_comm
tcp 0 0 192.168.57.132:17001 192.168.57.132:394 ESTABLISHED 5776/pbs_comm
tcp 0 0 192.168.57.132:48996 192.168.57.132:6200 ESTABLISHED 5915/pbs_server.bin
tcp 0 0 192.168.57.132:394 192.168.57.132:17001 ESTABLISHED 5915/pbs_server.bin
tcp 0 0 192.168.57.132:15001 192.168.57.132:58472 ESTABLISHED 5915/pbs_server.bin
tcp 0 0 192.168.57.132:17001 192.168.57.133:354 ESTABLISHED 5776/pbs_comm
tcp 0 0 192.168.57.132:17001 192.168.57.137:456 ESTABLISHED 5776/pbs_comm
tcp 0 0 192.168.57.132:15001 192.168.57.132:58474 ESTABLISHED 5915/pbs_server.bin
tcp 0 0 192.168.57.132:43510 192.168.57.132:15007 ESTABLISHED 5915/pbs_server.bin
[root@pbs-head ~]#
* ssコマンドを使用した例
[root@pbs-head ~]# ss -lpt | head -n 1; ss -lpt | grep -e 5915 -e 5776
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:15001 *:* users:(("pbs_server.bin",pid=5915,fd=7))
LISTEN 0 128 *:17001 *:* users:(("pbs_comm",pid=5776,fd=13))
[root@pbs-head ~]#
[root@pbs-head ~]# ss -pt | head -n 1; ss -pt | grep -e 5915 -e 5776
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.57.132:17001 192.168.57.132:embl-ndt users:(("pbs_comm",pid=5776,fd=16))
ESTAB 0 0 192.168.57.132:48996 192.168.57.132:lm-x users:(("pbs_server.bin",pid=5915,fd=18))
ESTAB 0 0 192.168.57.132:embl-ndt 192.168.57.132:17001 users:(("pbs_server.bin",pid=5915,fd=15))
ESTAB 0 0 192.168.57.132:15001 192.168.57.132:58472 users:(("pbs_server.bin",pid=5915,fd=8))
ESTAB 0 0 192.168.57.132:17001 192.168.57.133:bh611 users:(("pbs_comm",pid=5776,fd=14))
ESTAB 0 0 192.168.57.132:17001 192.168.57.137:macon-tcp users:(("pbs_comm",pid=5776,fd=18))
ESTAB 0 0 192.168.57.132:15001 192.168.57.132:58474 users:(("pbs_server.bin",pid=5915,fd=9))
ESTAB 0 0 192.168.57.132:43510 192.168.57.132:15007 users:(("pbs_server.bin",pid=5915,fd=5))
1.2.3.pbs_hostnコマンドで名前解決に問題がないことを確認
* ポイント1: pbs_hostn -v <計算ノードのホスト名>を実行し、適切なaddress: とname: が表示されていることを確認します。
* ポイント2: ホスト名が<ホスト名>.<ドメイン名>等の場合は、pbs_hostn -v <計算ノードのホスト名>.<ドメイン名>でも同一の確認をします。
以下例では以下の部分
address: 192.168.57.133 name: node01
address: 192.168.57.137 name: node02
[root@pbs-head ~]# pbs_hostn -v node01
primary name: node01 (from gethostbyname())
aliases: -none-
address length: 4 bytes
address: 192.168.57.133 (2235148480 dec) name: node01
[root@pbs-head ~]# pbs_hostn -v node02
primary name: node02 (from gethostbyname())
aliases: -none-
address length: 4 bytes
address: 192.168.57.137 (2302257344 dec) name: node02
[root@pbs-head ~]#
1.3.計算ノード上で、管理サーバとの間のTCP connection状況を確認
*各計算ノードでそれぞれ実施します。
1.3.1.pbs_momデーモンのPIDを確認
[root@node01 ~]# ps -ef | grep [p]bs_mom
root 1399 1 0 10:38 ? 00:00:00 /opt/pbs/sbin/pbs_mom
[root@node01 ~]#
1.3.2.[1.3.1]で確認したPIDを元にTCPのコネクションを確認します。
* ポイント1: pbs_momと管理サーバ pbs-head(IP:192.168.57.132)がTCP 17001でESTABLISHEDしていること
* ポイント2: pbs_momがTCP 15002,15003でLISTENしていること
* netstatコマンドを使用した例
[root@node01 ~]# netstat -tnap | head -n 2; netstat -tnap | grep -e 1399
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:15002 0.0.0.0:* LISTEN 1399/pbs_mom
tcp 0 0 0.0.0.0:15003 0.0.0.0:* LISTEN 1399/pbs_mom
tcp 0 0 192.168.57.133:354 192.168.57.132:17001 ESTABLISHED 1399/pbs_mom
[root@node01 ~]#
* ssコマンドを使用した例
[root@node01 ~]# ss -lpt | head -n 1; ss -lpt | grep -e 1399
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:15002 *:* users:(("pbs_mom",pid=1399,fd=5))
LISTEN 0 128 *:15003 *:* users:(("pbs_mom",pid=1399,fd=6))
[root@node01 ~]# ss -pt | head -n 1; ss -pt | grep -e 1399
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.57.133:bh611 192.168.57.132:17001 users:(("pbs_mom",pid=1399,fd=15))
1.3.3.pbs_hostnコマンドで名前解決に問題がないことを確認
* ポイント1: pbs_hostn -v <管理サーバホスト名>を実行し、適切なaddress: とname: が表示されていることを確認します。
* ポイント2: ホスト名が<ホスト名>.<ドメイン名>等の場合は、pbs_hostn -v <管理サーバホスト名>.<ドメイン名>でも同一の確認をします。
以下例では以下の部分
address: 192.168.57.132 name: pbs-head
[root@node01 ~]# pbs_hostn -v pbs-head
primary name: pbs-head (from gethostbyname())
aliases: -none-
address length: 4 bytes
address: 192.168.57.132 (2218371264 dec) name: pbs-head
[root@node01 ~]#
2.管理サーバと、コマンド専用サーバ間のネットワーク接続を確認
2.1. コマンド専用サーバ上で、qsub, qstat, pbsnode等のコマンドが意図したアウトプットを出しているかを確認します。
コマンドが意図したアウトプットを出さない場合やエラーが出力される場合は、は[2.2]以降の手順で詳細を確認します。
* インタラクティブジョブ (qsub -I)の以下エラーの場合は、[2.4.3]を確認お願いします。
[user01@pbs-head ~]$ qsub -I
qsub: waiting for job 14.pbs-head to start
qsub: job 14.pbs-head apparently deleted
2.2. 管理サーバ上でTCP 15001がLISTENしていることを確認
2.2.1.pbs_serverデーモンのPIDを確認
[root@pbs-head ~]# ps -ef | grep [p]bs_server.bin
root 5915 1 0 13:28 ? 00:00:00 /opt/pbs/sbin/pbs_server.bin
[root@pbs-head ~]#
2.2.2.[2.2.1]で確認したPIDを元にListen portを確認
* ポイント: pbs_server.binがTCP 15001でLISTENしていること
* netstatコマンドを使用した例
[root@pbs-head ~]# netstat -tnap | head -n 2; netstat -tnap | grep 5915
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:15001 0.0.0.0:* LISTEN 5915/pbs_server.bin
tcp 0 0 192.168.57.132:48996 192.168.57.132:6200 ESTABLISHED 5915/pbs_server.bin
tcp 0 0 192.168.57.132:394 192.168.57.132:17001 ESTABLISHED 5915/pbs_server.bin
tcp 0 0 192.168.57.132:15001 192.168.57.132:58472 ESTABLISHED 5915/pbs_server.bin
tcp 0 0 192.168.57.132:15001 192.168.57.132:58474 ESTABLISHED 5915/pbs_server.bin
tcp 0 0 192.168.57.132:43510 192.168.57.132:15007 ESTABLISHED 5915/pbs_server.bin
* ssコマンドを使用した例
[root@pbs-head ~]# ss -lpt | head -n 1; ss -lpt | grep 5915
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:15001 *:* users:(("pbs_server.bin",pid=5915,fd=7))
2.3.pbs_hostnコマンドを実行し計算ノードの名前解決に問題がないことを確認
* ポイント1: pbs_hostn -v <コマンド専用サーバホスト名>を実行し、適切なaddress: とname: が表示されていることを確認します。
* ポイント2: ホスト名が<ホスト名>.<ドメイン名>等の場合は、pbs_hostn -v <コマンド専用サーバホスト名>.<ドメイン名>でも同一の確認をします。
以下例では以下の部分
address: 192.168.57.138 name: frond-end
[root@pbs-head ~]# pbs_hostn -v front-end
primary name: front-end (from gethostbyname())
aliases: -none-
address length: 4 bytes
address: 192.168.57.138 (2319034560 dec) name: front-end
2.4.コマンド実行専用サーバ上で、pbs_serverの15001ポートへアクセスできるかを確認
2.4.1.pbs_hostnコマンドで管理サーバの名前解決に問題がないことを確認します。
* ポイント1: pbs_hostn -v <管理サーバホスト名>を実行し、適切なaddress: とname: が表示されていることを確認します。
* ポイント2: ホスト名が<ホスト名>.<ドメイン名>等の場合は、pbs_hostn -v <管理サーバホスト名>.<ドメイン名>でも同一の確認をします。
以下例では以下の部分
address: 192.168.57.132 name: pbs-head
[root@front-end ~]# pbs_hostn -v pbs-head
primary name: pbs-head (from gethostbyname())
aliases: -none-
address length: 4 bytes
address: 192.168.57.132 (2218371264 dec) name: pbs-head
[root@front-end ~]#
2.4.2. コマンド専用サーバ上で、pbs_iffコマンドを実行し問題がないことを確認
* ポイント: pbs_iff -t <管理サーバホスト名>を実行し、エラーがでないことを確認します。
[root@front-end ~]# pbs_iff -t pbs-head 15001
[root@front-end ~]#
2.4.3. インタラクティブジョブに関して
qsub -I を用いたインタラクティブの場合、計算ノードと、管理サーバとの間にランダムなunprivileged portを使用した
connectionを作成します。
よって、上記のチェックで全て問題がない場合でもランダムなunprivileged portを使用できない場合は以下のメッセージを
だし実行に失敗します。
qsub: job 14.pbs-head apparently deleted
上記の確認で問題があった場合はOS/ネットワーク/クラウド上のfirewall設定、名前解決設定等を変更、
再度確認、問題が解消されているかを確認してください。
* PBS Professionalが必要とするネットワーク要件の詳細は以下を確認お願いします。
PBS Professional <version> Installation & Upgrade Guide
* pbs_hostn, pbs_iffコマンドの詳細は以下を確認お願いします。
PBS Professional <version> Administrator’s Guide
PBS Professional <version> Reference Guide
https://altairone.com/Marketplace?queryText=pbs&tab=Download&app=PBS+Professional
0