基于权重的虚拟机带宽资源分配技术
2015-09-09程容斌
程容斌
摘要:校园数据中心是数据的传输、计算和存储的中心,集中了各种软硬件资源和关键业务系统。网络虚拟化条件下的数据中心内部的网络带宽资源被所有用户的虚拟机所共享,数据中心内部网络带宽资源如何在多个用户的虚拟机之间合理按需分配,如何保障各个用户虚拟机的网络性能独立成为一个急需解决的课题,是数据中心资源实现真正按需分配的关键。
关键词:数据中心网络;虚拟机;带宽分配
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)03-0020-02
1 校园数据中心虚拟化
校园数据中心[1]是数据的传输、计算和存储的中心,集中了各种软硬件资源和关键业务系统。为了提高资源利用率和减少运营成本,数据中心服务器和网络设备的虚拟化技术[2]正成为研究热点。网络虚拟化条件下的校园数据中心内部的网络带宽资源被所有虚拟机所共享,数据中心内部网络带宽资源如何在多个用户的虚拟机之间合理按需分配,如何保障各个用户虚拟机的网络性能独立成为一个急需解决的课题,是数据中心资源实现真正按需分配的关键。Secondnet[3]采用一种per source-destination pair (per S-D pair)分配模型。像Seawall[4],通过使用这种基于通信源的带宽分配模型,迫切需要研究一种公平合理的数据中心虚拟机带宽控制机制。
2 虚拟校园数据中心内网络带宽分配的性能要求分析
网络虚拟化条件下的校园数据中心内部的网络带宽资源被所有虚拟机所共享,带宽分配必须要满足如下两个性能要求:第一个性能要求是网络权重忠实度,网络权重的忠实程度上三个递增的层次要求:单调性,严格的单调性和按比例分配。按比例分配提供了对权重的最高的忠实性,我们通过下面这个例子来说明按比例分配:
如图1,假设我们给图中的每个虚拟机一个相等的网络权重。在这种情况下,如果所有的通信带宽要求都得到满足,则A-D和B-D总带宽将得到整条连接带宽总量的3/5,而C-E的带宽将得到总带宽的2/5,而这种分配和每一组通信的虚拟机的网络权重是成比例的。
图1 虚拟机带宽分配跟权重成比例示意图
第二个性能要求就是带宽保证,它保证数据中心部署的每个用户的网络性能和应用性能的可预测性。每个虚拟机被给予一个最小的带宽保证值,不需要理会其他虚拟机的带宽需求和分配是多少。
问题的关键在于,上述两个性能需求(权重忠实度和带宽保证)是两个相互冲突的性能需求,展示了在虚拟机之间共享数据中心网络的一个关键的平衡性。明确地说,就是权重忠实度越高,带宽保证越小。我们举个例子来说明这个平衡性。
如图2所示,虚拟机A和虚拟机B分布在同一个物理服务器上,A和另外两个虚拟机C,D通信,B只和E通信,我们假设每个虚拟机的权重一样,则A在服务器的出口链路上的带宽分配是3/5,B是2/5,因为这条链路上总的虚拟机个数是5。
图2 虚拟机带宽分配示意图
很容易发现,如果A和更多的虚拟机通信,那么B的带宽分配数量还要更少。一个严格的单调性分配相比按比例分配能给B提供更大的带宽分配,但是当A通信远端的权重值增加的情况下,B的带宽分配还是会减少。但是在一个只满足单调性的分配模型当中,B就会分配一个相当大的带宽保证值,而不需要理会A的通信方式。在一个完全均分带宽的网络中,B的带宽保证值将是链路带宽的一半。
所以,权重忠实度和带宽保证这两个性能要求是相互冲突的,要想有很严格的带宽保证就只能获得较低的权重忠实度,或者有很高的权重忠实度,但只能提供很小的带宽保证。需要一种机制在这二者之间取得一个基本的平衡。
3 基于虚拟机网络权重的网络带宽资源分配
传统的数据中心网络资源共享方式,不管是基于流的共享,还是通信源和通信端结合(source-destination pairs)或者是只考虑通信源的方式都不能同时满足前面提出的这两个要求。本文提出一种新的数据中心虚拟机带宽控制机制,严格满足上述两个要求,然后对这种机制做出原型系统的设计和实现。我们采用以用户的付费作为虚拟机(VM)的网络权重的参数,根据网络权重给每个用户的虚拟机分配相应的带宽资源。我们提出一种Per Endpoint Sharing (PES)机制,灵活的共享数据中心内部网络,允许数据中心管理者明确地指出在权重忠实度和带宽保证之间的平衡点。给每一对通信的虚拟机分配一个权重,这个权重值由通信两端的虚拟机共同决定。WS?D = f (WS ,WD), WS 是通信源的权重,WD 是通信端得权重。为了满足对称性要求,在两个方向的权重分配值要相同,也就是 WA?B = WB?A 。
Per Endpoint Sharing (PES) 采用给一条连接L上的通信的两个虚拟机A和B 一个权重,WA?B = WA/ NA + WB/ NB 这里NA 是L这条连接上虚拟机A跟其他虚拟机通信的数量,NB 是L这条连接上虚拟机B通信的虚拟机数量。这个权重可以通过相比链路上通信的虚拟机的总权重WT 的方式来实现带宽分配。
需要指出的是理论上,PES提供的带宽保证非常小,最坏的情况下,一个虚拟机将要和所有这条连接上的虚拟机公平的分配网络带宽。然而,如果拥塞发生在网络的中心(这种现象经常发生),路由能够在所有路径上平衡通信,这样,一个虚拟机实际上公平的均分了网络带宽。为了提供更坏情况的带宽保证,我们给予一些虚拟机相比其他的虚拟机更高的重要性,根据虚拟机的重要性决定。举个例子,在服务器的一条连接上,相比远离服务器的虚拟机我们更乐意把带宽分配给近距离的虚拟机。
所以我们推广PES成WA?B = WB?A = α×WA / NA +β× WB /NB, 系数α 和β使得连接两端虚拟机的权重不一样,α应用于L链路上一端的所有虚拟机,而β应用于另外一端。这样通过使用不同的α和β值,我们可以使得一端虚拟机的权重按比例增减而完全不理会另外一端的虚拟机。
通过给网络上不同的链路设定不同的α和β值,我们就可以使用通用的PES机制获得不同的平衡点。如提供高的带宽保证但是低的权重忠实度,或者高的权重忠实度但是低的带宽保证。这个算法类似于权重增加,倍数减少(AIMD)。算法原理如下:当反馈消息指示有丢包,就降低允许的速率乘以一个α, 否则速率就一直根据权重增加。
图3 带宽分配算法
我们对基本带宽分配算法加以改进,采用一种独特的技术能联合所有来之不同通信目的端的反馈消息。通过这种方式,一个虚拟机的带宽分配基于他的网络权重,而于他通信信道的数目无关。这种分配策略跟当前数据中心的其他资源如计算和存储资源的分配策略一致。
每个虚拟机都有一个带宽分配者,把虚拟机的网络权重和每条信道上反馈信息所允许的速率作为输入。这个反馈信息包括所有这个虚拟机作为发送端正在通信的所有接收端发回的拥塞反馈消息。带宽分配者有两部分组成,第一部分是一个分布式的拥塞控制环,通过它计算这个虚拟机在这条线路上累积的带宽共享,第二部分是一个本地调度,把虚拟机分到的网络带宽再分给正在通信的所有信道。
第一步: 使用分布式控制环,来决定每条线路,每个虚拟机的带宽分配。
理想的反馈消息应该是基于每条线路的,它应该包括这个虚拟机在这条线路上所有通信信道的累积使用情况。这样的反馈信息是可以实现的,如果交换机上执行准确的反馈消息,如使用(XCP,QCN)或者通过可编程交换机取样 (Side Car [5])。缺乏这些,系统的基础主要是依赖现有的端到端丢包率拥塞信号。这些信号指出拥塞的路径,而不是拥塞的线路。
为了使用路径级别的拥塞控制信号去达到线路级别的拥塞信息,我们使用一种启发式的方式基于观察,一条拥塞线路导致使用这条线路的多条信道都有丢包。这个逻辑在算法中有描述。启发式的方法扩大了上一个时间段内一个特定接收端虚拟机反馈消息对于给这个虚拟机发送信息的带宽分配比例的影响。
第二步:把每条线路上每个虚拟机的带宽分配转化为每条线路上每条信道路径上的带宽分配。系统运行一个本地分配通过分布式的计算,把每条线路上每个虚拟机的带宽分配给每条信道分配带宽。
4 小结
本文研究出一种新颖的带宽权重赋予机制(PES权重赋予机制,)和一种基于网络权重的带宽分配算法。通过和现有机制在所提性能评价指标上的对比,分析我们所提出机制的性能优越性。
参考文献:
[1] Katz R H, Tech Titans Building Boom [C]. IEEE SPECTRUM, Feb 2009.
[2] Roscnblum M,Garl'mkel T.Virtual Machine Monitors:Current technology and future Trends[J].Computer, 2005,38(5):39-47.
[3] Guo C, Lu G, Wang H J, et al. Secondnet: a data center network virtualization architecture with bandwidth guarantees[C]. In Proceedings of the 6th International Conference, Co-NEXT 10, pages 15:1–15:12, New York, NY, USA, ACM,2010.
[4] Shieh A, Kandula S, Greenberg A, et al. Sharing the data center network. In Proceedings of the 8th USENIX Symposium on Networked Systems Design and Implementation (NSDI) [C]. USENIX, March-April,2011.
[5] Shieh A, Kandula S, Sirer E. SideCar: Building Programmable Datacenter Networks without Programmable Switches[C]. In HotNets, 2010.