APP下载

面向数据中心租户带宽特征的虚拟拥塞控制方法性能分析*

2018-10-08李树楠詹男杰

计算机工程与科学 2018年9期
关键词:租户公平性数据流

李树楠,詹男杰,章 玥

(1.华东师范大学上海市高可信计算重点实验室,上海 200062;2.华东师范大学教育部软硬件协同设计技术与应用工程研究中心,上海 200062;3.复旦大学计算机科学与技术学院,上海 201203)

1 引言

传统的TCP(Transmission Control Protocol)拥塞控制算法以端主机为中心,将丢包作为拥塞标志。随着互联网的发展,网络层转发节点通过对数据包进行拥塞标记,即显式拥塞通知ECN(Explicit Congestion Notification),大大改进了传统TCP拥塞控制算法的效率[1]。ECN机制的实现离不开端主机操作系统的支持[2]。在数据中心网络中,并不是所有的主机都实现了ECN,不支持ECN的主机与支持ECN的主机同时传输数据时,存在不公平现象;拥塞发生时,不支持ECN的主机占据的带宽较低[3,4]。

Figure 1 vCC conversion layer and TCP traffic interaction图1 vCC转换层与TCP业务流的交互

针对上述不公平现象,目前的数据中心网络主要采用以下几种解决方案:(1)根据需求严格分配租户所使用的带宽[5],这种方案会造成带宽资源的浪费;(2)修改数据中心中交换机内部的带宽分配规则,以实现租户间带宽的公平性[6],这种方案会随着租户以及交换机数目的增加变得非常复杂;(3)在数据中心虚拟管理程序中增加一个适配层,对所有经过虚拟管理程序的数据流进行处理,如虚拟拥塞控制vCC(virtualized Congestion Control)[7]、AC/DC(Administrator Control over Data Center)[8]等。这种方案只需在虚拟管理程序中配置一次即可实现租户间带宽的公平性。vCC采用了抑制接收窗口(Throttle Receive Window)的机制,使不支持ECN的主机在访问数据中心网络时,获得与带ECN主机相近的网络带宽,提升网络的公平性,有效地解决了上述问题。

vCC[7]中讨论了租户带宽同等、流量速率一致的公平性问题,面对租户带宽不相同的真实场景时vCC的性能表现未在文中体现。本文从租户带宽特征及其中涉及的异常场景两方面着手,设计相应的仿真场景,对vCC的性能进行实验分析,明确vCC的工作效果。

2 虚拟拥塞控制

2.1 虚拟拥塞控制原理

当前的数据中心网络中的拥塞控制机制多已支持显式拥塞通知(ECN),租户和部分遗留设备使用的仍旧是尚不支持ECN的传统的NewReno[9]或者Reno算法。对于当前数据中心网络中因拥塞控制机制所产生的不公平现象,vCC转换层对non-ECN数据流主要做了以下三个工作:(1)修改TCP头部字段实现数据中心中underlay网络对ECN的支持;(2)当接收到ECN拥塞通知信号时,减小TCP头部字段中的接收窗口值,降低overlay网络中租户发送数据包数量;(3)修改ACK的头部字段,表明overlay网络中发生拥塞。通过这种转换之后的数据流被称为virtual-ECN(vECN)数据流。

发送方的发送窗口大小取决于拥塞窗口以及接收窗口两者中的最小值,vCC通过抑制接收窗口大小来通知发送方网络发生了拥塞。图1给出了vCC对不支持ECN的客户端发送的数据流的修改情况。图1a中vCC修改发送方TCP报头字段实现底层网络中对ECN的支持;图1b中vCC修改数据分组中IP头部的ECT字段并实现ACK的透明转发;图1c表明,当vCC收到ECN拥塞通知时,修改ACK报文中RWIN字段,迫使客户端调整发送窗口大小,降低发送速率,达到拥塞控制的目的。从图1中可以看出,当数据从发送方经过vCC时,vCC把发送方non-ECN的数据流转换为ECN的数据流,接收方带ECN标记的确认帧转换为不带ECN标记的数据帧,使数据流所使用的拥塞控制算法对发送方和接收方透明。

2.2 vCC实现

一个版本的vCC是在Linux内核中实现的。仿真实验要模拟数据中心网络中的虚拟管理程序,因此在Linux下使用Mininet[10]进行仿真时要先对Linux内核进行修改,以模拟数据中心网络的虚拟管理程序对网络中的数据流进行管理,并实现non-ECN数据流到virtual-ECN数据流的转换过程。

另一个版本的vCC则是一个基于VMware(Virtual Machine ware)ESXi虚拟机管理程序中的vSwitch(virtual Switch)实现的概念验证系统,其本质是一个虚拟拥塞控制转换层。vCC在此虚拟机管理程序环境中可以保证带宽的公平性。

3 数据中心租户带宽特征分析

随着互联网的发展,数据中心网络呈现高带宽、长延迟的特征,数据中心中租户的需求特征也有了变化。当前数据中心租户需求特征可以总结为:(1)主机数目不同;(2)带宽需求不同;(3)网络发生极度拥塞现象;(4)租户使用不同拥塞控制算法。本文从这四个方面对vCC的性能进行分析。

3.1 租户主机数目不同

数据中心租户是使用数据中心资源,获得数据中心服务的用户[11]。伴随数据中心网络的高速发展,数据中心网络在体系架构、服务规模等方面产生了大量的变化。一个当代数据中心所拥有的服务器数目可达数万甚至是数十万,并且规模仍有加大的趋势[12]。数据中心租户作为数据中心的服务对象,数量也在不断增加。vCC[7]作者在进行仿真实验时,发送方主机数目为固定的10台,而现有数据中心交换机所支持的可连接主机数目已远高于这个数值。讨论不同主机数目对vCC的性能的影响具有一定的必要性。

3.2 租户带宽需求不均等

文献[11]认为,现代数据中心广泛采用虚拟化技术,将基础物理资源组合成虚拟资源总池,以便灵活高效地利用与分配资源。由于虚拟资源不受物理资源切分限制,租户可以根据实际需要购买、使用数据中心的虚拟资源。该现象表明数据中心租户带宽具有需求多样化的特点。vCC方法作为数据中心拥塞控制解决方案,在进行拥塞控制的同时,也为租户带宽提供了公平性保证。vCC作者指出了vCC在租户带宽均等的情况下能够保障ECN流与非ECN流之间的公平性。在数据中心租户带宽不均等的条件下,vCC是否还能保证ECN流与非ECN流之间的公平性是一个值得探究的问题。

3.3 数据中心网络出现极度拥塞现象

数据中心网络中会出现不可预测的异常场景。当瓶颈链路极度拥塞时,带有ECN标记的数据段与携带抑制接收窗口信息的数据段都会发生丢失,vCC的性能会受到影响。

在数据中心网络中,引起网络极度拥塞的原因有多个,交换机的队列长度、随机早期检测算法的参数设置以及瓶颈链路带宽的大小都有可能导致网络出现极度拥塞的情况。

在网络传输过程中,瓶颈链路是整个网络系统中最容易产生拥塞的节点。在瓶颈链路中,瓶颈链路队列长度指的是瓶颈链路节点的缓冲区长度。瓶颈链路队列长度过小时,因交换机的处理能力有限,高速传输的数据流在一定的时间内没有被处理会导致缓冲区满,此时网络发生极度拥塞现象,交换机将使用RED(Random Early Detection)等算法对数据流进行随机丢包或标记。

大型数据中心网络中,链路带宽很大,当数据流传输很快时,交换机的缓冲区中的数据得不到及时处理,很容易被填满,网络容易出现拥塞现象。中小型数据中心网络中,受成本限制,交换机的性能有限,本身的缓冲区比较小,这种情况下,网络也极易发生极度拥塞。另外,许多大型数据中心网络是由中小型数据中心合并来的,部分网络区域的交换机缓冲区较小,其余部分的缓冲区较大,传输的数据流在性能比较差的区域会发生拥塞。

RED的主要参数包括min,max,prob,limit,burst,avpkt,bandwidth,ecn。随机早期丢弃的思想是:当交换机或路由器中的平均队列长度低于min值时,没有数据包被标记或丢弃;当平均队列长度达到min时,数据包被标记或丢弃的可能性以线性增长的几率逐渐接近prob,直到平均队列长度达到max值;当平均队列长度超过max时,数据包一定会被标记或丢弃。在网络极度拥塞的情况下,不同的RED参数设置将会导致带有ECN标记的数据段发生不同程度的丢失。

在互联网中,发送方到接收方之间的网络链路通常是有多条,数据在传输的过程中通常会根据链路延时、链路是否通畅等因素来选择最优或者次优的链路。当某一条链路中断时,数据可以通过其他链路进行传输。在大型数据中心网络中,租户可以通过多条链路向服务器发送或者接收数据。当某一条或者某几条链路发生故障时,其余链路就会承担其数据量,出现负载现象。这种情况下,网络就会发生极度拥塞现象。而在中小型数据中心网络中,本身链路带宽就不高,当出现故障时,极度拥塞现象就更加明显。

Figure 2 Network topology for multi-host experiment图2 多主机实验网络拓扑图

3.4 租户使用不同拥塞控制算法

互联网出现以来,拥塞控制算法就在不断地更新与完善。在数据中心网络中,遗留设备或者租户使用的可能是旧版本的拥塞控制算法,例如,实现了慢启动、拥塞避免、快速重传与快速恢复的Reno算法,使用二分搜索对拥塞窗口进行调整的BIC-TCP(Binary Increase Congrestion control TCP)算法、高速网络中的HSTCP(High Speed TCP)[13]算法及其改进的HHSTCP(noval High Speed TCP)算法等。

vCC的目的之一是使租户可以自定义自己的拥塞控制算法,平衡不同拥塞控制算法之间的公平性。当租户更改自己的拥塞控制算法时,数据中心网络的虚拟管理程序不会被通知,vCC需要尽可能地保证不同拥塞控制算法之间的公平性,以给予用户良好的体验。

4 仿真实验设计

文献[7]只考虑了数据中心网络中带宽为100 Mbps和1 000 Mbps的情况,且发送方主机、接收方主机以及瓶颈链路的带宽都相同,这与数据中心实际的环境不是很符合。本文根据数据中心中租户带宽需求特征,设计了四个仿真实验,分别描述如下。

4.1 租户主机数目不同vCC性能分析

(1)实验描述。

文献[7]中Mininet实验的主机数目固定,发送方均为10台主机,不能很好地说明vCC的性能表现。本实验讨论了多主机的场景,对non-ECN流与ECN流之间的不公平现象和多主机状况下vCC的性能进行了实验分析。

(2)拓扑结构。

以20台发送方主机为例,图2给出了实验的网络拓扑图。

(3)参数设置。

以图2的网络拓扑结构的实验为例,发送方中10台主机开启了ECN,剩余10台开启了vECN。主要参数见表1。

Table 1 Multi-host experiment parameters表1 多主机实验参数表

Figure 3 Network topology for tenant bandwidth difference experiment图3 租户带宽差异实验网络拓扑图

4.2 租户带宽差异vCC性能分析

(1)实验描述。

文献[7]中实验的链路带宽没有差异,各发送方主机带宽均相同,不符合租户的实际需求场景。本实验将发送方主机分为两类,分别对应高低两种不同的链路带宽。为了使链路拥塞时低带宽被完全占用,瓶颈链路带宽与高带宽数值一致。

(2)拓扑结构。

图3给出了实验的网络拓扑图。

(3)参数设置。

以图3的网络拓扑结构的实验为例,发送方中5台主机开启了ECN,剩余5台开启了vECN。主要参数见表2。

Table 2 Experiment parameters of tenants’ bandwidth differences表2 租户带宽差异实验参数表

4.3 网络极度拥塞下vCC性能分析

(1)实验描述。

文献[7]没有考虑瓶颈链路极度拥塞时,带有ECN标记的数据包及携带抑制接收窗口信息的数据包会丢失,对vCC的性能产生影响。本实验分析了交换机的队列长度、随机早期检测算法的参数以及瓶颈链路带宽的大小引起网络极度拥塞的场景下对vCC性能的影响。

(2)拓扑结构。

图4给出了本实验的网络拓扑图。

Figure 4 Network topology for network extreme congestion experiment图4 网络极度拥塞实验拓扑结构图

(3)参数设置。

本实验有三种网络极度拥塞场景,表3给出了不同瓶颈链路缓冲队列长度场景下实验的部分参数。其中,bw为所有链路带宽。

Table 3 Network extreme congestion parameters表3 网络极度拥塞部分参数表

4.4 租户使用不同拥塞控制算法时vCC性能分析

(1)实验描述。

文献[7]中只对Reno算法进行了仿真实验,实际上,更多的拥塞控制算法已经应用在数据中心网络中,比如HSTCP、BIC-TCP等等。本实验对不同拥塞控制算法下vCC的性能进行了分析。

(2)拓扑结构。

图5给出了本实验的网络拓扑图。

(3)参数设置。

实验中使用iperf设置数据流使用的拥塞控制算法,表4给出了实验所使用的拥塞控制算法及其所对应的iperf参数。

Table 4 Congestion control algorithm and iperf parameters表4 拥塞控制算法与iperf参数表

5 实验结果

5.1 仿真环境

表5给出了仿真实验的软硬件环境。

5.2 租户主机数目对vCC性能的影响

Figure 5 Network topology for different congestion control algorithms experiment图5 不同拥塞控制算法实验网络拓扑图

Figure 6 Multi-host ECN and vECN fairness experiment图6 多主机ECN和vECN公平性实验

图6是20台主机数目下,ECN公平性实验及vECN公平性实验的结果,其中,non-ECN主机数逐渐减少。图6a~图6c表明,在不开启vCC时,ECN流的吞吐量几乎总是大于non-ECN流的。ECN流明显抢占了non-ECN流的带宽资源。从图6d~图6f可以看出,ECN流与vECN流的吞吐量大小较为接近,ECN流与vECN流在链路中的公平性基本一致。

Table 5 Environments of simulation experiment表5 仿真实验环境

Figure 7 Unequal bandwidth ECN and vECN fairness experiment图7 不均等带宽ECN和vECN公平性实验

5.3 租户带宽差异对vCC性能影响

图7为不同主机带宽下,ECN公平性实验与vECN公平性实验的结果图。图7a~图7c表明,租户带宽不均等且流的总数目固定时,增加ECN流的数量会导致non-ECN流获得的带宽资源减少,导致non-ECN流饥饿。从图7d~图7f可以看出,在租户主机带宽不均等的情况下,vECN流的吞吐量提高了100%以上,获得了较好的公平性。

5.4 网络极度拥塞对vCC性能影响

本实验从瓶颈链路缓冲队列大小、RED参数、瓶颈链路带宽三个方面产生网络极度拥塞的场景对vCC的性能影响进行分析。图8为瓶颈链路缓冲队列大小导致的网络极度拥塞场景下的vCC性能结果。其余结果与图8类似。

Figure 8 Bottleneck link network extreme congestion vCC experiment图8 瓶颈链路网络极度拥塞vCC实验

从图8中可以看出,网络极度拥塞场景下,vCC的性能表现比较好,尽可能地保证了non-ECN流与ECN流之间的公平性。经过vCC转换的non-ECN数据流会出现比ECN流带宽低10%左右的现象,总体相差不大。这主要是因为瓶颈链路丢包时,ECN与virtual-ECN数据包会同时丢失,两种数据包的处理过程基本相同,vCC的性能表现良好。

5.5 不同拥塞控制算法对vCC性能影响

图9为几种常见拥塞控制算法下vCC的性能结果。从图9中可以看出,链路带宽较低时,使用Vegas[14]与YeAH-TCP的主机公平性不一致,vCC性能较低;高带宽时,使用YeAH-TCP的主机吞吐量较低,vCC的性能不稳定。vCC能保证使用BIC-TCP、HSTCP和Reno算法的主机在与ECN竞争的过程中的公平性。

Figure 9 vCC experiment for different congestion control algorithms 图9 不同拥塞控制算法vCC实验

6 结束语

本文分析了数据中心租户带宽需求,设计了不同的仿真实验。通过在Mininet下的仿真实验,对vCC工作性能进行了分析。实验结果表明,vCC在租户主机个数增加以及租户带宽存在差异的条件下都能保障ECN流与non-ECN流之间的公平性;vCC在网络极度拥塞的情况下仍具有较好的性能,但是在主机拥塞控制算法不同时,vCC的性能在拥塞控制算法BIC-TCP、HSTCP和Reno环境中表现良好,在YeAH-TCP环境下解决ECN不公平性效果较差。在Mininet下进行仿真实验时,交换机的每个端口为单队列,和数据中心网络中的实际情况不是很符合。针对此问题,后续可以使用MQ-ECN(Multi-Queue ECN)[15]中提出的基于多队列数据中心的动态的ECN标记阈值调整机制来进行研究。

猜你喜欢

租户公平性数据流
高管薪酬外部公平性、机构投资者与并购溢价
汽车维修数据流基础(上)
多租户数据隔离及加密研究
汽车维修数据流基础(下)
基于多租户隔离的云安全建设
基于MVC模式的多租户portlet应用研究*
基于数据流聚类的多目标跟踪算法
关于公平性的思考
北医三院 数据流疏通就诊量
基于普查数据的我国18个少数民族受教育程度及公平性统计分析