hccn_tool 检查交换机状态
昇腾官方的模型迁移指导中提到一个在端侧检查交换机状态的命令工具,只要返回不空则代表交换机状态正常:
实际执行后发现,昇腾服务器上通过执行 hccn_tool -i {device_id} -lldp -g
可以查询到 lldp 配置信息,如下:
命令:
hccn_tool -i 0 -lldp -g
回显:
Chassis ID TLV
MAC: d0:77:ce:6d:62:51
Port ID TLV
Ifname: 400GE1/1/26:1
Time to Live TLV
120
Port Description TLV
to_cnnorth7c-pod101-kat2ne48x1-8-bm000005_ucb23a-2d-01-02/25U_D-eth2
System Name TLV
cnnorth7c-nc01_bpod01-dx511-rap_roce-11.172.213.6
System Description TLV
Versatile Routing Platform Software
VRP (R) software, Version 8.211 (DX511 V200R021C10SPC600)
Huarong DX511
System Capabilities TLV
System capabilities: Bridge, Router
Enabled capabilities: Bridge, Router
Mnagement Address TLV
IPv4: 11.172.213.6
Ifindex: 4
Port VLAN ID TLV
PVID: 21
Port and Protocol VALN ID TLV
PVID: 0, not supported, not enabled
VLAN Name TLV
VID 21: Name VLAN21
MAC/PHY Configuration Status TLV
Auto-negotiation not supported and not enable
PMD auto-negotiation capabilities: 0x0000
MAU type: Unknown [0x0000]
Link Aggregation TLV
Aggregation capable
Currently not aggregated
Aggregated Port ID: 0
Maximum Frame Size TLV
9216
End of LLDPDU TLV
那么,这里的 LLDP 配置到底是什么意思呢?
LLDP(Link Layer Discovery Protocol 链路层发现协议)
LLDP协议属于链路层协议,以太类型为 0x88cc
。网络设备可以通过发送 LLDPDU 数据帧来告知其他设备自身的状态。注意,它不是一个控制协议,无法通过该协议对设备进行配置,它只提供了查询的能力。
TLV 是组成 LLDPDU 的单元,每个 TLV 都代表一个信息。LLDP 可以封装的 LTV 包括基本 LTV、802.1 组织定义 TLV、802.3 组织定义 TLV 和 LLDP-MED(Media Endpoint Discovery,媒体终端发现) TLV
现在我们知道了本文开头展示的 hccn_tool -i {devcie_id} -lldp -g
命令背后到底做了什么,实际上就是主机侧请求交换机返回也给 LLDPDU(LLDP Data Unit)展示其状态。
因此沃恩看到了交换机的型号(Huarong DX511),这里只要能返回则说明主机与交换机之间的 RoCE 网络是联通的状态。
LLDP 是一个基于以太网的协议,因此 InfiniBand 物理网络下不支持。
ref:https://forums.developer.nvidia.com/t/lldp-not-available/207865
部分 TLV 内容解释
Chassis ID TLV
发送设备的桥MAC地址:
Chassis ID TLV
MAC: d0:77:ce:6d:62:51
Port ID TLV
标识LLDPDU发送端的端口
Port ID TLV
Ifname: 400GE1/1/26:1
System Capabilities TLV
System Capabilities TLV
System capabilities: Bridge, Router
Enabled capabilities: Bridge, Router
说明DX511是一个支持三层网络转发的交换机,并且已经打开了三层路由转发(Router)的能力
RDMA 是无法容忍丢包的,需要 loseless 网络,IB 天生支持 loseless,而 RoCE 网络则需要通过 PFC 实现不丢包,而 PFC 的策略中的 DSCP 策略需要交换机具备三层网络转发的能力(与 DCQCN 算法相关),因此 RoCE 网络下这个开关必须开启的。
DCQCN 算法详解,可参考:https://hurray0.com/menu/138/#DCQCN
Mnagement Address TLV
管理地址携带在LLDP报文中的Management Address TLV中,共网管系统标识设备,进行网络管理。管理地址可以明确地标识一台设备,有利于网络拓扑的绘制,便于网络管理。
Mnagement Address TLV
IPv4: 11.172.213.6
Ifindex: 4
执行 hccn_tool -i {device_id} -ip -g
命令看到 RoCE 万科工卡的网段是 29.20.*.*
,与此处的管理地址不在一个网段,看来这里的地址是带外管理平面的,与用户业务不直接相关?
Port VLAN ID TLV
Port VLAN ID TLV
PVID: 21
之类我们注意到 8 张网卡同处于一个 VLAN,因为华为云的 BMS 服务将 VLAN 用于隔离多租户之间的网络,因此同一个租户下的 RoCE 网路平面内一定都是同一个 VLAN。
交换机 PFC 策略除了 DSCP 外还有 PCP(Priority Code Point),该策略正式基于 VLAN 实现。正如上面介绍的华为云将其用于隔离多租了,因此无法使用该策略。
End of LLDPDU TLV
End of LLDPDU TLV
标识LLDPDU结束
参考链接
- 准备多机多卡训:https://www.hiascend.com/document/detail/zh/canncommercial/63RC2/modeldevpt/ptmigr/ptmigr_0026.html
- 维基百科LLDP:https://zh.wikipedia.org/wiki/%E9%93%BE%E8%B7%AF%E5%B1%82%E5%8F%91%E7%8E%B0%E5%8D%8F%E8%AE%AE
- 数据链路层学习之LLDP:https://blog.csdn.net/goodluckwhh/article/details/10948065
- NCCL中设置不同的RDMA优先级:https://hurray0.com/menu/138/#DCQCN
- LLDP配置命令:https://support.huawei.com/enterprise/zh/doc/EDOC1000178145/8def618c
- LLDP技术介绍:https://www.h3c.com/cn/d_200805/605853_30003_0.htm
- lldp not available:https://forums.developer.nvidia.com/t/lldp-not-available/207865
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 nz_nuaa@163.com