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

Slurm云调度系统中POWER_UP失败节点的处理方案咨询

解决方案:处理Slurm云节点POWER_UP失败后资源闲置的问题

核心解决思路

针对云节点按需创建的特性,核心目标是让Slurm在POWER_UP失败时,不保留无效的DOWN节点记录,从而自动触发新节点的调度。以下是几种可落地的方案:

方案1:修改POWER_UP脚本规避节点标记为DOWN

Slurm标记节点为DOWN的触发条件是POWER_UP脚本返回非0退出码,可调整脚本逻辑绕过这一机制:

  • 当实例创建失败时,脚本不返回非0值,而是直接删除Slurm中该节点的记录
  • 示例脚本片段:
    # 假设实例创建命令执行失败后进入该分支
    if [ $? -ne 0 ]; then
        # 删除Slurm中的无效节点记录
        scontrol delete node=$SLURM_NODE_NAME
        exit 0
    fi
    
    这样Slurm不会生成DOWN状态的节点记录,后续调度会直接尝试创建新的云实例。

方案2:配置ResumeFailedProgram实现自动清理

虽然需要编写脚本,但逻辑极简,仅需完成无效节点的删除:

  1. 在slurm.conf中添加配置:
    ResumeFailedProgram=/usr/local/sbin/clean_failed_nodes.sh
    
  2. 编写clean_failed_nodes.sh脚本(记得赋予执行权限):
    #!/bin/bash
    NODE_NAME=$1
    # 删除标记为DOWN的无效云节点
    scontrol delete node=$NODE_NAME
    
    当POWER_UP失败时,Slurm会自动调用该脚本清理节点记录,后续调度即可正常创建新实例。

方案3:配置动态节点增强生命周期灵活性

将云节点配置为动态节点,让Slurm更灵活地处理节点的创建与销毁:

NodeName=cloud-node[1-200] State=CLOUD Dynamic=1 CPUs=8 ...
PartitionName=cloud Nodes=cloud-node[1-200] Default=YES ...

动态节点在启动失败时,Slurm不会长期保留DOWN状态,会更快触发新节点的调度请求。

原尝试方案无效的原因说明

  • ReturnToService:仅适用于节点主动恢复(如自行启动、手动重启)的场景,不覆盖POWER_UP失败的情况
  • idle_on_node_suspend:仅控制节点闲置时的挂起行为,与启动失败的节点处理逻辑无关

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:31:06