更新时间:2025-05-21 GMT+08:00

bursting from on-premises插件

插件介绍

bursting from on-premises插件具备同slurm,华为云AS,CES及ECS服务通信的能力,定制化实现slurm节点的动态扩缩容。

使用前准备

  1. 资源预置-创建伸缩配置

    登录AS服务Console控制台,根据需要的弹性ECS配置创建AS服务的伸缩配置

  2. 资源预置-创建伸缩组

    登录AS服务Console控制台,使用上一步创建的伸缩配置,创建一个伸缩组。

    记录伸缩组ID,后续填写scaler配置文件使用

  3. 资源预置-购买包年/包月稳定ECS

    登录ECS服务Console控制台,根据业务需求购买包年/包月的ECS,成功后,记录ECS节点在Slurm集群中的Node名称,做为scaler软件配置文件中的稳定节点配置

  4. 账号准备-创建AK和SK
    1. 进入我的凭证

    2. 单击访问密钥并创建新的密钥,在下载的表格文件中存有AK及SK

  5. 环境信息准备-确定局点ID及ProjectId

    进入我的凭证,在API凭证页面可以查询待部署局点的局点Id和ProjectId(项目Id)

  6. 环境信息准备-确定依赖服务的endpoint

    Scaler程序依赖AS/CES/ECS服务,各服务的endpoint为:

    as.{局点Id}.myhuaweicloud.com

    ces.{局点Id}.myhuaweicloud.com

    ecs.{局点Id}.myhuaweicloud.com

    实际使用时请将{局点Id}替换为真实局点Id,如as.cn-north-9.myhuaweicloud.com

使用约束

  • 只允许配置Node维度的slurm用户配额
  • 不允许将实例手动移入伸缩组
  • 若需要更新稳定节点信息,需先更新scaler配置文件并重启后,再创建实例
  • 稳定节点名称若需要简写,则必须为 前缀-数字形式,如hpc-0001,slurm-02
  • Scaler程序只允许在一个节点运行

软件部署

  • 安装节点

    Slurm集群的master节点

  • 安装目录

    该软件的安装目录为/data目录

  • 下载软件

    cd /data

    下载软件scaler-0.0.1-SNAPSHOT.jar

  • 创建配置文件

    在scaler-0.0.1-SNAPSHOT.jar同目录下,创建配置文件scalerConfig.yaml并编辑(该文件编写时注意符合yaml文件规范)

    配置文件内容如下:

    user:
      # console账号的AK
      ak:
      # console账号的SK
      sk:
      # 待使用局点的租户ID
      project: cc515cbccbc04b78b29a30f5c47fc99a
      # 代理地址,端口,用户名密码等,无需代理可不配置
      proxy-address:
      proxy-port:
      proxy-username:
      proxy-password:
    as:
      # AS服务在待使用局点的终端节点域名
      endpoint: as.cn-north-9.myhuaweicloud.com
      # 预置伸缩组资源的伸缩组ID
      group: de2aa26c-12f7-4882-824f-6c2886bb91e1
      # 查询伸缩实例时单页最大返回数量,默认100可不修改
      list-instance-limit: 100
      # 删除伸缩实例时最大数量限制,AS服务最大支持50,可不修改
      delete-instance-limit: 50
    ecs:
      # ECS服务在待使用局点的终端节点域名
      endpoint: ecs.cn-north-9.myhuaweicloud.com
    metric:
      # 自定义监控指标命名空间,可不修改
      namespace: HPC.SLURM
      # 自定义指标的指标名
      name: workload
      # 自定义指标维度名,可不修改
      dimension-name: hpcslurm01
      # 自定义指标维度ID,可配置成伸缩组的ID,该值不影响功能
      dimension-id: de2aa26c-12f7-4882-824f-6c2886bb91e1
      # 指标上报的TTL参数,可不修改
      report-ttl: 172800
      # CES服务在待使用局点的终端节点域名
      endpoint: ces.cn-north-9.myhuaweicloud.com
    task:
      # slurm节点状态检查周期,单位 秒
      health-audit-period: 30
      # 自定义指标上报周期,单位 秒
      metric-report-period: 30
      # 检测是否需要缩容的周期,单位 秒
      scale-in-period: 120
      # 自动删除待缩容节点周期,单位 秒
      delete-instance-period: 10
      # 新扩容节点自发现周期
      discover-instance-period: 20
      # 对比伸缩组与slurm节点数量周期,单位 秒
      diff-instance-and-node-period: 60
    slurm:
      # 稳定节点的Node名称,多节点英文逗号分割
      stable-nodes: node-ind07urq,node-or7qht4s
      # 稳定节点所在的slurm分区
      stable-partition: dyn1
      #不稳定节点所在的slurm分区
      variable-partition: dyn1
      # 空闲时间阈值,空闲时间超过该值的节点将被缩容,单位 秒
      scale-in-time: 300
      # 判断job是否属于排队状态的时间限制条件,排队时间超过该值的job被认为是在排队并参与指标计算,建议为0
      job-wait-time: 0
      # 新节点注册slurm的超时时间,超过该时间依然未注册成功将被AS删除,单位 分钟,建议为10
      register-timeout-minutes: 10
      # 弹性节点使用的cpu核数
      cpu: 4
      # 弹性节点使用的内存大小,该字段为预留字段,可设置为任意大于0的数值
      memory: 12600

    加粗字体标注的参数配置,需根据实际情况修改,其余配置可使用默认值

  • 安装JDK

    若Master节点没有安装JDK8,需手动安装JDK8

软件管理

  • 软件启动

    root用户执行nohup java -jar scaler-0.0.1-SNAPSHOT.jar --spring.config.name=scalerConfig > /dev/null 2>&1 &

  • 软件停止
    1. 执行ps –ef | grep java | grep scaler命令,查找该软件的进程ID
    2. 执行kill -9 进程ID
  • 更新配置文件

    若更新scalerConfig.yaml配置文件,需重启scaler服务后配置修改才会生效。

异常场景处理

日志打印预警信息

node:[node名称] status isn't DOWN

说明该node不在伸缩组中,且状态不为down

请排查该node是否属于稳定节点,若属于将其添加至scalerConfig配置文件中

相关文件说明

scaler-0.0.1-SNAPSHOT.jar:scaler主软件

scalerConfig.yaml:配置文件

scaler.log/scaler.yyyy-mm-dd.log:程序运行日志