Slurm:无效的工作凭证

问题描述 投票:0回答:1

我尝试搭建一个Slurm集群,由1个计算节点和1个控制节点组成。

目前,启动某些任务不起作用。即使队列不为空,节点有时也会关闭。 Srun 从来不工作,但 sbatch 可以。

#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.

我已经与好用户设置了 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

sbatch 有时会工作,但如果 sbatch 作业没有立即启动,计算节点可能会变得没有响应,我必须手动使其再次空闲,即使我的节点可以通过 SSH 访问。

我的 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(控制节点)中,slurmctl 的启动方式为: 用户=slurm 在 toto2(计算节点)中,slurmctl 的启动方式为: 用户=root

当然,slurm 和 munge 用户的 UID/GID 在两个节点之间是相同的。

slurm munge
1个回答
0
投票

请注意,所有可以提交作业的用户的所有节点之间的 UID/GID 必须匹配,而不仅仅是

slurm
用户。如果您以
root
形式提交作业,还请确保
DisableRootJobs
中未设置
slurm.conf

如果 UID/GID 匹配,那么您应该调查节点之间可能存在的时间漂移; munge 凭证包含时间戳,如果节点未全部在同一 NTP 服务器上对齐,则该凭证可能无效。我观察到,小的时间漂移可能会导致某些作业以看似随机的方式运行,而另一些作业则以看似随机的方式运行,但实际上很可能是基于时间戳的分辨率。

© www.soinside.com 2019 - 2024. All rights reserved.