bursting from on-premises插件
插件介绍
bursting from on-premises插件具备同slurm,华为云AS,CES及ECS服务通信的能力,定制化实现slurm节点的动态扩缩容。
使用前准备
- 资源预置-创建伸缩配置
登录AS服务Console控制台,根据需要的弹性ECS配置创建AS服务的伸缩配置
- 资源预置-创建伸缩组
登录AS服务Console控制台,使用上一步创建的伸缩配置,创建一个伸缩组。
记录伸缩组ID,后续填写scaler配置文件使用
- 资源预置-购买包年/包月稳定ECS
登录ECS服务Console控制台,根据业务需求购买包年/包月的ECS,成功后,记录ECS节点在Slurm集群中的Node名称,做为scaler软件配置文件中的稳定节点配置
- 账号准备-创建AK和SK
- 环境信息准备-确定局点ID及ProjectId
进入我的凭证,在API凭证页面可以查询待部署局点的局点Id和ProjectId(项目Id)
- 环境信息准备-确定依赖服务的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程序只允许在一个节点运行
软件部署
- 安装节点
- 安装目录
- 下载软件
下载软件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
软件管理
异常场景处理
日志打印预警信息
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:程序运行日志