尽管 SLURM 在作业提交、运行和排队方面工作得很好,但我遇到了下面的一个小错误。
sudo systemctl status slurmd
Jun 12 10:20:40 noki-System-Product-Name systemd[1]: slurmd.service: Can't open PID file /var/run/slurm-llnl/slurmd.pid (yet?) after start: No such file or directory
sudo systemctl status slurmctld
Jun 12 10:20:40 noki-System-Product-Name systemd[1]: slurmd.service: Can't open PID file /var/run/slurm-llnl/slurmd.pid (yet?) after start: No such file or directory
我按照指南进行了安装
文件:///home/noki/Downloads/Webinar_2_Slurm_II--Ubuntu16.04_and_18.04.pdf
这个问题可能来自slurm.conf文件的所有权?
这是我的 slurm.conf 和 slur*.pid 的所有权
# slurm.conf file generated by configurator easy.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
ControlMachine=noki-System-Product-Name
#ControlAddr=
# 
#MailProg=/bin/mail 
MpiDefault=none
#MpiParams=ports=#-# 
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
#SlurmctldPort=6817 
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
#SlurmdPort=6818 
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=noki
#SlurmdUser=root
StateSaveLocation=/var/spool/slurm-llnl
SwitchType=switch/none
TaskPlugin=task/none
# 
# 
# TIMERS 
#KillWait=30 
#MinJobAge=300 
#SlurmctldTimeout=120 
#SlurmdTimeout=300 
# 
# 
# SCHEDULING 
FastSchedule=1
SchedulerType=sched/backfill
SelectType=select/linear
#SelectTypeParameters=
# 
# 
# LOGGING AND ACCOUNTING 
AccountingStorageType=accounting_storage/none
ClusterName=linux
#JobAcctGatherFrequency=30 
JobAcctGatherType=jobacct_gather/none
#SlurmctldDebug=3 
SlurmctldLogFile=/var/log/slurm-llnl/SlurmctldLogFile
#SlurmdDebug=3 
SlurmdLogFile=/var/log/slurm-llnl/SlurmdLogFile
# 
# 
# COMPUTE NODES 
NodeName=noki-System-Product-Name CPUs=4 RealMemory=6963 Sockets=1 CoresPerSocket=4 ThreadsPerCore=1 State=UNKNOWN 
PartitionName=debug Nodes=noki-System-Product-Name Default=YES MaxTime=INFINITE State=UP
total 8
-rw-r--r-- 1 noki root 6 Jun 12 10:20 slurmctld.pid
-rw-r--r-- 1 root root 6 Jun 12 10:20 slurmd.pid
这实际上可能是一个比一开始看起来更大的问题。就您而言,我发现您已经至少实施了我下面的建议的一部分,但无论如何我都会回答这个问题,以便像我一样通过谷歌找到这个问题的其他人的利益。
第一步是检查 PID 文件是否确实存在于 slurm.conf 中配置的位置。如果是:验证 systemd 的服务定义单元文件也引用相同的 PID 文件。如果是这样,并且您的服务正常启动,您可以忽略该消息 - 这只是一个时间问题;systemd 可能会在创建 PID 文件之前检查它。
如果 PID 文件不存在,或者单元文件指向不同的位置,systemd 将无法正确识别守护进程已启动,并且可能会超时并报告守护进程已失败,即使它实际上正在运行。
原因通常是权限问题。示例配置中 PID 文件的位置通常位于 /var/run 中。该目录只能由 root 写入,但守护程序以用户 slurm 身份运行。
为了解决这个问题,您需要在 /var/run 下(或者最好在 /run 下,因为 /var/run 已被弃用)创建一个具有正确所有权的子目录。此时,您将遇到下一个问题:/run 是一个 tmpfs 目录,因此每次重新启动时它都会被删除。这意味着您不能简单地使用 mkdir、chown 和 chmod 来创建目录。
解决方案(请参考https://askubuntu.com/questions/303120/how-folders-created-in-var-run-on-each-reboot获取答案):
使用以下内容创建文件 /etc/tmpfiles.d/slurm.conf:
d /run/slurm 0770 root slurm -
最后,您需要告诉 slurm 和 systemd 新位置。
在 slurm.conf 中,只需更新 PID 文件条目即可。
要告诉 systemd 新位置,您需要修改服务定义以更改 systemd 查找 PID 文件的位置。您可以直接修改文件 /usr/lib/systemd/system/slurm*.service,但更好的方法是覆盖 /etc/systemd/system/slurm*.service.d 中的设置
| 归档时间: | 
 | 
| 查看次数: | 14264 次 | 
| 最近记录: |