当前数据中心承载了当前互联网中的大部分数据流量和应用功能。理想情况下,数据中心会为不同用户的不同应用流量提供差异化的、高吞吐量低时延的服务。其中,数据中心网络传输性能的好坏直接决定了数据中心的服务能力。因此,对数据中心流量进行管理,能够提高网络链路的整体利用率,减少拥塞情况,避免重传发生。如何设计合理、高效的网络负载均衡方案,成为了建设新型数据中心的关键。
由于当前数据中心的复杂性,使得设计满足要求的数据中心网络负载均衡方案具有一定的挑战。
1.流量动态性: 数据中心网络的流量是动态变化的,其中少量的大流占据了网络中大部分负载,而大量的小流会造成网络状态的剧烈变化, 使得流量调度呈现滞后性;这就使得数据中心网络负载均衡设计问题变得更加复杂。
2.拥塞感知难: 由于数据中心网络流量特有的高动态性, 使得对网络拥塞的感知具有时间滞后性, 即当前感知到的拥塞信息为过去时的状态。因此,感知网络拥塞情况的准确性和及时性直接决定了负载均衡的性能。
3.数据包乱序:传统数据中心网络的负载均衡技术通常采用基于Flow的调度,HASH计算后选择唯一路径通信,在同一链路上发生冲突的两个数据流的传输时间会加倍。而采用Packet粒度进行调度时,由于传输层协议的确认机制, 这类将Flow分割成Packet的技术,将会造成数据包的乱序问题。
4.异常流量调度:当网络设备或链路出现故障时,网络中的上下行链路会出现不对称等情况,产生网络的拥塞后,严重降低了数据的传输效率。负载均衡方案需及时对故障情况进行响应,对网络中被影响的流量进行重新调度,以优化网络的传输。
数据中心的网络拓扑通常采用CLOS结构,主机之间常存在多条路径。为满足吞吐量敏感型流量的需求,将数据流分布到不同路径上进行数据传输。为避免拥塞,提高数据中心内的资源利用率,数据中心网络负载均衡方案通常会选择ECMP(Equal-costmulti-path)技术。
ECMP(Equal-costmulti-path)意为等价多路径路由,即存在多条到达同一个目的地址的相等开销的路径。当设备支持等价路由时,发往该目的IP或者目的网段的三层转发流量就可以通过不同的路径分担,实现网络链路的负载均衡。在链路出现故障时,实现快速切换ECMP的路径选择策略有多种方法:
1. HASH,基于IP五元组进行HASH计算,为流选择指定路径
2. 轮询,各个流在多条路径之间轮询传输
3. 基于路径权重,根据路径的权重分配流,权重大的路径分配的流数量更多
ECMP是一种较为简单的负载均衡策略,其在实际使用中也面临许多问题:
1. HASH极化问题
HASH极化问题常见多级负载均衡场景,即多台设备间互联均存在负载均衡,此时若多台设备间使用相同的负载均衡模式或HASH算法则可能出现HASH极化现象。
2. HASH一致性问题
弹性HASH功能开启可确保在单条链路故障时,交换机会将ECMP组内数据流重新HASH计算,再进行负载均衡到剩余有效链路上,其实现可确保原来HASH的流量的一致性。 但是弹性HASH只能确保1个端口或链路故障情况下的hash均衡,而2个及以上端口或链路故障情况下,无法实现HASH的负载均衡。
3. 静态HASH不均衡问题
静态HASH通过算法生成HASH-KEY值,然后根据HASH-KEY值在链路中选取一条成员链路对数据包进行转发。静态HASH的缺点是没有考虑负载均衡链路中各成员链路的利用率,从而会出现成员链路之间的负载不均衡,尤其当大流出现时,会加剧所选中成员链路的拥塞,随着交换机缓存的加深,会触发PFC和ECN,导致源端降速。
传统以太网构建的数据中心网络通过ECMP HASH实现负载均衡,网络流量特征是大量小流的情况下可以得到比较理想地网络负载均衡效果,但是AI训练的流量特征是同时存在一定数量的大流,这在哈希不均时会出现长尾时延,从而影响训练效率,这也是通过以太网支持大规模机器学习训练的一个挑战。
为了解决上述问题,锐捷在多路径流量调度技术上进行了创新,RALB(Remote Adaptive Load Balancing)技术通过感知链路质量,进行逐包的全局动态负载均衡,让网络带宽利用率可达97.6%。
感知本地链路质量,通过逐包的动态负载均衡策略,实现网络无阻塞,接近满吞吐。
静态HASH采用的是逐流负载均衡的方式,HASH计算后选择ECMP组的其中一条链路转发,而动态负载均衡采用的是逐包转发的方式,将Flow分割成颗粒度更小的Packet,根据链路的负载情况,在ECMP组全链路中进行逐包转发。因此,在AI训练场景采用RALB技术,将Read和Write的数据报文分割成更小的Packet,进行逐包动态负载均衡,而对于其他类型报文,仍采用静态逐流HASH方式,从而获得更高的带宽利用率。
通过感知远端链路质量变化,在Leaf层进行精准流量调度,达到全局负载均衡的效果。
当数据中心网络中发生光模块故障、交换机端口故障或光纤链路断开等链路故障的情况时,会形成交换机上下行链路不对称的情况,从而导致交换机出口(Egress port)拥塞。交换机在队列拥塞情况下,对拥塞的数据包做ECN标记并传递给接收端;接收端收到带有ECN标记的数据包后,生成CNP拥塞通告返回给发送端;发送端收到 CNP 报文,对相关优先级的队列进行降速处理。如图中所示Spine1到Leaf2的其中一条链路断开,Spine1到Leaf2之间只有1条100G链路,Leaf1经过Spine1到Leaf2的流量,会在Leaf1上触发出口拥塞,Leaf1入口要降速到100G才能避免拥塞;而发送端降速,会让所有发出的流量一起降速,同时由于逐包负载均衡让Leaf1的上行流量同时降速。假设Leaf1经过Spine1和Spine2到Leaf2的流量是足够均衡的,那么Leaf1经过Spine2到Leaf2的流量也会被降速到100G;因此表现为整体带宽只有200G;
在网络链路故障时,采用RALB技术,Spine交换机立刻感知到链路的变化,并快速通知TOR交换机,让Leaf1感知到远端链路的变化,对去往Leaf2的流量进行远端自适应负载均衡,将更多的流量调度到下一跳为Leaf2的链路上,实现流量全局的负载均衡。采用RALB技术后,对目的为Leaf2且经过Spine1的2条链路流量进行精准降速,而不影响其他去往Leaf2的链路流量。如图中所示应用RALB技术之后,Leaf1只会往Spine1转发1/3到Leaf2的流量,往Spine2转发另外2/3到Leaf2的流量,最终可以充分利用上Leaf1到Leaf2最大的300G带宽,相比应用之前的200G提升50%(效果随着Spine交换机数量增加而提升,3台Spine交换机时,从3/6提升到5/6;4台Spine交换机时,从4/8提升到7/8,以此类推);同时,应用RALB技术之后在Leaf1上就能提前触发流控,起到降低时延的效果。
锐捷网络RALB负载均衡技术打破了传统技术的局限,根据当前的链路的负载情况,做全局的流量均衡,并结合逐包动态转发,实现网络无阻塞和超高带宽利用率的效果,显著提高了数据传输的效率和稳定性,为数据中心的高效运行提供了有力支撑。
在全球互联网流量不断增长和数据应用需求日益多样化的背景下,锐捷网络致力于推动网络技术的进步和发展,全局负载均衡解决方案的推出正是其不断探索和创新的有力证明。通过持续的技术研发和产品创新,锐捷网络将继续为全球的数据中心提供更加高效、可靠、智能的网络解决方案,在AIGC时代,助力互联网企业及各行各业的快速发展。