如何 "undrain" 在 drain 状态下 slurm 节点

How to "undrain" slurm nodes in drain state

使用sinfo显示3个节点处于drain状态,

PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
all*         up   infinite      3  drain node[10,11,12]

我应该使用哪个命令行来减少这样的节点?[​​=14=]

找到方法,输入scontrol interpreter(命令行输入scontrol)然后

scontrol: update NodeName=node10 State=DOWN Reason="undraining"
scontrol: update NodeName=node10 State=RESUME

然后

scontrol: show node node10

显示其他信息

State=IDLE

更新:其中一些节点恢复了 DRAIN 状态;注意到他们的根分区在例如之后已满。 show node a10 显示 Reason=SlurmdSpoolDir is full,因此在 Ubuntu sudo apt-get clean 中删除 /var/cache/apt 内容并压缩了一些 /var/log 文件。

如果将其设置为关闭,所有作业都将被终止。

改为将节点设置为恢复。

如果节点上当前 运行 没有作业:

scontrol update nodename=node10 state=idle

如果作业 运行 在节点上:

scontrol update nodename=node10 state=resume

节点处于 DRAIN 状态的另一个原因是关于系统的事实与 /etc/slurm/slurm.conf 文件中声明的不匹配。例如,如果 slurm.conf 文件声明一个节点有 4 个 GPU,但 slurm 守护进程只找到其中​​的 3 个,由于不匹配,它会将节点标记为 "drain"。或者如果节点在slurm.conf中声明有128G内存,而slurm守护进程只找到96G,它也会将状态设置为"drain"。

不匹配的原因代码由 'scontrol show node ' 命令显示为输出的最后一行。

虽然已经有一个批准的答案,但我想提一下:

scontrol: update NodeName=nodename State=DOWN Reason="undraining"
scontrol: update NodeName=nodename State=RESUME

returns slurm_update error: Invalid node state specified 适用于 EndeavourOS 2021.08.27 上的 SLURM 21.08.03。对我有用的解决方案是:

scontrol: update NodeName=nodename State=UNDRAIN

无需设置节点DOWN