You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Slurm集群任务异常:无效作业凭证及节点故障排查求助

Slurm集群任务执行异常排查与解决方法

集群环境与异常现象

  • 集群组成:1个控制节点(toto1)、1个计算节点(toto2)
  • 异常1:srun命令完全无法正常运行,报错信息:
#srun -N1 -l /bin/hostname
run: error: Task launch for StepId=28.0 failed on node toto2: Invalid job credential
srun: error: Application launch failed: Invalid job credential
srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
  • 异常2:sbatch命令有时可用,但作业未立即启动时,计算节点可能无响应,即便能SSH连接也需手动恢复为空闲状态

已确认的配置信息

MUNGE密钥与跨节点验证正常

执行跨节点MUNGE编码解码测试,结果正常:

#munge -n | ssh slurm@toto2 unmunge
STATUS:           Success (0)
ENCODE_HOST:      toto2 (10.0.0.2)
ENCODE_TIME:      2023-09-29 11:23:31 +0200 (1695979411)
DECODE_TIME:      2023-09-29 11:23:31 +0200 (1695979411)
TTL:              300
CIPHER:           aes128 (4)
MAC:              sha256 (5)
ZIP:              none (0)
UID:              root (0)
GID:              root (0)
LENGTH:           0

MUNGE服务配置

#cat /lib/systemd/system/munge.service
[Unit]
Description=MUNGE authentication service
Documentation=man:munged(8)
After=network.target
After=time-sync.target

[Service]
Type=forking
ExecStart=/usr/sbin/munged
PIDFile=/var/run/munge/munged.pid
User=munge
Group=munge
Restart=on-abort

[Install]
WantedBy=multi-user.target

用户启动情况

  • 控制节点toto1:以slurm用户启动slurmctld
  • 计算节点toto2:以root用户启动slurmctld(注:计算节点应启动slurmd而非slurmctld)
  • 两节点slurm和munge用户的UID/GID完全一致

排查与解决步骤

1. 修正计算节点的Slurm服务启动错误

计算节点禁止启动slurmctld,正确服务应为slurmd。当前错误启动会导致集群控制逻辑混乱,引发凭证验证失败和节点无响应问题:

  • 在toto2上停止并禁用slurmctld:
    systemctl stop slurmctld
    systemctl disable slurmctld
    
  • 启动并启用slurmd服务:
    systemctl start slurmd
    systemctl enable slurmd
    

2. 统一Slurm服务运行用户

Slurm的slurmctld(控制节点)和slurmd(计算节点)都应使用slurm用户运行,避免root权限带来的权限不一致:

  • 检查toto2上slurmd的服务配置,确保/lib/systemd/system/slurmd.service中设置User=slurm

3. 验证Slurm配置文件一致性

确保控制节点和计算节点的slurm.conf完全一致,重点检查:

  • ClusterName:集群名称统一
  • ControlMachine:指向控制节点toto1的主机名或IP
  • NodeName:计算节点toto2的配置正确
  • PartitionName:分区配置包含toto2节点

4. 确认节点时间同步

MUNGE依赖节点时间一致,需确保两节点时间误差不超过1分钟:

  • 使用timedatectl查看时间状态,确认NTP服务正常运行:
    timedatectl status
    

5. 清理残留状态文件

若节点曾异常运行,残留状态文件可能导致问题:

  • 控制节点清理操作:
    systemctl stop slurmctld
    rm -rf /var/lib/slurmctld/*
    systemctl start slurmctld
    
  • 计算节点清理操作:
    systemctl stop slurmd
    rm -rf /var/lib/slurmd/*
    systemctl start slurmd
    

6. 重新验证MUNGE权限配置

确保MUNGE密钥文件权限正确:

  • 检查密钥文件权限:
    ls -l /etc/munge/munge.key
    
    正确权限应为-rw-------,属主属组为munge:munge
  • 重启MUNGE服务:
    systemctl restart munge
    

内容的提问来源于stack exchange,提问作者ERIC ANENGYP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 16:18:16