安装部署超大规模集群
MindCluster Ascend Deployer工具支持通过多实例部署的方式实现在一天内完成超10万卡以上的超大规模集群安装部署。
提升部署效率,将大规模集群分为多个子集群,在子集群中择取一台作为实例节点,以该节点作为分布式部署节点,由主节点统计所有实例节点部署信息汇总。
- 以软件包的安装用户登录待安装设备。
- 通过下载zip包解压使用MindCluster Ascend Deployer工具时,需进入ascend_deployer目录,使用bash large_scale_install.sh --install命令安装部署超大规模集群。
bash large_scale_install.sh --install=<package_name_1>,<package_name_2>命令示例如表1所示。
请按照“sys_pkg>python>npu>CANN、MindCluster(性能测试,故障诊断,集群调度)”的顺序进行安装,安装时resources目录下的CANN包版本需和NPU配套。
表1 安装命令示例 安装类型
安装命令
系统环境初始化
(安装sys_pkg)
bash large_scale_install.sh --install=sys_pkg #执行--install命令时,请勿重复安装sys_pkg。系统环境初始化
(安装python)
bash large_scale_install.sh --install=pythonNPU固件与驱动
(右侧命令任选其一执行)
bash large_scale_install.sh --install=npubash large_scale_install.sh --install=driver,firmware
CANN软件
(训练&推理&开发调试场景)
bash large_scale_install.sh --install=kernels,toolkitCANN软件
(边缘推理场景)
bash large_scale_install.sh --install=nnrt,kernelsCANN软件
(训练&推理场景)
bash large_scale_install.sh --install=nnae,kernelsMindCluster集群调度
bash large_scale_install.sh --install=ascend-device-plugin,ascend-docker-runtime,hccl-controller,noded,npu-exporter,volcano,ascend-operator,clusterd,resilience-controller
MindCluster性能测试
bash large_scale_install.sh --install=toolbox
MindCluster故障诊断
bash large_scale_install.sh --install=fault-diag
- (可选)涉及安装CANN和ToolBox时,用户需签署华为企业业务最终用户许可协议(EULA)后进入安装流程,根据回显页面执行y或Y确认协议,输入其他任意字符为拒绝协议,确认接受协议后自动开始安装。
若当前语言环境不满足要求,可以执行如下命令配置系统的默认语言环境。
- 配置为中文
export LANG=zh_CN.UTF-8
- 配置为英文
export LANG=en_US.UTF-8
- 配置为中文
查看安装报告、检验报告及状态信息
安装失败时,会在~/.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。
bash large_scale_install.sh --test=all
报告文件中以服务器为维度记录了服务器IP地址、昇腾软件等版本信息。
配置大规模部署文件
- 登录MindCluster Ascend Deployer执行机。
- 在MindCluster Ascend Deployer执行机上配置待安装设备的IP地址、用户名。
进入ascend-deployer/ascend_deployer目录,编辑large_scale_inventory.ini文件,添加完成后执行:wq保存退出。
- 按照表1,完成master、worker、deploy_node(可选)、npu_node(可选)的变量配置。
- K8s版本需要1.28及以上。
- 在向K8s集群应用MindCluster集群调度配置时,需要关注集群中不同的NPU硬件形态,提供不同硬件的特征服务器信息。通过设置npu_node配置不同硬件的特征服务器,若不配置npu_node,则默认为inventory_file中worker下面配置的首节点的NPU硬件类型。npu_node需在worker组,可仅填写IP。worker组的参数会根据IP对应覆盖npu_node参数。
表2 参数说明 参数
是否可选
说明
IP
必选
服务器的IP地址。
ansible_ssh_user
必选
SSH登录远程服务器的账号,需要为root账号。
ansible_ssh_pass
可选
SSH登录远程服务器账号的密码。
如果配置了SSH密钥认证方式且root用户可以登录,则无需配置。
说明:大规模部署场景下需集群内各节点间相互免密。
ansible_ssh_port
可选
SSH连接的端口。
使用默认值22端口时无需配置。
如果使用了非默认的其他端口,则需要配置。
set_hostname
可选。
多master或多worker节点时必选。
单节点时可选。
设置节点在K8s集群中的节点名,建议用“master-1”或“worker-1”的格式,按照顺序填充。
如果已有K8s集群,则该名字需要为节点在K8s中的名字,必须配置为小写,不可随意填写。
npu_num
可选。
设置NPU卡的数量。
index
可选
服务器在ip段中的序号,str类型,比如1.1.1.1-1.1.1.3 set_hostname="master-{index}"。那么1.1.1.1对应的set_hostname=master-1。
step_len
可选
IP跳位步长。
在实际部署中,可能存在ip段跳位等情况。例如1.1.1.1,1.1.1.3,1.1.1.5,则其步长为2。
样例1: 1.1.1.1-1.1.1.5 step_len=2,则输出1.1.1.1,1.1.1.3,1.1.1.5。
样例2: 1.1.1.1-1.1.1.6 step_len=2,则输出1.1.1.1,1.1.1.3,1.1.1.5,1.1.1.6。即末尾ip不在步长内,也保留。
说明
- 在[large_scale]配置字段下完成大规模部署参数配置。
表3 参数说明 参数
是否可选
说明
SUB_GROUP_MAX_SIZE
可选
子集群最大规模,在划分子集群时,保证每个子集群大小都小于该值。Int类型,默认值为200。
示例如下:
[master] [worker] xx.xxx.xx.x1-xx.xxx.xx.x9 ansible_ssh_user="root" ansible_ssh_pass="xxxxxxx" step_len=3 set_hostname="master-{ip}-{int(index)+1}-y" [deploy_node] 10.1.1.1 [npu_node] [large_scale] SUB_GROUP_MAX_SIZE=5 [all:vars] - deploy_node支持以下方式配置
- 手动指定:手动填写参数,此方式为最高优先级。
- 自动指定:未手动指定[deploy_node]主机组任意主机,则进入自动选定模式。
选取方式如下:
当large_scale_inventory.ini中的[large_scale]中SUB_GROUP_MAX_SIZE最大值为200时,工具会自动将ip按序排列,并按最大200划分子集群,并以每个集群首位服务器作为实例节点安装部署昇腾软件。
Atlas A2 训练系列产品 上,IP支持配置IPv4和IPv6两种类型的IP地址,用户使用PuTTY等SSH客户端连接执行机的IP地址和inventory_file文件中配置的IP地址类型需要保持统一,均为IPv4或IPv6。其他设备仅支持配置为IPv4地址。 - 按照表1,完成master、worker、deploy_node(可选)、npu_node(可选)的变量配置。