LoginSignup
4
2

More than 3 years have passed since last update.

systemdでslurmがエラーになる場合の対処方法

Last updated at Posted at 2021-02-07

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

slurm.conf
#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
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2