计算机应用   2016, Vol. 36 Issue (10): 2698-2703  DOI: 10.11772/j.issn.1001-9081.2016.10.2698
0

引用本文 

闫成雨, 李志华, 喻新荣. 基于自适应过载阈值选择的虚拟机动态整合方法[J]. 计算机应用, 2016, 36(10): 2698-2703.DOI: 10.11772/j.issn.1001-9081.2016.10.2698.
YAN Chengyu, LI Zhihua, YU Xinrong. Virtual machine dynamic consolidation method based on adaptive overloaded threshold selection[J]. JOURNAL OF COMPUTER APPLICATIONS, 2016, 36(10): 2698-2703. DOI: 10.11772/j.issn.1001-9081.2016.10.2698.

基金项目

江苏省科技厅产学研联合创新基金资助项目(BY2013015-23)

通信作者

喻新荣(1992—),男,江苏南通人,硕士研究生,主要研究方向:云计算、并行计算、分布式计算,E-mail:cheneyyin@hotmail.com

作者简介

闫成雨(1992—),男,江苏徐州人,硕士研究生,CCF会员,主要研究方向:云计算、网格计算、分布式计算;
李志华(1969—),男,湖南保靖人,副教授,博士,主要研究方向:计算机网络、信息安全、数据挖掘

文章历史

收稿日期:2016-04-11
修回日期:2016-06-16
基于自适应过载阈值选择的虚拟机动态整合方法
闫成雨1, 李志华1,2, 喻新荣1    
1. 江南大学 物联网工程学院, 江苏 无锡 214122 ;
2. 物联网应用技术教育部工程研究中心(江南大学), 江苏 无锡 214122
摘要: 针对云环境下动态工作负载的不确定性,提出了基于自适应过载阈值选择的虚拟机动态整合方法。为了权衡数据中心能源有效性与服务质量间的关系,将自适应过载阈值的选择问题建模为马尔可夫决策过程,计算过载阈值的最优选择策略,并根据系统能效和服务质量调整阈值。通过过载阈值检测过载物理主机,然后根据最小迁移时间原则以及最小能耗增加放置原则确定虚拟机的迁移策略,最后切换轻负载物理主机至休眠状态完成虚拟机整合。仿真实验结果表明,所提出的方法在减少虚拟机迁移次数方面效果显著,在节约数据中心能源开销与保证服务质量方面表现良好,在能源的有效性与云服务质量二者之间取得了比较理想的平衡。
关键词: 云计算    虚拟机整合    马尔可夫决策过程    服务质量    能源有效性    
Virtual machine dynamic consolidation method based on adaptive overloaded threshold selection
YAN Chengyu1, LI Zhihua1,2, YU Xinrong1     
1. School of IoT Engineering, Jiangnan University, Wuxi Jiangsu 214122, China ;
2. Engineering Research Center of IoT Technology Application, Ministry of Education (Jiangnan University), Wuxi Jiangsu 214122, China
Abstract: Considering the uncertainty of dynamic workloads in cloud computing, an Virtual Machine (VM) dynamic consolidation method based on adaptive overloaded threshold selection was proposed. In order to make a trade-off between energy efficiency and Quantity of Services (QoS) of data centers, an adaptive overloaded threshold selection problem model based on Markov decision processes was designed. The optimal decision was calculated by solving this problem model, and the overloaded threshold was dynamically adjusted by using the optimal decision according to energy efficiency and QoS of data center. Overloaded threshold was used to predict overloaded hosts and trigger VM migrations. According to the principle of minimum migration time and minimum energy consumption growth, the VM migration strategy under overloaded threshold constraint was given, and the underloaded hosts were switched to sleep mode. Simulation results show that this method can significantly avoid excessive virtual machine migrations and decrease the energy consumption while improving QoS effectively; in addition, it can achieve an ideal balance between QoS and energy consumption of data center.
Key words: cloud computing    Virtual Machine (VM) consolidation    Markov decision processes    Quantity of Service (QoS)    energy efficiency    
0 引言

高能耗是云数据中心资源管理面临的一大挑战,随着数据中心的规模不断扩大,高能耗问题更加突出[1]。IBM的调研报告[2]指出,数据中心物理主机的平均CPU使用率只有15%~20%,而处于空闲状态的物理主机一般消耗其峰值能耗的70%[3]。可见,云数据中心开启的空闲物理主机越多,则其能源有效性越低,从而造成了极大的资源浪费。

虚拟化节能技术作为数据中心采用的主要节能技术之一,已经获得了广泛的研究[4]。虚拟化技术允许云计算供应商在单个物理主机上创建多个虚拟机,并且可通过迁移虚拟机来调整物理主机与虚拟机之间的映射关系。供应商利用该技术并根据虚拟机当前资源使用情况关闭部分低负载的物理主机,从而周期性地动态整合虚拟机达到节能的目的。然而云数据中心的负载处于变化状态,当虚拟机的资源需求上升时,过于激进的虚拟机动态整合方法使得预留资源紧张,将导致资源需求得不到满足,不能确保云计算供应商遵守与用户签订的服务等级协议(Service Level Agreement,SLA),使服务质量受影响。因此,云环境下虚拟机动态整合方法面临的主要挑战是如何在保证服务质量的同时节约数据中心能耗。

为了在节能的同时改善服务质量,在整合虚拟机之前需要检测出存在过载风险的物理主机。文献[4]指出CPU资源是影响数据中心能耗的关键因素,并且CPU资源利用率与系统整体负载基本成正比。结合上述观点,文献[4]提出了设置物理主机CPU使用率过载阈值的思想,在部署虚拟机时保持使用率低于固定的阈值,预留空闲资源,应对负载变动,以期望达到保证服务质量的目的;对CPU使用率超出阈值的物理主机,选择其中的一部分虚拟机迁移到其他物理主机,解除资源过载。但是文献[4]同时指出,随着过载阈值的增加,数据中心能耗整体呈下降趋势,但服务质量也随之下降,可见设定静态过载阈值的方式难以在节能同时兼顾服务质量。文献[5-7]所作研究均利用设置固定的阈值来触发虚拟机迁移。文献[8]通过研究指出,云数据中心的工作负载复杂多变,设置静态过载阈值的方法不能根据负载的动态变化来调整预留空闲资源大小,使得虚拟机动态整合方法难以合理分配资源,导致低性能、高能耗。

为了在资源需求时变环境下达到较好的服务质量和资源利用率,文献[8]提出了自适应启发式的虚拟机动态整合方法。该方法通过分析物理主机历史负载的变化模式,自适应地调整过载阈值。文献[8]具体给出了三种物理主机过载检测算法,分别为中位数绝对偏差(Median Absolute Deviation,MAD)算法、四分位距(InterQuartile Range,IQR)算法和局部回归(Local Regression,LR)算法。其中MAD、IQR算法分别通过计算近期CPU使用率的中位数绝对偏差和四分位距来度量工作负载稳定性,通过调低过载阈值,为负载不稳定的物理主机预留更多的资源,以此来应对下一阶段的资源需求,从而改善服务质量;但是MAD、IQR算法忽略了近期负载变化趋势,导致负载不稳定的物理主机需要长期预留大量资源,反而降低了资源利用率,增加了能耗开销。LR算法通过局部回归预测CPU使用率,根据预测值前瞻性地避免物理主机过载;但是对于变化幅度较大的负载,LR算法难以得到准确的预测。文献[9]基于马尔可夫链模型提出了最优马尔可夫物理主机过载检测(OPTimal Markov Host Overload Detection,MHOD-OPT)算法,在特定的服务质量的约束条件下,通过最大化每两次虚拟机迁移的时间来确定物理主机是否会存在资源过载风险;但是该算法只关注了对服务质量的优化,而忽略了对数据中心能耗可能产生的负面影响。文献[10]将基于虚拟机迁移的负载均衡问题建模为基于马尔可夫决策过程(Markov Decision Process,MDP)的随机序贯决策问题,通过最大化系统长期期望报酬来优化每一次虚拟机迁移决策,缓解高负载物理主机的过载风险,使数据中心长期保持负载均衡状态。然而上述研究仅考虑了服务质量,而忽略了通过迁移虚拟机来均衡负载可能会增加开启的物理主机数量,降低资源利用率,增加数据中心能耗。

存在过载风险的物理主机需要迁移出部分虚拟机转移负载,从而改善服务质量。对此,文献[8]提出了最小迁移时间(Minimum Migration Time,MMT)、最大关联(Maximum Correlation,MC)和随机选择(Random Selection,RS)三种虚拟机迁移选择算法。由于被迁移的虚拟机需要停止服务,会对服务质量造成影响,文献[8]的相关研究表明MMT算法通过减少迁移时间能够有效地改善服务质量。然而,MMT算法每次选择迁移时间最小的虚拟机难以保证总的迁移时间最小化。

针对以上研究存在的不足,本文提出了基于自适过载阈值选择的虚拟机动态整合(Adaptive Overloaded Threshold Selection-based Virtual Machine Dynamic Consolidation,AOTS-VMDC)方法。AOTS-VMDC方法首先通过感知数据中心能源有效性以及服务质量,权衡服务质量与能耗间的关系,从而选择过载阈值;然后,该方法结合过载阈值根据资源预警条件检测出存在过载风险的物理主机,以最小迁移时间为准则选择过载主机上的待迁移虚拟机,从而均衡数据中心负载改善服务质量,最后切换轻载物理主机至休眠状态达到绿色节能的目的。实验结果表明,AOTS-VMDC能够有效地降低数据中心能耗,改善服务质量,并在二者之间取得理想的平衡。

1 数据中心能耗估算

对t时刻数据中心各类资源进行抽象,假设数据中心的物理主机数量为n,hi(i∈{1,2,…,n})表示编号为i的物理主机;数据中心部署的虚拟机数量为m,vmj( j∈{1,2,…,m})表示编号为j的虚拟机。Xt为n×m阶分配矩阵,表示t时刻数据中心物理主机与虚拟机间的分配关系,Xt=(xijt)n×m,其中,xijt=1表示vmj分配在hi上;反之xijt=0。矩阵St=diag(s1t,s2t,…,snt),若$\sum\limits_{j=1}^{m}{a_{ij}^{t}}>0$,令sit=1表示物理主机hi处于活动状态;反之,令sit=0表示物理主机hi处于休眠状态或关闭状态。向量Rrt=(r1r,t,r2r,t,…,rmr,t)T,rjr,t表示虚拟机vmj在t时刻向物理主机请求的CPU资源;向量Rat=(r1a,t,r2a,t,…,rma,t)jT,ra,t表示在t时刻物理主机分配给虚拟机vmjCPU资源;向量Rh=(r1h,r2h,…,rnh)iT,rh表示物理主机hiCPU资源配置;向量Rct=(r1c,t,r2c,t,…,rnc,t)iT,rc,t表示物理主机hi已被占用的CPU资源,可通过式(1)计算:

$r_{i}^{c,t}=\sum\limits_{j=1}^{m}{r_{j}^{a,t}\times {{a}_{ij}}}$ (1)

向量Pp=(p1p,p2p,…,pnp)iT,pp表示物理主机hi的峰值功率;向量Pi=(p1i,p2i,…,pni)iT,pi表示物理主机hi的空闲时功率;向量U1t=(ut,u2t,…,unt)iT,ut为物理主机hi的t时刻CPU使用率,uit可通过式(2)计算:

$u_{i}^{t}={r_{i}^{c,t}}/{r_{i}^{h}}\;$ (2)

向量P1t=(pt,p2t,…,pnt)T,pit为物理主机hi在t时刻的功率,文献[11]用服务器峰值功率、CPU使用率、服务器空闲功率和峰值功率的能耗比组建能耗模型。受此启发,pit可通过式(3)计算:

$p_{i}^{t}=s_{i}^{t}\left[ \left( p_{i}^{p}-p_{i}^{i} \right)u_{i}^{t}+p_{i}^{i} \right]$ (3)

那么时间段t∈[T,T+Δt)内,数据中心能耗可根据式(4)计算:

$EC=\int_{T}^{T+\Delta t}{{{\left\| {{P}^{t}} \right\|}_{1}}dt}$ (4)
2 自适应过载阈值选择 2.1 过载阈值选择的MDP模型

为了改善数据中心服务质量,可根据式(5)所示的CPU资源过载预警条件检测出存在过载风险的主机:

$u_{i}^{t}>{{T}_{u}}$ (5)

当物理主机hi在t时刻的CPU使用率超出过载阈值Tu时,则从该主机上迁出部分虚拟机,使CPU使用率低于阈值来预留资源,从而改善服务质量。然而过载阈值选择不当可能会造成虚拟机迁移频繁发生影响服务质量,也有可能导致资源利用率下降增加数据中心能耗。本文提出了根据数据中心能源有效性以及服务质量情况动态选择过载阈值的解决思路。

数据中心关注的性能主要从能源有效性和服务质量两个方面进行评价,为了度量两次虚拟机整合时间间隔内数据中心的能源有效性与服务质量,分别定义了计算能效(Computational Energy Consumption Efficiency,CECE)和服务等级协议执行度(Service Level Agreement Fulfillment,SLAF)。

定义1 计算能效CECE。

数据中心的能源有效性一般可通过资源利用率进行衡量,然而考虑到物理主机间存在能耗异构性,于是本文定义了计算能效。参照式(4)的能耗估算方式,在时隙[T,T+Δt)内,计算能效ceceTΔt如式(6)所示:

$cece_{T}^{\Delta t}=\left\lfloor \left( \frac{\int_{T}^{T+\Delta t}{{{\left\| {{P}^{t}}-{{S}^{t}}{{P}_{i}} \right\|}_{1}}dt}}{\int_{T}^{T+\Delta t}{{{\left\| {{S}^{t}}\left( {{P}_{p}}-{{P}_{i}} \right) \right\|}_{1}}dt}} \right)/{{\theta }_{c}}\ \right\rfloor \times {{\theta }_{c}}$ (6)

其中:Pt可根据式(3)计算;θc为计算能效划分精度,本文取0.1。ceceTΔt∈CECE,CECE={0,0.1,…,1},ceceTΔt越趋近1,表明数据中心将能源用于计算服务的能力越强,能源有效性越高;ceceTΔt接近0,表明大量物理主机处于低负载,需要收缩物理主机规模,降低能耗。

定义2 服务等级协议执行度SLAF。

结合文献[12]基于SLA虚拟化资源管理机制的相关研究,在时隙[T,T+Δt)内,服务等级执行度slaf TΔt如式(7)所示:

$\begin{align} & slaf_{T}^{\Delta t}= \\ & \max \left\{ \left\lfloor \left( 1-\frac{\int_{T}^{T+\Delta t}{{{\left\| R_{r}^{t}-R_{a}^{t} \right\|}_{1}}dt}}{{{p}_{slav}}\cdot \int_{T}^{T+\Delta t}{{{\left\| R_{r}^{t} \right\|}_{1}}dt}} \right)\frac{1}{{{\theta }_{s}}} \right\rfloor \cdot {{\theta }_{s}},0 \right\} \\ \end{align}$ (7)

其中: pslavSLA服务保障率,本文取pslav=0.5%,当请求数据中心资源容量的0.5%得不到满足时,可能会出现大量按照SLA约定标准向用户交付罚金的现象;θsSLAF划分精度,本文取0.1。slaf TΔt∈SLAF,SLAF={0,0.1,…,1},slaf TΔt趋近1说明数据中心能够提供良好的服务质量,slaf TΔt趋近0则表示数据中心提供的服务质量较差。

时隙[T,T+Δt)为两次虚拟机整合时间间隔,使用ceceTΔt和slaf TΔt描述数据中心性能状态。由于虚拟机整合为周期性地进行,因此在时隙内t∈[T,T+Δt),物理主机与虚拟机间的分配矩阵未发生变化,即Xt=XT。所以ceceTΔt和slaf TΔt仅受该时隙内数据中心工作负载影响。除此之外,XT是通过虚拟机整合方法在前一时隙的XT-Δt基础上调整得到的,故当前时隙的数据中心性能状态仅依赖于上一时隙的状态,与其他历史状态无关,由此满足马尔可夫性。所以,在不同的能源利用和服务质量情况下,选择过载阈值的决策问题可抽象为MDP。基于MDP的自适应过载阈值选择模型描述如下:

记五元组M=〈S,A,P,r,β〉

其中:

1) S={(cece,slaf)|cece∈CECE,slaf∈SLAF},S为评价数据中心性能的有限状态集。

2) A={70%,75%,78%,80%,82%,85%,90%},A为有限行动集,包含了多个备选过载阈值。文献[13]对文献[4]的虚拟机动态整合方法进行相关理论证明,得到如下结论:为了保证某过载主机上所有待迁移虚拟机可被单个物理主机全部接收,要满足过载阈值Tu≥2/3。因此为了减少开启主机的数量,节约数据中心能耗,本文将过载阈值限定在70%~90%。

3) P={p(s′|s,a)|s,s′∈S,a∈A}为状态转移概率分布,其中p(s′|s,a)表示当前状态为s执行行动a到达状态s′的概率。

4) r:S×A→[0, 1],r(s,a)表示系统处于状态s执行行动a获得的报酬。对于s=(cece,slaf),通过定义如式(8)所示的报酬函数r(s,a),来评价数据中心综合性能:

$r(s,a)=r(s)=cec{{e}^{\tau }}\times slaf$ (8)

其中:r(s,a)∈[0, 1],当数据中心能源有效性以及服务性能均处于较高水平时,则r(s,a)→1表示数据中心综合性能较优;当cece或slaf趋于0时,则r(s,a)→0,说明数据中心能源有效性较低或服务性能较差。τ为cece相对于slaf的权重系数,随着τ减小,r(s)对能源利用更加敏感;反之r(s)更关注服务质量的变化,本文τ设置为1。

5) β为折扣因子。

当前时刻,假设数据中心处于状态s,选择能够使数据中心长期保持较优状态的过载阈值。根据折扣准则[14]衡量数据中心长期综合性能,用式(9)所示状态值函数Vπ(s)描述。

${{V}^{\pi }}(s)=E\left[ \sum\limits_{t=0}^{\infty }{{{\beta }^{t}}r({{s}_{t}},\pi ({{s}_{t}}))}|{{s}_{0}}=s,\pi \right]$ (9)

其中:确定性平稳策略π为S→A的映射,如a=π(s)表示处于状态s,根据策略π选择过载阈值a,然后进行虚拟机整合;st表示未来t时刻的数据中心性能状态。最优状态值函数V*(s)如式(10)所示:

${{V}^{*}}(s)=\underset{\pi }{\mathop{\max }}\,{{V}^{\pi }}(s),\forall s\in S$ (10)

根据当前数据中心状态选择能够最大化数据中心长期的服务质量与能源有效性的过载阈值,因此过载阈值选择问题可形式化为式(11)所示优化问题。

${{\pi }^{*}}(s)=\arg \underset{a\in A}{\mathop{\max }}\,\left[ r(s,a)+\beta \sum\limits_{{s}'\in S}{p({s}'|s,a){{V}^{*}}({s}')} \right]$ (11)
2.2 状态转移概率在线估算

在自适应过载阈值选择模型M中,状态转移概率分布P是预先未知的,需要对其作近似估算。文献[10]使用PlantLab平台提供的工作负载数据,结合CloudSim[15]仿真平台模拟虚拟机整合,收集观测数据,通过最大似然估计获取经验状态转移概率分布,这种方式和在真实集群系统下进行计算相比,避免了巨额开销。本文采取与文献[10]类似的方式,选取表 1中3天的工作负载数据,在CloudSim仿真平台上,随机选择过载阈值,分别对单日工作负载训练多组离线观测数据。

然而,受云数据中心时变的工作负载影响,P并非稳定不变的,本文通过建立滑动窗口对P进行更新。窗口首先根据宽度W随机抽取多组离线观测数据作为滑动窗口初始观测数据集,随后窗口不断地收集新的数据,并始终保存近期W个观测数据。在t时刻,观测数据集为Lt={lt,lt-1,…,lt-W+1},lt=(st-1,at-1,st)为当前收集到的观测数据,表示t-1时刻数据中心处于状态st-1选择行动at-1,在t时刻到达状态st的事件。令Ct(s,a,s′)表示截至t时刻观测数据集中出现l(s,a,s′)的次数,则状态转移概率估算如式(12)所示:

$\hat{p}({s}'|s,a)=\frac{{{C}^{t}}(s,a,{s}')}{\sum\limits_{{s}'\in S}{{{C}^{t}}(s,a,{s}')}}$ (12)

Ct(s,a,s′)可通过式(13)计算:

${{C}^{t}}({s}'|s,a)=\sum\limits_{l\in {{L}_{t}}}{I\left( l \right)}$ (13)

其中:当l=(s,a,s′)时,I=1;否则I=0。

过小的W可能导致概率估算错误,太大的W可能降低对环境变化的敏感度,本文将结合实验设置一个合适的W,在5.3.1 节对窗口宽度的选取进行具体分析。

2.3 AOTS算法

AOTS算法首先利用滑动窗口在线估算方法估算P,然后结合值迭代[14]近似解法计算V*(s),接下来根据式(11)得到最优策略π*(s),最后根据数据中心的当前状态选择最佳过载阈值。值迭代方法是一种动态规划方法,根据贝尔曼最优性方程迭代逼近V*(s)。因此需要对贝尔曼最优性方程进行推导,首先式(9)可等价地转化为式(14),由于s0=s为当前所处状态,根据平稳策略π选择行动,到达不同状态s′的概率为p(s′|s,π(s)),式(14)可表述如式(15)所示:

$\begin{align} & {{V}^{\pi }}(s)=E\left[ r({{s}_{0}},\pi ({{s}_{0}}))+ \right. \\ & \sum\limits_{t=1}^{\infty }{{{\beta }^{t}}r({{s}_{t}},\pi ({{s}_{t}}))}\left. |{{s}_{0}}=s,\pi \right] \\ \end{align}$ (14)
$\begin{align} & {{V}^{\pi }}(s)=r(s,\pi (s))+ \\ & \sum\limits_{{s}'\in S}{p({s}'|s,\pi (s))E\left[ \sum\limits_{t=1}^{\infty }{{{\beta }^{t}}r({{s}_{t}},\pi ({{s}_{t}}))}|{{s}_{1}}={s}',\pi \right]} \\ \end{align}$ (15)

因为$E\left[ \sum\limits_{t=1}^{\infty }{{{\beta }^{t}}r({{s}_{t}},\pi ({{s}_{t}}))}|{{s}_{1}}={s}',\pi \right]$与βVπ(s′)等价,故式(15)可表示成式(16):

${{V}^{\pi }}(s)=r(s,\pi (s))+\beta \sum\limits_{{s}'\in S}{p({s}'|s,\pi (s)){{V}^{\pi }}({s}')}$ (16)

将式(16)代入式(10),得到式(17)所示贝尔曼最优性方程:

${{V}^{*}}(s)=\underset{a\in A}{\mathop{\max }}\,\left[ r(s,a)+\beta \sum\limits_{{s}'\in S}{p({s}'|s,a){{V}^{*}}({s}')} \right]$ (17)

AOTS算法具体描述如下。

算法1 AOTS算法。

输入 st,Lt

输出 Tu

步骤1 根据更新后的Lt,对每个s∈S,a∈A,s′∈S,使用式(12)计算p(s′|s,a),完成对状态转移概率分布P的估算。

步骤2 对每个s∈S,V(0)(s)=0,给定ε>0,并且置迭代次数g=0。

步骤3 对每个s∈S,根据式(17)计算V(g+1)(s)。

步骤4 判断式(18)是否成立,如果成立,则进入步骤5;否则g=g+1,返回步骤3。

$\sqrt{\sum\limits_{s\in S}{{{({{V}^{(g+1)}}(s)-{{V}^{(g)}}(s))}^{2}}}}<\varepsilon $ (18)

步骤5 对每个s∈S,根据式(11)计算π*(s)。

步骤6 当前状态为st,令过载阈值Tu*(st),算法停止。

算法时间复杂度为O(g·|S|·|A|·|S|),为多项式时间,其中g为值迭代次数。文献[14]指出值迭代方法渐进平均收敛的压缩率为β,接近于1时收敛会受影响,本文取折扣因子β为0.5以保证收敛速度,降低AOTS算法计算时间。

3 容量感知递增的虚拟机迁移选择

当物理主机CPU资源满足式(5)所示过载预警条件时,需要从主机中迁移出部分虚拟机转移负载,改善服务质量。MMT算法[8]为了减少迁移时间来改善服务质量,在每次迭代中优先迁移占用内存容量最小虚拟机,直至物理主机不再满足过载预警条件。但迁移时间最小的虚拟机对物理主机负载的影响未必是最大的,因此MMT算法难以保证总的迁移时间最小化。针对该问题,本文提出了容量感知递增迁移选择(Capacity Aware Increasing Migration Selection,CAIMS)算法。CAIMS为启发式近似算法,首先根据虚拟机内存容量按升序排列,然后按升序搜索得到多组能够解除过载的可行迁移决策,最后从中选择迁移总时间最小的迁移决策。CAIMS算法具体描述如下。

算法2 CAIMS算法。

输入 h。

输出 VMmin

步骤1 获取物理主机h的虚拟机集合VM。

步骤2 对VM中的全部虚拟机,根据虚拟机占用内存容量按升序排列。令次序索引k=1,最小内存容量迁移集合VMmin=VM。

步骤3 令VMm=∅,id=0进入步骤4。

步骤4 若次序索引k+id >VM,则算法停止;否则选择集合VM中第k+id个虚拟机vm,将vm加入到虚拟机迁移集合VMm。若VM移除VMm后,主机h的CPU利用率不满足过载预警条件,则进入步骤5;否则令id=id+1,重复步骤4。

步骤5 若VMm中的虚拟机内存总容量小于VMmin内存总容量,则令VMmin=VMm。令k=k+1,返回步骤3。

4 AOTS-VMDC方法

结合本文AOTS算法以及CAIMS算法,在文献[4, 8]的虚拟机动态整合方法基础上提出了AOTS-VMDC方法。该方法通过周期性地动态整合虚拟机,达到改善服务质量、提高资源利用率的目的。AOTS-VMDC方法的每次整合过程主要包括五个阶段:

第一阶段 过载阈值选择。AOTS-VMDC方法通过数据中心系统监测模块监测各物理主机及虚拟机的运行状态和资源使用情况,根据本文定义的CECE和SLAF,来衡量整合周期内数据中心的能源有效性以及服务质量,使用AOTS算法为新一轮的虚拟机整合选择合适的过载阈值Tu

第二阶段 检测过载物理主机。根据选择的过载阈值Tu结合式(5),检测出存在过载风险的物理主机。

第三阶段 选择待迁移虚拟机。从存在过载风险物理主机上使用CAIMS算法选择待迁移虚拟机,使物理主机不再满足过载预警条件。

第四阶段 待迁移虚拟机放置。为了优化数据中心能耗,AOTS-VMDC方法使用能耗感知的最佳适配降序(Power Aware Best Fit Decreasing,PABFD)算法[8]为虚拟机分配新的目标主机。

第五阶段 收缩活动物理主机规模。将轻载物理主机上的全部虚拟机迁移到其他物理主机,并将其切换至休眠状态,以便降低能耗。为了尽可能多地关闭物理主机,AOTS-VMDC方法通过循环迭代的方式,每次切换资源利用率最低的主机至休眠状态。

Δt作为整合周期,AOTS-VMDC方法具体描述如下:

步骤1 在第t轮虚拟机整合即t时刻,根据式(6)和式(7)分别计算整合周期内的cece(t-1)ΔtΔt、slaf (t-1)ΔtΔt,得到当前数据中心性能状态st=(cece(t-1)ΔtΔt,slaf (t-1)ΔtΔt)。

步骤2 令lt=(st-1,at-1,st),Lt=Lt-1-{lt-W}∪{lt},完成滑动窗口更新。

步骤3 使用AOTS算法得到过载阈值Tu=at

步骤4 获取活动物理主机集合Ha={h1,h2,…,hn}。针对集合Ha中的每个物理主机hi,根据式(5)判断hi是否满足过载预警条件,若满足条件,将hi从集合Ha中移除,并加入到过载物理主机集合Ho中。

步骤5 针对集合Ho中的每个物理主机hi,根据过载阈值Tu使用CAIMS算法得到主机hi的待迁移虚拟机集合VMmi,令虚拟机迁移集合VMm=VMm∪VMmi

步骤6 对集合VMm中的全部虚拟机,按其CPU资源利用率降序排列,在不满足过载预警条件下,依次为每个虚拟机选择分配后能耗增加最少目标主机。

步骤7 选择活动物理主机集合HaCPU利用率最小的主机hmin,将hmin上的全部虚拟机按CPU资源利用率降序排列,在不满足过载预警条件下,依次为每个虚拟机选择分配后能耗增加最少目标主机;然后将hmin切换至休眠状态,并将其从集合Ha中移除。重复该过程,直至遍历完Ha中全部主机。

步骤8 等待进入下一轮整合,令t=t+1,若满足整合终止条件,则停止迭代,方法结束;否则返回步骤1,进行新一轮整合。

图 1 窗口宽度W对三种性能评价指标的影响
5 仿真实验与分析 5.1 实验环境

CloudSim[15]仿真平台作为实验环境。实验模拟了一个由800个异构物理主机组成的数据中心,这些物理主机的资源配置分为两类:Hp ProLiant ML110 G4(Intel Xeon 3040 2Cores 1860 MHz,4 GB)与Hp ProLiant ML110 G5(Intel Xeon 3075 2Cores 2260 MHz,4 GB)。实验中有四种类型的虚拟机:超强CPU配置的虚拟机实例High-CPU Medium Instance(2500 MIPS,0.85 GB)、超大型虚拟机实例Extra Large Instance (2000 MIPS,3.75 GB)、小型虚拟机实例Small Instance(1000 MIPS,1.7 GB)和微型虚拟机实例Micro Instance(500 MIPS,613 MB)。为能够公平地评价提出的方法性能,实验使用了文献[8]提供的工作负载数据,即PlantLab平台在真实环境下捕获的为期10 d的CPU负载跟踪数据,相关信息见表 1。参考文献[16-17]中的仿真实验,虚拟机内存利用率、磁盘利用率和网络带宽使用率采用随机生成的方式,实验中设定内存利用率服从正态分布N(0.3,0.1),磁盘利用率服从N(0.2,0.05),网络带宽使用率服从N(0.1,0.1)。

表 1 工作负载数据特征
5.2 评价指标

为了公平地评价算法性能,本文使用了文献[8]提出的四种性能评价指标,分别为:服务等级协议违例率(SLA Violations,SLAV)、能源消耗(Energy Consumption,EC)、虚拟机迁移次数以及服务质量和能耗的综合评价指标(Energy and SLA Violation,ESV)。

SLAV用来评价单日内数据中心服务质量,定义如式(19)所示:

$SLAV=\left( \frac{1}{n}\sum\limits_{i=1}^{n}{\frac{T_{i}^{s}}{T_{i}^{a}}} \right)\times \left( \frac{1}{m}\sum\limits_{j=1}^{m}{\frac{C_{j}^{d}}{C_{j}^{r}}} \right)$ (19)

其中:T is为物理主机hiCPU资源使用过载导致SLAV的时长;T ia为物理主机hi的运行时间;Cjd为由于迁移虚拟机vmj未被满足的CPU资源请求容量;Cjr为虚拟机vmj请求CPU资源容量;n、m分别为物理主机和虚拟机的数量。该指标越低,说明提供的服务质量越好。

EC为单日内数据中心能耗,根据式(4)计算;该指标值越低,则说明数据中心资源利用率较高,能源开销较小。

ESV可通过式(20)计算,该指标值越低,则表示数据中心能耗和服务质量的综合表现较好。

$ESV=EC×SLAV$ (20)

虚拟机迁移次数为单日内数据中心发生虚拟机迁移的总次数。由于被迁移的虚拟机需要停止服务,会对服务质量造成影响,因此减少不必要的虚拟机迁移可以提高服务质量;此外,频繁的虚拟机迁移可能引起网络瘫痪,所以,执行少量的虚拟机迁移是虚拟机动态整合方法一种高效的表现。

5.3 实验分析 5.3.1 滑动窗口宽度对AOTS-VMDC方法性能影响

实验对AOTS-VMDC方法的性能与滑动窗口宽度间的关系进行了实验分析,主要研究该方法每完成288次虚拟机整合(CloudSim[15]使用单日工作负载模拟虚拟机整合的次数为288),能源消耗、服务等级协议违例率和虚拟机迁移次数三项指标受窗口宽度W影响的变化情况。AOTS-VMDC的滑动窗口宽度W依次设为1u~6u,u=288。

图 1可知,随着窗口宽度W由1u增加到3u,AOTS-VMDC方法的三种性能评价指标值均呈下降趋势,当窗口宽度大于3u时,随着W增加AOTS-VMDC方法的三种性能评价指标值呈上升趋势。出现该现象,主要是由于窗口大小设定不合理导致的:W过小使得估算得到的状态转移概率不够准确;而W过大,则会降低估算的状态转移概率对环境变化的敏感度。除此之外,随窗口宽度增加,三种性能评价指标值的下降速率要大于上升速率,说明估算状态转移概率分布时,充足的观测数据对保证AOTS-VMDC方法性能更为重要。结合上述分析,可将3u作为推荐窗口宽度。

5.3.2 AOTS-VMDC方法性能评估

CloudSim[15]仿真平台对文献[4, 8]研究的虚拟机动态整合方法进行了具体实现,其中包括文献[4]中的ST(Single Threshold)和文献[8]提出的MAD、IQR、LR四种物理主机过载检测算法,以及MMT、MC和RS三种虚拟机迁移选择算法。 根据文献[4, 8]提供的经验,四种过载检测算法的相关参数设定如下:MAD为2.5、IQR 为1.5、LR 为1.2、ST为0.8。AOTS-VMDC方法的滑动窗口宽度W设为3u。实验将AOTS-VMDC方法与12种组合得到的方法进行对比分析。

在实验结果表 2中,AOTS-VMDC简记为AOTS;AOTS等标注其后的数值表示仿真实验中设定的相应参数,如AOTS-3.0表示AOTS-VMDC方法使用的滑动窗口宽度为3u

表 2 四项指标仿真结果汇总(平均值)

表 2中能耗指标可看出,使用LR过载检测算法的方法,其能耗的平均值要明显低于参与对比的其他方法,IQR-MMT-1.5节能效果最差;与MMT算法相比,MC和RS两种虚拟机迁移选择算法降低能耗效果显著;AOTS-3.0节能效果与LR-MMT-1.2非常接近,AOTS-3.0产生的能耗相对于LR-MC-1.2和LR-RS-1.2增加11.9%左右,但明显优于其他方法。因此,可看出AOTS-VMDC方法能耗虽然高于采用LR的方法,但该方法相对于其他方法节约数据中心能耗效果良好。

表 2中SLAV指标可看出,AOTS-3.0的SLAV的平均值低于其他方法,与MAD-MMT-2.5、IQR-MMT-1.5和ST-MMT-0.8三种方法较为接近,但AOTS-3.0的能耗远低于这三种方法。使用LR的方法在保证服务质量方面效果较差,AOTS-3.0的SLAV平均值相对于LR-RS-1.2下降了约61.9%。因此,可以看出AOTS-VMDC方法对改善服务质量起到了很好的效果。

表 2中虚拟机迁移次数指标可看出,AOTS-3.0的虚拟机迁移次数明显低于其他对比方法,其虚拟机迁移次数平均值相对于MAD-MC-2.5减少了4%,相对于LR-MMT-1.2减少22.2%。因此,可看出AOTS-VMDC方法能够有效地减少虚拟机迁移次数,避免了频繁地迁移虚拟机导致网络阻塞。

根据表 2中ESV可知,AOTS-3.0综合性能表现最佳,MAD-MMT-2.5、IQR-MMT-1.5与ST-MMT-0.8三种方法的综合表现较为接近,AOTS-3.0的ESV为这三种方法的81%左右。ST-RS-0.8的综合性能最差,AOTS-3.0的ESV综合指标仅为ST-RS-0.8的40%。使用MC和RS的方法,在保证服务质量与节约能耗之间出现失衡,ESV值均大于1,综合性能表现较差。

综上所述,AOTS-VMDC方法在SLAV、虚拟机迁移次数和ESV三项指标上表现最佳,节约能耗方面表现良好;AOTS-VMDC方法在保证服务质量和减少能耗开销间寻找到了一个较好的平衡点,能够在减少虚拟机迁移的情况下提高能源有效性。

6 结语

本文提出了一种基于自适应过载阈值选择的虚拟机动态整合方法,通过在周期性的虚拟机动态整合过程中权衡数据中心能耗与服务质量间的关系,利用AOTS算法选择过载阈值,来优化虚拟机迁移时机的选择;结合CAIMS算法选待迁移虚拟机,有效地改善数据中心服务质量,使绿色节能与保证服务质量达到一个平衡。然而本文关于物理主机过载检测的研究仍存在不足,仅考虑了CPU资源,忽略了内存、网络以及磁盘等因素对数据中心服务质量和能源开销的影响,可进一步进行研究。除此之外,由于本文侧重于虚拟机整合的理论性研究,因此在未来工作中将着重于将提出的方法移植到OpenStack等云计算平台,并运用在真实数据中心环境中。

参考文献
[1] 李铭夫, 毕经平, 李忠诚. 资源调度等待开销感知的虚拟机整合[J]. 软件学报, 2014, 25 (7) : 1388-1402. ( LI M F, BI J P, LI Z C. Resource-scheduling-waiting-aware virtual machine consolidation[J]. Journal of Software, 2014, 25 (7) : 1388-1402. ) (0)
[2] BIRKE R, CHEN L Y, SMIRNI E. Data centers in the cloud: a large scale performance study [C]//Proceedings of the 2013 IEEE Sixth International Conference on Cloud Computing. Piscataway, NJ: IEEE, 2012:336-343. (0)
[3] GANDHI A, HARCHOL-BALTER M, DAS R, et al. Optimal power allocation in server farms[J]. ACM SIGMETRICS Performance Evaluation Review, 2009, 37 (1) : 157-168. (0)
[4] BELOGLAZOV A, ABAWAJY J, BUYYA R. Energy-aware resource allocation heuristics for efficient management of data centers for cloud computing[J]. Future Generation Computer Systems, 2012, 28 (5) : 755-768. doi: 10.1016/j.future.2011.04.017 (0)
[5] 向洁, 丁恩杰. 基于虚拟机调度的数据中心节能优化[J]. 计算机应用, 2013, 33 (12) : 3331-3334. ( XIANG J, DING E J. Energy-saving optimization in datacenter based on virtual machine scheduling[J]. Journal of Computer Applications, 2013, 33 (12) : 3331-3334. doi: 10.3724/SP.J.1087.2013.03331 ) (0)
[6] 李小六, 张曦煌. 虚拟化云计算数据中心能量感知资源分配机制[J]. 计算机应用, 2013, 33 (12) : 3586-3590. ( LI X L, ZHANG X H. Energy-aware resource management mechanism for virtualized cloud datacenter[J]. Journal of Computer Applications, 2013, 33 (12) : 3586-3590. doi: 10.3724/SP.J.1087.2013.03586 ) (0)
[7] 王加昌, 曾辉, 何腾蛟, 等. 面向数据中心的虚拟机部署及优化算法[J]. 计算机应用, 2013, 33 (10) : 2772-2777. ( WANG J C, ZENG H, HE T J, et al. Virtual machine placement and optimization for data center[J]. Journal of Computer Applications, 2013, 33 (10) : 2772-2777. doi: 10.3724/SP.J.1087.2013.02772 ) (0)
[8] BELOGLAZOV A, BUYYA R. Optimal online deterministic algorithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in cloud data centers[J]. Concurrency and Computation: Practice and Experience, 2012, 24 (13) : 1397-1420. doi: 10.1002/cpe.v24.13 (0)
[9] BELOGLAZOV A, BUYYA R. Managing overloaded hosts for dynamic consolidation of virtual machines in cloud data centers under quality of service constraints[J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24 (7) : 1366-1379. doi: 10.1109/TPDS.2012.240 (0)
[10] CHEN L, SHEN H, SAPRA K. Distributed autonomous virtual resource management in datacenters using finite-Markov decision process [C]//SOCC 2014: Proceedings of the 2014 ACM Symposium on Cloud Computing. New York: ACM, 2014: 1-13. (0)
[11] FELLER E, RILLING L, MORIN C. Energy-aware ant colony based workload placement in clouds [C]//Proceedings of the 2011 IEEE/ACM 12th International Conference on Grid Computing. Washington, DC: IEEE Computer Society, 2011: 26-33. (0)
[12] GARG S K, TOOSI A N, GOPALAIYENGAR S K, et al. SLA-based virtual machine management for heterogeneous workloads in a cloud datacenter[J]. Journal of Network and Computer Applications, 2014, 45 : 108-120. doi: 10.1016/j.jnca.2014.07.030 (0)
[13] MANN Z A. Rigorous results on the effectiveness of some heuristics for the consolidation of virtual machines in a cloud data center[J]. Future Generation Computer Systems, 2015, 51 : 1-6. doi: 10.1016/j.future.2015.04.004 (0)
[14] 刘克. 实用马尔可夫决策过程[M]. 北京: 清华大学出版社, 2004 : 33 -41. ( LIU K. Applied Markov decision processes[M]. Beijing: Tsinghua University Press, 2004 : 33 -41. ) (0)
[15] CALHEIROS R N, RANJAN R, BELOGLAZOV A, et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms[J]. Software: Practice and Experience, 2011, 41 (1) : 23-50. doi: 10.1002/spe.v41.1 (0)
[16] LI M, BI J, LI Z. Improving consolidation of virtual machine based on virtual switching overhead estimation[J]. Journal of Network and Computer Applications, 2016, 59 . (0)
[17] GAGGERO M, CAVIGLIONE L. Predictive control for energy-aware consolidation in cloud datacenters[J]. IEEE Transactions on Control Systems Technology, 2016, 24 (2) : 461-474. (0)