首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何实现动态负载均衡?揭秘基于Flowlet的自适应路由机制

如何实现动态负载均衡?揭秘基于Flowlet的自适应路由机制

原创
作者头像
星融元Asterfusion
发布2025-09-22 14:02:19
发布2025-09-22 14:02:19
3580
举报
文章被收录于专栏:智算中心网络智算中心网络

当前主流的负载均衡技术主要包括三种类型:逐流的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)能力,实时感知链路状态并动态调整路由,从而改善拥塞、提升带宽利用率。

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

  1. 如何实现大流分割?
  2. 动态选路机制与链路测量指标是什么?
  3. 何时触发路径的主动分配与重分配?

术语解释

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

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

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

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

基于Flowlet的路径分配概念图
基于Flowlet的路径分配概念图

流分割:从Flow到Flowlet

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于ECMP的逐流负载均衡
  • 逐包负载均衡技术
  • 基于子流(Flowlet)的自适应负载均衡
    • 流分割:从Flow到Flowlet
    • 链路质量评估涉及以下指标
    • 路径主动分配时机
  • 典型应用场景举例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档