我按照此处的步骤进行了故障排除:https://slurm.schedmd.com/troubleshoot.html。
运行 scontrol show slurmd 时,我得到:
Active Steps = NONE
Actual CPUs = 1
Actual Boards = 1
Actual sockets = 1
Actual cores = 1
Actual threads per core = 1
Actual real memory = 984 MB
Actual temp disk space = 492 MB
Boot time = 2019-03-27T17:53:56
Hostname = fedora2
Last slurmctld msg time = NONE
Slurmd PID = 1549
Slurmd Debug = 4
Slurmd Logfile = /var/log/slurmd.log
Version = 17.11.13-2
我不知道为什么 fedora2 上的 slurmd 无法与 fedora1 上的控制器通信。slurmctld 守护进程在 fedora1 上运行良好。
slurm.conf如下:
# 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.
#
#SlurmctldHost=fedora1
#
ControlMachine=fedora1
ControlAddr=192.168.1.4
MailProg=/bin/mail
MpiDefault=none
#MpiParams=ports=#-#
ProctrackType=proctrack/cgroup
ReturnToService=1
SlurmctldPidFile=/var/run/slurm/slurmctld.pid
#SlurmctldPort=6817
SlurmdPidFile=/var/run/slurm/slurmd.pid
#SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=slurm
SlurmdUser=root
StateSaveLocation=/var/spool/slurmctld
SwitchType=switch/none
TaskPlugin=task/affinity
#
#
# TIMERS
#KillWait=30
#MinJobAge=300
#SlurmctldTimeout=120
#SlurmdTimeout=300
#
#
# SCHEDULING
FastSchedule=1
SchedulerType=sched/backfill
SelectType=select/cons_res
SelectTypeParameters=CR_Core
#
#
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
ClusterName=fedora
#JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
SlurmctldDebug=verbose
SlurmctldLogFile=/var/log/slurmctld.log
SlurmdDebug=verbose
SlurmdLogFile=/var/log/slurmd.log
#
#
# COMPUTE NODES
NodeName=fedora1 NodeAddr=192.168.1.4 CPUs=1 State=UNKNOWN
NodeName=fedora2 NodeAddr=192.168.1.5 CPUs=1 State=UNKNOWN
PartitionName=debug Nodes=fedora[1-2] Default=YES MaxTime=INFINITE State=UP
fedora2 上的 tail /var/log/slurmd.log 的输出分为多行:
error: Unable to register: Unable to contact slurm controller (connect failure)
答案1
我最近遇到了类似的错误信息(尽管我的错误被写入/var/log/messages
)。对我来说,问题是从 EPEL repoyum
安装slurmd
到计算节点(我认为这一定是新增的,因为以前没有发生过这种情况),而不是从本地 repo 安装。
我的slurmctld
SLURM 控制器节点上的版本是 20.02.4,而 EPEL 的版本slurmd
是 20.11.2。slurm
通过重新安装时yum
,我指定安装正确的版本(从我的本地存储库中获取),即yum install slurmd-20.02.4
。
一旦slurmd
使用slurmctld
相同的版本,一切都将按预期进行。