mellanox&nvidia ib高速网络优化及常见问题FAQ

一、Infiniband vs 以太网区别

  • Ethernet和InfiniBand是特点鲜明的两种不同的互连技术,各有所长,都有自己的适用场景。Ethernet主要是为了实现万物互联。Infiniband主要表现在带宽、时延、网络可靠性、和组网方式上。
  • 在高性能计算场景中,数据传输很容易成为瓶颈,为了解决高带宽、低延时的要求,产生了RDMA技术,即可以直接访问另外一台节点内存中的数据。Infiniband天生支持RDMA。为了降低成本,产生在以太网上运行RDMA的技术,即ROCE。
  • 对于Ethernet的组网,当网络内的节点数量增加到一定程度的情况下,很容易产生arp风暴,造成带宽的浪费。为此,又引入了Vlan机制,为了避免环路,又引入的STP等等,又增加了延迟,等等。网络的配置会比较复杂。
  • 在高性能计算领域,丢包重传对整体性能的影响非常大。InfiniBand是一个完整的网络协议有自己定义的一至四层格式,发送端是否可以发送,是受接收端调度控制的,这样就可以保证报文从发送到接受都不会出现拥塞,这样不仅实现了真正意义上的无损网络;
  • Ethernet构造的网络没有基于调度的流控机制,导致报文在发出的时候是不能保证对端是否会出现拥塞的,因此,为了能够吸收网络内瞬时流量的突然增大,需要在交换内开辟多大数十MB的缓存空间用于暂时存储这些报文,而缓存的实现是非常占用芯片面积的,这使得同等规格的Ethernet的交换机芯片面积明显大于InfiniBand芯片,不仅成本高而且功耗也会更大,除此之外,由于没有端到端的流控机制,导致网络在略极端情况下,会出现缓存拥塞而导致的丢包,使得数据转发性能大幅波动。

二、典型 IB link width 速率

Roadmap 缩写及速率对照表: 

名称缩写信号速率编码方式实际数据速率X4链路数据速率X12链路数据速率
Single Data RateSDR2.5Gb/s8b/10b2Gb/s8.Gb/s24Gb/s
Double Data RateDDR5Gb/s8b/10b4Gb/s16Gb/s48Gb/s
QuadDataRateQDR10.Gb/s8b/10b8Gb/s32Gb/s96.Gb/s
FourteenData RateFDR14.0625Gb/s64b/66b13.64Gb/s54.54Gb/s163.64Gb/s
Ehanced Data RateEDR25Gb/s64b/66b25.78125Gb/s100Gb/s300Gb/s
HighData RateHDR50Gb/s64b/66b50Gb/s200Gb/s600Gb/s
NextData RateNDR待定待定待定400Gb/s1200Gb/s
eXtremeDataRateXDR待定待定待定800Gb/s待定
GxxDataRateGDR待定待定待定1.6T/s待定
待定LDR待定待定待定3.2T/s待定

 

 

三、NDR/HDR的发展趋势

  • NDR vs HDR:
  • NDR性能更好,带宽是hdr的两倍,并且支持更多的加速库,更多功能,比如拥塞控制等等。理论上会提高更好的网络性能。
  • 产品规格不一样,对于小交换机,NDR交换机采用的64个NDR400的端口,可以通过split,设置成128个NDR200的端口。HDR采用的是40端口,可以通过split,设置成80个HDR100的端口。
  • HDR目前还是主流产品。NDR已规模商用。

HDR交换机

NDR交换机

ConnectX7

四、ib交换机各型号常见问题

4.1 交换机EDR-CS7500系列:

用户手册:NVIDIA Mellanox CS7500 InfiniBand 智能机箱式交换机 | NVIDIA

4.1.1交换机各种指示灯状态定义

tatus LED[上]

LED 状态

描述

Leaf板没有上电

绿:常亮

Leaf板工作正常

绿:闪烁

Leaf板正在启动或者恢复出厂设置

黄:常亮

故障

Bad PoBadPort LED[中]

LED 状态

描述

所有端口都正常

黄:闪烁

一个或多个端口异常

Ø常见问题:

Leaf指示灯不亮。

Ø可能原因:

Leaf板接触不良?

Leaf板故障?

Leaf板所在槽位异常?

Ø排查思路:

先重新插拔页板。

如果没有恢复,就考虑交叉验证,确定是哪个模块的问题。确定之后,就开case、申请rma。

Leaf Module Port Connector LED Assignment

LED 状态

描述

端口没有供电

绿:常亮

逻辑连接正常,up

绿:闪烁

有数据传输,闪烁频率和数据传输速度成正比

黄:常亮

物理连接正常,up

黄:闪烁

物理乱路有问题

Ø常见问题:

端口指示灯不亮。

Ø可能原因:

端口接触不良,线缆两端。

线缆故障。

端口故障。

Ø排查思路:

先重新插拔线缆两端的端口。

如果没有恢复,就考虑交叉验证线缆和设备端口,确定是哪个模块的问题?

Status LED[上]

LED 状态

描述

Spine板没有上电

绿:常亮

Spine板工作正常

绿:闪烁

Spine板正在启动或者恢复出厂设置

黄:常亮

故障

Bad Port LED[中]

LED 状态

描述

所有端口都正常

黄:闪烁

一个或多个端口异常

UID LED Switch Identifier[下]

调试功能的端口,应该还没有启用。

Ø常见问题:

Leaf指示灯不亮,或者黄灯。

Ø可能原因:

Leaf板接触不良?

Leaf板故障?

Leaf板所在槽位异常?

Ø排查思路:

先重新插拔页板。

如果没有恢复,就考虑交叉验证,确定是哪个模块的问题。确定之后,就开case、申请rma。

Fan LED

LED 状态

描述

绿:常亮

Spine风扇状态正常

黄:常亮

其中一个风扇不工作,需要更换

Spine to Leaf IB Connection Status LEDs

LED 状态

描述

连接已关闭

绿:常亮

逻辑连接正常,OK

绿:闪烁

有数据活动

黄:常量

物理连接已建立

物理连接:[Physical connection],表示物理层,比如线缆、供电等。

逻辑连接:[Logicalconnection],表示软件层,比如opensm已经下发lid号等等。

4.1.2 交换机管理端口定义

1 I2C/CONSOLE:1个用于本地连接管理板,对管理板进行常规配置。

注意:建议使用mellanox官方附赠的console线缆。未经认证的线缆,可能会导致接口挂起,严重的话,会虽坏接口。

2 MGMT:2个以太网管理口。主要用来远程管理,可以通过ssh、或者web界面等等。

1USB port:1个USB端口,应该是安装系统的时候使用的。

1RST:1个重置按钮,可以用来切换master。另外,按住15秒,会重置管理模块,恢复默认密码等等。

1QSFP:一个QSFP端口,主要用来调试。

4.1.3 开关机操作

开机:

Ø在连接交流电之前,检查所有的FRU(可更换单元)已经正确插入。支持热插拔的部件有管理模块、Leaf模块、Spine模块、Leaf风扇、Spine风扇、PSU。

Ø开机通常需要5分钟左右,如果有LED指示灯保持黄灯超过7分钟,请关闭系统。

关机:

Ø无法远程关机,将电源拔出即可。

Ø把两块管理板拔出[应该也可以]。

注意事项:

Ø注意:如果模块发生故障,更换模块的时候,一定要保证是同一个系列、同一代的交换芯片。千万不要混合使用。

Ø注意:通常一半的PSU电源,就可以保障交换机的电源供应。如果没有足够的电力,交换机会停用一部分的Leaf模块。

Ø注意:在更换部件的时候,拔出旧部件,等待一分钟。之后再插入新的部件。

Ø注意:如果交换机同时有好几块板子需要更换,换一块,等一会儿,确认正常了,再换另外一块。不要一下子,都换上去。

4.2 HDR200-CS8500系列

4.2.1 NDR400-CS9500系列:

HDR200-QM8700系列:【40端口】

ØMQM8700-HS2F NVIDIA Quantum 200Gb/s InfiniBand switch, 40 QSFP56 ports, two power supplies (AC), x86

dual core,standard depth, P2C airflow,rail kit

ØMQM8700-HS2R NVIDIA Quantum 200Gb/s InfiniBand switch, 40 QSFP56 ports, two power supplies (AC), x86

dual core,standard depth, C2P airflow,rail kit

ØMQM8790-HS2F NVIDIA Quantum 200Gb/s InfiniBand switch, 40 QSFP56 ports, two power supplies (AC), unmanaged, x86 dual core, standard depth,P2C airflow, rail kit

ØMQM8790-HS2R NVIDIA Quantum 200Gb/s InfiniBand switch, 40 QSFP56 ports, two power supplies (AC), unmanaged, x86 dual core, standard depth,C2P airflow, rail kit

Ø曙光OEM

4.2.2 带管理模块和不带管理模块的交换机的区别:

1.交换机的管理方式不一样,比如带管理模块,需要安装OS,可以执行部分管理操作。不带管理模块,对交换机配置(比如重命名交换机),只能通过IB命令完成。

2.带管理模块的交换机,功能更多,节点数少的话,可以将opensm服务,启动到交换机上。

3.带管理模块的交换机,可以自己记录一些日志信息,出现问题,方便排查。

NVIDIAQuantum-2:NDR400交换机

NVIDIAQuantum:HDR200交换机

Switch-IB/Switch-IB2:EDR交换机

SwitchX-2:FDR交换机

DAC:铜缆AOC:光缆

官方手册:https://docs.nvidia.com/networking/display/include/200G+%28HDR%29+Based+Switch+and+HCAs+Cable+Connectivity+Matrix%3A+May22+Release

ØWinOF官方手册:https://docs.nvidia.com/networking/display/winof2v280/NVIDIA+WinOF2+Documentation+v2.80

ØWinOF驱动下载地址:https://network.nvidia.com/products/adaptersoftware/ethernet/windows/winof-2/

Ø注意事项:Windows下的Mellanox网卡驱动叫做WinOF。

•For ConnectX-3 and ConnectX-3 Pro drivers download WinOF.

•For ConnectX-4 and onwards adapter cards drivers download WinOF-2.

五、 IB网络典型拓扑图

5.1 300节点的胖树拓扑

传统的树形网络拓扑,带宽是逐层收敛的,树根处的带宽要远小于所有带宽的综合。

为了实现网络带宽的无收敛,胖树网络中的每个节点(根节点除外)都需要保证上行带宽和下行带宽相等,并且每个节点都要提供对接入带宽的线速转发的能力。

使用40端口的交换机举例:

使用40端口的hdr200的交换机,二层胖树,无缩减,构建300节点的集群:

核心层至少使用8台,接入层使用15台,每个交换机连20个节点。

六、IB网络优化

6.1 检查网络内没有降速、init的链路

•可以通过iblinkinfo、ibdiagnet命令检查。

6.2 检查交换机上连线,数量是否正确。

•可以通过iblinkinfo命令。

6.3 检查相同型号的设备固件、驱动版本一致。

•可以通过ibdiagnet、ibstat等命令,检查固件。

•可以通过ofed_info

-s命令检查驱动版本。

Ø如果节点数较多,建议根据实际情况,调整opensm的相关配置。

6.4 寻找链路质量不稳定的链路,比如误码率高、经常down的链路,定位问题原因,并处理。

•查看opensm日志,看是否有报错日志刷屏。tail

-f /var/log/opensm.log | egrep  -i

"Link state change|Removed|expired|down"

•通过ibdiagnet命令,输出日志报告,并分析。

•通过mlxlink命令,单独定位某个端口的误码率等信息。

•通过perfquery命令,查看某个端口的计数器信息。

【使用前,建议清理一下历史记录。】

•通过ibqueryerrors命令,查看各种超过阈值的端口信息。【使用前,建议清理一下历史记录。】

如果有多块网卡,有时候可能需要指定网卡id。示例:ibdiagnet -i mlx5_0--pc

ibdiagnet命令,依赖的工具的版本。

--pc:重置一下网络内的端口的PM计数器。比如有一些计数器超过了阈值,产生了Error的告警。如果不加--pc,下次扫描,报告中还会有告警。所以我经常会加--pc。

注意:

-I-:表示是 Info级别 的信息。

-W-:表示是 Warn级别 的信息。

-E-:表示是Error级别 的信息。

注意:

对于2.6.2.MLNX20210321.84ba964版本的ibdiagnet命令,在Port Conters章节,会扫描两次计数器。

默认等待1s,会再扫描一次。可以通过参数修改等待时间。

在此处等待了1s,然后又扫描了遍。对于不同版本的ibdiagnet,第二次的扫描结果会单独记录,有的会直接覆盖掉ibdiagnet2.db_csv。

注意:Nodes Information章节非常重要。相同型号的设备固件不统一,会在此处展示。如果版本不一致的少,会直接在此处打印出来。如果太多,就直接放到报告中了,需要进入报告中确认。

子网管理器信息,主节点、备节点,以及优先级、所在节点等信息。

对前面的扫描结果做一个汇总,有多少条告警信息,有多少条Error信息,等等

详细的告警、错误信息,放到了该文件中。

其他的报告文件列表

注意:ibdiagnet命令扫描出来的告警信息,并不是一定要处理掉的哈。具体问题,还需要管理员分析。

注意:一直强调同一个类型的设备,项目实施期间,固件版本刷新一致。在项目交付之后,再发现问题,要调整部分设备的固件版本,会比较麻烦。

注意:ibdiagnet命令还有很多参数。ibdiagnet -r --pc --pm_pause_time 600 -P all=1 --extended_speeds all --pm_per_lane --reset_phy_info --get_phy_info --get_cable_info

七、IB网络常见问题

问题1:通过iblinkinfo、ibstat命令,看到节点HCA端口状态为Disable或Polling!

常见原因:

1.交换机与计算节点连接的端口被Disable。【通过ibportstate命令将该端口启用。enable之前,最好了解一下Disable的原因。】

2.HCA的某个参数被误修改。【重新刷一下该节点的IB固件。】

3.线缆没插好。【重新插拔线缆、或者更换线缆。】

问题2:通过ibstat命令,看到节点HCA端口状态为Polling!

常见原因:

1.hca端口故障。

2.线缆有故障,或者没插好。

3.交换机端口异常。【交叉验证,确定具体有问题的设备。】

问题3:通过ibstat命令,看到节点HCA端口状态为Down/Initializing,但是物理状态为Linkup!

常见原因:

1.交换机和HCA的固件不兼容。常见于跨代的设备之间。【将老设备固件刷新至合适版本。通常是最新版本。】

问题4:通过ibstat命令没有正常输出,通过iblinkinfo命令,看到该端口始终Init!

常见原因:

1.HCA节点异常,建议断电重启。不是reboot。

  • 61
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值