MindCluster Ascend Deployer工具在UOS系统上不支持安装昇腾软件包所需系统依赖,请参考以下操作手动安装。
在yum源配置路径/etc/yum.repos.d下,新建cann_docker.repo文件,写入以下示例内容,请根据所在组织安全要求和版本需要进行修改。
[object Object]执行如下命令安装驱动、固件、CANN软件等所需依赖。
[object Object]手动安装Kubernetes并,配置完成后再进行MindCluster的安装。
UOS系统中,MindCluster集群调度组件仅支持在Kubernetes 1.19.16~1.28.X版本间(Kubernetes1.24及以上版本需要安装cri-dockerd)、Docker 18.09.x及以上版本进行配置,否则会跳过Kubernetes配置,直接安装MindCluster集群调度软件包。
UOS 20-1020e和20-1050u2e系统上安装MindCluster集群调度组件,请先手动完成Kubernetes的安装和inventory_file文件配置后,再用MindCluster Ascend Deployer执行MindCluster安装命令。
MindCluster Ascend Deployer工具属于安装部署类工具,系统安装完成后立即删除以释放磁盘空间。
清理管理服务器和远程机器上的~/resources和~/resources_{arch}.tar
[object Object]手动清理卸载MindCluster Ascend Deployer工具。
为保证用户的安全性,应设置用户的有效期,使用系统命令chage来设置用户的有效期。
命令为:
举例说明:修改用户[object Object]test[object Object]的有效期为90天。
表 1 设置用户有效期 [object Object][object Object]
[object Object]
约束[object Object][object Object]
- 补丁仅能支持对应的基线版本或相关的补丁版本进行升级。
- 基于同一基线版本的补丁,需保证后续安装的补丁版本大于之前安装的补丁版本。
- 仅支持回退一个补丁版本。
安装、回退影响[object Object][object Object]
- 安装、回退过程禁止进行其他维护操作动作。
- 补丁包安装、回退过程中会导致业务中断。
- 补丁包安装、回退后,不会影响正常业务。
操作[object Object][object Object]
- CANN补丁包不支持使用MindCluster Ascend Deployer工具在线下载,用户需自行获取所需的CANN补丁包,并放置于ascend-deployer/ascend_deployer/resources/patch(如不存在patch目录,请自行创建)目录下。注意在安装前删除ascend-deployer/ascend_deployer/resources目录下的CANN软件包和run_from_cann_zip目录。
- 安装、回退CANN冷补丁的执行命令参考如下:
安装CANN冷补丁(以nnae包为例):
[object Object]回退CANN冷补丁(以nnae包为例):
[object Object]
MindCluster Ascend Deployer工具已提供源配置文件,用户可根据实际进行替换。
Python源配置
在ascend-deployer/ascend_deployer/downloader/config.ini文件中配置Python源,默认使用华为源。
[object Object]系统源配置
系统源配置文件ascend-deployer/ascend_deployer/downloader/config/{os}_{version}_{arch}/source.xxx
以CentOS 7.6 aarch64为例,源配置文件ascend-deployer/ascend_deployer/downloader/config/CentOS_7.6_aarch64/source.repo内容如下:
[object Object]表明同时启用base源和epel源,下载系统组件时会从这两个源中查询和下载,若删除源,可能造成组件下载不完整。默认使用华为源,可根据实际需要修改,请确保该源符合所在组织的安全/漏洞修补要求。
若修改,请选择安全可靠的源,并测试下载和安装行为是否正常,否则可能造成组件下载不完整或安装异常。
[object Object]
如果用户想限制MindCluster Ascend Deployer运行的CPU使用率或内存使用量,可参考本章节。
cgroups全称control groups,是Linux内核提供的一种可以限制单个或多个进程所使用资源的机制,可以对CPU、内存等资源实现精细化的控制。操作参考如下:
限制MindCluster Ascend Deployer运行CPU
创建子目录。
[object Object]创建完ascend-deployer目录后,会自动在该目录下生成cpu.cfs_period_us、cpu.cfs_quota_us等文件。
进入ascend-deployer目录,设置相应文件中的值。对于CPU的限制主要涉及以下文件。
表 1 文件说明
[object Object]undefined
以限制最大CPU使用率为50%为例,操作如下:
cpu.cfs_period_us文件值保持默认,修改cpu.cfs_quota_us值为50000,在准备运行MindCluster Ascend Deployer的shell窗口执行[object Object]echo $$[object Object]查询其pid,并将其写入tasks文件中。
限制MindCluster Ascend Deployer运行内存
创建子目录。
[object Object]创建完ascend-deployer目录后,会自动在该目录下生成memory.limit_in_bytes、tasks等文件。
进入ascend-deployer目录,设置相应文件中的值。对于内存的限制主要涉及以下文件。
表 2 文件说明
[object Object]undefined
以限制最多使用500M内存为例,将memory.limit_in_bytes文件中的值修改为计算所得值524288000,在准备运行MindCluster Ascend Deployer的shell窗口执行[object Object]echo $$[object Object]查询其pid,并将其写入tasks文件中。
部分OS会默认设置超时限制,用户可通过自行修改环境变量TMOUT和sshd_config文件中相关信息来避免频繁弹出超时提示。
修改TMOUT环境变量,为0时表示没有超时限制。可以将其设置为一个正整数,表示会话的最大无活动时间(以秒为单位)。例如,将TMOUT设置为600表示如果用户在10分钟内没有任何活动,则用户的登录状态将被自动终止。
[object Object]根据所在组织的安全要求,自行修改sshd_config文件中ClientAliveInterval和ClientAliveCountMax字段。
场景说明[object Object][object Object]
昇腾软件包所需依赖复杂,为提高安装效率,MindCluster Ascend Deployer提供安装前检查功能。在执行安装命令前,用户可根据安装的场景或软件包,执行如下命令测试是否支持安装,测试通过后再执行安装操作。
在以下示例中,[object Object]--stdout_callback=ansible_log[object Object]为可选参数,用来启用打屏显示插件。
指定场景安装前检查(仅支持root用户)[object Object][object Object]
MindCluster Ascend Deployer工具提供几个基本安装场景,<scene_name>具体可参考。用户可以执行如下命令进行安装前检查。
命令示例如下:
指定软件安装前检查[object Object][object Object]
<package_name>可选范围可参考,也可以通过执行bash install.sh --help查看。
命令示例如下:
输出检查结果[object Object][object Object]
执行完检查后,MindCluster Ascend Deployer会在~/.ascend_deployer/deploy_info目录下输出检查结果文件check_res_output.json。
用户已完成商用版或社区版昇腾软件下载时,可参考本章节进行安装。
前提条件[object Object][object Object]
- 已完成MindCluster Ascend Deployer工具的下载。
- 已完成软件包的准备工作。
- 准备的软件包需在MindCluster Ascend Deployer工具支持的安装范围内,如所示。
- 用户需要提前准备的登录账号,并提前申请和确认有相应软件包(驱动与固件包、CANN软件包以及MindCluster性能测试软件包)的下载权限,可通过ascend-deployer/ascend_deployer/downloader/software/CANN_*.json文件中的URL链接跳转申请。
安装步骤[object Object][object Object]
下载Docker软件和系统依赖。双击运行“ascend-deployer-{version}/ascend_deployer”目录下的“start_download_ui.bat”。在界面勾选待安装设备的OS如所示。务必不要勾选界面右侧软件(PKG_LIST)。
图 1 下载Docker软件和系统依赖[object Object][object Object]
(可选)单击“启用代理”,填写代理信息。
在Windows10及以上版本操作系统上,用户可使用已配置的代理服务器进行软件下载。其他操作系统暂不支持此功能。
单击“开始下载”。
图 2 下载完成[object Object][object Object]
将准备好的软件包放至以下路径。
NPU驱动固件、Toolkit、kernels和MindCluster性能测试等软件包:放置于“ascend-deployer-{version}/ascend_deployer/resources”目录。
resources文件夹内容如下(以CentOS 7.6为例):
[object Object](可选)若需要替换为其他版本,可以将“ascend_deployer/resources/mindxdl/dlPackage/[object Object]{arch}[object Object]”文件夹下的MindCluster组件包替换为下载好的MindCluster组件包。
ascend_deployer/resources/mindxdl/dlPackage/[object Object]{arch}[object Object]文件夹内容如下。
[object Object][object Object]
将“ascend-deployer-{version}”整个目录压缩成zip包上传至执行机(用于部署MindCluster Ascend Deployer工具执行批量安装的服务器)任意目录。
执行unzip ascend-deployer-{version}.zip命令解压获得“ascend-deployer-{version}”目录。
昇腾软件需要创建特殊运行用户,若需要手动创建,请参考以下操作。
命令参考如下(以创建HwHiAiUser用户为例):
如果想指定其他用户作为运行用户,后续在安装操作中修改配置文件inventory_file。
创建运行用户HwHiAiUser。
[object Object]设置HwHiAiUser用户密码。
[object Object]
[object Object]
在所有待安装设备上执行cat /etc/resolv.conf命令查看操作系统是否已配置DNS。所有待安装设备的DNS建议保持一致。
若回显DNS配置信息(如“nameserver”信息),表示已配置DNS;
若无回显信息,表示未配置DNS,请执行如下步骤配置。
[object Object][object Object]查询配置了业务IP的网口名称。
[object Object]给相应网口配置DNS,所有网口的DNS建议保持一致。
例:从中,查询到的网口名称为[object Object]enp125s0f0[object Object]。
[object Object][object Object]
查看DNS是否配置成功。
[object Object]回显如下信息,表示DNS配置成功。
[object Object]
MindCluster Ascend Deployer工具在批量安装及升级集群调度组件时,支持在异构节点(与执行机架构不一致的worker节点)上批量安装与升级MindCluster集群调度。请选取一个异构节点作为异构镜像的构建服务器,并在构建服务器上完成inventory_file文件中other_build_image(异构服务器信息)的配置即可。
异构场景说明[object Object][object Object]
MindCluster Ascend Deployer工具支持异构的场景如下所示。
配置other_build_image[object Object][object Object]
表 1 other_build_image参数说明
MindCluster Ascend Deployer工具支持通过多实例部署的方式实现在一天内完成超10万卡以上的超大规模集群安装部署。
提升部署效率,将大规模集群分为多个子集群,在子集群中择取一台作为实例节点,以该节点作为分布式部署节点,由主节点统计所有实例节点部署信息汇总。
[object Object]
以软件包的安装用户登录待安装设备。
通过MindCluster Ascend Deployer工具时,需进入ascend_deployer目录,使用bash large_scale_install.sh --install命令安装部署超大规模集群。
[object Object]请按照“sys_pkg>python>npu>CANN、MindCluster(性能测试,故障诊断,集群调度)”的顺序进行安装,安装时resources目录下的CANN包版本需和NPU配套。
表 1 安装命令示例
[object Object][object Object]
[object Object]undefined
(可选)涉及安装CANN和ToolBox时,用户需签署后进入安装流程,根据回显页面执行y或Y确认协议,输入其他任意字符为拒绝协议,确认接受协议后自动开始安装。
若当前语言环境不满足要求,可以执行如下命令配置系统的默认语言环境。
配置为中文
[object Object]配置为英文
[object Object]
查看安装报告、检验报告及状态信息[object Object][object Object]
安装失败时,会在~/.ascend_deployer/large_scale_deploy/路径下生成report目录,包含安装报告large_scale_deploy.json、host_deploy_report.csv文件。报告文件中以服务器为维度记录了服务器IP地址、状态等结果信息。
在/root/.ascend_deployer/large_scale_deploy/remote_host_data/{IP}/下会生成安装进度信息文件deployer_progress_output.json,查看安装过程和状态信息。
执行以下命令,在report目录下会生成检验报告test_report.csv。
报告文件中以服务器为维度记录了服务器IP地址、昇腾软件等版本信息。
配置大规模部署文件[object Object][object Object]
登录MindCluster Ascend Deployer执行机。
在MindCluster Ascend Deployer执行机上配置待安装设备的IP地址、用户名。
进入ascend-deployer/ascend_deployer目录,编辑large_scale_inventory.ini文件,添加完成后执行[object Object]:wq[object Object]保存退出。
按照,完成master、worker、deploy_node(可选)、npu_node(可选)的变量配置。
[object Object]
表 2 参数说明
[object Object][object Object]
[object Object]undefined
[object Object]
在[large_scale]配置字段下完成大规模部署参数配置。
表 3 参数说明
[object Object]undefined
示例如下:
[object Object]deploy_node支持以下方式配置
手动指定:手动填写参数,此方式为最高优先级。
自动指定:未手动指定[deploy_node]主机组任意主机,则进入自动选定模式。
选取方式如下:
当[object Object]large_scale_inventory.ini[object Object]中的[large_scale]中[object Object]SUB_GROUP_MAX_SIZE[object Object]最大值为200时,工具会自动将ip按序排列,并按最大200划分子集群,并以每个集群首位服务器作为实例节点安装部署昇腾软件。
[object Object]
配置安装或升级的参数时支持的硬件产品、OS清单、安装场景,请参考。
批量安装或升级NPU固件与驱动、CANN软件包、AI框架、MindCluster组件(性能测试,故障诊断,集群调度)、MindIE镜像和配置HCCN参数时,可通过填写Excel表格的方式来导入inventory文件所需参数。此种配置方式仅支持在Windows上使用。
下载表格
表格名称为inventory_template.xls,随MindCluster Ascend Deployer安装软件包一起下载,并存放于ascend_deployer目录下。
使用表格:
- 请详细阅读表格填写说明,按照要求将表格填写完整。
- 将填写完成的表格另存为CSV UTF-8的格式。
- 将另存为的CSV文件,放入ascend_deployer的目录下。
- 执行脚本trans_excel_to_inventory.bat(该脚本同样存放于ascend_deployer目录下),提取CSV的内容存入inventory_file。
- 当服务器中含有docker、kernel-headers、kernel-dev时,可以通过拉起ascend-npu-driver-installer容器进行NPU驱动安装。具体信息请参见。
- 当用户拥有K8s集群时,可以通过K8s拉起pod为所有节点安装NPU驱动。具体信息请参见。
与MindCluster Ascend Deployer安装NPU驱动不兼容。即使用容器化安装NPU驱动后,不可使用MindCluster Ascend Deployer进行升级或检查,反之亦然。