使用Ascend Deployer配置
通过该方式配置device的网卡IP时,需要确保ascend-deployer工具所在设备上,python版本大于等于3.7.5,并存在ascend-deployer执行下载操作后的resources/pylibs目录。

针对不同训练产品,NPU网口的IP网段配置策略有所不同:
- 当产品为Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元时,每台训练节点的8个NPU网口IP地址使用同一网段,如8个NPU网口统一使用10.20.0.x。
● 当产品为Atlas 800 训练服务器(型号:9000)、Atlas 800 训练服务器(型号:9010)、Atlas 900 PoD(型号:9000)、Atlas 900T PoD Lite时,每台训练节点上的8个NPU网口需要规划4个IP网段,NPU0和NPU4为同一网段,同理NPU1和NPU5、NPU2和NPU6、NPU3和NPU7为同一网段。
- 进入ascend-deployer/ascend_deployer,修改inventory_file文件的hccn变量配置区域并保存。执行配置时,需提前对所有节点配置免密登录,示例如下。
[hccn] xx.xx.xx.xx ansible_ssh_user="root" deviceip=xx.xx.xx.xx,xx.xx.xx.xx detectip=xx.xx.xx.xx,xx.xx.xx.xx //此处依次填写训练节点业务IP地址、远程登录用户、NPU网口IP地址,每台节点配置一行 xx.xx.xx.xx ansible_ssh_user="root" deviceip=xx.xx.xx.xx,xx.xx.xx.xx detectip=xx.xx.xx.xx,xx.xx.xx.xx [hccn:vars] gateways="xx.xx.xx.xx" netmask="255.255.255.0" roce_port=4791 bitmap="0,0,0,1,0,0,0,0" dscp_tc="xx:x," common_network=""
以下为配置参数中涉及的概念解释:
- PFC (Priority-based Flow Control):是以太网协议的一种基于优先级的流控机制,当某个端口的接收缓存出现拥塞时,会向对端发送反压报文,对端暂停发送对应优先级队列的报文。
● DSCP (Differentiated Services Code Point):IP报文头部用来划分服务类型和服务优先级的一个域,取值范围是0~63。
● 优先级队列:交换机和网卡内部实现的QoS队列,包含0~7的8个优先级队列。
● TC (Traffic Class):网络设备将报文区分为不同的服务类别,采用对应的调度策略。一般交换机将报文分成0~7的8个TC,与优先级队列一一对应。NPU参数面网口将报文分成0~3的4个TC。
- 当产品为Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元、Atlas 200T A2 Box16 异构子框时示例如下。
以下以4台训练节点(每台节点8个NPU网口IP同网段)接入两台交换机(每台交换机接两台节点),每台交换机使用一个网段(对应两个网关地址),PFC优先级队列为3,DSCP25映射到TC2为例展示配置示例:
- IPv4:
[hccn] 192.168.10.2 ansible_ssh_user="root" deviceip=10.20.0.2,10.20.0.3,10.20.0.4,10.20.0.5,10.20.0.6,10.20.0.7,10.20.0.8,10.20.0.9 detectip=10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1 192.168.10.3 ansible_ssh_user="root" deviceip=10.20.0.10,10.20.0.11,10.20.0.12,10.20.0.13,10.20.0.14,10.20.0.15,10.20.0.16,10.20.0.17 detectip=10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1,10.20.0.1 192.168.10.4 ansible_ssh_user="root" deviceip=10.20.1.2,10.20.1.3,10.20.1.4,10.20.1.5,10.20.1.6,10.20.1.7,10.20.1.8,10.20.1.9 detectip=10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1 192.168.10.5 ansible_ssh_user="root" deviceip=10.20.1.10,10.20.1.11,10.20.1.12,10.20.1.13,10.20.1.14,10.20.1.15,10.20.1.16,10.20.1.17 detectip=10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1,10.20.1.1 [hccn:vars] gateways="10.20.0.1,10.20.1.1" netmask="255.255.255.0" roce_port= bitmap="0,0,0,1,0,0,0,0" dscp_tc="25:2," common_network=""
- IPv6
[hccn] FEC0:3::180 ansible_ssh_user="root" deviceip=fec0:0090:1c02::3101,fec0:0090:1c02::3102,fec0:0090:1c02::3103,fec0:0090:1c02::3104,fec0:0090:1c02::3105,fec0:0090:1c02::3106,fec0:0090:1c02::3107,fec0:0090:1c02::3108 detectip=fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001 FEC0:3::181 ansible_ssh_user="root" deviceip=fec0:0090:1c02::3109,fec0:0090:1c02::3110,fec0:0090:1c02::3111,fec0:0090:1c02::3112,fec0:0090:1c02::3113,fec0:0090:1c02::3114,fec0:0090:1c02::3115,fec0:0090:1c02::3116 detectip=fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001,fec0:0090:1c02::2001 FEC0:3::182 ansible_ssh_user="root" deviceip=fec0:0090:1c03::3101,fec0:0090:1c03::3102,fec0:0090:1c03::3103,fec0:0090:1c03::3104,fec0:0090:1c03::3105,fec0:0090:1c03::3106,fec0:0090:1c03::3107,fec0:0090:1c03::3108 detectip=fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001 FEC0:3::183 ansible_ssh_user="root" deviceip=fec0:0090:1c03::3109,fec0:0090:1c03::3110,fec0:0090:1c03::3111,fec0:0090:1c03::3112,fec0:0090:1c03::3113,fec0:0090:1c03::3114,fec0:0090:1c03::3115,fec0:0090:1c03::3116 detectip=fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001,fec0:0090:1c03::2001 [hccn:vars] gateways="fec0:0090:1c02::2001,fec0:0090:1c03::2001" netmask="112" roce_port= bitmap="0,0,0,1,0,0,0,0" dscp_tc="25:2," common_network=""
- IPv4:
- 当产品为Atlas 800 训练服务器(型号:9000)、Atlas 800 训练服务器(型号:9010)、Atlas 900 PoD、Atlas 900T PoD Lite时示例如下。
以下以2台训练节点,每台节点NPU网口IP地址为4个网段(对应4个网关地址),PFC优先级队列为3,DSCP25映射到TC2为例展示配置示例:
[hccn] 192.168.10.2 ansible_ssh_user="root" deviceip=10.20.1.2,10.20.2.3,10.20.3.4,10.20.4.5,10.20.1.6,10.20.2.7,10.20.3.8,10.20.4.9 detectip=10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1,10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1 192.168.10.3 ansible_ssh_user="root" deviceip=10.20.1.10,10.20.2.11,10.20.3.12,10.20.4.13,10.20.1.14,10.20.2.15,10.20.3.16,10.20.4.17 detectip=10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1,10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1 [hccn:vars] gateways="10.20.1.1,10.20.2.1,10.20.3.1,10.20.4.1" netmask="255.255.255.0" roce_port= bitmap="0,0,0,1,0,0,0,0" dscp_tc="25:2," common_network="0.0.0.0/0"
- 执行脚本完成配置。执行脚本时会默认在当前环境上安装ansible,若已安装ansible,则会跳过安装。
- 方式一:执行ascend-deployer.py文件,调用hccn参数。
ascend-deployer --hccn
- 方式二:执行hccn脚本。
bash ./scripts/hccn_set.sh
- 方式一:执行ascend-deployer.py文件,调用hccn参数。
父主题: 配置参数面网络