# huaweicloud-solution-elastic-scaling-with-deadline **Repository Path**: HuaweiCloudDeveloper/huaweicloud-solution-elastic-scaling-with-deadline ## Basic Information - **Project Name**: huaweicloud-solution-elastic-scaling-with-deadline - **Description**: 该解决方案可以帮助用户在华为云上轻松搭建可弹性扩缩容渲染农场集群 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-27 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [TOC] **解决方案介绍** =============== 该解决方案基于渲染农场软件Deadline及华为云自研开源软件Gearbox构建弹性伸缩能力,快速帮助用户在华为云上完成可自动弹性伸缩的渲染农场环境搭建。Deadline调度控制节点云服务器采用无配置模式,Gearbox程序与弹性伸缩服务AS及云监控服务CES对接,通过监控Deadline集群作业Job状态,实时自动弹性扩缩容Deadline集群环境,并自动完成弹性扩容出来的云服务器注册并加入集群或从集群注销并完成实例销毁。 解决方实践详情页面地址:https://www.huaweicloud.com/solution/implementations/elastic-scaling-with-deadline.html Gearbox程序开源地址: https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-gearbox **架构图** --------------- ![方案架构](./document/elastic-scaling-with-deadline.png) **架构描述** --------------- 该解决方案会部署如下资源: 1. 创建两台弹性云服务器 ECS,安装渲染农场软件Deadline,在Master节点安装Gearbox程序、配置Java环境。 2. 创建两个弹性公网IP EIP,用于提供访问公网和被公网访问能力。 3. 创建安全组,可以保护弹性云服务器 ECS的网络安全,通过配置安全组规则,限定云服务器的访问端口。 4. 使用镜像服务 IMS创建计算节点服务器镜像,用于弹性扩容时使用该镜像配置计算节点服务器初始化环境。 5. 创建一个弹性伸缩 AS组,通过设置伸缩策略来弹性扩缩容。 6. 创建云监控服务 CES告警规则,该规则根据Gearbox程序监测到的作业状态,触发弹性伸缩 AS去弹性扩缩容。 7. 创建弹性文件服务 SFS,挂载到所有弹性云服务器 ECS上,为集群环境提供共享文件存储服务。 **组织结构** --------------- ``` lua huaweicloud-solution-elastic-scaling-with-deadline ├── elastic-scaling-with-deadline.tf.json -- 资源编排模板 ├── userdata ├── config-master-centos.sh -- centos master节点脚本配置文件 ├── config-slave-centos.sh -- centos slave节点脚本配置文件 ├── config-master-windows.bat -- windows master节点脚本配置文件 ├── config-slave-windows.bat -- windows slave节点脚本配置文件 ├── installRepo.bat -- windows手动安装DeadlineRepository脚本 ``` **开始使用** --------------- 请根据云服务器操作系统类型选择部署指导方案。 ## Centos环境安装与部署 1. 检查Master节点基础环境安装配置情况。 登录Master节点。centos系统登录时请采用"root"身份登录。 **图 1** root身份登录 ![](./document/figures/root身份登录.png "root身份登录") 使用如下命令查看环境初始化日志文件,检查相关软件及环境是否安装配置完成。 ``` cat /root/envInstallConfig.log ``` **图 2** 环境安装配置日志 ![](./document/figures/环境安装配置日志.png "环境安装配置日志") >![](./document/public_sys-resources/icon-note.gif) **说明:** >- Master节点会自动安装Deadline软件、共享DeadlineRepository目录、为DeadlineClient添加系统环境变量、安装Java环境、安装配置Gearbox软件、自动挂载SFS-Turbo、安装Centos桌面等。详见envInstallConfig.log日志。 >- Deadline相关软件存放在/root/thinkbox目录下。 >- DeadlineRepository目录/opt/Thinkbox/DeadlineRepository 目录将会被通过NFS协议共享出来,便于与Slave节点通信 >- DeadlineClient软件配置的Repository目录为/DeadlineRepository10。 >- Gearbox软件存放在/root/gearbox目录下。 >- SFS-Turbo挂载点为/root/assets, /root/assets目录用于存储渲染资产。 2. 检查Deadline集群状态。 登录Master节点查看集群状态。 **图 3** 启动Deadline Monitor 10 ![](./document/figures/启动Deadline-Monitor-10.png "启动Deadline-Monitor-10") **图 4** 确定登录账户 ![](./document/figures/确定登录账户.png "确定登录账户") **图 5** 查看节点状态 ![](./document/figures/查看节点状态.png "查看节点状态") 3. 配置Gearbox软件。最新版可从[Gearbox的Gitee仓库地址](https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-gearbox?_from=gitee_search)下载,新版[Gearbox配置文件地址](https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-gearbox/blob/master-dev/src/main/resources/application.yml)(可选)。 登录Master节点对Gearbox软件进行配置。**请保持Deadline Monitor开启**。 1、 切换到 /root/gearbox 目录下。 ``` cd /root/gearbox ``` 2、使用gedit 或者 vim 命令打开Gearbox的配置文件 application.yml,对可选项根据需要自行配置。**说明:ak、sk、project-id、group等必要启动项已完成自动配置。** 配置项说明如下: ``` user: # 华为云 console账号的AK,认证使用. AK硬编码或者明文存储都存在较大的安全风险,建议在配置文件或者环境变量中密文存储,使用时解密,确保安全 ak: # 华为云 console账号的SK,认证使用. SK硬编码或者明文存储都存在较大的安全风险,建议在配置文件或者环境变量中密文存储,使用时解密,确保安全 sk: # 待使用局点的租户ID project-id: # 代理地址,端口,用户名密码等,无需代理可不配置 proxy-address: proxy-port: proxy-user-name: proxy-password: as: # AS服务在待使用局点的终端节点域名 endpoint: as.cn-north-4.myhuaweicloud.com # 预置伸缩组资源的伸缩组ID group: f12d57a3-ed8a-4a16-8c3f-4817ab7171f2 # 查询伸缩实例时单页最大返回数量,默认100可不修改 list-instance-limit: 100 # 删除伸缩实例时最大数量限制,AS服务最大支持50,可不修改 delete-instance-limit: 50 ecs: # ECS服务在待使用局点的终端节点域名 endpoint: ecs.cn-north-4.myhuaweicloud.com metric: # 自定义监控指标命名空间,可不修改 namespace: test.HPC # 自定义指标的指标名 name: workload # 自定义指标维度名,可不修改 dimension-name: autoscaling_group # 自定义指标维度ID,可配置成伸缩组的ID,该值不影响功能 dimension-id: f12d57a3-ed8a-4a16-8c3f-4817ab7171f2 # 指标上报的TTL参数,可不修改 report-ttl: 172800 # CES服务在待使用局点的终端节点域名 metric-report-endpoint: ces.cn-north-4.myhuaweicloud.com task: # 节点状态检查周期,单位 秒 health-audit-period: 30 # 自定义指标上报周期,单位 秒 metric-report-period: 60 # 检测是否需要缩容的周期,单位 秒 scale-in-period: 5 # 自动删除待缩容节点周期,单位 秒 delete-instance-period: 5 # 新扩容节点自发现周期 discover-instance-period: 20 # 对比伸缩组与slurm节点数量周期,单位 秒 diff-instance-and-node-period: 60 # 内部缓存刷新周期,单位 秒 refresh-cache-period: 100 # 配置检查任务运行周期,单位 秒 configuration-check-period: 300 system: # deadline/slurm type: deadline # 稳定节点的Node名称,多节点英文逗号分割 stable-nodes: deadline-master # 稳定节点所在的分区 stable-partition: dyn1 #不稳定节点所在的分区 variable-partition: dyn1 # 空闲时间阈值,空间时间超过该值的节点将被缩容,单位 秒 scale-in-time: 1 # 判断job是否属于排队状态的时间限制条件,排队时间超过该值的job被认为是在排队并参与指标计算,建议为0 job-wait-time: 1 # 新节点注册的超时时间,超过该时间依然未注册成功将被AS删除,单位:分钟,建议为10 register-timeout-minutes: 10 # 弹性节点使用的cpu核数 cpu: 4 # 弹性节点使用的内存大小,该字段为预留字段,可设置为任意大于0的数值 memory: 12600 gpu: 1 # 仅slurm集群配置有效,默认是true,在计算Workload时忽略含有GPU需求作业中的CPU需求量 ignore-cpu-request-of-gpu-job: true # 是否使用powershell执行指令,只有windows环境下生效 use-powershell-executor: true # 支持多分区资源协同 partition: # 特性整体开发,默认值为false,对接系统为slurm且该配置开启后后续配置生效; multi-partition-scaling: false # 提交到多个分区的作业负载,在多个分区上的映射策略 MAPPING_TO_FIRST_PARTITION,仅累积到第一个分区中,其余分区不计算(默认); MAPPING_BY_WEIGHT,按照各分区的权重计算负载的映射; load-mapping-policy: MAPPING_TO_FIRST_PARTITION # 分区配置列表 partition-configuration-list: - # 分区名 name: partition1 # 分区中节点资源类型,支持CPU、GPU二选一; type: CPU # 分区在负载映射中的计算权重,整数,取值范围[0,100]; weight: 10 # 分区对应的租户id project-id: # 分区对应的伸缩组id,伸缩组与分区需要一一对应 scaling-group-id: XXX #节点的资源规格,当资源类型为CPU时可填节点CPU和内存规格,当节点资源类型为GPU时可填节点规格为GPU数量; node-spec: # 节点CPU数量 cpu: 4 # 节点内存容量,单位GB; mem: 8 # 加速卡数量 gpu: 2 # 空闲一定时间后触发缩容,单位秒,未配置时使用全局配置,配置后针对本分区覆盖全局空闲缩容时间; scale-in-after-idle-time: 100 # 自定义指标维度名 dimension-name: autoscaling_group # 自定义指标维度ID dimension-id: f12d57a3-ed8a-4a16-8c3f-4817ab7171f2 # 云端API调用的地址端点列表,未配置时使用全局配置 ecs-endpoint: ecs.cn-north-4.myhuaweicloud.com as-endpoint: as.cn-north-4.myhuaweicloud.com ces-endpoint: ces.cn-north-4.myhuaweicloud.com ``` 3、测试gearbox是否配置正确。使用如下命令: ``` cd /root/gearbox #进入Gearbox所在目录。 java -jar gearbox-0.0.1-SNAPSHOT.jar #请根据实际jar包名来启动Gearbox软件。 ``` **说明:Gearbox 启动后会在终端打印日志,请检查有无报错信息。** 4、登录[华为云监控服务CES控制台](https://console.huaweicloud.com/ces/?region=cn-north-4&locale=zh-cn#/customizedMonitor/guide)查看自动定义指标workload是否上报成功。 **图 6** 查看自定义指标 ![](./document/figures/查看自定义指标.png) **说明:无提交任务,故workload指标为0。** **图 7** 查看自定义指标 ![](./document/figures/查看自定义指标-2.png "查看自定义指标-2") 4. 自行安装业务软件。在Master节点和Slave节点安装所需业务软件,并配置业务软件开机自启。 5. 测试Slave节点。完成业务软件安装后,在Master节点提交测试任务,检查Slave节点能否正常渲染。**说明:请将渲染资产请存放在/root/assets 目录下,便于所有渲染节点共享。** 6. 将Slave节点打包为私有镜像。 登录Slave节点,完成制作私有镜像的准备工作。 1. 制作镜像前清除cloud-init缓存。 ``` #使用如下命令删除cloud-init缓存,保证基于此镜像创建的新虚拟机可以正确注入机器名、登录密码等初始化数据。注意:不要在这个过程中重启机器,否则需要重新执行下面命令。 rm -rf /var/lib/cloud/* rm -rf /var/log/cloud-init* ``` 2. 自行删除Slave节点中的敏感信息。 3. 镜像预处理操作完成后,登录[华为云服务器控制台](https://console.huaweicloud.com/ecm/?region=cn-north-4&locale=zh-cn#/ecs/manager/vmList),将Slave节点关机,打包Slave节点镜像。 找到本方案创建的云服务器,单击右侧“更多\>镜像\>创建镜像”进行打包。 **图 8** 打包私有镜像 ![](./document/figures/打包Centos私有镜像.png) **图 9** 打包私有镜像 ![](./document/figures/打包私有镜像.png "打包私有镜像") **图 10** 创建私有镜像 ![](./document/figures/创建私有镜像3.png) 在创建私有镜像界面,填写名称,选择企业项目,勾选协议,单击立即创建,等待镜像创建完成。 **图 11** 创建私有镜像 ![](./document/figures/创建私有镜像.png) 打开[华为云镜像服务控制台](https://console.huaweicloud.com/ecm/?region=cn-north-4&locale=zh-cn#/ims/manager/imageList/selfImage),等待大约5-10min后即可查看镜像创建结果。 **图 12** 计算节点镜像 ![](./document/figures/centos镜像创建结果.png) 7. 修改伸缩配置 登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),选择本方案部署时创建的伸缩组。 **图 13** 修改伸缩配置 ![](./document/figures/修改伸缩配置.png) **说明:修改伸缩配置时,AS会自动为"名称" 添加上"\_copy"的后缀,请将此后缀删除,因为伸缩配置名称带有下划线"\_"时,会导致节点缩容异常。** **图 14** 修改伸缩配置的名称 ![](./document/figures/修改伸缩配置的名称.png "修改伸缩配置的名称") 建议选择C6、C6s、C7,规格可选32U64G、64U128G。 **图 15** 配置镜像规格 可选 。 ![](./document/figures/配置镜像规格-可选.png "配置镜像规格-可选") 此处镜像选择上一步骤中创建的镜像,磁盘根据业务需要自行选择,安全组选择方案部署时创建的安全组。 **图 16** 配置镜像、磁盘、安全组等内容 ![](./document/figures/配置镜像-磁盘-安全组等内容.png "配置镜像-磁盘-安全组等内容") **图 17** 登录方式选择"密钥对",密钥对选择部署方案时创建的密钥对。在 **高级配置---\>现在配置---\>实例自定义数据注入---\>以文本形式** 注入如下内容。 ``` #!/bin/sh reboot ``` **说明:因Deadline以节点hostname来标识渲染节点,而新节点启动时会保留原始镜像节点的hostname信息,故此处重启以使Deadline能够正常标识渲染节点。** **图 18** 配置登录方式、密钥对 ![](./document/figures/配置密钥对和高级配置.png) 8. 按需配置伸缩组。可选。 登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),右侧选择“更多”---\>"修改伸缩组" **图 19** 修改弹性伸缩组 ![](./document/figures/修改伸缩组.png) **说明:最大实例数、期望实例数、最小实例数根据业务需要自行配置,冷却时间建议小于30s,其他配置可保持默认。** **图 20** 修改伸缩组配置 ![](./document/figures/修改伸缩组-0.png) **说明:下面配置根据业务需要自行配置。** **图 21** 修改伸缩组配置 ![](./document/figures/修改伸缩组配置.png "修改伸缩组配置") 9. 启动Gearbox软件。 Master节点上,在保持Deadline Monitor开启的情况下,启动Gearbox软件。使用如下命令进入Gearbox所在目录并启动程序。 ``` cd /root/gearbox java -jar gearbox-0.0.1-SNAPSHOT.jar ``` **图 22** gearbox启动 ![](./document/figures/gearbox启动.png "gearbox启动") 10. 配置伸缩组的伸缩策略。 登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),单击弹性伸缩组名称,进入伸缩组详情界面。 **图 23** 添加策略 ![](./document/figures/添加伸缩策略.png) 策略类型选择"告警策略",告警规则选择"现在创建",监控类型选择"自定义监控",触发条件选择"workload"、"原始值"。 **图 24** 添加伸缩策略 ![](./document/figures/配置伸缩策略.png) **图 25** 添加伸缩策略 ![](./document/figures/添加伸缩策略-3.png "添加伸缩策略-3") 11. 提交测试任务。登录Master节点提交测试任务,保持Gearbox处于运行状态。**说明:由于Master 节点配置较低,建议渲染时关闭Dealine Worker。** 12. CES控制台查看指标上报情况。 登录[华为云监控服务CES控制台](https://console.huaweicloud.com/ces/?region=cn-north-4&locale=zh-cn#/customizedMonitor/guide),查看部署方案创建的自定义监控。 **图 26** 自定义监控 ![](./document/figures/查看自定义指标-4.png) 监控指标workload值表示集群需要扩容的节点数量,如workload为24时,表示需要扩容24个计算节点。 **图 27** 查看监控指标workload ![](./document/figures/向ces上报指标.png) 13. 查看节点伸缩情况。登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),单击本方案部署时创建的伸缩组名,进入实例监控台。 **图 28** 某个时间段监控面板状态。 ![](./document/figures/某个时间段监控面板状态.png "某个时间段监控面板状态") 14. Deadline Monitor 查看节点扩容情况。登录Maste节点,启动Deadline Monitor 查看任务运行情况,渲染节点状态。 **图 29** 某个时间段Monitor监控面板状态 ![](./document/figures/某个时间段Monitor监控面板状态.png "某个时间段Monitor监控面板状态") 15. 结束任务 1. 登录[华为云监控服务CES控制台](https://console.huaweicloud.com/ces/?region=cn-north-4&locale=zh-cn#/customizedMonitor/guide)查看指标上报情况。 **图 30** workload指标开始归零 ![](./document/figures/workload指标开始归零.png "workload指标开始归零") 2. 登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),单击本方案部署时创建的伸缩组名,进入实例监控台。 从下图可以看出,本次测试一共扩容出来六台渲染节点,手动结束渲染作业后,节点正常完成缩容。 **说明:测试时并未将机器扩容至任务所需数量。** **图 31** 整个过程活动伸缩记录 ![](./document/figures/整个过程活动伸缩记录.png "整个过程活动伸缩记录") >![](./document/public_sys-resources/icon-note.gif) **说明:** >- Deadline调度节点\(Master\)弹性云服务器每次重启之后,都需要执行重启Gearbox程序,方可恢复环境。Gearbox启动命令为: > java -jar gearbox-0.0.1-SNAPSHOT.jar --spring.config.name=Config **(当配置文件名不是application.yml时可使用此命令,Config是Gearbox配置文件名称,不要带后缀)** >- 本部署方案中SFS-Turbo 选用的是通用型性能版,若此版本无法满足您的业务对存储的要求,则您可在[弹性文件服务SFS](https://console.huaweicloud.com/sfs/?region=cn-north-4#/sfs/manager/efslist)控制台创建新的SFS-Turbo。并参考[弹性文件服务挂载方式](https://support.huaweicloud.com/qs-sfs/zh-cn_topic_0034428728.html),[自动挂载](https://support.huaweicloud.com/qs-sfs/sfs_01_0025.html)。 > 建议: > - 线上线下混合云渲染采用缓存型SFS-Turbo。 > - 全部都在云上渲染时,业务对存储要求较高采用SFS-Turbo HPC型。 ## Windows环境安装与部署 1. 检查环境预装情况。 1. 登录[华为云服务器控制台](https://console.huaweicloud.com/ecm/?region=cn-north-4&locale=zh-cn#/ecs/manager/vmList),选择"远程登录"---\>选择"密码"登录Master节点。 windows默认采用Administrator账户登录。 **图 32** windows Administrtor 登录 ![](./document/figures/windows-Administrtor-登录.png "windows-Administrtor-登录") 2. 进入系统后会出现如下弹窗,请选择“是”,便于后续完成Slave节点发现Master节点。Master节点的Deadline Worker在用户进入系统后会自动启动 **图 33** 是否共享网络 ![](./document/figures/是否共享网络.png "是否共享网络") 3. 检查Master节点能否发现Slave节点。 进入[华为云服务器控制台](https://console.huaweicloud.com/ecm/?region=cn-north-4&locale=zh-cn#/ecs/manager/vmList),**登录Slave节点**,使用远程登录,密码方式进入系统,针对共享网络弹窗请选择"是"。 Deadline Worker 在用户登录进系统后会自动启动。 如下图所示,表示Worker启动成功。 **图 34** Deadline Worker 启动成功 ![](./document/figures/Deadline-Worker-启动成功.png "Deadline-Worker-启动成功") 如遇下图问题要求配置Respositroy。 **图 35** 配置Respository ![](./document/figures/配置Respository.png "配置Respository") 请先在Slave节点上检查是否可以发现Master节点的共享目录DeadlineRepository10。下图表示Slave节点可以发现共享目录。 **图 36** 检查共享目录 ![](./document/figures/检查共享目录.png "检查共享目录") 如果Slave节点无法发现共享目录,则请登录Master节点,检查 C:\\DeadlineRepository10 目录是否存在,若不存在则请执行installRepo.bat 脚本重新安装Repository软件,脚本执行大约需要5min,执行完成后窗口会自行关闭; 或者检查C:\\DeadlineRepository10目录是否共享成功,如图36表示共享成功;若共享失败,则请手动共享 C:\\DeadlineRepository10目录。 问题排除后,保持默认配置,点击"OK",然后Deadline Worker便会启动。 **图 37** 配置Repository ![](./document/figures/配置Repository.png "配置Repository") 登录Master节点,启动Deadline Monitor查看集群状态。 右键下面图标--\>点击 Launcher Monitor 来启动Deadline Monitor. **图 38** 启动Deadline Monitor ![](./document/figures/启动Deadline-Monitor.png "启动Deadline-Monitor") 如图39,Monitor面板可以发现Master和Slave两个节点。 **图 39** 集群状态 ![](./document/figures/集群状态.png "集群状态") 2. 配置Gearbox软件。最新版可从[Gearbox的Gitee仓库地址](https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-gearbox?_from=gitee_search)下载,新版[Gearbox配置文件地址](https://gitee.com/HuaweiCloudDeveloper/huaweicloud-solution-gearbox/blob/master-dev/src/main/resources/application.yml) (可选)。 登录调度节点Master对Gearbox进行配置。**请保持Deadline Monitor开启。** 1. 进入桌面gearbox目录下,对Gearbox的配置文件application.yml进行编辑,对可选项根据需要自行配置。**说明:ak、sk、project-id、group等必要的启动项已完成自动配置。** 配置项说明如下: ``` user: # 华为云 console账号的AK,认证使用. AK硬编码或者明文存储都存在较大的安全风险,建议在配置文件或者环境变量中密文存储,使用时解密,确保安全 ak: # 华为云 console账号的SK,认证使用. SK硬编码或者明文存储都存在较大的安全风险,建议在配置文件或者环境变量中密文存储,使用时解密,确保安全 sk: # 待使用局点的租户ID project-id: # 代理地址,端口,用户名密码等,无需代理可不配置 proxy-address: proxy-port: proxy-user-name: proxy-password: as: # AS服务在待使用局点的终端节点域名 endpoint: as.cn-north-4.myhuaweicloud.com # 预置伸缩组资源的伸缩组ID group: f12d57a3-ed8a-4a16-8c3f-4817ab7171f2 # 查询伸缩实例时单页最大返回数量,默认100可不修改 list-instance-limit: 100 # 删除伸缩实例时最大数量限制,AS服务最大支持50,可不修改 delete-instance-limit: 50 ecs: # ECS服务在待使用局点的终端节点域名 endpoint: ecs.cn-north-4.myhuaweicloud.com metric: # 自定义监控指标命名空间,可不修改 namespace: test.HPC # 自定义指标的指标名 name: workload # 自定义指标维度名,可不修改 dimension-name: autoscaling_group # 自定义指标维度ID,可配置成伸缩组的ID,该值不影响功能 dimension-id: f12d57a3-ed8a-4a16-8c3f-4817ab7171f2 # 指标上报的TTL参数,可不修改 report-ttl: 172800 # CES服务在待使用局点的终端节点域名 metric-report-endpoint: ces.cn-north-4.myhuaweicloud.com task: # 节点状态检查周期,单位 秒 health-audit-period: 30 # 自定义指标上报周期,单位 秒 metric-report-period: 60 # 检测是否需要缩容的周期,单位 秒 scale-in-period: 5 # 自动删除待缩容节点周期,单位 秒 delete-instance-period: 5 # 新扩容节点自发现周期 discover-instance-period: 20 # 对比伸缩组与slurm节点数量周期,单位 秒 diff-instance-and-node-period: 60 # 内部缓存刷新周期,单位 秒 refresh-cache-period: 100 # 配置检查任务运行周期,单位 秒 configuration-check-period: 300 system: # deadline/slurm type: deadline # 稳定节点的Node名称,多节点英文逗号分割 stable-nodes: deadline-master # 稳定节点所在的分区 stable-partition: dyn1 #不稳定节点所在的分区 variable-partition: dyn1 # 空闲时间阈值,空间时间超过该值的节点将被缩容,单位 秒 scale-in-time: 1 # 判断job是否属于排队状态的时间限制条件,排队时间超过该值的job被认为是在排队并参与指标计算,建议为0 job-wait-time: 1 # 新节点注册的超时时间,超过该时间依然未注册成功将被AS删除,单位:分钟,建议为10 register-timeout-minutes: 10 # 弹性节点使用的cpu核数 cpu: 4 # 弹性节点使用的内存大小,该字段为预留字段,可设置为任意大于0的数值 memory: 12600 gpu: 1 # 仅slurm集群配置有效,默认是true,在计算Workload时忽略含有GPU需求作业中的CPU需求量 ignore-cpu-request-of-gpu-job: true # 是否使用powershell执行指令,只有windows环境下生效 use-powershell-executor: true # 支持多分区资源协同 partition: # 特性整体开发,默认值为false,对接系统为slurm且该配置开启后后续配置生效; multi-partition-scaling: false # 提交到多个分区的作业负载,在多个分区上的映射策略 MAPPING_TO_FIRST_PARTITION,仅累积到第一个分区中,其余分区不计算(默认); MAPPING_BY_WEIGHT,按照各分区的权重计算负载的映射; load-mapping-policy: MAPPING_TO_FIRST_PARTITION # 分区配置列表 partition-configuration-list: - # 分区名 name: partition1 # 分区中节点资源类型,支持CPU、GPU二选一; type: CPU # 分区在负载映射中的计算权重,整数,取值范围[0,100]; weight: 10 # 分区对应的租户id project-id: # 分区对应的伸缩组id,伸缩组与分区需要一一对应 scaling-group-id: XXX #节点的资源规格,当资源类型为CPU时可填节点CPU和内存规格,当节点资源类型为GPU时可填节点规格为GPU数量; node-spec: # 节点CPU数量 cpu: 4 # 节点内存容量,单位GB; mem: 8 # 加速卡数量 gpu: 2 # 空闲一定时间后触发缩容,单位秒,未配置时使用全局配置,配置后针对本分区覆盖全局空闲缩容时间; scale-in-after-idle-time: 100 # 自定义指标维度名 dimension-name: autoscaling_group # 自定义指标维度ID dimension-id: f12d57a3-ed8a-4a16-8c3f-4817ab7171f2 # 云端API调用的地址端点列表,未配置时使用全局配置 ecs-endpoint: ecs.cn-north-4.myhuaweicloud.com as-endpoint: as.cn-north-4.myhuaweicloud.com ces-endpoint: ces.cn-north-4.myhuaweicloud.com ``` 2. Gearbox配置完成后,在gearbox目录下双击startGrearbox.bat脚本启动Gearbox程序进行测试。**说明:Gearbox程序启动后会在终端打印日志信息,请检查有无报错信息。** 3. 登录[华为云监控服务CES控制台](https://console.huaweicloud.com/ces/?region=cn-north-4&locale=zh-cn#/customizedMonitor/guide)查看自动定义指标workload是否上报成功。 **图 40** 自定义指标 ![](./document/figures/查看自定义指标-5.png) **说明:未提交任务,故workload指标为0。** **图 41** 查看自定义指标 ![](./document/figures/查看自定义指标-6.png "查看自定义指标-6") 3. 挂载SFS-Turbo。 登录调度节点Master,参照如下步骤挂载SFS-Turbo 1. 安装NFS服务端和客户端 单击左下角“服务器管理器”,弹出“服务器管理器”界面, **图 42** 服务器管理 ![](./document/figures/服务器管理.png "服务器管理") 单击“添加角色和功能” **图 43** 添加角色和向导 ![](./document/figures/添加角色和向导.png "添加角色和向导") 根据系统提示操作单击“下一步”,在“服务器角色”,选择“NFS服务器”, **图 44** 选择nfs服务器 ![](./document/figures/选择nfs服务器.png "选择nfs服务器") 单击“下一步”,在“功能”里选择“NFS客户端”,单击“下一步”。确认无误后单击“安装”。安装结束后,如果首次安装NFS客户端,需要按照系统提示重新启动客户端并重新登录云服务器。 **图 45** 选择nfs客户端 ![](./document/figures/选择nfs客户端.png "选择nfs客户端") 2. 修改NFS传输协议。 选择“控制面板 \> 所有控制面板\> 管理工具 \> Network File System 服务\(NFS\)”。 **图 46** 管理工具 ![](./document/figures/修改NFS协议.png) 右键单击“NFS客户端”选择“属性”,修改传输协议为“TCP协议”,同时选中“使用硬装载” **图 47** 网络文件系统服务 ![](./document/figures/网络文件系统服务.png "网络文件系统服务") **图 48** nfs 客户端属性 ![](./document/figures/nfs-客户端属性.png "nfs-客户端属性") 3. 挂载文件系统 - 方式一:双击桌面上的auto\_mount.bat 脚本进行自动挂载SFS-Turbo文件系统。 - 方式二:手动挂载 启动cmd终端,使用如下命令挂载,**"!" 必须有**。登录[SFS-Turbo控制台](https://console.huaweicloud.com/sfs/?region=cn-north-4#/sfs/manager/efslist),查看挂载ip。 建议命令执行完成后,在"此电脑"中查看是否存在 X 盘符,并可以进入X盘创建文件/文件夹。 ``` mount -o nolock -o casesensitive=yes ip:/! X: #此处ip为sfs-turbo挂载ip ``` 4. 开机自动挂载SFS-Turbo。也可参考官网[自动挂载SFS-Turbo](https://support.huaweicloud.com/qs-sfs/sfs_01_0025.html)。 - 将auto\_mount.bat脚本移动到windows开机软件自启动目录 C:\\Users\\Administrator\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup 下。 **图 49** 软件自启动目录 ![](./document/figures/软件自启动目录.png "软件自启动目录") 4. 配置Slave节点环境。 登录Slave节点,进行如下内容的配置。 1. 配置开机免密登录。 打开cmd终端,输入如下命令 ``` netplwiz ``` **图 50** 配置开机免密登录 ![](./document/figures/配置开机免密登录.png "配置开机免密登录") 取消下图中Administrator对应勾选框。 **图 51** 配置免密登录 ![](./document/figures/配置免密登录.png "配置免密登录") 输入密码配置自动登录。 **图 52** 配置自动登录 ![](./document/figures/配置自动登录.png "配置自动登录") 2. Slave节点挂载SFS-Turbo。参考[步骤3:挂载SFS-Turbo。](#li193412317269) 5. 为Master节点和Slave节点自行安装业务软件,并配置开机自启。 6. 测试Slave节点。 安装完成业务软件后,在Master节点提交测试任务,检查Slave节点能否正常渲染。**说明:渲染资产请存放在SFS-Turbo挂载盘符 X: 下。** 7. 将Slave节点打包为私有镜像。 Slave节点测试正确后,登录Slave节点开始制作私有镜像。 1. 配置cloudbase-init 本地账户登录。 在windows搜索窗口搜索 “服务”。 **图 53** 搜索服务 ![](./document/figures/搜索服务.png "搜索服务") 如下图所示。在服务列表中,找到cloudbase-init服务。单击 cloudbase-init 服务进入服务的配置窗口。 **图 54** 选择cloudbase-init服务 ![](./document/figures/选择cloudbase-init服务.png "选择cloudbase-init服务") 选择"登录"---\>登录身份选择"本地系统账户" **图 55** cloudbase-init 配置本地账户 ![](./document/figures/cloudbase-init-配置本地账户.png "cloudbase-init-配置本地账户") 修改登录账户后,启动cloudbase-init ,检查有无报错。选择 "常规"---\> "启动"。**说明:请保持启动类型为"自动"** **图 56** 启动cloudbase-init ![](./document/figures/启动cloudbase-init.png "启动cloudbase-init") 2. 自行删除Slave节点中的敏感信息。 3. 镜像预处理操作完成后,登录[华为云服务器控制台](https://console.huaweicloud.com/ecm/?region=cn-north-4&locale=zh-cn#/ecs/manager/vmList),将Slave节点关机,开始打包Slave节点镜像。 找到Slave节点对应的云服务器,单击右侧“更多\>镜像\>创建镜像”进行打包。 **图 57** 打包私有镜像 ![](./document/figures/打包私有镜像-7.png "打包私有镜像-7") **图 58** 创建私有镜像 ![](./document/figures/创建winodows私有镜像.png) 在创建私有镜像界面,填写名称,选择企业项目,勾选协议,单击立即创建,等待镜像创建完成。 **图 59** 配置信息 ![](./document/figures/配置镜像信息.png) 打开[华为云镜像服务控制台](https://console.huaweicloud.com/ecm/?region=cn-north-4&locale=zh-cn#/ims/manager/imageList/selfImage),等待大约5-10min,查看镜像是否创建成功。 **图 60** 镜像创建结果查询 ![](./document/figures/windows镜像结果查询.png) 8. 修改伸缩配置。 登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),选择本方案部署时创建的伸缩组,右侧选择“更多”---\>"修改伸缩配置"。 **说明:修改伸缩配置时,AS会自动为"名称" 添加上"\_copy"的后缀,请将此后缀删除,因为伸缩配置名称带有下划线"\_"时,会导致节点缩容异常。** **图 61** 修改伸缩配置的名称 ![](./document/figures/修改伸缩配置名.png) 建议选择C6、C6s、C7,规格选择32U64G、64U128G。 **图 62** 配置镜像规格 ![](./document/figures/配置镜像规格.png "配置镜像规格") 镜像选择上一步骤中创建的镜像,磁盘类型和容量根据业务需要自行配置,安全组选择方案部署时创建的安全组。 **图 63** 配置镜像、磁盘、安全组 ![](./document/figures/配置镜像-磁盘-安全组.png "配置镜像-磁盘-安全组") 登录方式选择"密钥对"。密钥对使用部署方案时创建的密钥对。 **图 64** 配置登录方式和密钥对 ![](./document/figures/配置登录方式和密钥对.png "配置登录方式和密钥对") 9. 按需配置伸缩组。可选 登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),选择右侧 “更多”---\>"修改伸缩组。 **图 65** 修改弹性伸缩组 ![](./document/figures/修改伸缩组-8.png) **说明:最大实例数、期望实例数、最小实例数根据业务需要自行配置,冷却时间建议小于30s,其他配置可保持默认。** **图 66** 修改伸缩组配置 ![](./document/figures/修改伸缩组-0-9.png) **说明:下面配置根据业务需要自行配置。** **图 67** 修改伸缩组配置 ![](./document/figures/修改伸缩组配置-10.png "修改伸缩组配置-10") 10. 启动Gearbox软件。 登录Master节点,开启Deadline Monitor。 进入桌面上gearbox文件夹,双击bat脚本启动gearbox程序。 11. 配置伸缩组的伸缩策略。 登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),单击弹性伸缩组名称,进入伸缩组详情界面。 **图 68** 添加策略 ![](./document/figures/添加伸缩策略-11.png) 策略类型选择"告警策略",告警规则选择"现在创建",监控类型选择"自定义监控",触发条件选择"workload"、"原始值"。 **图 69** 添加伸缩策略 ![](./document/figures/配置伸缩策略-12.png) **图 70** 添加伸缩策略 ![](./document/figures/添加伸缩策略-13.png "添加伸缩策略-13") 12. 提交测试任务。登录Master节点,在Deadline Monitor提交测试任务。保持Gearbox 处于运行状态。**说明:由于Master 节点配置较低,建议渲染时关闭Dealine Worker**。 13. CES控制台查看指标上报情况。 登录[华为云监控服务CES控制台](https://console.huaweicloud.com/ces/?region=cn-north-4&locale=zh-cn#/customizedMonitor/guid),查看该解决方案创建的自定义监控。 **图 71** 自定义监控 ![](./document/figures/查看自定义指标-14.png) 监控指标workload值表示集群需要扩容的节点数量,如下图workload为23时,表示需要扩容23个计算节点。 **图 72** 某时刻指标监控情况 ![](./document/figures/ces检测任务指标.png) 14. AS查看节点伸缩情况。 登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),单击本方案部署时创建的伸缩组名,进入实例监控台。 如下图,可见AS已经开始扩容节点。 **图 73** 某时刻节点扩容情况 ![](./document/figures/机器开始扩容.png) 15. Deadline Monitor 查看节点扩容情况。 登录Master节点,在Deadline Monitor 查看任务运行情况,渲染节点状态。 如下图,Master节点成功发现扩容出来的渲染节点。 **图 74** 某时刻渲染节点状态 ![](./document/figures/某时刻渲染节点状态.png "某时刻渲染节点状态") 16. 结束任务。 如[步骤13](#li19738153416443),登录[华为云监控服务CES控制台](https://console.huaweicloud.com/ces/?region=cn-north-4&locale=zh-cn#/customizedMonitor/guide),查看指标上报情况。 **图 75** workeload指标开始下降归零 ![](./document/figures/workeload指标开始下降归零.png "workeload指标开始下降归零") 如[步骤14](#li8861421144412),登录[华为云弹性伸缩AS控制台](https://console.huaweicloud.com/ecm/?locale=zh-cn®ion=cn-north-4#/as/manager/groupConfigInfo/groupList),查看节点缩容情况。 **图 76** 节点完成缩容 ![](./document/figures/节点完成缩容.png "节点完成缩容") 如下图,整个渲染过程AS弹性伸缩节点记录。 **图 77** 伸缩记录 ![](./document/figures/伸缩记录.png "伸缩记录") 登录Master节点,查看Deadline Monitor 控制面板。 **图 78** 面板中只保留Slave节点 ![](./document/figures/面板中只保留Slave节点.png "面板中只保留Slave节点") >![](./document/public_sys-resources/icon-note.gif) **说明:** >- Deadline调度节点\(master\)弹性云服务器每次重启之后,都需要执行重启Gearbox程序,方可恢复环境。Gearbox启动命令为: > java -jar gearbox-0.0.1-SNAPSHOT.jar --spring.config.name=Config **(当配置文件名不是application.yml时可使用此命令,Config是Gearbox的配置文件,命令行中不可以带后缀**) >- 本部署方案中SFS-Turbo 选用的是通用型性能版,若此版本无法满足您的业务对存储的要求,则您可在[弹性文件服务SFS](https://console.huaweicloud.com/sfs/?region=cn-north-4#/sfs/manager/efslist)控制台创建新的SFS-Turbo。并参考[弹性文件服务挂载方式](https://support.huaweicloud.com/qs-sfs/zh-cn_topic_0034428728.html),[自动挂载](https://support.huaweicloud.com/qs-sfs/sfs_01_0025.html)。 > 建议: > - 线上线下混合云渲染采用缓存型SFS-Turbo。 > - 全部都在云上渲染时,若业务对存储要求较高采用SFS-Turbo HPC型