逐流、逐包、Flowlet:哪种负载均衡技术更适合未来网络?

描述

当前主流的负载均衡技术主要包括三种类型:逐流的ECMP负载均衡、逐包负载均衡以及基于子流(Flowlet)的负载均衡。本文将从技术原理、优缺点及适用场景等方面对这三种技术进行系统对比与分析。

基于ECMP的逐流负载均衡

ECMP(Equal-Cost Multi-Path)采用逐流负载分担机制,其核心原理是基于数据包的特征信息(如IP五元组)进行哈希计算,依据哈希值选择转发路径。

该机制具备以下特点:

不同特征的数据流因哈希值不同而被分发至不同链路,实现全网负载均衡;

相同特征的数据流始终沿同一路径转发,保障报文顺序性。

然而,随着云计算与智算业务的发展,逐流负载均衡的局限性日益显著:

难以应对流大小不均的问题,大小流混合时负载均衡精度有限,带宽利用率下降;

属于静态负载均衡机制,无法实时感知链路负载。若出现大象流,仍按既定算法选路,易加剧拥塞与丢包;

在智算集合通信场景下,尤其在Clos网络的Leaf上行链路中,易出现哈希极化,引发网络拥塞。

注:可通过静态方式与自动化配置工具缓解该问题,详见:主动规划+自动化配置工具,简单应对AI智算网络ECMP负载不均。

逐包负载均衡技术

逐包负载均衡将数据包均匀分发至各链路,常被称为“Packet Spray”。其主要算法包括 Random(随机分发数据包)和Round Robin(按序轮询分发,理论上均衡效果最佳)。

然而,由于实际网络中链路负载与延迟存在差异,逐包负载均衡无法保证报文按序到达,其性能高度依赖终端设备的缓存能力乱序重组能力

基于子流(Flowlet)的自适应负载均衡

负载均衡

基于子流的负载均衡不仅实现对数据流的精细划分与均衡分发,还能保持报文的时序性。RoCE交换机所支持的ARS(Adaptive Routing and Switching)技术即为典型代表,其利用ASIC硬件提供的ALB(Auto-Load-Balancing)能力,实时感知链路状态并动态调整路由,从而改善拥塞、提升带宽利用率。

为深入理解该机制,下文将从三个关键问题展开说明:

如何实现大流分割?

动态选路机制与链路测量指标是什么?

何时触发路径的主动分配与重分配?

术语解释

微观流(Micro Flow):五元组相同的一组数据包;

宏观流(Macro Flow):哈希值相同的微观流集合;

空闲时间(Idle Time):宏观流中无流量的时间间隔(可配置);

子流(Flowlet):宏观流中被空闲时间分割的连续数据包序列。

负载均衡基于Flowlet的路径分配概念图

流分割:从Flow到Flowlet

Flowlet是ARS进行负载均衡的基本单位。如下图所示,拥有相同五元组的微观流经哈希计算后归属同一宏观流。若宏观流中相邻微观流的时间间隔超过所配置的Idle Time,则触发流分割,形成不同的Flowlet。从业务层面来看,传统意义上的“大象流”会被打散,而小流则有可能合并到一个 Flowlet 里传输。

负载均衡

注:Idle Time的配置与全局路径时延密切相关,通常建议不小于1/2 RTT。配置过小可能导致Flowlet过细引发乱序;过大则无法有效分割宏观流,引发拥塞。

动态选路与链路测量机制

负载均衡

ASIC维护宏观流表(Macro Flow Table),记录各宏观流及其对应出接口(或ECMP成员链路)。通过实时测量端口负载与延迟,ARS以Flowlet为粒度将流量路由至更优路径。

至于我们如何得知当前哪条链路更优呢?这里就涉及到链路质量指标的测量问题。

负载均衡

链路质量评估涉及以下指标

端口带宽:控制平面对端口线速进行归一化(以10G为基准),并下发至ASIC;

端口利用率:ASIC采样实时流量速率,与线速比较得出利用率及平均负载;

转发时延:通过端口队列深度反映链路延迟,ASIC采样后计算历史负载情况。

ECMP组实时更新各出接口的链路质量,并在路径分配时依据最新结果择优转发。

路径主动分配时机

路径主动分配发生于流分割过程末尾。例如,当Flowlet 1的最后一条微观流(Micro Flow 2)经路径D转发,且间隔时间T(T > Idle Time)后出现新微观流(Micro Flow 3),ASIC判定Flowlet 1结束,路径D映射失效。Micro Flow 3属于新子流且处于非活跃状态,此时触发主动路径分配。

典型应用场景举例

负载均衡

以32台8卡GPU服务器(共256个400G网卡)规模为例,AIDC承载网采用两层Clos架构,Spine与Leaf设备均采用CX864E-N交换机,下行与上行端口按 1:1 收敛比设计,确保高吞吐与高带宽,避免带宽不对称带来的性能问题。

在传统负载均衡机制下,Server1 的 GPU1 与 Server17 的 GPU1 通信时,流量可能集中至某一 Spine 设备,导致Leaf1上行端口拥塞。而启用ARS技术后,Leaf1与Spine设备的ASIC可依据实时延迟与负载动态调整出接口。

假设 Leaf1 通往 Spine8 的链路上发生拥塞,则 Leaf1 的 ASIC 会将更少的 Flowlet 路由到 Spine8 或跳过 Spine8,直至该链路上的拥塞情况缓解后,才会恢复选中该链路进行流量转发。

同样以 Spine1 为例,其 ASIC 也能将更少的 Flowlet 路由到 Leaf32 的链路上而更多地选取其他质量更好的链路。由此,Leaf 与 Spine 设备均能完成自治,从而达到降低整网链路拥塞情况并提高带宽利用率。

 

参考文档

[1] OCPSummit2022- Adaptive Routing in AI/ML Workloads https://www.youtube.com/watch?v=cgYOpp4xwQ8

[2] https://infohub.delltechnologies.com/zh-cn/l/dell-enterprise-sonic-quality-of-service-qos/adaptive-routing-and-switching/

[3]https://asterfusion.com/a20250528-flowlet-alb/

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分