ubuntu20.04にslurmをいれてみたのだが、うまくいかない。
systemdでslurmを立ちあげた際にエラーが出たのですがその時の対処法を記載。
なお、インストール方法全体については下記にまとめてます。
ジョブスケジューラーslurmをUbuntu20.04@wls2にインストールして、テストする。
お役に立てたら、LGTMよろしくお願いします。
エラーを確認する
$ systemctl status slurmd.service
# 実行結果
● slurmd.service - Slurm node daemon
Active: failed (Result: exit-code)
Process: 38766 ExecStart=/usr/local/sbin/slurmd -D $SLURMD_OPTIONS (code=exited, status=1/FAILURE)
failになってます。
Process欄に、/usr/local/sbin/slurmd -D $SLURMD_OPTIONSとコマンドがあるので、それを直で実行します
エラーケース1
$ sudo /usr/local/sbin/slurmd -D $SLURMD_OPTIONS
# 実行結果
slurmd: error: Node configuration differs from hardware: CPUs=1:6(hw) Boards=1:1(hw) SocketsPerBoard=1:1(hw) CoresPerSocket=6:6(hw) ThreadsPerCore=1:1(hw)
slurmd: CPU frequency setting not configured for this node
slurmd: error: cgroup namespace 'freezer' not mounted. aborting
slurmd: error: unable to create freezer cgroup namespace
slurmd: error: Couldnt load specified plugin name for proctrack/cgroup: Plugin init() callback failed
slurmd: error: cannot create proctrack context for proctrack/cgroup
slurmd: error: slurmd initialization failed
1行目で、ハードウエア情報と設定されている値が違う、と言っています。
CPUs=1:6(hw) ←物理CPU数のことかと思い、1と設定しましたが、6と設定しろと言っています。
ちなみに、このPCは1CPUに6コアある計算機です。
コメントに合わせて、/usr/local/etc/slurm.confの最終行を修正します。
エラーケース2
$ sudo /usr/local/sbin/slurmd -D $SLURMD_OPTIONS
# 実行結果
slurmd: CPU frequency setting not configured for this node
slurmd: error: cgroup namespace 'freezer' not mounted. aborting
slurmd: error: unable to create freezer cgroup namespace
slurmd: error: Couldnt load specified plugin name for proctrack/cgroup: Plugin init() callback failed
slurmd: error: cannot create proctrack context for proctrack/cgroup
slurmd: error: slurmd initialization failed
2~5行目で、proctrack/cgroupがエラーと言ってます。
公式を確認すると、X11だと ProctrackType=proctrack/linuxprocにしろ、と書いてあります。
これをもとに、
ProctrackType=proctrack/cgroup
を
ProctrackType=proctrack/linuxproc
に変更します。
エラーケース3
上の二つはslurmdでしたが、slurmctld の場合。
$ systemctl status slurmctld.service
# 実行結果
● slurmctld.service - Slurm controller daemon
Loaded: loaded (/etc/systemd/system/slurmctld.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2021-01-0! 07:07:07 JST; 13s ago
Process: 342025 ExecStart=/usr/local/sbin/slurmctld -D $SLURMCTLD_OPTIONS (code=exited, status=1/FAILURE)
直で実行してみる
$ sudo /usr/local/sbin/slurmctld -D $SLURMCTLD_O
# 実行結果
slurmctld: fatal: Incorrect permissions on state save loc: /var/spool
アクセス権がないのが問題っぽい。
slurm.confのユーザーをroot以外にした場合に発生。
rootを有効にしてrootで実行でもよいのだが、極力避けたいので、
下記の記事を参考に、slurm.confの下記を書き換える。
http://www-fps.nifs.ac.jp/ito/memo/slurm01.html
# SlurmdSpoolDir=/var/spool/slurmd
SlurmdSpoolDir=/tmp/slurmd
# StateSaveLocation=/var/spool
StateSaveLocation=/tmp
slurm.confを修正した後
下記のコマンドで再起動 & 確認してください。
# 再起動
$ sudo systemctl restart slurmd.service
$ sudo systemctl restart slurmctld.service
# 確認
$ systemctl status slurmd.service
$ systemctl status slurmctld.service