Назад | Перейти на главную страницу

Почему Slurm не запускается с systemd, но работает при запуске вручную?

Я только что настроил slurm, где одна физическая машина будет единственной системой в кластере (пока). Это на Ubuntu 18.04.

У меня работает slurmdbd, но когда я пытаюсь запустить slurmd и slurmctld, время ожидания истекает. Зачем?

Я запускаю следующие команды:

systemctl start slurmctld
systemctl start slurmd

Я также пробовал:

systemctl start slurmctld slurmd

и:

systemctl start slurmd slurmctld

Это не удается для slurmctld в следующих случаях:

systemd[1]: slurmd.service: Can't open PID file /var/run/slurm-llnl/slurm-llnl/slurmd.pid (yet?) after start: No such file or directory
systemd[1]: slurmctld.service: Start operation timed out. Terminating.
systemd[1]: slurmctld.service: Failed with result 'timeout'.
systemd[1]: Failed to start Slurm controller daemon.

И для slurmd:

systemd[1]: slurmd.service: Start operation timed out. Terminating.
systemd[1]: slurmd.service: Failed with result 'timeout'.
systemd[1]: Failed to start Slurm node daemon.

Однако, когда я запускаю их вручную (используя два терминала), выпуская:

slurmctld -Dvvv
slurmd -Dvvv

Кажется, все работает.

Почему это? Как мне начать трепаться?

Это служебные файлы (которые должны быть стандартными, я их не трогал, за исключением добавления подробных аргументов, но потом снова их удалял):

# cat /lib/systemd/system/slurmd.service 
[Unit]
Description=Slurm node daemon
After=network.target munge.service
ConditionPathExists=/etc/slurm-llnl/slurm.conf
Documentation=man:slurmd(8)

[Service]
Type=forking
EnvironmentFile=-/etc/default/slurmd
ExecStart=/usr/sbin/slurmd $SLURMD_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
PIDFile=/var/run/slurm-llnl/slurmd.pid
KillMode=process
LimitNOFILE=51200
LimitMEMLOCK=infinity
LimitSTACK=infinity

[Install]
WantedBy=multi-user.target
# cat /lib/systemd/system/slurmctld.service 
[Unit]
Description=Slurm controller daemon
After=network.target munge.service
ConditionPathExists=/etc/slurm-llnl/slurm.conf
Documentation=man:slurmctld(8)

[Service]
Type=forking
EnvironmentFile=-/etc/default/slurmctld
ExecStart=/usr/sbin/slurmctld $SLURMCTLD_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
PIDFile=/var/run/slurm-llnl/slurmctld.pid

[Install]
WantedBy=multi-user.target

Посмотрите внимательно в свой журнал:

Can't open PID file /var/run/slurm-llnl/slurm-llnl/slurmd.pid

Этот путь не соответствует пути, указанному в вашем /lib/systemd/system/slurmd.service. Чтобы исправить это, поле SlurmdPidFile в файле /etc/slurm-llnl/slurm.conf следует исправить. То же самое касается SlurmctldPidFile.

Также обратите внимание, что простой конфигуратор /usr/share/doc/slurm-wlm-doc/html/configurator.easy.html предложения /var/run/slurmd.pid по умолчанию, что тоже не работает.