Simple Linux Utility for Resource Management 本家様 slurm
ジョブスケジューラ。SunGridEngineをいろいろ調整していたのだが、、、、良く分からん。
結局TORQUEを作ってみたが、ノード指定があるのに躊躇う。必要なコア数とメモリー量だけでノードが決まる代物が欲しくて調べてみた。

Torque:
   queue + node(マシン数) + ppn(processors per node)
 
Slurm:
   queue + ntasks(MPI数)

パッケージインストール slurm/install
計算ノード/queue設定slurm/slurm.conf

全体像

TORQUEと同じようにsamba AD/NFS環境で/home,/Applが共有され、計算ノードはn1,n2,n3の3台で、ジョブを投入するサイトが1台。
ジョブを管理するslurm管理ノードが1台とする。
各ノードはsambaに登録させておく。登録方法はsamba/Linux参加参照

各マシンの時計はntpdとかで同期され、各マシンのOSは全てCentOS 7とします
2014y12m21d_132425146.png

役目ホスト名IPアドレスcore数備考
管理ノードslurm.sybyl.jp192.168.0.691slurmctldが起動
計算ノードn1.sybyl.jp192.168.0.521slurmdが起動
n2.sybyl.jp192.168.0.532
n3.sybyl.jp192.168.0.543
ジョブ発行ノードclient.sybyl.jp192.168.0.201srun,sbatchの
他TORQUEコマンドも使用可能

共通アカウントslurmを用意します。samba/ユーザ登録

[root@c ~]# /opt/samba/bin/samba-tool group add slurm --group-scope=Global --group-type=Security \
  --description='ジョブコントロール slurm' --mail-address=xxxx@yyy.jp --notes='仕分け人' \
  --gid-number=2003 --nis-domain=sybyl
 
[root@c ~]# /opt/samba/bin/samba-tool user create slurmuser --must-change-at-next-login \
  --random-password  --use-username-as-cn --internet-address='https://slurm.schedmd.com/overview.html' \
  --uid=slurmuser --uid-number=2003 --gid-number=2003  --login-shell=/bin/bash  \
  --nis-domain=sybyl --unix-home=/var/lib/slurm

確認

[root@slurm ~]# id slurmuser
uid=2003(slurmuser) gid=2003(slurm) groups=2003(slurm),3000(domain users)
 
[root@slurm ~]# getent passwd slurmuser
slurmuser:*:2003:2003:slurmuser:/var/lib/slurm:/bin/bash
 
[root@slurm ~]#

munge

全てのクラスターノード(slurm,n1,n2,n3,client)にmungeパッケージをインストールする。
標準リポジトリでは提供されていないようで、epelリポジトリを有効にしてインストールを行う。

[root@slurm ~]# yum install epel-release
[root@slurm ~]# yum install munge munge-libs

次に、munge.key(/etc/munge/munge.key)を作成して、mungeデーモンを起動させる

[root@slurm ~]# /usr/sbin/create-munge-key
Generating a pseudo-random key using /dev/urandom completed.
 
[root@slurm ~]# systemctl enable munge.service
[root@slurm ~]# systemctl start munge.service

この作成したmunge.keyをクラスターに参加する全てのマシンに配布します
*n1,n2,n3,clientも同様にmungeパッケージのインストールも行う

例えば n1.sybyl.local マシンに対して、

[root@slurm ~]# ssh -l root n1 'yum install epel-release -y && yum install munge munge-libs -y'
[root@slurm ~]# scp /etc/munge/munge.key root@n1:/etc/munge/munge.key
[root@slurm ~]# ssh -l root n1 chown munge:munge /etc/munge/munge.key

*munge.keyファイルの所有者に留意する事

slurmパッケージ作成

http://slurm.schedmd.com/quickstart_admin.htmlを参照にしてみた。
ソースコードはhttps://www.schedmd.com/downloads.phpにて入手可能。
PUIASリポジトリでCentOS向けのパッケージが置かれているのだが、自前で作る事にした

今回入手したファイルは slurm-17.02.7.tar.bz2 です。
中のファイルを調べたらslurm.specファイルが含まれていた。
なので、rpmファイルを作成してクラスターのマシンに配布する事とする。

まず開発環境と、rpmファイル作成に必要だったrpmパッケージをインストールします。

[root@slurm ~]# yum groupinstall "Development tools" 
[root@slurm ~]# yum install readline-devel openssl-devel perl-ExtUtils-MakeMaker munge-devel pam-devel
 
[root@slurm ~]# yum install gtk2-devel mysql-devel readline-devel numactl-devel hwloc-devel freeipmi-devel \
   rrdtool-devel pam-devel perl-ExtUtils-MakeMaker lua-devel hdf5-devel munge-devel
 
[root@slurm ~]#

下拵え

[root@slurm ~]# ls -lh slurm-17.02.7.tar.bz2
-rw-r--r-- 1 root root 5.8M  9月 26 00:56 slurm-17.02.7.tar.bz2
 
[root@slurm ~]# bzip2 -cd slurm-17.02.7.tar.bz2 | tar tvf - | grep spec$
-rw-r--r-- jette/jette   38214 2017-08-15 02:48 slurm-17.02.7/slurm.spec
 
[root@slurm ~]# bzip2 -cd slurm-17.02.7.tar.bz2 | tar xvf - slurm-17.02.7/slurm.spec --strip=1   # ディレクトリを作らずファイルを抽出
slurm-17.02.7/slurm.spec
 
[root@slurm ~]# chown root:root slurm.spec
[root@slurm ~]# mkdir -p ~/rpmbuild/{SOURCES,SPECS}
[root@slurm ~]# mv slurm.spec ~/rpmbuild/SPECS/
[root@slurm ~]# mv slurm-17.02.7.tar.bz2 ~/rpmbuild/SOURCES/

と下拵えを整えてから、rpmbuild を実行
「-ba」オプションで rpm と srpm を作成

[root@slurm ~]# rpmbuild -ba rpmbuild/SPECS/slurm.spec

作成されたrpmファイルは

[root@slurm ~]# ls -lh rpmbuild/RPMS/x86_64/
合計 30M
-rw-r--r-- 1 root root  27M  9月 26 01:23 slurm-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root  17K  9月 26 01:23 slurm-contribs-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 142K  9月 26 01:23 slurm-devel-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root  16K  9月 26 01:23 slurm-munge-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 8.5K  9月 26 01:23 slurm-openlava-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root  36K  9月 26 01:23 slurm-pam_slurm-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 533K  9月 26 01:23 slurm-perlapi-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 1.1M  9月 26 01:23 slurm-plugins-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 1.1M  9月 26 01:23 slurm-slurmdbd-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 2.1K  9月 26 01:23 slurm-sql-17.02.7-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root  37K  9月 26 01:23 slurm-torque-17.02.7-1.el7.centos.x86_64.rpm
[root@slurm ~]#

と結構な数。

次、各ノードへパッケージをインストールするslurm/install


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-09-26 (火) 16:37:34 (82d)