2. 西安通信学院, 西安 710106;
3. 广西民族大学信息科学与工程学院, 南宁 530006
2. Xi'an Communication Institute, Xi'an 710106, China;
3. School of Information Science and Engineering, Guangxi University for Nationalities, Nanning 530006, China
将软件定义网络(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协议的节点交换设备。
2.1 路由模块
按照节1中SDN/OF流量工程方案的设计原则,为了充分利用节点对之间存在的多路径,本文提出Dramp。首先,通过定义链路关键度对关键链路进行量化:
ρ(l)=AVE(l) /Cl.
(1)
F(rji)=ΣiΣjrjiΣlHljiρl/C′l
(2)
Min ΣiΣjrjiΣlHljiρlC′l ;
s.t. ΣiHljirji≤Cl,∀l ;
Σjrji=Ri,∀i ;
rji≥0
(3)
控制器最终下发的路由策略是要在节点对之间有效的多条路径上进行流量均衡,避免拥塞的产生。利用Lagrange对偶函数法求解式(3)的目标函数,得到节点对之间多条有效路径上最佳的流量分配值,通过控制器形成数据流表项下发到各个路径上的OpenFlow交换机进行数据包的转发。路由算法Dramp如下:
步骤1 依据测量模块信息计算并记录网络中经过链路l的各源端发送速率rji。
步骤2 更新各链路代价:
βl(t+T)=[βlt-εβCl-ΣlHljirji]+ .
步骤3 更新后的链路代价值传给路由模块进行计算。
步骤4 计算数据源端i的流量需求代价:
δi(t+Ti)=[δit-εδΣjrji-Ri]+.
步骤5 更新计算数据源端i在路径j上分配速率:
rjit+Ti=rjit+εrδi-ΣlHljiρl、C′l+βl.
为了减少关联性,算法中的步长参数之间是相互独立的。
当链路发生故障时,控制器将会对故障链路进行剪枝并对受影响的交换机转发行为进行更新,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抽象成图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.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则能将时延控制在有效范围内,总体平稳无抖动产生,体现出一定的优越性。
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丢包率抖动。
3.2.4 吞吐量比较吞吐量的实验结果如图6所示。实验一开始3种策略部署下的吞吐量都增长迅速,但是从发送速率为6 Mb/s开始ECMP吞吐量开始下降,整体抖动较大。发送速率在5~11 Mb/s时,GFF与Dramp表现相当; 当发送速率大于12 Mb/s时,GFF吞吐量开始下降; 当发送速率大于22 Mb/s时,GFF吞吐量趋于稳定。Dramp吞吐量则整体表现较平稳。
根据以上的实验结果可以看出: 当网络链路处于低负载、无拥塞产生时,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. |