PBS Professional ネットワーク構成の基本確認

Shiratori Altair
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