文档中心>高性能计算平台>操作指南>集群初始化脚本配置

集群初始化脚本配置

最近更新时间:2023-12-27 11:36:11

我的收藏

背景说明

THPC 集群中的节点在创建过程中,提供用户自定义集群初始化脚本能力,满足客户对于节点开始执行任务之前,预部署需求。包括存储的挂载、数据预处理、配置变更和软件部署等操作。

初始化脚本配置方式

设置集群初始化脚本有以下两种方式:
1. 创建集群时,通过 InitNodeScripts 参数进行设置。
2. 集群创建成功后,通过 修改节点初始化脚本 接口进行配置。
注意:
创建集群时的初始化脚本信息对于创建的节点都生效。修改节点初始化脚本 接口配置初始化脚本之后,对后续新增的节点生效,对于已经存在的节点,不会执行集群初始化脚本。

操作步骤

1. 创建 COS 存储桶,上传初始化脚本到 COS 存储,脚本必须以#!字符以及指向要读取脚本的解释器的路径(通常为 #!/bin/bash)开头。执行脚本支持以下环境变量,客户可以根据环境变量进行脚本执行的逻辑控制:
环境变量名
说明
参考值
THPC_NODE_ROLE
节点的角色
COMPUTE
LOGIN
MANAGER
THPC_CLUSTER_ID
集群ID信息
hpc-8hje8h12
THPC_SCHEDULER_TYPE
调度器类型
SLURM
THPC_ACCOUNT_TYPE
域名字服务类型
NIS
注意:
初始化脚本需要提前上传到 cos 桶上进行存储。
由于初始化脚本在加入集群之前进行执行,需要客户评估脚本执行超时时间,否则有可能脚本执行异常,导致实例长时间无法加入集群被使用。
示例脚本如下:
#!/bin/bash
echo ${THPC_NODE_ROLE} > /root/${THPC_NODE_ROLE}
echo ${THPC_CLUSTER_ID} > /root/${THPC_CLUSTER_ID}
echo ${THPC_SCHEDULER_TYPE} > /root/${THPC_SCHEDULER_TYPE}
echo ${THPC_ACCOUNT_TYPE} > /root/${THPC_ACCOUNT_TYPE}
2. 在创建集群时配置 InitNodeScripts 参数或者集群创建成功后调用 修改节点初始化脚本 接口配置;
其中 ScriptPath 参数需要填写以 cos:// 的形式开头,将图中访问域名的 https:// 替换成 cos://,后续添加添加上存储桶访问路径即可。



例如cos://test-appid.cos.ap-guangzhou.myqcloud.com/thpc_test/install.sh其中 test-appid.cos.ap-guangzhou.myqcloud.com为存储桶访问域名,/thpc_test/install.sh为脚本访问路径。
说明:
目前只支持拉取与集群相同账号的 COS 桶,跨账号的 COS 桶暂时不支持拉取。
3. 在创建集群或者节点创建时,集群中的节点会从 cos 地址中获取到脚本,并在 /tmp/hpc_script/ 目录下进行执行。
脚本执行结果判断:
(1)集群脚本在超时时间内,返回 exit_code 为0,则被视为执行成功。
(2)集群脚本执行超时,或者返回的 exit_code 不为0,则被视为执行失败,执行失败的节点会被自动退还并销毁。
说明:
为了保证用户的操作能够在节点加入集群之后可以正常运行任务,初始化脚本在节点加入集群之前进行执行。执行自定义脚本会增加节点扩容所需时间。