附录
参考信息
下载参考
支持下载的软件包和OS
使用MindCluster Ascend Deployer工具下载时,注意事项参见下载注意事项,<OS>的取值范围参见支持的OS及架构,<PK>取值范围请参见表2。
- 由于需要下载大量软件包,MindCluster Ascend Deployer工具默认开启并行下载功能,用户可以修改ascend_deployer/downloader/config.ini文件中的parallel_download字段,决定是否开启并行下载功能,1为开启,0为关闭。默认并行下载线程数为16个,用户可通过ASCEND_DEPLOYER_DOWNLOAD_MAX_SIZE环境变量修改并行数量。
- MindCluster Ascend Deployer工具已提供源配置文件,默认使用华为源,用户可根据需要进行替换。具体可参考源配置。
- 下载OS依赖时,为了编译安装hccl-test工具,会自动下载MPI 3.2.1和Open MPI 4.1.5版本的软件包,安装时会根据已配置的待安装环境的IP类型,使用对应的依赖进行编译,IPv4格式时,安装MPI 3.2.1;IPv6格式或者Atlas A3 训练系列产品时,安装Open MPI 4.1.5。
表 1 MindCluster Ascend Deployer工具下载时支持的OS及架构
|
|||
仅适配Atlas 900 A3 SuperPoD 超节点安装Ascend HDK、CANN、ToolBox、MindCluster Ascend FaultDiag。 |
|||
仅Atlas 800I A2 推理服务器和Atlas 900 A3 SuperPoD 超节点支持部署25.2.0及以后版本的NPU固件与驱动。 |
|||
UOS 20-1020e和20-1050u2e系统上,MindCluster Ascend Deployer工具不支持安装昇腾软件包所需系统依赖,需参考UOS系统安装依赖手动安装后再使用工具进行部署。 |
|||
目前已支持kernel 6.5.0-18-generic及kernel 5.15.0-94-generic两个内核版本。 |
|||
MTOS由于需使用到公网无法获取的kernel-devel包,下载功能仅为预埋,若需使用,请下载完成后替换为镜像解压后的kernel-devel-5.10.0-218.0.0.mt20240808.560.mt2203sp4.aarch64.rpm包。 |
|||
表 2 MindCluster Ascend Deployer工具支持下载的软件包
ascend-device-plugin,ascend-docker-runtime,noded,npu-exporter,volcano,ascend-operator,resilience-controller,clusterd |
- |
|
|
||
安装及升级参考
install参数说明
用户根据实际需要选择对应参数完成安装。
命令格式:
- 方式一:通过下载ZIP包解压使用bash install.sh [options]
- 方式二:通过pip命令安装MindCluster Ascend Deployer使用ascend-deployer [options]
- 方式三:通过下载ZIP包解压使用bash large_scale_install.sh [options]
- 方式四:通过pip命令安装MindCluster Ascend Deployer使用large-scale-deployer [options]
参数说明请参见表1。表中各参数的可选参数范围可通过执行bash install.sh --help查看。
表 1 参数说明
| 参数 | 说明 |
|---|---|
| --help, -h | 查询帮助信息。 |
| --check | 检查环境,支持检查与待安装设备的连通性,待安装设备对工具、待安装软件包的兼容性。 该参数需配合--install=<package_name>、--install-scene=<scene_name>、--upgrade=<package_name>一起使用。 使用--check时,不可使用--skip_check参数。 |
| --check_mode | 选择检查模式,支持快速全量检查,统一展示报错数据,生成检查结果文件。具体请见检查结果文件。 可选参数:fast(快速检查,遇到异常即退出)、full(全量检查)。默认为full。 该参数需配合--install=<package_name>、--install-scene=<scene_name>、--upgrade=<package_name>、--check一起使用。 使用--check_mode时,不可使用--skip_check参数。 |
| --skip_check | 用于决定是否执行安装检查。 检查项主要为用户、配置、依赖、兼容性、卡的健康状态等。 该参数可以配合--install=<package_name>、--install-scene=<scene_name>、--upgrade=<package_name>一起使用。 使用--skip_check时,不可使用--check和--check_mode参数。 |
| --clean | 清理待安装设备用户家目录下的resources目录和resources_{arch}.tar。 |
| --nocopy | 在批量安装时不进行资源拷贝。在大规模部署场景下该参数不影响资源拷贝。 该参数需要配合--install=<package_name>或--install-scene=<scene_name>、--upgrade=<package_name>一起使用。 使用示例:bash install.sh --install=python --nocopy |
| --only_copy | 在批量安装时进行资源拷贝。在大规模部署场景下该参数不影响资源拷贝。 仅对要安装的软件进行资源拷贝,但不执行具体的安装,与--nocopy互斥。 该参数需要配合--install=<package_name>或--install-scene=<scene_name>、--upgrade=<package_name>一起使用。 使用示例:bash install.sh --install=python --only_copy |
| --force_upgrade_npu | 当不是所有卡异常时,可强制升级NPU。 |
| --verbose | 对每个任务的安装状态进行详细打印。 该参数需要配合install或install-scene使用。 使用示例:bash install.sh --install=python --verbose(打印python安装的详细信息)。 |
| --stdout_callback=<callback_name> | 设置命令执行的输出格式,可用的参数通过"ansible-doc -t callback -l"命令查看。 |
| --install=<package_name> | 指定软件安装。安装的软件包请参见支持安装及升级的软件包。 |
| --upgrade=<package_name> | 指定软件升级。 可选参数:npu(driver、firmware)、mcu、nnae、nnrt、toolkit、kernels、toolbox、fault-diag、ascend-device-plugin、ascend-docker-runtime、noded、npu-exporter、volcano、ascend-operator、resilience-controller、clusterd、ubengine |
| --install-scene=<scene_name> | 指定场景安装。安装场景请参见支持安装及升级场景。 |
| --patch=<package_name> | 指定软件打补丁。 可选参数:nnae、nnrt、toolkit |
| --patch-rollback=<package_name> | 指定软件的补丁回退。 可选参数:nnae、nnrt、toolkit |
| --test=<target> | 检查指定组件的版本及能否正常工作。 可选参数:all、driver、firmware、mcu、mindspore、nnae、nnrt、pytorch、tensorflow、toolbox、toolkit、 ascend-device-plugin、ascend-docker-runtime、noded、npu-exporter、volcano、ascend-operator、resilience-controller、clusterd、mindie_image、fault-diag、ubengine |
| --hccn | 配置HCCN网络。大规模部署场景下不支持该参数。 |
| --hccn --check | 对HCCN网络进行检测。 |
| --retry=<target> | 该参数仅在安装部署超大规模集群时使用,默认值为fast。 重试选项,自动使用上一次生成的子集群配置文件再次尝试重新部署。 可选参数说明如下:
|
使用--check_mode参数,在~/.ascend_deployer/deploy_info/路径下,将生成check_res_output.json检查报告,准确提示错误信息。结果示例如下显示:
{
"CheckList": [
{
"check_item": "check_card",
"desc_en": "Check NPU card compatibility",
"desc_zh": "检查NPU卡兼容性",
"tip_en": "",
"tip_zh": ""
},
"check_k8s_version": {
"check_item": "check_k8s_version",
"desc_en": "Judgment: 1. kubelet, kubectl, and kubeadm all exist"
"2. kubelet --version == kubeadm version == kubectl version "
"3.kubelet version < 1.29 "
"4. kubelet version >=1.19.16.",
"desc_zh": "判断:1、kubelet,kubectl,kubeadm都存在"
"2、kubelet --version == kubeadm version == kubectl version "
"3、kubelet version < 1.29 "
"4、kubelet version >=1.19.16。",
"tip_en": "Execute the version query command to confirm whether the component has been installed, "
"whether the version number is the same, and whether the version is within the supported range.",
"tip_zh": "执行版本查询命令确认组件是否已安装,版本号是否相同,版本是否在支持范围。",
"help_url": ""
}
],
"HostCheckResList": {
"xx.xx.xx.x1": [
{
"check_item": "check_card",
"status": "failed",
"error_msg": "Check card failed: [ASCEND] A300i-pro has no support for MTOS_22.03LTS-SP4_aarch64 on this device"
}
]
}
}
表 2 检查结果文件参数说明
| 参数 | 描述 |
|---|---|
| check_item | 检查项。 |
| desc_en | 检查结果(英文)。 |
| desc_zh | 检查结果(中文)。 |
| tip_en | 解决提示(英文)。 |
| tip_zh | 解决提示(中文)。 |
| help_url | 相关帮助文档参考链接。 |
| error_msg | 错误信息。 |
| status | 检查结果状态。
|
支持安装及升级场景
MindCluster Ascend Deployer工具提供如下基本安装及升级场景。
Note
涉及安装框架的场景下,如果系统的gcc版本低于7.3.0,会自动安装gcc 7.3.0并设置好环境变量或软链接(请参考(可选)配置gcc环境变量)以确保各场景安装后可正常使用。
- 安装时,运行环境时间需要通过date -s命令校准到正确的UTC时间。
- MindCluster Ascend Deployer工具只能安装最基本的库,确保TensorFlow和PyTorch能够运行。若需运行较为复杂的推理业务或模型训练,模型代码中可能包含具体业务相关的库,这些库需用户自行安装。
- MindCluster Ascend Deployer工具所需依赖较多,建议在工具下载的OS依赖安装或升级完成后,对用户自行上传软件包进行安装或者升级等操作。
- 请勿重复执行--install-scene命令,否则会导致安装失败。
表 1 可选安装及升级场景
| 场景分类 | 场景名称 | 安装的组件 | 说明 |
|---|---|---|---|
| 安装 | offline_dev | sys_pkg,python,npu,toolkit,kernels | 离线推理开发场景 |
| 安装 | offline_run | sys_pkg,python,npu,nnrt | 离线推理运行场景 |
| 安装 | mindspore | sys_pkg,python,npu,toolkit,mindspore,kernels | MindSpore场景 |
| 安装 | tensorflow_dev | sys_pkg,python,npu,toolkit,tensorflow,kernels | TensorFlow开发场景 |
| 安装 | tensorflow_run | sys_pkg,python,npu,nnae,tensorflow,kernels | TensorFlow运行场景 |
| 安装 | pytorch_dev | sys_pkg,python,npu,toolkit,pytorch,kernels | PyTorch开发场景 |
| 安装 | pytorch_run | sys_pkg,python,npu,nnae,pytorch,kernels | PyTorch运行场景 |
| 安装 升级 |
dl | ascend-device-plugin,ascend-docker-runtime,noded,npu-exporter,volcano,ascend-operator,clusterd | 安装、升级MindCluster集群调度场景 |
Note
上述安装场景的配置文件位于scene目录下,如dl场景的配置文件ascend-deployer/ascend_deployer/playbooks/scene/scene_dl.yml,如需自定义安装场景,可参考配置文件进行定制。
支持安装及升级的软件包
MindCluster Ascend Deployer工具支持指定安装如表1所示软件包,可通过执行bash install.sh --help查看--install=<package_name>支持参数。
-
安装时,运行环境时间需要通过date -s命令校准到正确的UTC时间。
-
指定软件安装或升级时,MindCluster Ascend Deployer只支持指定安装或升级近一年内的软件版本。
-
MindCluster Ascend Deployer工具只能安装最基本的库,确保TensorFlow和PyTorch能够运行。若需运行较为复杂的推理业务或模型训练,模型代码中可能包含具体业务相关的库,这些库需用户自行安装。
-
gcc版本低于7.3.0,MindCluster Ascend Deployer工具会自动安装。
-
MindCluster Ascend Deployer工具所需依赖较多,建议在工具下载的OS依赖安装完成后,对用户自行上传软件包进行安装或者升级等操作。
表 1 可选安装及升级软件包
| 场景分类 | 软件包类型 | 指定参数 | 说明 |
|---|---|---|---|
| 仅安装 | 系统组件 | sys_pkg | UOS系统下不支持单独指定sys_pkg安装。 |
| 仅安装 | Python | python |
|
| 仅安装 | 仅分发软件包 | copy_pkgs | 强制分发环境下所有软件包,copy_pkgs会将resources文件夹下所有软件包分发给待安装设备。 使用示例:bash install.sh --install=copy_pkgs |
| 安装和升级 | NPU驱动和固件 | npu(driver、firmware) |
|
| 仅升级 | MCU固件 | mcu |
|
| 安装和升级 | MAMI包 | ubengine |
|
| 安装和升级 | CANN软件 | nnae、nnrt、toolkit、kernels |
|
| 安装和升级 | MindCluster性能测试 | toolbox | - |
| 安装和升级 | MindCluster集群调度 | ascend-device-plugin,ascend-docker-runtime,noded,npu-exporter,volcano,ascend-operator,resilience-controller,clusterd |
|
| 安装和升级 | MindCluster故障诊断 | fault-diag | 仅支持以下版本的Python:3.7、3.9、3.10、3.11.4、3.12.10。 |
| 仅安装 | AI框架 | tensorflow、pytorch、mindspore | 使用MindCluster Ascend Deployer部署时,不支持同时下载和安装MindSpore、TensorFlow和Torch-npu。仅支持指定其中一个AI框架下载和安装,请根据实际业务场景要求选择AI框架。 |
| 仅安装 | 容器镜像工具 | docker_images | - |
| 仅安装 | MindIE镜像 | mindie-image | - |
| 仅安装 | MindIE镜像 | deepseek_pd | 部署DeepSeek PD实例。 |
| 仅安装 | MindIE Server | deepseek_cntr | Docker场景部署DeepSeek。 |
PD分离部署经典配置参数
目前仅支持配置经典配置参数,根据填写的max_seq_len最大序列长度参数(对应下表中maxSeqLen参数)和D实例个数自动填充其他参数。
表 1 Atlas 800I A2 推理服务器关键参数说明
表 2 Atlas 800I A2 推理服务器智算节点典型配置
| 节点配置 | PD分离配置 | 交换机选型参考 |
|---|---|---|
| 8台+2台+1台热设备 | 2*2P+1*4D+2台(双机)+1台在线热备份 | 交换机规格参考:32*400G,如XH9210:Leaf 3台,Spine 2台 |
| 16台+1台热设备 | 4*2P+2*4D+1台在线热备份 | 交换机规格参考:32*400G,如XH9210:Leaf 5台,Spine 4台 |
| N*16台 | N*(4*2P+1*8D) 按16节点最佳性能(EP64)线性扩展 |
交换机规格参考:32*400G,如XH9210:Leaf 32台,Spine 16台以N=8,共1024NPU为例 |
Note
大规模专家并行方案采用Atlas 800I A2 推理服务器(64GB HCCS款),且NPU片上内存必须为64G,NPU网口光模块必须为200G。
使用Atlas 800I A3 超节点服务器时的经典配置参数
表 3 Atlas 800I A3 超节点服务器设备关键参数说明
表 4 Atlas 800I A3 超节点服务器智算节点典型配置
| 节点配置 | PD分离配置 | 总线网络交换机(L2)数量 |
|---|---|---|
| 8台+1台A3冗余节点(可选) | 4*1P+2*2D+1台A3冗余节点(可选) | 14 |
| 16台+1台A3冗余节点(可选) | 8*1P+2*4D+1台A3冗余节点(可选) | 28 |
| 32台+1台A3冗余节点(可选) | 16*1P+4*4D+1台A3冗余节点(可选) | 56 |
| 48台 | 24*1P+6*4D | 56 |
| N*48台 | N*(24*1P+6*4D) | N*56 |
证书的参数配置文件存放于“$HOME/ascend-deployer/ascend_deployer/group_vars/master/tls_config.yaml”,文件内容示例如下。
# group_vars/tls_config.yaml
tls_config:
tls_enable: false
kmc_ksf_master: "./security/master/tools/pmt/master/ksfa"
kmc_ksf_standby: "./security/standby/tools/pmt/standby/ksfb"
infer_tls_items:
ca_cert: "./security/infer/security/certs/ca.pem"
tls_cert: "./security/infer/security/certs/cert.pem"
tls_key: "./security/infer/security/keys/cert.key.pem"
tls_passwd: "./security/infer/security/pass/key_pwd.txt"
tls_crl: "infer"
management_tls_items:
ca_cert: "./security/management/security/certs/ca.pem"
tls_cert: "./security/management/security/certs/cert.pem"
tls_key: "./security/management/security/keys/cert.key.pem"
tls_passwd: "./security/management/security/pass/key_pwd.txt"
tls_crl: "management"
# Atlas 800I A2 推理服务器的场景不需要配置 ccae_tls_enable 和 ccae_tls_items
ccae_tls_enable: false
ccae_tls_items:
ca_cert: "./security/ccae/security/certs/ca.pem"
tls_cert: "./security/ccae/security/certs/cert.pem"
tls_key: "./security/ccae/security/keys/cert.key.pem"
tls_passwd: "./security/ccae/security/pass/key_pwd.txt"
tls_crl: "ccae"
cluster_tls_enable: false
cluster_tls_items:
ca_cert: "./security/clusterd/security/certs/ca.pem"
tls_cert: "./security/clusterd/security/certs/cert.pem"
tls_key: "./security/clusterd/security/keys/cert.key.pem"
tls_passwd: "./security/clusterd/security/pass/key_pwd.txt"
tls_crl: "clusterd"
etcd_server_tls_enable: false
etcd_server_tls_items:
ca_cert: "./security/etcd_server/security/certs/ca.pem"
tls_cert: "./security/etcd_server/security/certs/cert.pem"
tls_key: "./security/etcd_server/security/keys/cert.key.pem"
tls_passwd: "./security/etcd_server/security/pass/key_pwd.txt"
kmc_ksf_master: "./security/etcd_server/tools/pmt/master/ksfa"
kmc_ksf_standby: "./security/etcd_server/tools/pmt/standby/ksfb"
tls_crl: ""
Note
如何配置及使用证书,请参见《MindIE Motor开发指南》中的“集群服务部署 > PD分离服务部署 > 安装部署 > 配置自动生成证书”章节。
其他
用户信息列表
请定期更新用户的密码,避免长期使用同一个密码带来的风险。
| 用户 | 描述 | 初始密码 | 密码修改方法 |
|---|---|---|---|
| root | 超级用户。 | 用户自定义 | 使用passwd命令修改。 |
| HwHiAiUser | 驱动run包的运行用户。 | 用户自定义 | 使用passwd命令修改。 |
| hwMindX | MindCluster集群调度组件默认的运行用户,默认设置为nologin。 | 无 | - |
| admin | nexus的管理用户,仅在安装sys_pkg时使用。 | 随机生成 | 用户登录nexus服务,在设置中修改。 |
| nexus | Dockerfile中制作nexus镜像时创建的用户。 | 用户自定义 | 使用passwd命令修改。 |
| anonymous | 匿名用户。启用后允许未登录用户访问Nexus服务的相关资源。 | 无 | - |
Note
MindCluster Ascend Deployer作为部署工具会安装其他组件,各组件的用户列表信息请参考对应资料获取。
Dockerfile示例中openEuler基础镜像中的用户
| 用户 | 初始密码 | 密码修改方法 |
|---|---|---|
| root | 无 | - |
| bin | 无 | - |
| daemon | 无 | - |
| adm | 无 | - |
| lp | 无 | - |
| sync | 无 | - |
| shutdown | 无 | - |
| halt | 无 | - |
| 无 | - | |
| operator | 无 | - |
| games | 无 | - |
| ftp | 无 | - |
| nobody | 无 | - |
| systemd-coredump | 无 | - |
| systemd-network | 无 | - |
| systemd-resolve | 无 | - |
| tss | 无 | - |
| unbound | 无 | - |
口令复杂度要求
口令至少满足如下要求:
-
口令长度至少8个字符。
-
口令必须包含如下至少两种字符的组合:
- 一个小写字母
- 一个大写字母
- 一个数字
- 一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/?和空格
-
口令不能和账号一样。
CA证书
表 1 CA证书
| CA证书 | 路径 | 描述 |
|---|---|---|
| Huawei_Integrity_Root_CA_G2.pem | ascend-deployer-{version}/ascend_deployer/scripts/Huawei_Integrity_Root_CA_G2.pem | 用于校验软件包的完整性,确保数据在传输过程中未被篡改。 |
| Huawei_Software_Integrity_Protection_Root_CA.pem | ascend-deployer-{version}/ascend_deployer/scripts/Huawei_Software_Integrity_Protection_Root_CA.pem | 用于校验软件包的完整性,确保数据在传输过程中未被篡改。 |