云计算[1]以虚拟化的方式实现了对资源的统计复用,云用户可以通过网络随时随地按需访问可配置资源池中的计算、网络、存储、软件等资源。数据中心(Data Center, DC)主要由大量服务器、存储设备、网络设备(交换机、路由器和电缆)以及配电系统和冷却系统组成。而作为通信基础设施的数据中心网络(Data Center Network, DCN)是数据中心内互连大规模服务器实现大型分布式计算的网络,用于数据中心内服务器间大量数据的传输和交换。作为云计算的基础设施和解决云计算海量数据传输与交换的关键网络,数据中心网络已成为各界关注和研究的热点[2]。
数据中心作为云计算的重要基础设施,租户在共享的环境中部署各自的云应用。不同于CPU(Central Processing Unit)、内存等资源固定存在每一台服务器之中,分布式的网络资源被使用同一路径或者链路的租户所共享,在缺乏合理带宽分配机制的情况下,网络性能变化和租户间干扰将会频繁发生,导致租户应用性能不可预测,最终影响云租户和云网络供应商的收益。对于网络的参与者,为了实现规模经济降低成本,云网络供应商希望最大化地增加网络中租户的数量,提高网络利用率[3];而另一方面,云租户希望自己的云应用可以获得保证带宽,从而实现对业务性能的可预测性,因此云网络供应商需要负责在云环境中部署性能隔离机制为租户提供保证带宽,但是这反过来又可能限制网络利用率。在设计数据中心网络带宽分配机制时往往需要在实现高网络利用率和提供保证带宽之间进行权衡。
当前数据中心网络依然在很大程度上依赖于传统的TCP/IP协议栈,这导致了网络缺乏灵活性来支持云环境中的各种云应用[4]。TCP(Transmission Control Protocol)虽然易于广泛地分布式部署并且有较高的网络利用率,但是TCP基于流级别的公平性无法为租户提供严格的性能隔离。恶意租户或者设计不佳的应用程序通过打开大量TCP流的方式来获取更大的网络带宽。
本文提出了基于最小接入保证带宽的数据中心网络带宽分配(Minimum Access Guaranteed Bandwidth Allocation, MAGBA)机制。MAGBA机制在接入链路实施带宽分配管理,在发送端服务器中利用加权公平队列(Weighted Fair Queuing, WFQ)对所有虚拟机(Virtual Machine, VM)的流量进行调度,在接收端服务器中检测接收速率,调节TCP流接收窗口,反馈限制UDP流传输,从而为租户VM提供最小接入保证带宽,同时充分利用闲置带宽资源。
1 研究现状针对多租户数据中心网络带宽分配问题,研究人员提出的解决方案可以分为两个类型:一种是基于预留分配方式(reservation allocation based),典型代表方案为SecondNet[5]和Oktopus[6]; 另一种是基于竞争共享方式(competition sharing based),典型代表方案为Seawall[7]和Netshare[8]。
1.1 预留分配方式基于预留分配的方式为租户抽象了带宽请求模型,根据租户请求,将租户虚拟机部署于合适的网络区域并且在hypervisor中实施速率限制,避免了租户应用受所共享网络中其他租户应用流量模式、带宽需求等因素的影响,从而提供了较好的网络性能隔离。
SecondNet[5]该架构提出以虚拟数据中心(Virtual Data Center, VDC)作为网络资源分配的基本单位。SecondNet是管道模型(pipe model)的典型代表,为租户所有虚拟机对之间的通信提供端到端的带宽保证。该架构对不同服务质量要求的应用进行了三种服务类型的划分,分别为虚拟机对之间具有严格带宽保证的type-0模式、best-effort模式以及介于两者之间具有最后一跳保证(ingress/egress guarantee)的type-1模式。
Oktopus[6]该架构主要关注应用性能可预测性,提出了以虚拟网络(virtual network)的方式来解决多租户数据中心网络中租户应用的带宽需求和网络供应商供给之间不匹配的问题。Oktopus基于hose model[9]提出了两个抽象模型,虚拟集群(Virtual Cluster, VC)和虚拟超额订购集群(Virtual Oversubscribe Cluster, VOC),分别适合于具有数据密集型应用(例如MapReduce[10])和非数据密集型应用的租户。
但是基于预留分配机制也有着明显的缺点:一旦租户对带宽的需求低于所分配的带宽,就会造成网络带宽资源的浪费从而降低网络利用率;其次,租户往往很难明确定义所部署的应用对于网络带宽资源的准确需求情况,这使得租户所需带宽难以与所分配的带宽理想匹配。上诉原因导致了静态预留分配的方式缺乏灵活性。
1.2 竞争共享方式基于竞争共享的方式将流级别(flow-level)的竞争扩展到虚拟机级别(VM-level)或者租户级别(tenant-level)。参与网络带宽分配的实体之间基于所分配的权重进行竞争。该方式能够充分利用网络带宽资源,在保持较高网络利用率的同时,能够灵活地确保需求更大或者优先级更高的应用可以分配到更多的网络带宽资源。
Seawall[7] 该机制的核心思想是在多租户数据中心网络中,将网络带宽资源分配从传统基于TCP流级别的最大最小公平共享方式变更实现为在租户VM之间的加权最大最小公平共享。Seawall通过拥塞控制隧道(congestion controlled tunnel)实现该服务器下所有VM对网络带宽资源的加权公平共享,从而避免了恶意租户通过多打开TCP流或者使用UDP流来抢占更多网络带宽干扰其他租户应用性能的情形。此外Seawall使用了一个控制回环(control loop)来汇集来自多个目的端的反馈信息,来避免租户VM通过一对多通信模式与多个VM通信的方式从而获得更多带宽的情形。
Netshare[8] 该机制实现了租户应用对网络带宽资源的分级加权公平共享(hierarchical weighted max-min fair sharing)。网络管理者为每一租户分配权重值,用于竞争共享瓶颈链路带宽资源。而租户基于权重值所分配的带宽资源,再一次在该租户多个TCP流之间公平共享。
但是基于竞争共享方式的缺点主要是无法为租户提供严格的带宽保证,租户应用仍然可能因受到网络中其他租户数量和权重的影响,从而使得性能难以预测。此外,GateKeeper[11]和ElasticSwitch[12]等机制为租户VM提供了最小保证带宽,并且允许租户使用额外空闲带宽资源,从而提供了更加灵活的网络带宽分配策略。
2 MAGBA机制本章对MAGBA的工作机制进行详细介绍。MAGBA的核心思想是在接入链路实施带宽分配管理,通过发送端的加权公平队列调度和接收端的速率检测与调节机制,为租户VM提供最小接入保证带宽,同时充分利用闲置带宽资源。
2.1 最小接入保证带宽模型首先,近年来研究人员提出的新型数据中心网络体系结构,如Fat-Tree[13]、VL2[14]等均构建了高等分带宽(high bisection bandwidth)网络拓扑;其次,在广泛使用的等价多路径转发(Equal-Cost Multipath Routing, ECMP)算法[15]基础上,Hedera[16]、MicroTE[17]、MPTCP[18]等机制能够更加充分利用网络多路径,均衡分布网络流量;最后,数据中心网络边缘相对于核心层更容易发生持续性拥塞。
MAGBA机制在网络边缘的接入链路进行带宽分配。对于租户而言,在逻辑上,其VM均以具有最小保证带宽的方式通过接入链路连接至一台无阻塞交换机上,如图 1所示。根据租户服务等级要求(Service-Level Agreement, SLA)实现租户VM到物理服务器映射过程不属于本文的讨论范围,本文假设接入链路带宽能够满足对应服务器下所有租户VM的最小保证带宽之和。
MAGBA机制在发送端服务器中利用加权公平队列WFQ对所有VM的流量进行调度,在接收端服务器中检测接收速率,调节TCP流接收窗口,反馈限制UDP流传输。MAGBA机制核心功能模块,如图 2所示。
发送端模块 由于租户VM产生的流量可能直接在发送端对应的接入链路对网络带宽资源进行竞争,造成租户VM所分配的网络带宽受到其他租户VM通信过程中,协议选择、带宽需求、通信模式等因素的影响,因此MAGBA机制在发送端使用加权公平队列(Weighted Fair Queuing, WFQ)对租户VM流量进行调度,其中VM权重值对应最小接入保证带宽。此外,在发送端的流量过滤模块(Filter)功能是负责限制非响应UDP流量的传输。租户VM产生的流量在进入调度队列前首先进入对应的流量过滤模块,当流量过滤模块收到某一接收端的速率限制反馈信息后将丢弃发往该接收端的UDP数据包,直到收到该接收端的限制解除信息。
接收端模块 数据中心网络广泛部署的具有多对一通信模式应用以及利用发送端闲置链路带宽资源进行数据传输的应用均可能造成在接收端发生竞争,导致部分租户VM无法实现最小接入保证带宽。MAGBA机制首先在接收端部署速率检测模块(Rate Meter Module),在周期时间T内统计流入接收端总的数据量,计算出接收速率RT。其次,MAGBA在接收端设置阈值RK,作为接收端是否进行速率限制的标志。当接收速率RT小于阈值RK时表明接收端链路带宽资源未被充分利用,此时无需对租户VM进行速率限制,从而保证需求较大的租户VM可以充分利用闲置带宽资源;而当接收速率RT大于阈值RK时表明接收端将可能出现对带宽的竞争现象,需要对部分租户VM进行速率限制,从而实现最小接入保证带宽。阈值RK的设置需要权衡实现高网络利用率和最小接入保证带宽快速收敛,阈值RK设置的值越大,网络利用率越高,但是控制VM发送速率使其收敛于最小接入保证带宽的速度越慢。为了进行速率限制,速率检测模块还需要在周期时间T内计算出每一台VM对应的接收速率Rm以及TCP流总的接收速率Rm_tcp。当总的接收速率RT大于阈值RK时,MAGBA机制选择接收速率Rm大于其对应最小接入保证带宽Bmin的VM进行速率限制,速率检测模块通知速率调节模块(Rate Adjust),速率调节模块向该VM所有通信对端的流量过滤模块发送反馈信息,限制UDP流传输,直到总的接收速率RT小于阈值RK后发送限制解除信息。对于该VM当前TCP流,速率调节模块修改确认(ACKnowledgement, ACK)包中的接收窗口值,公式为:
$ W{'_r} = {\rm{min}}\left( {{W_r},\frac{{{B_{{\rm{min}}}}}}{{{R_{{\rm{m\_tcp}}}}}}{W_r}} \right) $ | (1) |
其中:Wr表示原始TCP接收窗口大小,W′r表示速率调节模块修改后的TCP接收窗口。经过接收窗口调节后的TCP流在两个RTT内不再进行调节。下面是接收端速率算法的伪代码描述。
算法1 接收端速率调节算法。
输入:Bmin={B1, B2, …, Bm},表示VM最小接入保证带宽集合;V={V1, V2, …, Vm},表示接收端VM集合;RK为阈值接收速率;T为速率检测周期。
输出:F={F1, F2, …, Fm},表示接收端VM所属TCP流窗口调节系数。
1) RT←GetRECVRate(T);
//获取接收端周期T内总的接收速率
2) FOR (i=1;i < =VM_NUM; i++)
3) VM_Total_rate[i]←GetTotalRate(i, T);
4) VM_TCP_rate[i]←GetTCPRate(i, T);
5) END FOR
//获取接收端每一台VM总的接收速率和
//其中TCP流的接收速率
6) IF (RT < RK) THEN
7) FOR (i=1;i < =VM_NUM; i++)
8) Fi=1;
9) END FOR
//当总的接收速率小于阈值时,不进行速率调节保证
//高网络利用率
10) ELSE
11) FOR (i=1;i < =VM_NUM; i++)
12) IF (VM_Total_rate[i]>Bi) THEN
13) SendUDPPauseFeedback(i);
14) Fi=Min(1, Bi/VM_TCP_rate[i]);
15) ELSE
16) Fi=1;
17) END IF
18) END FOR
//当总的接收速率大于阈值时,选择接收速率
//大于其对应最小接入保证带宽的VM进行速率调节
19) END IF
20) RETURN F;
分析此算法可知其时间复杂度和空间复杂度均为线性阶,并且算法以分布式机制实现于每一台服务器中,因此有利于网络的可扩展性,避免了通过网络维护大量流状态信息从而导致对网络规模扩展的限制。
当前数据中心网络大量采用TCP协议进行数据传输,数据网络中99.91%的流量是TCP流量[19],因此当带宽资源不足时,MAGBA机制主要基于最小接入保证带宽值Bmin调节TCP流接收窗口,并在短时间内限制数量较少的非响应式UDP流传输,实现接收端的带宽分配管理。直接在接收端修改TCP接收窗口可以避免在发送端动态创建多个速率限制器,有利于控制服务器资源开销。
3 仿真结果与分析仿真实验使用NS2(Network Simulation version 2) 仿真软件进行,NS2是一个面向对象的、离散事件驱动的网络仿真工具。仿真实验主要展示相对于在无控制机制下直接使用TCP流进行数据传输的情况,MAGBA机制在实现租户间性能隔离的优势。
在仿真实验过程中,设置所有的链路带宽为1 Gb/s,时延为50 μs,对应数据中心高带宽、低时延的网络环境。仿真过程中直接将终端服务器节点连入同一交换机形成网络拓扑,直观地展示对接入链路带宽分配工作的分析。主要的仿真实验参数如表 1所示。
仿真实验设置分别属于租户A和租户B的一台虚拟机共享同一发送端链路,而其对应接收端VM属于不同接收端链路,来仿真多租户共享发送端链路的情景。速率检测周期T设置为1 ms,阈值RK设置为900 Mb/s,租户VM最小接入保证带宽Bmin均设置为450 Mb/s。租户VM搭载FTP应用传输TCP流,其中租户A使用一个TCP流进行数据传输,租户B使用多个TCP进行数据传输。仿真结果如图 3所示。
仿真结果表明,当发送端链路出现带宽竞争时,在无性能隔离机制下直接使用TCP流进行传输的过程中,租户A所分配的带宽资源随着租户B使用的TCP流数量上升而减少。主要的原因在于TCP基于流级别的公平性无法为租户提供严格的性能隔离,当恶意租户或者设计不佳的应用程序打开大量TCP流进行数据传输时将获得更多的网络带宽资源。MAGBA机制在发送端通过加权公平队列进行调度,保证了租户VM实现最小接入保证带宽,当某一租户VM使用大流TCP进行传输时,TCP流之间的竞争现象只发生在该VM对应带宽份额内,不会影响其他正常租户的数据传输。
3.2 接收端链路最小接入保证带宽该仿真实验设置分别属于租户A和租户B的一台虚拟机共享同一接收端链路,而其对应发送端的多个VM属于不同发送端链路,来仿真多租户共享接收端链路的情景。主要仿真参数设置保持不变,速率检测周期T设置为1 ms,阈值RK设置为900 Mb/s,其中租户A的VM最小接入保证带宽Bmin设置为600 Mb/s,租户B的VM最小接入保证带宽Bmin设置为300 Mb/s。租户VM搭载FTP应用传输TCP流,其中租户A虚拟机之间进行点对点通信,租户B虚拟机之间进行多对一通信,并且多对一通信模式的发送端VM仅产生一个TCP流。仿真结果如图 4所示。
仿真结果表明,当接收端链路出现带宽竞争时,在无性能隔离机制下直接使用TCP流进行传输的过程中,租户A所分配的带宽资源随着具有多对一通信模式租户B使用的TCP流数量上升而减少。数据中心网络广泛部署的多对一通信模式应用可能在接收端造成带宽资源分配不公平。MAGBA机制通检测接收端总的接收速率和每一台VM的接收速率判定是否需要进行速率调节:当带宽资源不足时,通过控制TCP流接收窗口和限制UDP流的传输的方式实现租户VM最小接入保证带宽,避免租户间应用性能干扰;当带宽资源充足时,租户VM可以获得额外带宽,提高吞吐量,实现高网络利用率。
3.3 空闲链路带宽资源共享前两部分对MAGBA机制为租户间提供的隔离机制进行了仿真实验,因此假设了所有租户VM间一直存在大量待传输的数据,即对应无限制的带宽需求。本部分仿真实验关注链路带宽资源的共享,即当某一租户VM通信过程中,发送速率持续小于其最小接入保证带宽时,共享链路的其他租户VM可以使用空闲带宽资源。实验过程中,速率检测周期T设置为1 ms,阈值RK设置为900 Mb/s,租户VM最小接入保证带宽Bmin均设置为450 Mb/s。租户A与租户B均使用一对VM搭载FTP应用使用一个TCP流进行数据传输,其中租户A与租户B虚拟机共享发送端链路,接收端VM分别属于不同链路,租户B以固定速率发送数据。仿真结果如图 5所示。
仿真结果表明,当租户B所属VM持续以小于其最小接入保证带宽的速率传输数据时,对于静态预留带宽资源的分配方式,具有更大带宽资源需求的租户A所属VM无法利用空闲的带宽,导致了资源浪费,而MAGBA机制使得共享同一链路租户VM能够利用空闲链路带宽资源,提高吞吐量。
4 结语数据中心作为云计算的重要基础设施,租户在共享的环境中部署各自的云应用。多租户间易相互干扰导致应用性能不可预测,而预留带宽资源难以保证高网络利用率导致云网络供应商收益损失,本文提出了基于最小接入保证带宽的数据中心网络带宽分配(MAGBA)机制。MAGBA机制在接入链路实施带宽分配管理,在发送端服务器中利用加权公平队列(WFQ)进行流量调度,在接收端服务器中检测接收速率,调节TCP流接收窗口,从而为租户VM提供最小接入保证带宽,同时充分利用闲置带宽资源。仿真实验结果表明,MAGBA机制能够分别在发送端和接收端为租户VM提供最小接入保证带宽,避免租户应用受到其他租户的干扰。
深入探讨在更大规模网络以及更加复杂的流量模型下,MAGBA机制在租户VM间带宽分配的情况和应用性能的影响将是下一阶段的主要工作。
[1] | ARMBRUST M, FOX A, GRIFFITH R, et al. Above the clouds:a Berkeley view of cloud computing[R]. Berkeley:University of California at Berkeley, 2009:50-58. |
[2] | 李丹, 陈贵海, 任丰原, 等. 数据中心网络的研究进展与趋势[J]. 计算机学报, 2014, 37(2): 259-274. (LI D, CHEN G H, REN F Y, et al. Data center network research progress and trends[J]. Chinese Journal of Computers, 2014, 37(2): 259-274.) |
[3] | 王聪, 王翠荣, 苑迎. 基于收益优化的虚拟数据中心网络资源分配模型[J]. 东北大学学报(自然科学版), 2011, 32(11): 1546-1549. (WANG C, WANG C R, YUAN Y. Resource allocation model to achieve optimize profit in virtual data center[J]. Journal of Northeastern University (Natural Science), 2011, 32(11): 1546-1549.) |
[4] | BARI M F, BOUTABA R, ESTEVES R, et al. Data center network virtualization:a survey[J]. IEEE Communications Surveys & Tutorials, 2013, 15(2): 909-928. |
[5] | GUO C, LU G, WANG H J, et al. SecondNet:a data center network virtualization architecture with bandwidth guarantees[C]//Co-NEXT'10:Proceedings of the 6th International Conference on Emerging Networking Experiments and Technologies. New York:ACM, 2010:Article No. 15. |
[6] | BALLANI H, COSTA P, KARAGIANNIS T, et al. Towards predictable datacenter networks[C]//ACM SIGCOMM Computer Communication Review, 2011, 41(4):242-253. |
[7] | SHIEH A, KANDULAZ S, GREENBERG A, et al. Sharing the data center network[C]//NSDI'11:Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation. Berkeley, CA:USENIX Association, 2011:309-322. |
[8] | VARGHESE G. NetShare:virtualizing data center networks across services, CS 2010-0957[R]. San Diego:University of California, 2010. |
[9] | DUFFIELD N G, GOYAL P, GREENBERG A, et al. A flexible model for resource management in virtual private networks[C]//SIGCOMM'99:Proceedings of the 1999 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication. New York:ACM, 1999:95-108. |
[10] | DEAN J, GHEMAWAT S. MapReduce:simplified data processing on large clusters[J]. Communication of ACM, 2008, 51(1): 107-113. DOI:10.1145/1327452 |
[11] | RODRIGUES H, SANTOS J R, TURNER Y, et al. Gatekeeper:supporting bandwidth guarantees for multi-tenant datacenter networks[C]//WIOV'11:Proceedings of the 3rd Conference on I/O Virtualization. Berkeley, CA:USENIX Association, 2011:6. |
[12] | POPA L, YALAGANDULA P, BANERJEE S, et al. ElasticS-witch:practical work-conserving bandwidth guarantees for cloud computing[C]//SIGCOMM 2013:Proceedings of the ACM SIGCOMM 2013 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication. New York:ACM, 2013:351-362. |
[13] | AL-FARES M, LOUKISSAS A, VAHDAT A. A scalable commodity data center network architecture[C]//Proceedings of the ACM SIGCOMM 2008 Conference on Data Communication. New York:ACM, 2008:63-74. |
[14] | GREENBEI A, HAMILTON J R, JAIN N. VL2:a scalable and flexible data center network[J]. ACM SIGCOMM Computer Communication Review, 2009, 39(4): 51-62. DOI:10.1145/1594977 |
[15] | HOPPS C. Analysis of an equal-cost multi-path algorithm:RFC2992[S].[S.l.]:IETF, 2000. |
[16] | AL-FARES M, RADHAKRISHNAN S, RAGHAVAN B, et al. Hedera:dynamic flow scheduling for data center networks[C]//Proceedings of the 2010 USENIX Conference on Networked Systems Design and Implementation. Berkeley, CA:USENIX Association, 2010:281-296. |
[17] | BENSON T, ANAND A, AKELLA A, et al. MicroTE:fine grained traffic engineering for data center[C]//CoNEXT'11:Proceedings of the Seventh Conference on Emerging Networking Experiments and Technologies. New York:ACM, 2011:8. |
[18] | RAICIU C, BARRE S, PLUNTKE C, et al. Improving datacenter performance and robustness with multipath TCP[J]. ACM SIGCOMM Computer Communication Review, 2011, 41(4): 266-277. DOI:10.1145/2043164 |
[19] | ALIZADEH M, GRENNBERG A, MALTZ D, et al. Data center TCP (DCTCP)[J]. ACM SIGCOMM Computer Communication Review, 2010, 40(4): 63-74. DOI:10.1145/1851275 |