SLURMのインストールと構成

8290 ワード

SLURMのインストールと構成
SLURMの紹介
SLURMは、大規模なコンピューティングノードクラスタに使用できる高度に伸縮可能なクラスタマネージャおよびジョブスケジューリングシステムである.SLURMは、処理対象のジョブのキューを維持し、そのジョブの全体的なリソース利用を管理します.SLURMは、割り当てられたノードのセットにジョブを配布して実行する.
本質的には、SLURMは強力なクラスタマネージャであり、高度に移植可能であり、大規模なノードクラスタに伸縮可能であり、フォールトトレランスがよく、さらに重要なのはオープンソースである.
SLURMのアーキテクチャについてはhttp://slurm.schedmd.com/
SLURMのインストール
ここでのインストールは、CentOS 6.5へのインストールを例に挙げます.またSLURMはクラスタで使用されるため、ここでは同じバージョンのlinuxが3台あり、マシン名はそれぞれmycentos 6 x、mycentos 6 x 1、mycentos 6 x 2であり、mycentos 6 xが制御ノードであると仮定する.
MUNGEのインストール
まずSLURMはMUNGEで認証する必要があるので、まずMUNGEをインストールします.
MUNGE(https://github.com/dun/munge)の公式サイトからインストールパッケージをダウンロードし、munge-0.5.11.tar.bz 2ファイルを使用します.rootユーザーを使用して次のコマンドを実行します.
mungeパッケージのコンパイルとインストール
# rpmbuild -tb --clean munge-0.5.11.tar.bz2
# cd /root/rpmbuild/RPMS/x86_64
# rpm --install munge*.rpm

rpmパッケージのコンパイルとインストール中にサードパーティ製のパッケージが必要であることを示す場合があります.この場合、「yum install-y xxx」を使用してインストールできます.インストール時には、まず次のパッケージをインストールします.
# yum install -y rpm-build rpmdevtools bzip2-devel openssl-devel zlib-devel

インストールが完了したら、次のファイルの権限を変更する必要があります.
# chmod -Rf 700 /etc/munge
# chmod -Rf 711 /var/lib/munge
# chmod -Rf 700 /var/log/munge
# chmod -Rf 0755 /var/run/munge

また、/etc/munge/munge.keyファイルをチェックする必要があります.ファイルのownerとgroupはmungeでなければなりません.そうしないと起動に失敗します.
インストールが完了すると、mungeサービスを開始できます.
# /etc/init.d/munge start

最後に、/etc/munge/munge.keyを他の2つのマシンにコピーし、ファイル権限と所有者が同じであることを確認する必要があります.
SLURMのインストール
まずslurmユーザーを作成
# useradd slurm
# passwd slurm

SLURMへのアクセス(http://slurm.schedmd.com/)インストールパッケージをダウンロードします.ここではslurm-14.1.8.tar.bz 2インストールパッケージを使用します.
slurmパッケージのコンパイルとインストール
# rpmbuild -ta --clean slurm-14.11.8.tar.bz2
# cd /root/rpmbuild/RPMS/x86_64
# rpm --install slurm*.rpm

rpmパッケージのコンパイルとインストール中に次のパッケージのインストールを求められました.
# yum install -y readline-devel pam-devel perl-DBI perl-ExtUtils-MakeMaker

インストールが完了したら、次のコマンドのグループを変更します.
# sudo chown slurm:slurm /var/spool

ここまで、SLURMのインストールは完了しましたが、まだ起動できません.slurmサービスを起動してジョブをコミットするには、構成をする必要があります.
SLURMの構成
/etc/slurm/ディレクトリに入り、slurm.conf.exampleファイルをslurm.confにコピーし、/etc/slurm/slurm.confファイルを編集します.次は私のファイルで変更した部分です.
ControlMachine=mycentos6x
ControlAddr=192.168.145.100
SlurmUser=slurm
SelectType=select/cons_res
SelectTypeParameters=CR_Core
SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurmctld.log
SlurmdDebug=3
SlurmdLogFile=/var/log/slurmd.log
NodeName=mycentos6x,mycentos6x1,mycentos6x2 CPUs=4 RealMemory=500 Sockets=2 CoresPerSocket=2 ThreadsPerCore=1 State=IDLE
PartitionName=control Nodes=mycentos6x Default=YES MaxTime=INFINITE State=UP
PartitionName=compute Nodes=mycentos6x1,mycentos6x2 Default=NO MaxTime=INFINITE State=UP

注意:このプロファイルをクラスタ内の各マシンに配備する必要があります.
ファイルを保存し、次のコマンドを使用してslurmサービスを開始します.
# /etc/init.d/slurm start

テスト
slurmサービスを開始したら、次のコマンドを使用してクラスタのステータスを表示し、ジョブをコミットできます.
# sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
control*     up   infinite      1   idle mycentos6x
compute      up   infinite      2   idle mycentos6x1,mycentos6x2
# scontrol show slurm reports
Active Steps             = NONE
Actual CPUs              = 2
Actual Boards            = 1
Actual sockets           = 1
Actual cores             = 2
Actual threads per core  = 1
Actual real memory       = 1464 MB
Actual temp disk space   = 29644 MB
Boot time                = 2015-07-22T09:50:34
Hostname                 = mycentos6x
Last slurmctld msg time  = 2015-07-22T09:50:37
Slurmd PID               = 27755
Slurmd Debug             = 3
Slurmd Logfile           = /var/log/slurmd.log
Version                  = 14.11.8
# scontrol show config
# scontrol show partition
# scontrol show node
# scontrol show jobs

ジョブの発行
# srun hostname
mycentos6x
# srun -N 3 -l hostname
0: mycentos6x
1: mycentos6x1
2: mycentos6x2
# srun sleep 60 &

クエリージョブ
# squeue -a
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
                77     debug    sleep   kongxx  R       0:06      1 mycentos6x

ジョブのキャンセル
# scancel 

参照先:
SLURM:http://slurm.schedmd.com/ MUNGE: https://github.com/dun/munge
転載はリンク形式で本文の住所を明記してください.http://blog.csdn.net/kongxx/article/details/48173829