AI技术驱动智能应用井喷,智能算力增速远超通用算力。IDC预测,未来五年,我国智能算力规模年复合增长率将超50%,开启数据中心算力新纪元。随着需求激增,数据中心或智算网络亟需扩容、增速、减时延,确保网络稳定可靠,以应对不断升级的智能时代挑战。
数据中心与智算网络,如Spine-Leaf架构,拓扑规整,选路简易。然而,服务器间常存在多条并行路径,如Fat tree网络中的数十条。如何在这些路径中实现负载均衡路由,成为数据中心网络路由设计的核心挑战。
传统负载均衡用的比较多的是等价成本多路径(ECMP),ECMP下一跳的路径是通过对数据包字段进行哈希计算并对可用路径数取模来选择的,来自一个流的数据包总是映射到同一路径,因此,这些数据包将按发送顺序交付,也就是通常的基于流的负载均衡(Flow-based)。
然而,研究表明,在流量高度倾斜时,ECMP无法平均分配负载到不同的路径,如大象流场景。特别是对于当前HPC和AI场景,普遍使用RDMA并且是大带宽场景,这个时候传统ECMP很容易导致链路Hash不均,进而导致某一个链路拥塞。在AI/ML的应用中,GPU或其他类型的AI/ML计算单元之间他们有着非常简单的通讯关系(流的数量非常少),并且由于他们有着极高的计算能力,导致一对通讯单元间的数据吞吐极高(单个流很大,所需的网络带宽极大),这就导致在这样的应用中存在极端的负载分担不均衡,而且这种不均衡一旦引发网络丢包,就会对整体AI/ML的任务完成时间带来显著的负面影响。
网络拥塞分为端侧和矩阵拥塞。端侧拥塞常见于多对一场景,通过拥塞控制算法减缓发送端流量。而矩阵拥塞源于网络Hash不均,其解决方案包括优化Hash算法、负载均衡等策略,以缓解网络瓶颈,确保数据传输的高效与稳定。
- 胖树架构优化:提升汇聚链路带宽,采用Fat tree设计,确保输入输出1:1的高效收敛比,实现网络性能飞跃。
- VoQ(Virtual Output Queueing)技术:是一种网络拥塞管理技术,用于防止HoL阻塞的技术,在传统的输入缓冲区排队方案中,数据包先进入输入缓冲区,然后根据目的端口的可用性从中选择出队。然而,当多个数据包的目的端口相同时,输入缓冲区排队会导致阻塞和拥塞。VoQ技术通过为每个输出端口创建虚拟的输出队列,将输入数据包直接放入对应的虚拟输出队列中。这样,在数据包进入路由器或交换机时就可以直接选择适当的虚拟输出队列,而无需等待目的端口的可用性。因此,VoQ技术可以避免输入缓冲区排队可能引起的阻塞和拥塞问题,提高网络的吞吐量和性能;
- 负载均衡是提升系统性能的关键,不同路由策略对吞吐率影响显著。流量负载均衡策略根据粒度划分,包括基于流、基于包、基于流片和基于信元四种。本文将深入剖析这些策略,助您优化网络性能,提升端到端传输效率。
基于流(Flow based)
流负载均衡路由精准分配流量至不同路径。传统ECMP路由虽用哈希选路,但大小流一视同仁,导致带宽利用率不均,且哈希冲突影响负载均衡效果。实际应用中,这些问题亟待解决,以实现更高效的流量分配。
- 流量分布均匀时,ECMP效果优异。但面对大象流与老鼠流共存,其性能受限。这种负载不均衡在AI/ML应用中尤为突出,一旦导致网络丢包,将严重影响AI/ML任务完成时间,亟需优化处理。
- ECMP通过哈希或轮询实现负载均衡,却难以感知链路拥塞。在拥堵链路上运用ECMP可能加剧拥塞,亟需优化策略以缓解网络压力,确保数据传输的高效与稳定。
- ECMP难以应对非对称网络性能损失。数据中心网络故障易引发非对称结构,影响物理链路均衡分布,导致流量失衡,亟待解决。
ECMP作为负载均衡策略,虽简单且避免乱序,但受限于其缺陷,未必适用于所有场景。为提升网络性能与流量均衡,建议采用更复杂的策略或结合先进技术,实现更高效的负载均衡。
ECMP工程因其低复杂度与可接受性能,在数据中心网络中仍广泛运用。为提升性能,业界提出多种优化方案,如通过集中控制器优化大流路径选择(如Hedera、BurstBalancer),展现了ECMP的改进潜力。
基于包(Packet based)
随机包喷洒(RPS)是高效的包级负载均衡策略。当交换机面对多条至同目的地的等价路径时,RPS以单个数据包为单位进行智能分散,确保数据流畅通无阻。不同于ECMP,RPS以数据包为单位操作,将同一流内的数据包导向不同路径,提升网络效率和性能。
RPS凭借简易实施与细粒度负载均衡,实现高效路由选择,提升网络吞吐率至90%以上链路利用率。然而,其潜在缺陷在于流包乱序,需妥善解决。英伟达以BlueField-3 DPU结合DDP技术,巧妙处理无序数据,构建完整端到端解决方案,确保数据稳定传输,为您的网络架构提供卓越性能与可靠性。
基于流片(Flowlet)
Flowlet本质是利用TCP的流突发特性,根据设置一定间隔将流分割为一个个Burst子流,然后每次切换都是在这个间隔中间,从而避免乱序。但是这个方式也有局限性:首先,Flowlet无法应对短连接场景,试想如果一个Flow一共就一个Burst,那Flowlet必然无法产生效果;其次,Flowlet是针对TCP的特性设计的,而RDMA流量并不符合相关特征,因此,在上层应用为RoCE流量时,Flowlet基本没有效果,这也是在AI/ML等场景中不使用Flowlet的原因。
Flowlet的实现原理揭示:尽管TCP Flow中Packet看似平滑发送,实际抓包和具体实现均显示TCP Packet以Burst方式发送,如图所展。这一发现对理解网络传输具有重要意义。
Flowlet的实现原理在于将Flow细分为多个Flowlet,以此实现负载均衡。Flowlet是介于Packet与Flow之间的单位。对于Flowlet的定量切分,我们引入参数α。当α大于两条链路延迟D1和D2的差值时,Flow即可通过α被精准切分为多个Flowlet,确保数据传输的高效与均衡。
基于信元(Cell based)
在信元交换的网络负载均衡机制中,接收端将报文拆分为信元,根据调度信令选择空闲链路转发,最终在目的端重组为报文。此机制突破传统流转发的局限,允许动态调整,基于微观负载实时均衡利用多路径,实现更高效的网络资源分配。
信元交换的粒度比基于包的负载均衡还要细,理论上,带宽利用率可以更高。信元交换本身并不是一项崭新的技术,在目前广泛应用的框式设备中,线卡芯片与网板芯片之间的流量交换普遍都采用了信元交换的技术,以实现机框内无阻塞交换。
不过信元交换以前主要应用在框式设备系统内部,往往都是各个交换机设备厂商自定义的信元格式和调度机制,不具备跨厂商互通的能力,此项技术可以进一步扩展,应用到整个网络上。2019年AT&T向OCP提交了基于商用芯片的盒式路由器规范,提出了DDC(Disaggregated Distributed Chassis)的概念,DDC使用的核心技术也是信元交换的方案。
AI/ML网络支撑的业务其特征是流数量少,单条流的带宽大,同时流量不均匀,经常出现多打一或者多打多的情况(All-to-All和All-Reduce)。
所以极易出现流量负载不均、链路利用率低、频繁的流量拥塞导致的丢包等问题,无法充分释放算力。信元交换将报文切片成Cells(对比Packet based的负载均衡方案,粒度更小),并根据可达信息采用轮询机制发送,流量负载会较为均衡的分配到每一条链路,实现带宽的充分利用,这样可以解决中大小流的问题,仍然存在相当多的缺陷:
- DDC的大缓存能力虽能缓存报文,但显著增加了硬件转发的静态时延。信元交换过程亦导致转发时延上升。测试显示,DDC的转发时延较ETH网高出1.4倍,显然难以满足AI计算网络的实时性需求。
- 硬件依赖特定芯片实现,封闭、专用;
- 大缓存设计增加网络成本;
经深入分析,各负载均衡方案各具特色。部署时,粒度由小至大依次为Cell based、Packet based、Flowlet、Flow based,带宽利用率则反之。然而,Cell based因局限性在智算领域鲜有应用。选择方案时,需权衡粒度与带宽利用率,确保高效且实用。
高性能计算、分布式存储、人工智能等应用借RoCEv2协议降低CPU处理时延,提升性能。但RoCEv2源于RDMA,缺乏完善的丢包保护,对网络丢包敏感。虽借PFC、ECN等技术力求无损网络,仍难应对大象流/老鼠流不均影响。实现网络负载均衡,是提升性能的关键所在。
在这方面,各厂家也在做各种努力尝试。
英伟达RoCE解决方案卓越,为RDMA和TCP流定制不同策略:TCP利用Flowlet,RDMA(RoCE)则选择逐包负载均衡。Spectrum技术通过与网络交换机和端侧DPU的紧密联动,实现ECMP链路物理带宽与端口拥塞的实时动态监控,确保每个报文负载的精准分担,确保高效传输。
Spectrum-4交换机负责选择每个数据包基于最低拥塞端口,均匀分配数据传输。当同一流的不同数据包通过网络的不同路径传输时,它们可能以无序的方式到达目的地。BlueField-3 DPU通过DDP处理无序数据,避免了数据报文缓存和重组的困扰,通过上述方案,在超大规模系统和高负载场景下相对传统RoCE方案性能提升明显。
再比如,华为的智能无损网络,通过ACC(Automatic ECN)动态调整每个交换机的标记阈值,以分布式方式工作,并结合离线和在线训练以适应动态流量模式,ACC在线速率下实现了老鼠流和大象流的低流完成时间,优先调度小流的报文,从而保障小流的转发时延,提升整体吞吐性能。
-对此,您有什么看法见解?-
-欢迎在评论区留言探讨和分享。-