腾讯云高性能计算平台 THPC - 集群初始化脚本配置
文档简介:
背景说明:
THPC 集群中的节点在创建过程中,提供用户自定义集群初始化脚本能力,满足客户对于节点开始执行任务之前,预部署需求。包括存储的挂载、数据预处理、配置变更和软件部署等操作。
背景说明
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/bashecho ${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,则被视为执行失败,执行失败的节点会被自动退还并销毁。
说明:
为了保证用户的操作能够在节点加入集群之后可以正常运行任务,初始化脚本在节点加入集群之前进行执行。执行自定义脚本会增加节点扩容所需时间。