前提
- 既にあるPBSサーバ (192.168.1.1 : pon) に新しいクライアントノード (192.168.1.2 : suke) を追加する
- サーバはCentOS7だが(あまり関係ない)追加したいクライアントはCentOS6
- 最新版のOpenPBSを想定
- pon と suke は 必ず 同一サブネットにいること
以下、新規PBSクライアント suke での作業
Python>=3.6 を IUS Community Project リポジトリ からインストール
- リポジトリ追加して python36-devel インストール
- CentOS6 の
python
は/usr/bin
に 2.6 だかが入ってるけど、これを上書きしてしまうとyum
自体やらなんやらが動かなくなる可能性有り -
/usr/local/bin
と/usr/local/lib
にpython36
として置くことにする
# yum install -y https://repo.ius.io/ius-release-el6.rpm
# yum install -y python36-devel.x86_64
# cd /usr/local/bin
# ln -s /usr/bin/python3* .
# ln -s python36 python3
# cd /usr/local/lib
# ln -s /usr/lib/python3* .
swig 3 を python36 に絡めてインストール
$ cd swig-3.0.12
$ ./configure --with-python3=/usr/local/bin
$ make
# make install
###OpenPBSのソースを取得
- サーバ pon のPBSと同じバージョンを入手、バージョン確認の方法はサーバ上で
qstat --version
- https://github.com/openpbs/openpbs/releases
INSTALL を読んで依存関係をチェックし、足りないのを入れる
$ cd openpbs-master
$ less INSTALL
-
For CentOS-7 systems you should run the following command as root:
とか書いてあるけどCentOS6でも同じ - 今回の場合、自分が入れたのは
# yum install -y libtool hwloc-devel autoconf libX11-devel \
libXt-devel libedit-devel libical-devel postgresql-devel \
tcl-devel tk-devel expat-devel openssl-devel libXext libXft
OpenPBS インストール!
-
--prefix=/opt/pbs
とかが流行ってるようだけど面倒なのでしない。お好きに。
$ ./configure --with-python=/usr/local --with-swig=/usr/local
- もし
checking for libical... configure: error: libical headers not found.
等のエラーが出たら、ical.h
が、/usr/include
でなく、/usr/include/libical
に入っているのかも。下記のようにしてから再度./configire
$ cd /usr/include
$ ln -s /usr/include/libical/* .
configure が通ったら
$ make
# make install
# /usr/local/libexec/pbs_postinstall
- 最後の
libexec/pbs_postinstall
で、/etc/pbs.conf
,/etc/init.d/pbs
や、/var/spool/pbs
ディレクトリが作られる
OpenPBS設定
# vi /etc/pbs.conf
... 省略 ...
# cat /etc/pbs.conf
PBS_SERVER=pon
PBS_START_SERVER=0
PBS_START_SCHED=0
PBS_START_COMM=0
PBS_START_MOM=1
PBS_EXEC=/usr/local
PBS_HOME=/var/spool/pbs
PBS_CORE_LIMIT=unlimited
PBS_SCP=/usr/bin/scp
# vi /var/spool/pbs/mom_priv/config
... 省略 ...
# cat /var/spool/pbs/mom_priv/config
$clienthost pon
# cat /etc/hosts
192.168.1.1 pon
OpenPBS起動
# /etc/init.d/pbs start
$ /usr/local/bin/qstat ### test
以下、PBSサーバ pon での作業
- クライアントノード suke を追加
- 導通がちゃんとしてればマシンの情報を自動で取れる
# cat /etc/hosts
192.168.1.2 suke
# qmgr
Qmgr: create node suke
Qmgr: p n suke
create node suke
set node suke state = free
set node suke resources_available.arch = linux
set node suke resources_available.host = suke
set node suke resources_available.mem = 99194464kb
set node suke resources_available.ncpus = 24
set node suke resources_available.vnode = suke
set node suke resv_enable = True
set node suke sharing = default_shared
- suke が待つべきキューを追加してあげよう
Qmgr: set node suke resources_available.Qlist = SMALL
以上