数据中心网络多路径路由算法
杨洋1, 2, 杨家海1 , 秦董洪3    
1. 清华大学网络科学与网络空间研究院, 北京 100084;
2. 西安通信学院, 西安 710106;
3. 广西民族大学信息科学与工程学院, 南宁 530006
摘要:数据中心网络流量分布的不均衡增加了网络拥塞产生的可能性, 由于数据中心网络的流量特性, 使得传统IP网络的流量工程方法不一定适合。该文在SDN/OF(software defined network/OpenFlow)的结构下, 提出了一种基于多路径传输的动态路由算法 (dynamic routing algorithm based on multipath propagation, Dramp)并作为SDN/OF结构中应用层的流量均衡策略。该算法在重新定义链路关键度并求解链路权值优化问题的基础上, 能充分利用数据中心网络中存在的冗余路径, 在完成细粒度流量均衡的同时, 能很好地克服控制器的计算开销, 完成路由优化的目标。通过在Mininet仿真平台中部署并进行仿真实验, 与等开销多路径路由算法ECMP(equal-cost multi-path)以及GFF(global first fit)路由算法相比较, 结果展示了Dramp的优越性能, 同时证明了在数据中心网络中采用Dramp作为流量工程的解决方案更简单、更实用。
关键词网络拥塞    软件定义网络(SDN)    链路关键度    多路径路由    流量均衡    
Multipath routing algorithm for data center networks
YANG Yang1, 2, YANG Jiahai1 , QIN Donghong3    
1. Institute for the Network Sciences and Cyberspace, Tsinghua University, Beijing 100084, China;
2. Xi'an Communication Institute, Xi'an 710106, China;
3. School of Information Science and Engineering, Guangxi University for Nationalities, Nanning 530006, China
Abstract: Unbalanced distributions of traffic in the data center networks increase the network congestion. The special traffic characteristics in data center networks reduce the effectiveness of traditional IP network traffic engineering methods. This paper presents a dynamic routing algorithm based on multipath propagation (Dramp) using software defined for network/OpenFlow (SDN/OF) frameworks. This algorithm makes efficient use of multiple paths by redefining the degree of the critical link and solving an optimization problem using link weights. The objective is to reduce the overhead in the control plane for a fine-grained traffic balance for routing optimization in data center networks. This paper compares the Dramp algorithm with the equal-cost multipath (ECMP) and global first fit (GFF) routing algorithms on the Mininet simulation platform. The results show that Dramp gives the best performance; thus, Dramp is simpler and more practical for traffic engineering in data center networks.
Key words: network congestion    software defined network (SDN)    degree of critical link    multipath routing    traffic balance    

将软件定义网络(SDN)应用到数据中心已成为当前的研究热点,通过采用集中控制方式[1, 2, 3, 4, 5, 6, 7]对全局视图的网络管控,相比分布式能更精确地进行流量均衡。由于数据中心归属单一所有者,这就天然符合SDN所需要的集中控制要求。文[1]第一次基于SDN的设计理念,将NOX集中控制器应用到数据中心。MicroTE[2]通过在终端部署流量监测服务器对传输的流量进行预测,对预测到的流量进行细粒度的流量均衡,没有预测到的部分依然采用ECMP(equal-cost multi-path)路由算法进行转发。Hedera[3]和Mahout[4]提出大流碰撞时的解决方案,两者的主要区别在于监测大流的位置不同。其中Heder通过控制器每隔5 s对边缘层交换机进行抽样来监测大流,Mahout则是通过在终端操作系统中嵌入“夹层”来监测大流,并以带内信号的方式通知控制器。当监测到大流后,控制器触发大流调度算法计算出合适的分流路径并下发到交换机。Fastpass[5]则不再使用传统的TCP拥塞控制协议,通过在控制器与主机之间设计新的通信协议FCP,对数据包进行时隙以及路径的分配,做到交换机“零缓存”来降低拥塞的发生,从而提高网络吞吐量。

在数据中心网络中采用集中控制方式的流量均衡,通过对全局视图的网络管控,能克服分布式只能做到局部最优的缺点。目前面临的挑战有: 一是如何平衡降低控制平面开销与细粒度流量均衡之间的关系。例如,Hedera为了降低控制器的计算开销,只针对大流,但是对于数据中心网络中小流占据了数据流量80%的情况[2]来说,流量均衡并不精确。 二是如何简化部署、增强可扩展性。现阶段的部分研究工作为了进行细粒度的流量均衡,需要对现有的通信协议进行改动。例如,Fastpass除了设计新的通信协议外,还对数据源端的传输控制协议进行了修改,这些都增加了部署的复杂性,可扩展性不高。

本文在SDN/OF(OpenFlow)的结构下,通过重新定义关键链路以及链路关键度,提出了一种基于多路径传输的动态路由算法 (dynamic routing algorithm based on multipath propagation,Dramp),并作为SDN/OF结构中应用层的流量均衡策略。通过在Mininet仿真平台中部署,并基于FatTree拓扑与ECMP以及Hedera中的GFF(global first fit)路由算法相比较,证明了在数据中心网络中Dramp更简单和实用。

1 数据中心流量工程设计原则

数据中心流量存在以用户访问为主的南北方向流量和以数据备份、迁移为主的东西方向流量,东西向流量主要在服务器之间产生并且与南北向流量的比率达到了4∶1[7],由于数据中心网络通常具有对称的拓扑结构使得节点对之间存在大量的冗余链路,对数据中心网络流量工程的设计必须以能充分利用网络资源、有效的进行流量均衡,以避免网络拥塞为目标,因此本文建立如下2个设计原则:

1) 多路径路由机制。相比单路径,多路径路由能避免因为失效链路或者拥塞链路造成的数据包丢失,更好地保障传输的可靠性。将数据流在节点对之间有效的多条路径上动态的进行分配,使得网络中各链路的资源利用率趋于均衡,最大程度的降低网络数据传输中的拥塞,减轻数据包的丢失率,降低端到端的时延。

2) 基于集中控制的数据流调度机制。由于数据中心归属单一所有者,这就天然符合SDN所需要的集中控制要求。集中控制是基于对全局视图的网络管控,根据预先设计好的数据流调度算法,计算出最佳的转发策略下发到交换机,从而能更精确地进行流量均衡。SDN是数据分组转发与控制分离的技术,数据分组的接入、路由都是由控制器来控制,能很好地进行细粒度的流量均衡。但同时也存在控制器平台处理能力限制、控制平面的代价控制和控制器策略下发时延等需要特别考虑的问题。

2 结构设计

基于SDN/OF结构的数据中心网络流量工程的解决方案可以通过控制器收集和分析全网流量分布情况,计算链路利用率,感知链路剩余带宽,获取设计的路由算法所需要的链路信息。图1的原型系统中,底层交换机均支持OpenFlow协议,结构设计主要由3部分组成: 路由模块、测量模块和控制器模块。路由模块基于控制器提供的全局网络状态信息,计算可用多路径上的流量分配值并作为应用层的流量均衡策略下发; 测量模块包含一个内核模块监控流量模式并预测ToR(Top of Rack)之间传输的数据流量以及网络中间交换机的流量信息统计,通过推送或者控制器抽样的方式提交到控制器; 控制器模块负责链路信息的收集以及流量的统计,经过路由模块的计算,最终形成数据流转发表项下发到各个支持OpenFlow协议的节点交换设备。

图1 原型系统
2.1 路由模块

按照节1中SDN/OF流量工程方案的设计原则,为了充分利用节点对之间存在的多路径,本文提出Dramp。首先,通过定义链路关键度对关键链路进行量化:

ρ(l)=AVE(l) /Cl. (1)
其中: ρ(l) 表示链路l的关键度; Cl表示链路的容量; AVE(l)定义为链路的平均期望负载,反映出一条链路质量的好坏,期望值越高的链路说明链路质量越好,数据源端选择这条链路的概率值就大。本文将AVE(l)定义为所有节点对之间最大流中通过链路l的流量之和与通过链路l的最大流数目的比值。在采用多路径传输的基础上,为了达到流量均衡的流量工程目标,本文提出对链路权值进行优化的方法,目前最常用的就是定义链路容量或可用带宽的倒数作为链路的边权值。例如,某一刻一条链路剩余带宽较大,按照以往定义的倒数权值关系,那么权值相对较小,越容易吸引流量,但是如果这是一条关键度值很高的链路,根据AVE(l)的物理意义,那么在下一刻这条链路有可能产生拥塞,给它分配过多的流量并不一定合适。如果将这条链路的关键度值作为剩余带宽倒数的修正因子,权值就不一定小了,因此本文提出的优化目标函数为
F(rji)=ΣiΣjrjiΣlHljiρl/Cl (2)
其中: rji表示节点对i之间有效路径j上的分配速率; Hlji代表路由矩阵A中对应的元素,表示节点对i选择的路径j中某条链路l; 路由矩阵A是J×I维的0-1矩阵,J是网络中的链路条数,I是网络中数据源目节点对数,如果流量流经链路l,则Hlji=1,否则Hlji=0; Cl表示链路的剩余带宽。最终的优化问题为
Min ΣiΣjrjiΣlHljiρlCl ; s.t. ΣiHljirjiCl,∀l ; Σjrji=Ri,∀i ; rji≥0 (3)
其中: rji是优化问题求解的目标值; 网络中链路的负载不能超过链路的承载能力,即ΣiHljirjiCl; 其次要确保分配在节点对i之间有效链路上的流量总和等于该数据源端节点的预测流量需求Ri,即Σjrji=Ri; 最后是链路流量分配的非负取值约束,即rji≥0。

控制器最终下发的路由策略是要在节点对之间有效的多条路径上进行流量均衡,避免拥塞的产生。利用Lagrange对偶函数法求解式(3)的目标函数,得到节点对之间多条有效路径上最佳的流量分配值,通过控制器形成数据流表项下发到各个路径上的OpenFlow交换机进行数据包的转发。路由算法Dramp如下:

步骤1 依据测量模块信息计算并记录网络中经过链路l的各源端发送速率rji

步骤2 更新各链路代价:

βl(t+T)=[βlt-εβCllHljirji]+ .
其中: εβ表示链路代价步长;ΣlHljirji 可以用BT/T 代替,即ΣlHljirji=BT/T,T=max(RTTji)表示路径j中往返时延最大的值,BT表示时间T内流过该路径的字节数。[]+内表达式为正值时链路代价才需要更新。

步骤3 更新后的链路代价值传给路由模块进行计算。

步骤4 计算数据源端i的流量需求代价:

δi(t+Ti)=[δit-εδΣjrji-Ri]+.
其中εδ表示源端流量需求代价步长。[]+内表达式为正值时流量需求代价才需要更新。

步骤5 更新计算数据源端i在路径j上分配速率:

rjit+Ti=rjit+εrδilHljiρl、Cl+βl.
其中εr表示迭代步长。

为了减少关联性,算法中的步长参数之间是相互独立的。

当链路发生故障时,控制器将会对故障链路进行剪枝并对受影响的交换机转发行为进行更新,Dramp将依据更新后的链路代价值在传输路径间重新分配流量。

2.2 测量模块

Dramp 路由算法需要监控节点对之间流量需求的改变和统计链路信息。SDN结构中,控制器对全局信息的掌握有2种方案: 一种是控制器在一定时间间隔内对节点设备进行抽样,另外一种是节点设备定时向控制器进行信息的推送。本文将2种方式相结合: 1) 对链路信息的获取采用控制器定期抽样的方式,目前很多采用OpenFlow协议的交换机都支持控制器对其进行抽样统计。通过对交换机2次抽样,可以获取BT,那么BT/T就可以代表该抽样时刻的链路负载,与链路容量比较求差后,即可获取路由模块计算所需要的链路剩余带宽; 2) 对节点对之间的流量预测,可以采用文[2]的方法,通过在每个ToR机架内部署一台服务器,专门负责向控制器推送流量传输信息。这台服务器具体完成以下任务: 一是收集一个机架内所有服务器的数据流量; 二是汇集并统计ToR之间的传输流量并向控制器推送信息。

2.3 控制器模块

控制器是SDN结构中的核心组件,主要负责从测量模块获取信息,并通过路由模块的计算形成路由策略下发到网络中间节点交换机,交换机则根据流表进行转发。由于控制器的重要性,需要做到控制器的冗余备份,结构设计中一般部署主、从2台控制器,主控制器工作正常情况下,从控制器只负责接受与主控制器同样的信息并存储,只有在主控制器出现故障时,从控制器才正式接管主控制器的工作。本文基于Dramp的SDN/OF结构中控制器主要完成以下任务: 1) 收集测量信息并形成全局视图,提供给路由模块进行计算; 2) 形成路由转发策略并生成流表下发到各个节点交换机。

3 仿真与评估

本文在Mininet+Floodlight[8]仿真实验平台上测试Dramp,并与ECMP以及Hedera中采用的GFF路由算法进行性能的比对。

3.1 仿真平台部署 3.1.1 拓扑设计

目前数据中心网络以服务器为核心的拓扑方案多采用具有边缘层、汇聚层和核心层3层结构的FatTreesup>[8, 9, 10]拓扑。拓扑中具有K个POD(performance optimization datacenter ),每个POD包含K个交换机,其中K/2个属于边缘层交换机,另外K/2个属于汇聚层交换机; 边缘层、汇聚层每个交换机都具有K个端口,其中K/2个向下级联,K/2个向上级联; 核心层总共有(K/2)2个核心交换机,每个交换机K个端口分别连接到分属于K个POD的汇聚层交换机向上的级联口,整个网络可以容纳K3/4个端主机。本文构造一个K=8的简单拓扑,如图2所示。

图2 FatTree (K=8)

为了更清晰地显示流量传输路径,本文将图2抽象成图3的实验拓扑图。在实验拓扑中,交换机均采用能支持OpenFlow协议的OVS(open v-switch)虚拟交换机[11] ,S1、 S2表示2台接入层交换机,相当于ToR架构中的架顶交换机,分别属于2个不同的POD。S1和S2分别接入4台主机,即H1到H4、 H5到H8; C1到C16表示16台核心层交换机。由于FatTree拓扑结构的特性以及链路带宽的统一规划,S1到S2总共有16条等价路径(为了拓扑的简洁,忽略掉链路上汇聚层交换机的图示),实际上S1、 S2都只能选择4条不相交等价传输路径,本次试验随机选取其中3条用作流量均衡,真实地模拟数据流竞争带宽的场景。

图3 实验拓扑
3.1.2 实验参数设置

实验拓扑中,每条链路的带宽被设定为100 Mb/s,链路时延为2 ms,试验中多路径数量上限设置为3条。S1、 S2在不同的POD之间进行数据传输,其中H1到H4为数据发送端,H5到H8为数据接收端。试验将4个节点对之间的需求流量以5 Mb/s的迭代步长从5 Mb/s增加到70 Mb/s来进行网络性能方面的测试。为了更真实模拟实际场景,通过配置随机数产生器,使每个数据源端在0~1 s内随机决定数据流开始传送的时刻,同时也会加入UDP流量作为背景流量,模拟小流的场景。

3.2 性能比较 3.2.1 实验比较对象

ECMP属于静态路由算法,在可供选择的多条等价链路上平均的分配流量,相对于单路径路由该算法优点是能极大提高网络吞吐量以及传输的可靠性,缺点是并不会因为链路状态的变化而改变流量分配的比例; GFF算法是当监测到链路有大流产生的时候,为该流线性的搜寻所有可能的有效路径,一旦发现合适的带宽链路即进行转发,并更新该链路状态,为下次搜寻做准备。针对每一种路由策略,本文分别进行3次实验并记录结果,以保证实验的准确性。

3.2.2 时延比较

首先观察Dramp平均传播时延的表现,实验结果如图4所示。实验中,不同策略的应用导致各路径分配的流量各不相同,也就导致了时延上的差异。实验一开始时延都有所上升是由于数据流第一个数据包到来时,首先由OVS发送到Floodlight控制器,经过路由模块计算后下发到OVS并安装转发流表。数据源端发送速率在6 Mb/s时,

时延迅速回落。当发送速率在6 ~31 Mb/s时,3种路由算法时延表现相当,说明这一阶段网络链路状态良好,无拥塞链路出现。当发送速率超过32 Mb/s时,ECMP时延开始增大; 当发送速率大于35 Mb/s时,ECMP时延产生较大抖动,网络性能开始下降。相比ECMP的时延抖动,Dramp的时延基本无抖动,GFF的时延则介于两者之间。本次实验现象符合预期,由于ECMP本身的设计,当某条链路负载加重时并不能将数据流切换到链路负载较轻且未发生拥塞的路径上,从而使节点交换机缓存队列增加,数据包交付时延增大,有丢包现象产生,网络性能下降; 而GFF只有在链路中产生大流的时候才被触发; 相比之下,Dramp则能将时延控制在有效范围内,总体平稳无抖动产生,体现出一定的优越性。

图4 时延比较
3.2.3 丢包率比较

Dramp丢包率的测试是在同一实验环境下进行的,结果如图5所示。当数据源端发送速率低于5 Mb/s时,3种策略均无丢包产生; 当发送速率在5 ~35 Mb/s时,3种策略表现相当,但是当发送速率大于35 Mb/s时,Dramp的丢包率仍然平稳,而ECMP和GFF的丢包率均开始增加,在发送速率为56 Mb/s时刻,ECMP的丢包率达到峰值。GFF则在发送速率为42 Mb/s时,丢包率有所下降并保持平稳。在节3.2.2对时延的测试中,当发送速率大于35 Mb/s时,ECMP的时延产生较大抖动,网络性能开始下降,其原因是随着负载增大,链路出现拥塞时丢包率开始增加,当数据源端进入TCP拥塞避免时丢包率又开始下降,如此反复从而造成ECMP丢包率抖动。

图5 丢包率比较
3.2.4 吞吐量比较

吞吐量的实验结果如图6所示。实验一开始3种策略部署下的吞吐量都增长迅速,但是从发送速率为6 Mb/s开始ECMP吞吐量开始下降,整体抖动较大。发送速率在5~11 Mb/s时,GFF与Dramp表现相当; 当发送速率大于12 Mb/s时,GFF吞吐量开始下降; 当发送速率大于22 Mb/s时,GFF吞吐量趋于稳定。Dramp吞吐量则整体表现较平稳。

图6 吞吐量比较

根据以上的实验结果可以看出: 当网络链路处于低负载、无拥塞产生时,3种路由策略性能表现相当; 随着链路负载增加或链路出现拥塞时,Dramp能够将部分流量引导至链路负载相对较低、链路质量较好且无拥塞产生的链路上去,使链路之间流量均衡,提高网络资源利用率。

4 结 论

本文在SDN/OF的结构下,针对数据中心网络提出了一种基于多路径传输的动态负载均衡路由算法Dramp。该算法利用优化理论提出核心优化问题,通过求解目标函数,得到节点对之间多条有效路径上最佳的流量分配值,确保关键链路不会成为产生拥塞的瓶颈链路。Dramp在完成细粒度流量均衡的同时,能很好地克服控制器的额计算开销,并且无需对目前使用的通信协议做任何改动。下一步将在真实的数据中心网络中对Dramp进行实际的部署以检验其有效性。

参考文献
[1] Arsalan T, Martin C, Teemu K, et al. Applying nox to the datacenter[C]//Proceedings of workshop on Hot Topics in Networks (HotNets-VIII). New York, NY, USA:ACM, 2009.
[2] Theophilus B, Ashok A, Aditya A, et al. MicroTE:Fine grained traffic engineering for data centers[C]//CoNEXT'11 Conference on emerging Networking Experiments and Technologies. New York, NY, USA:ACM, 2011, 8.
[3] Mohammad A, Sivasankar R, Barath R, et al. Hedera:Dynamic flow scheduling for data-center networks[C]//NSDI'10 Proceedings of the 7th USENIX conference on Networked systems design and implementation. Berkeley, CA, USA:USENIX Association, 2010:19-19.
[4] Andrew R, Wonho K, Praveen Y. Mahout:Low-overhead datacenter traffic management using end-host-based elephant detection[C]//INFOCOM'11 Proceedings IEEE INFOCOM 2011. Shanghai, China:IEEE, 2011:1629-1637.
[5] Jonathan P, Amy O, Hari B, et al. Fastpass:A centralized zero-queue datacenter network[C]//SIGCOMM'14 Proceedings of the 2014 ACM conference on SIGCOMM. New York, NY, USA:ACM, 2014:307-318.
[6] Andrew R, Jeffrey C, JeanT, et al. DevoFlow:Scaling flow management for high-performance networks[C]//SIGCOMM'11 Proceedings of the 2014 ACM conference on SIGCOMM. New York, NY, USA:ACM, 2011:254-265.
[7] Yukihiro N, Kazuki H, Lee C, et al. DomainFlow:Practical flow management method using multiple flow tables in commodity switches[C]//CoNEXT'13 Proceedings of the ninth ACM conference on Emerging networking experiments and technologies. New York, NY, USA:ACM, 2013:399-404.
[8] Eric J, Deng P, Liu J, et al. Asimulation and emulation study of sdn-based multipath routing for fat-tree data center networks[C]//WSC'14 Proceedings of the 2014 Winter Simulation Conference. Piscataway, NJ, USA:IEEE Press, 2014:3072-3083.
[9] Albert G, James R H, Navendu J, et al. VL2:A scalable and flexible data center network[J]. Communications of the ACM, 2011, 54(3):95-104.
[10] Zhou J, Malveeka T, Zhu M, et al. WCMP:Weighted cost multipathing for improved fairness in data centers[C]//EuroSys'14 Proceedings of the Ninth European Conference on Computer Systems. New York, NY, USA:ACM, 2014, 5.
[11] Pettit J. Open vSwitch. (2014-11-03). http://openvswitch.org/pipermail/announce/2014-December/000071.html.