名词解释:
Utilization-aware Load-balancing based on Flow Classification, ULFC:基于流分类的数据中心网络负载均衡机制
Equal-Cost Multi-Path, ECMP
Round Trip Time, RTT:网络往返时间
Exponentially Weighed Moving Average, EWMA:指数加权移动平均
“摘要:为充分利用数据中心网络的多路径带宽,现有研究多采用基于链路感知的负载均衡算法,在动态获取全局链路拥塞信息后选取最优路径对流量进行转发。然而这些研究未考虑数据中心网络流量大小分布不均匀的特性,难以在选路成本和转发效率上取得平衡。为此,设计一种基于流分类的数据中心网络负载均衡机制ULFC,在实现拥塞感知的基础上进行流量特征分析,采用不同的策略为大、小流分配路径,实现网络流量特征与选路方法优势的最佳匹配。实验结果表明,相比于现有方案,ULFC的平均流处理效率提高了1.3倍至1.6倍,路由成本降低了50%以上。”
1 引言
ECMP算法从多条路径中随机选取一条分配给数据流,即仅从流的数量上对每条路径做平均,极易出现哈希冲撞引发的局部链路过度拥塞情况;且面对常见的链路失效问题,ECMP无法适应非对称拓扑导致其性能随网络负载水平的增加而急剧下降。
针对ECMP的缺陷,多种改进的负载均衡算法被提出:(1)基于OpenFlow的集中式调度机制,受限于南向通信瓶颈而不能对复杂的流量变化做出快速响应;(2)对端系统的传输层协议进行改造的MPTCP,打破TCP连接的单路径约束以期望高效利用多路径带宽,但增大了部署难度和网络边缘节点的拥塞;(3)基于巨型交换机抽象模型的网络层协议HULA,通过定期向网内注入特殊的数据包,以递归的方式逐跳实现拥塞感知和路由计算,然而HULA使用分时择优的选路策略,交换机在一个时隙内仅维持一条最优路径处理所有流量会迅速拥塞该路径,带来严重的网络抖动问题。
2 ULFC机制设计
ULFC在实现全局链路感知的基础上对数据流做细粒度处理,借助探针在网络内实现可达路径探测和拥塞信息扩散的同步进行。
(1)在交换机内部,对探针的解析、更新和广播过程独立于用户数据流的处理过程,保证各节点之间能够互相获取所有可达路径信息及每条路径的拥塞情况。
(2)根据实时网络设定动态流分类阈值,依据待处理流的大小进行分类,对标记的大流和小流分别使用不同的路由策略规划路径,满足不同尺寸的流对传输性能的需求。
(3)依据RTT将流分割为更小的单位进行细粒度处理,尽可能降低接收端的重排序时延,在网络层即可避免TCP报文的乱序问题。
2.1 可达路径探测与评价
如图1为K=2的Fat-Tree拓扑,探针的复制和广播基于Fat-Tree拓扑固有的分层属性完成:当探针从下层端口进入交换机时,交换机会将探针从其他所有端口进行洪泛;当探针来自上游端口时,交换机仅将其广播给下层交换机。
以ToR1为例,其产生的探针沿链路向上进入网络。对于汇聚层节点,与ToR1属同一Pod(汇聚层节点和边缘层节点构成Pod)的A1会将探针复制到除入端口外的所有端口,而另一个Pod中的A4只会将来自核心层的探针传递给下游交换机。最终探针到达其他ToR交换机时即完成一个路由更新周期。
定义瓶颈链路为一条路径上负载率最高的链路,探针在传播时需要记录其带宽利用率,作为交换机评价可用路径优劣性的唯一指标;带宽利用率越低,剩余可用带宽越高,整条路径越优。
ULFC改造常规IP数据包设计探针数据包格式,如图2,数据帧长度为64字节,附加在以太网帧头域和IP数据报文头域之后的探针头域占用4个字节,包括信息域:
(1)torID(16 bits):记录生成该探针的ToR交换机ID,其他交换机据此识别探针来源。
(2)pathID(8 bits):记录探针途径节点的校验值,下游交换机据此辨别不同的可达路径。
(3)pathUtil(8 bits):记录探针已搜索路径上瓶颈链路的带宽利用率,据此评估路径拥塞情况。
2.2 拥塞感知与路由更新
交换机各个端口在接收任意数据包时更新入端口直连链路的拥塞信息,采用EWMA算法计算链路带宽利用率 :
其中 代表数据包的字节数, 表示到达时间间隔, 是与RTT相关的常量,决定拥塞感知的响应灵敏度。
网络初始化时,每个交换机各自维护以 torID 为索引项的路由表,表项包括可达路径信息(availPath, nextHop)和最优路径信息(bestHop, minUtil),当交换机从端口 收到探针时,路由表更新算法如下:
Step1~Step3将本节点加入探针的已搜索路径,完成对探针头域的更新;Step5中当 pathUtil 大于 minUtil 时会跳过对最优路径信息的更新,保证交换机总是按照“最小瓶颈链路利用率”的标准从所有可达路径中选出最优路径。
由于探针的生成具有周期性,随之生产的路由表项也具有一定的有效期。交换机更新路由表项时会记录探针到达时间戳,一旦发生链路失效导致在 时间内没有新的探针到达对计时器进行重置,交换机将自动删除该表项。
2.3 阈值计算与流判定
在一个路由更新周期内,目的 ToR 交换机会收到多个源地址相同但搜索路径不相同的探针,探针的数量即为可达路径总数,每个探针携带者一条端到端完整路径信息及其瓶颈链路的带宽利用率。
ULFC在边缘节点设置阈值计算模块和流判决模块。其中阈值计算模块收集来自同一 ToR 的探针,解析探针头部信息并计算流分类阈值:
其中 表示可达路径总数, 表示所有可达路径的集合, 表示可达路径 上瓶颈链路的负载率, 表示链路固有带宽, 表示所有可达路径平均剩余可用带宽, 表示流分类阈值, 为阈值系数,设置为数据中心网络大小流阈值 与链路固有带宽 的比值。
流分类阈值 与平均剩余可用带宽 成正比——网络负载水平越高,平均剩余可用带宽越小,流分类阈值随之变小,更多的流被判定为“大流”,需要谨慎规划确定性路径。所有交换机对“大流”采用最优路径进行传输,“小流”则运行哈希算法从可达路径中任意为其分配一条路径。
2.4 流的转发
ULFC将流(flow)分割为更小的单位(flowlet)规划路由,尽可能保证数据包按序到达接收端。
flowlet 定义:如果一条流中两个相邻数据包的到达时间间隔足够大,以致于后序的数据包即使采用更优路径也不会早于前序的数据包到达接收端,则在数据包之间标记一个分割点,两个分割点之间的所有数据包属于同一 flowlet 。整个TCP报文的处理流程如下图,交换机记录 flowlet 路由信息,强制同一 flowlet 的数据包采用相同的端口转发。
2.5 参数讨论
由于交换机仅在检测到新的 flowlet 时才会使用最新计算的路由表,探针生成频率 与分割阈值 相关。结合TCP控制理论,三个时间阈值存在以下约束关系:
根据文献 [6] ,任意链路上探针传播的平均带宽代价为:
其中 probeSize 为探针的大小(64字节),numToRs 为拓扑中 ToR 交换机的数量, 表示一个广播周期内每条链路收到的平均探针个数。在给定的探针广播机制下, 。
3 实验评价
设置 ECMP 和 HULA 两种方案作为对照组。
3.1 实验设计
使用 Mininet 构建网络环境,采用 K=4 的 Fat-Tree 拓扑,交换机之间的链路带宽设置为400Mbps,每个边缘层交换机与4个直连主机之间数挖链路带宽为 200Mbps 。
实验参数设置:探针生成频率 50ms; 流分割阈值 10ms;拥塞感知灵敏度 ;阈值系数 0.25% 。
使用 Web-search 流量和 Data-mining 流量模拟网络中的真实流量:80%的 Data-mining 流量其尺寸小于 10KB,大部分 Web-search 流量集中在 10KB~10MB 之间。通过调整指数分布的平均值达到期望的网络负载水平(10%~90%),以平均流处理时间为性能指标,每轮实验重复10次,计算10次结果的平均值为最终结果,以ECMP为基准做归一化处理。
3.2 对称拓扑测试
3.3 非对称拓扑测试
断开核心交换机 S34 与汇聚交换机 S28 之间的链路,统计对象范围缩小为所有经过 Pod4 的 Data-mining 流量。
3.4 探针生成频率测试
在非对称拓扑和 Data-mining 流量的环境下,测试 ULFC 在探针生产频率分别为 20ms、50ms、100ms 和 200ms 时的平均流处理时间,实验结果以 HULA-1ms 作为最优解进行归一化处理。
在网络负载率小于 30% 的情况下,探针生产频率的改变对 ULFC 的流传输效率几乎没有影响。随着网络负载率提高至 50% 以上,大流的哈希碰撞问题凸显,此时适当提高探针生成频率意味着交换机能够及时更新路径信息,为流量选择真实的最优路径进行传输。当探针生产频率提高至 20ms 时,ULFC 能够取得与 HULA-1ms 等价的性能曲线,逼近理想的流量均衡效果。此外当网络负载率为 90% 时,ULFC-200ms 的平均流处理时间按 ULFC-50ms 仅提高 21%,较 ULFC-20ms 仅提高 25%,充分说明 ULFC 在探针生产频率的设定方面具有较高的弹性。
4 总结
ULFC结合网络发展趋势,将流量调度算法分布式部署于全网,在实现全局链路感知的基础上对大、小流进行分类处理,高效利用多路径的带宽资源,在任意网络负载状态下实现流量快速转发,在系统响应性和稳定性方面具有明显优势。