昇腾社区首页
中文
注册
开发者
下载

安装部署超大规模集群

MindCluster Ascend Deployer工具支持通过多实例部署的方式实现在一天内完成超10万卡以上的超大规模集群安装部署。

提升部署效率,将大规模集群分为多个子集群,在子集群中择取一台作为实例节点,以该节点作为分布式部署节点,由主节点统计所有实例节点部署信息汇总。

  1. 以软件包的安装用户登录待安装设备。
  2. 通过下载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=python

    NPU固件与驱动

    (右侧命令任选其一执行)

    bash large_scale_install.sh --install=npu
    bash large_scale_install.sh --install=driver,firmware

    CANN软件

    (训练&推理&开发调试场景)

    bash large_scale_install.sh --install=kernels,toolkit

    CANN软件

    (边缘推理场景)

    bash large_scale_install.sh --install=nnrt,kernels

    CANN软件

    (训练&推理场景)

    bash large_scale_install.sh --install=nnae,kernels

    MindCluster集群调度

    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
  3. (可选)涉及安装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地址、昇腾软件等版本信息。

配置大规模部署文件

  1. 登录MindCluster Ascend Deployer执行机。
  2. MindCluster Ascend Deployer执行机上配置待安装设备的IP地址、用户名。

    进入ascend-deployer/ascend_deployer目录,编辑large_scale_inventory.ini文件,添加完成后执行:wq保存退出。

    1. 按照表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不在步长内,也保留。

      说明

      • 配置master节点的主机为K8s的默认控制节点。
      • master个数必须为奇数。
      • 在批量输入的配置中的{}内,支持解析参数。支持基本的数学运算和转型str、int。{}解析后最终输出字符串类型。

        例如1.1.1.1-1.1.1.3 set_hostname="master-{ str(int(index)+int('20')) + 'x'}",则解析后得到主机信息: 1.1.1.1 set_hostname="master-21x" 1.1.1.2 set_hostname="master-22x" …

    2. 在[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]
    3. deploy_node支持以下方式配置
      1. 手动指定:手动填写参数,此方式为最高优先级
      2. 自动指定:未手动指定[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地址。