合理使用光互联产品减少万卡集群高性能网络中TOR交换机上行网络的ECMP哈希冲突
众所周知,万卡集群需要高性能网络进行数据的大容量快速的交换数据。但是,数据流从服务器A传输到服务器B往往可以有多个网络路径可以选择,一旦所有数据流选择同一条网络路径进行传输时,就会造成该路径网络的拥堵。于是业界使用一种ECMP的方法,通过哈希运算(这里不做深究,简单点理解就是一种网络路径选择策略)进行数据流的网络路径选择,从而均衡所有网络路径的数据流。但是在大容量的高速数据流量的情况下,哈希算法还是有可能将多条数据流安排在同一网络路径中传输,这种现象称之为哈希冲突。
本文通过分析万卡集群高性能网络TOR层的ECMP哈希冲突,介绍如何通过使用有源光缆AOC和无源铜缆DAC分支线缆产品来减少ECMP哈希冲突的方法。
1.ECMP(Equal-Cost Multi-Path Routing)等价多路径路由
未开启ECMP时,无法充分利用路径资源。如图1所示,假设有数据流从服务器A到服务器C,有数据流从服务器B到服务器D。交换机每次都会选择TOR1-LEAF1-TOR2转发数据流。除非此条路径发生拥塞,才会重新选择路径。
图1
开启ECMP,便可同时利用多条路径,通过哈希运算进行负载均衡,服务器A到服务器C数据流选择橘色路径,服务器B到服务器D的数据流选择红色路径,如图2所示。
图2
2.哈希冲突
本文开头已经介绍了什么是哈希冲突,下面我们一起来分析TOR层在什么情况下会出现哈希冲突。假设我们TOR层使用64口交换机,端口带宽400G,上下行1:1进行互联。服务器使用8张400G网卡与TOR交换机互联。此时,服务器网卡端口带宽和TOR交换机端口带宽比1:1。
TOR层的哈希冲突,主要是TOR交换机的上行传输数据流时概率性冲突。
如果服务器A需要发送400G数量流给服务器C,首先发送给TOR1,TOR1将流量转发给 LEAF 层时,会根据哈希运算去随机选择LEAF1和LEAF2。与此同时,服务器 B如果也需要服务器D进行通信,它也会把400G数量流发送给TOR1。此时,TOR1也会根据哈希运算来选择把流量转发给LEAF1或者 LEAF 2。如果双方都哈希到了TOR1到LEAF 1这条链路,TOR1到LEAF2这条链路相对空闲,如图3所示。此时,由于TOR端口最大带宽只有400G,不可能同时将服务器A和服务器 B共计2*400G=800G的数量流上行传输到LEAR1交换机上,导致实际上A和B只有200G的网络带宽,如图4所示。所以,如果2个数据流都哈希到了TOR1到LEAF 1这条链路,就会在TOR1的上行传输方向就会产生哈希冲突。
图3
图4
由于这种现象是由于哈希运算导致的,因此不论是IB还是以太网RoCE都面临着这种概率可能性。
图5 英伟达在2023云网智联大会上介绍IB的负载均衡问题
3.如何避免哈希冲突
如果我们对假设的案例进行修改,服务器网卡端口带宽和TOR交换机端口带宽比修改为1:2,即TOR交换机端口带宽为400G,服务器网卡带宽为200G,让2张网卡端口和1个交换机端口连接,同一的传输方案中,服务器A和B上行到TOR交换机共计2*200G=400G的数据流,如果通过TOR交换机哈希运算选择同一网络路径上行,使用400G的端口进行上行传输,此时也可以正常传输。如图6所示。
图6
基于修改后的案例,TOR交换机单个端口可以连接2张网卡,下行总共32个端口,意味着单个TOR交换机可以连接的服务器数量最多为32*2=64个。在大模型训练过程中将训练任务安排在同一TOR网络架构内的服务器,也可以减少哈希冲突的概率。
4.合理选择大成鹏通信有源光缆AOC和无源铜缆DAC产品
在未修改的案例中,服务器网卡端口带宽和TOR交换机端口带宽比1:1,皆为400G。此时使用的互联产品可以选择传统的光模块,或者有源光缆AOC和无源铜缆DAC线缆产品。在以太网中,两端均使用400G QSFP-DD、400G QSFP112或者400G OSFP的封装模式,需要根据两端设备端口类型决定;在IB网络中,两端均使用400G OSFP的封装模式,OSFP为IB指定封装。
产品形态 |
交换机端口 |
连接线 |
网卡端口 |
光模块 |
400G QSFP-DD 光模块 |
MPO跳线 |
400G QSFP-DD 光模块 |
光模块 |
400G QSFP112 光模块 |
MPO跳线 |
400G QSFP112 光模块 |
光模块 |
400G OSFP 光模块 |
MPO跳线 |
400G OSFP 光模块 |
有源光缆AOC |
400G QSFP-DD 封装 |
固定长度光缆 |
400G QSFP-DD封装 |
有源光缆AOC |
400G QSFP112封装 |
固定长度光缆 |
400G QSFP112封装 |
有源光缆AOC |
400G OSFP封装 |
固定长度光缆 |
400G OSFP封装 |
无源铜缆DAC |
400G QSFP-DD 封装 |
固定长度铜缆 |
400G QSFP-DD封装 |
无源铜缆DAC |
400G QSFP112封装 |
固定长度铜缆 |
400G QSFP112封装 |
无源铜缆DAC |
400G OSFP封装 |
固定长度铜缆 |
400G OSFP封装 |
在修改后的案例中,需要将2张网卡端口和1个交换机端口连接,使用的互联产品有源光缆AOC和无源铜缆DAC分支线缆产品。此时,在以太网中,交换机端使用400G QSFP-DD、400G QSFP112或者400G OSFP的封装模式,网卡端使用200G QSFP56封装或者200G QSFP-DD封装,需要根据两端设备端口类型决定;在IB网络中,交换机端使用400G OSFP的封装模式,网卡端使用200G QSFP56封装模式,OSFP和QSFP56为IB指定封装。
产品形态 |
交换机端口 |
连接线 |
网卡端口 |
有源光缆AOC |
400G QSFP-DD 封装 |
固定长度光缆 |
端口1:200G QSFP-DD封装 端口2:200G QSFP-DD封装 |
有源光缆AOC |
400G QSFP112封装 |
固定长度光缆 |
端口1:200G QSFP56封装 端口2:200G QSFP56封装 |
有源光缆AOC |
400G OSFP封装 |
固定长度光缆 |
端口1:200G QSFP56封装 端口2:200G QSFP56封装 |
无源铜缆DAC |
400G QSFP-DD 封装 |
固定长度铜缆 |
端口1:200G QSFP-DD封装 端口2:200G QSFP-DD封装 |
无源铜缆DAC |
400G QSFP112封装 |
固定长度铜缆 |
端口1:200G QSFP56封装 端口2:200G QSFP56封装 |
无源铜缆DAC |
400G OSFP封装 |
固定长度铜缆 |
端口1:200G QSFP56封装 端口2:200G QSFP56封装 |
5.结语
以上分析的是通过选择大成鹏通信有源光缆AOC和无源铜缆DAC分支线缆产品,来减少万卡集群高性能网络中TOR交换机上行网络的ECMP哈希冲突。在此基础之上,可以提出两个减少哈希冲突的优化方向。一是使用分支线缆进行互联:如图6所示,LEAF层在下行网络中也存在哈希冲突的可能,此时使用分支线缆连接LEAF和TOR交换机,比如使用800G分支2*400G的光模块连接方式或者AOC分支线缆(DAC长度不够)进行LEAF-TOR的互联,就可以减少LEAF层下行方向哈希冲突的可能性;二是增加分支数量:比如单个的TOR交换机下,使用400G分支4*100G的AOC或者DAC进行互联,这样单个TOR交换机最多可以连接32*4=128个服务器,数量是400G分支2*200G方案可连接服务器数量的2倍,这种方法在LEAF层也同样适用。