CentOS7集群Slurm调度器主节点无法识别其他节点故障求助
CentOS7集群Slurm调度器主节点无法识别其他节点故障求助
看起来断电导致Slurm集群的节点状态异常了,我来给你一步步排查和解决的思路:
一、先确认节点的Slurm服务状态
- 首先在主节点执行
sinfo命令,查看所有计算节点的当前状态,你会明确看到哪些节点被标记为DOWN或者DRAINED。 - 登录到每个状态异常的计算节点,检查Slurm节点服务
slurmd的运行状态:systemctl status slurmd - 如果服务未启动,尝试手动启动:
systemctl start slurmd - 若启动失败,直接查看Slurm节点日志(通常路径为
/var/log/slurm/slurmd.log)或者系统日志/var/log/messages,里面会有启动失败的具体原因。
二、检查Slurm配置文件一致性
断电可能意外导致主节点与计算节点的配置文件同步出现问题,务必确认主节点(slurmctld所在节点)和所有计算节点的/etc/slurm/slurm.conf内容完全一致,重点核对节点名称、集群名称、通信端口这些核心配置项。
三、手动重置异常节点状态
如果计算节点的slurmd服务已经正常运行,但主节点仍显示节点为DOWN或DRAINED:
- 先在主节点清理可能残留的异常任务:
scancel -u <你的用户名> # 或者直接清理所有残留任务 scancel -a - 查看节点被标记异常的原因:
找到输出里的scontrol show node <异常节点名称>Reason字段,根据提示排除问题后,重置节点状态:# 重置DOWN状态的节点 scontrol update nodename=<异常节点名称> state=RESUME # 重置DRAINED状态的节点,可附带恢复原因 scontrol update nodename=<异常节点名称> state=RESUME reason="Power outage recovery"
四、检查主节点Slurm控制服务状态
主节点的slurmctld服务也可能因断电出现异常:
- 检查服务状态:
systemctl status slurmctld - 若服务运行异常,尝试重启:
systemctl restart slurmctld - 同时查看主节点的Slurm控制日志
/var/log/slurm/slurmctld.log,日志里会记录主节点与计算节点连接失败的具体细节,比如认证失败、网络不通等。
五、验证节点间网络通信
断电可能导致网络组件重启后出现通信问题:
- 确认主节点与计算节点之间的Slurm默认通信端口(通常是6817、6818)能正常连通,用
nc命令测试:nc -zv <计算节点IP> 6817 - 另外,检查节点间的主机名解析是否正常,确保
/etc/hosts文件或DNS服务能正确解析所有节点的主机名,避免因解析失败导致主节点无法识别计算节点。
按照以上步骤排查,大部分断电引发的Slurm节点状态异常都能解决。如果问题仍存在,建议将sinfo的完整输出和日志中的关键错误信息补充出来,方便进一步定位问题。
备注:内容来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

