ジョブ管理ノードににOpenPBS/rpmにて構築した「openpbs-server-23.06.06-0.x86_64.rpm」パッケージをインストールしてみる
[root@openpbs ~]# cat /etc/redhat-release
Rocky Linux release 8.10 (Green Obsidian)
[root@openpbs ~]# dnf localinstall ./rpmbuild/RPMS/x86_64/openpbs-server-23.06.06-0.x86_64.rpm
(同時にPostgresql-serverパッケージがインストールされます)
*「/etc/profile.d/pbs.{sh|csh}」が用意されるので、環境変数には要注意
そして途中に下記メッセージが表示される
:
*** PBS Installation Summary
***
*** Postinstall script called as follows:
*** /opt/pbs/libexec/pbs_postinstall server 23.06.06 /opt/pbs /var/lib/pbs postgres
***
*** No configuration file found.
*** Creating new configuration file: /etc/pbs.conf
*** Replacing /etc/pbs.conf with /etc/pbs.conf.23.06.06
*** /etc/pbs.conf has been created.
***
*** Registering PBS as a service.
Synchronizing state of pbs.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable pbs
Created symlink /etc/systemd/system/multi-user.target.wants/pbs.service → /usr/lib/systemd/system/pbs.service.
***
*** PBS_HOME is /var/lib/pbs
*** Creating new file /var/lib/pbs/pbs_environment
*** WARNING: TZ not set in /var/lib/pbs/pbs_environment
***
*** The PBS server has been installed in /opt/pbs/sbin.
*** The PBS scheduler has been installed in /opt/pbs/sbin.
***
*** The PBS communication agent has been installed in /opt/pbs/sbin.
***
*** The PBS MOM has been installed in /opt/pbs/sbin.
***
*** The PBS commands have been installed in /opt/pbs/bin.
***
*** End of /opt/pbs/libexec/pbs_postinstall
:
インストール後に各種確認・調整を加えます
PBS_EXEC=/opt/pbs
PBS_SERVER=openpbs <-- OpenPBS-serverを起動するサーバを指定します
PBS_START_SERVER=1
PBS_START_SCHED=1
PBS_START_COMM=1
PBS_START_MOM=0
PBS_HOME=/var/lib/pbs
PBS_CORE_LIMIT=unlimited
PBS_SCP=/bin/scp
PATH=/bin:/usr/bin
TZ=Asia/Tokyo <-- TZを定義
[root@openpbs ~]# systemctl start pbs
この際、同時にOpenPBS向けの「postgreSQL」サーバも起動します
[root@openpbs ~]# ps -ef |grep pbs
root 100065 1 0 19:18 ? 00:00:00 /opt/pbs/sbin/pbs_comm
root 100071 1 0 19:18 ? 00:00:00 /opt/pbs/sbin/pbs_sched
root 100154 1 0 19:18 ? 00:00:00 /opt/pbs/sbin/pbs_ds_monitor monitor
postgres 100218 1 0 19:18 ? 00:00:00 /usr/bin/postgres -D /var/lib/pbs/datastore -p 15007
postgres 100303 100218 0 19:18 ? 00:00:00 postgres: postgres pbs_datastore 192.168.0.70(39800) idle
root 100304 1 1 19:18 ? 00:00:00 /opt/pbs/sbin/pbs_server.bin
root 100310 1419 0 19:18 pts/0 00:00:00 grep --color=auto pbs
[root@openpbs ~]# lsof -i -P
:
pbs_comm 100065 root 13u IPv4 132291 0t0 TCP *:17001 (LISTEN)
pbs_comm 100065 root 14u IPv4 132724 0t0 TCP openpbs.sybyl.local:17001->openpbs.sybyl.local:808 (ESTABLISHED)
pbs_sched 100071 root 5u IPv4 132726 0t0 TCP openpbs.sybyl.local:39800->openpbs.sybyl.local:15001 (ESTABLISHED)
pbs_sched 100071 root 6u IPv4 132741 0t0 TCP openpbs.sybyl.local:39802->openpbs.sybyl.local:15001 (ESTABLISHED)
postgres 100218 postgres 5u IPv4 132548 0t0 TCP *:15007 (LISTEN)
postgres 100218 postgres 6u IPv6 132549 0t0 TCP *:15007 (LISTEN)
postgres 100218 postgres 12u IPv6 132566 0t0 UDP localhost:52363->localhost:52363
postgres 100230 postgres 12u IPv6 132566 0t0 UDP localhost:52363->localhost:52363
postgres 100231 postgres 12u IPv6 132566 0t0 UDP localhost:52363->localhost:52363
postgres 100232 postgres 12u IPv6 132566 0t0 UDP localhost:52363->localhost:52363
postgres 100233 postgres 12u IPv6 132566 0t0 UDP localhost:52363->localhost:52363
postgres 100234 postgres 12u IPv6 132566 0t0 UDP localhost:52363->localhost:52363
postgres 100235 postgres 12u IPv6 132566 0t0 UDP localhost:52363->localhost:52363
postgres 100303 postgres 12u IPv6 132566 0t0 UDP localhost:52363->localhost:52363
postgres 100303 postgres 13u IPv4 132701 0t0 TCP openpbs.sybyl.local:15007->openpbs.sybyl.local:39800 (ESTABLISHED)
pbs_serve 100304 root 5u IPv4 132695 0t0 TCP openpbs.sybyl.local:39800->openpbs.sybyl.local:15007 (ESTABLISHED)
pbs_serve 100304 root 7u IPv4 132707 0t0 TCP *:15001 (LISTEN)
pbs_serve 100304 root 13u IPv4 132721 0t0 TCP openpbs.sybyl.local:808->openpbs.sybyl.local:17001 (ESTABLISHED)
pbs_serve 100304 root 16u IPv4 132728 0t0 TCP openpbs.sybyl.local:15001->openpbs.sybyl.local:39800 (ESTABLISHED)
pbs_serve 100304 root 17u IPv4 132744 0t0 TCP openpbs.sybyl.local:15001->openpbs.sybyl.local:39802 (ESTABLISHED)
:
[root@openpbs ~]#
SELinuxもfirewallも止めたほうが楽なのだが、そいは行かない局面もあるので、SELinuxとfirewallを有効にしてます
[root@openpbs ~]# getenforce
Enforcing
[root@openpbs ~]# firewall-cmd --zone=public --permanent --add-port=15001-15004/tcp
[root@openpbs ~]# firewall-cmd --zone=public --permanent --add-port=17001/tcp
[root@openpbs ~]# firewall-cmd --zone=public --permanent --add-port=32768-61000/tcp <--- インターラクティヴモード向け
[root@openpbs ~]# firewall-cmd --reload
とする
インターラクティヴモードはここからhttps://community.openpbs.org/t/interactive-job-errors-out-with-apparently-deleted/1112/14
OpenPBSの設定状態をqmgrで確認します
[root@openpbs ~]# qmgr
Max open servers: 49
Qmgr: p s
#
# Create queues and set their attributes.
#
#
# Create and define queue workq
#
create queue workq
set queue workq queue_type = Execution
set queue workq enabled = True
set queue workq started = True
#
# Set server attributes.
#
set server scheduling = True
set server default_queue = workq
set server log_events = 511
set server mailer = /usr/sbin/sendmail
set server mail_from = adm
set server query_other_jobs = True
set server resources_default.ncpus = 1
set server default_chunk.ncpus = 1
set server scheduler_iteration = 600
set server resv_enable = True
set server node_fail_requeue = 310
set server max_array_size = 10000
set server pbs_license_min = 0
set server pbs_license_max = 2147483647
set server pbs_license_linger_time = 31536000
set server eligible_time_enable = False
set server max_concurrent_provision = 5
set server max_job_sequence_id = 9999999
Qmgr:
Qmgr: quit
[root@openpbs ~]#
set server job_history_enable = True
set server job_history_duration = 00:10:00
次に計算ノードを追加します OpenPBS/execution
postgreSQLのデータソースは「/var/lib/pbs/datastore/」に置かれて、アクセス制御は「pg_hba.conf」が司ります。
このファイルの中身を見ると、
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
local all all md5
host all all 0.0.0.0/0 md5
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
とローカルのアクセスでさえ、md5の暗号化したパスワードで保護されています。その保護されているファイルは
「/var/lib/pbs/server_priv/db_password」なのですが、元のパスワードは何だったのか分かりません。
なので初期パスワードをリセットします。リセット方法は「pbs_ds_password」を使います。
[root@c ~]# pbs_ds_password -C postgres
Enter the password:
Re-enter the password:
---> Updated user password
---> Success
[root@c ~]#
と成功したら、マスターパスワード(postgres)が変更されました。
試しにアクセスしてみます。
[illya@c ~]$ psql -U postgres -p 15007 -l
ユーザ postgres のパスワード:
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権
---------------+----------+------------------+-------------+-------------------+-----------------------
pbs_datastore | postgres | SQL_ASCII | ja_JP.UTF-8 | ja_JP.UTF-8 |
postgres | postgres | SQL_ASCII | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | SQL_ASCII | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 行)
[illya@c ~]$
とpbsproの管理データベースは「pbs_datastore 」だと分かります。
さらにこのデータベースに入って、テーブルの中身を調べると
pbs_datastore=# \d
リレーションがありません。
pbs_datastore=#
と言われるが、スキーマ pbs で全て用意されているようで
pbs_datastore=# \dn
スキーマ一覧
名前 | 所有者
--------+----------
pbs | postgres
public | postgres
(2 行)
pbs_datastore=#
となる。
現在のスキーマからpbsスキーマに移って
pbs_datastore=# select current_schema();
current_schema
----------------
public
(1 行)
pbs_datastore=# SET search_path = pbs;
SET
pbs_datastore=#
テーブルを調べてみると、
pbs_datastore=# \d
リレーションの一覧
Schema | Name | Type | Owner
--------+--------------+-------+----------
pbs | info | table | postgres
pbs | job | table | postgres
pbs | job_scr | table | postgres
pbs | mominfo_time | table | postgres
pbs | node | table | postgres
pbs | queue | table | postgres
pbs | resv | table | postgres
pbs | scheduler | table | postgres
pbs | server | table | postgres
(9 行)
pbs_datastore=#
と出てくる。
...これを使ってどのくらい使っているかを調べようとしたけど、、、currentしかない....