宋 娟,潘 欢
(宁夏大学 物理与电子电气工程学院 宁夏沙漠信息智能感知重点实验室,银川 750021)
近年来大规模节能的云数据中心的构造与使用成了政府和各大IT企业越来越重视的问题[1-4].一个云数据中心(Data Center,DC)通常配置有大量的物理节点(Physical Hosts,PH),虚拟化是云数据中心中的关键技术,虚拟化技术允许虚拟机(Virtual Machines,VM)在云数据中心内的物理节点上动态迁移从而很好的降低云客户端下载时间和节省能量消耗;每个虚拟机或许运行相同的应用或者是不同的应用,某两个虚拟机在执行过程中之间或许需要进行通信,这样的虚拟机之间存在数据依赖(Data Dependency).
数据依赖的判断方法可以通过流经过虚拟机的数据的数量来确定,在物理节点工作的过程中,因为负载变化的原因,云服务提供商往往通过某种策略在物理节点之间对虚拟机进行选择、放置、合并等操作,整个这个过程称为虚拟机迁移.最常见的云平台模拟器Cloudsim项目中提到虚拟机迁移过程分为虚拟机选择(VM Selection)过程和虚拟机放置(VM Placement)过程[5].虚拟机选择过程又分为物理主机状态判断(超负载状态Over-utilized与低负载状态Under-utilized)和虚拟机选择.只要存在超负载或者低负载状态的物理主机,其上运行的虚拟机将作为被选择对象,最后放置到新的正常物理节点之上.
目前国内外有大量的算法与策略在研究这个过程,虚拟机迁移考虑的因素从硬件因素、网络带宽、网络接口因素等多种.DDBS(data dependency based VM selection)是本文提出的考虑数据依赖的虚拟机选择策略,即将物理主机上相互有数据通信的虚拟机不作为被选择对象,迁移任务而不是迁移数据,节省网络带宽,降低能量消耗,提高云平台的服务质量QoS.最后通过CloudSim模拟器的仿真实验对基于数据依赖的虚拟机迁移策略进行了测试,实验结果表明带数据依赖的虚拟机选择方法与Cloudsim中已有的虚拟机放置算法联合起来,可以降低云数据中心的能量消耗,减少虚拟机迁移次数,减少SLA违规率,云数据中心的可用性比较好,对其他的企业构造绿色节能的云数据中心有很好的参考价值.
目前学术界为了节省云数据中心的能量消耗,构建绿色云计算环境,进行了大量的研究.第一种是运行冷凝系统保证物理服务器的空间不会过热[6];第二种是通过虚拟机迁移策略和算法,即云服务提供商应用虚拟机迁移与合并策略到公有云、私有云、混合云之中.
第二种方法主要分为三大类,第一类是单纯的虚拟机迁移策略,没有利用相关智能算法进行优化,例如文献[7,8]等;第二类是采用贪心算法、蛙跳算法、遗传算法等来进行优化的虚拟机迁移策略,例如文献[9-12].第三类是Anton Beloglazov博士等人为团队开发的以Cloudsim模拟器平台中的迁移策略为主线的虚拟机迁移策略的研究及其后续的相关研究[13-18].后续还有带温度感知的虚拟机迁移策略[19-21],第三类这些文献中的内容大多都参考了Cloudsim项目的研究思路与测试条件.
第三类的研究例如文献[16]提出了云数据中心考虑资源使用阈值边界的虚拟机分配策略,测试结果表明,它比Cloudsim中已有的Median Absolute Deviation(MAD)策略,StaticThreshold(ST)策略,Local Regression(LR)策略,Local Regression Robust(LRR)策略,Inter Quartile Range(IQR)等性能都要优秀.文献[17] 提出了云数据中心基于贪心算法的虚拟机迁移策略,利用CloudSim作为云数据中心仿真环境,测试结果表明:采用了贪心算法的迁移策略比CloudSim中已存在的虚拟机迁移策略性能要好.文献[18]提出了云数据中心基于安全检测的虚拟机迁移策略.以Cloudsim云计算模拟器中的虚拟机选择及放置策略作为性能比较对象,结果表明带安全检测的虚拟机迁移策略只增加了云端的少量能量消耗,在一定程度上保证了云端的安全.文献[19]提出了绿色云计算环境下的基于温度感知的虚拟机迁移策略,它与Cloudsim中四类虚拟机选择算法(Maximum Correlation(MC)、Minimum Utilization(MU)、Minimum Migration Time(MMT),和Random Selection(RS)进行比较,测试指标与Cloudsim的指标一致.
上述这些研究虚拟机在迁移时考虑的物理资源使用情况的维度由早期的单一CPU利用率与温度发热到现在的多个维度的指标,甚至后面还有硬件因素,网络带宽因素,网络设备接口能量消耗等.但是它们并没有考虑到虚拟机迁移的内部逻辑、数据依赖、软件因素.本文的DDBS方法也属于第三类Cloudsim项目的后续研究,由于虚拟机迁移过程非常复杂,本文暂时没有考虑安全、容错等因素[22];本文的算法与性能评价指标也参考Cloudsim项目的内容,除考虑节能目标外,还考虑了虚拟机的软件因素.
最后还有一些相关文献认为虚拟机选择的含义是通过映射(Mapping)的方式把计算任务(Tasks)分配给虚拟机[23,24],即虚拟机映射;它们往往把虚拟机选择过程与虚拟机映射(VM Mapping)再细分,当云客户端一个新任务达到,它将被映射到一个虚拟机上;在这种的情况下,要么它映射到一个存在的虚拟机,要么系统再重新产生一个虚拟机;如果一个虚拟机空余的,它应该被注销或者保存下来作为后续的重新再使用;接着才进入到本文所叙述的虚拟机选择阶段,虚拟机尺寸是这类算法的重要考虑因素.例如虚拟机映射算法关注在虚拟机最小代价计算方面,大部分文献认为虚拟机代价与虚拟机使用时间成比例[25,26],还有研究认为该代价应该由消费的资源的使用情况或者是长期处于租赁状态下的物理资源使用来计算.
已有的虚拟机映射算法认为虚拟机应该有固定的租赁报酬和固定的计算能力(capacity),尽管这样在私有云中虚拟机的计算能力可以被反复选择或者改变,而不是租赁报酬,而在后续的物理主机虚拟机放置上,真正的操作代价结合虚拟机计算能力一起必须是最小化的.
本文也把虚拟机的迁移过程分为物理主机负载检测过程、虚拟机选择过程与虚拟机放置过程,最终完成整个虚拟机迁移过程.虚拟机选择的含义是通过判断物理主机的运行状态,然后从中选择出合适的侯选迁移虚拟机.虚拟机放置的含义是把虚拟机选择算法中选择出来的虚拟机按照一定的规则均匀放置到云数据中心其他的最合适的物理节点.
从这个过程可以看出虚拟机选择和虚拟机放置应该属于两个独立的过程,这两个过程都可以通过算法进行优化.前者主要通过虚拟机尺寸、软件代价等来进行调整;后者属于一类经典装相问题,即把大量的虚拟机VM放置到大量的物理节点之中.常见的有首次适应算法First Fit、最好适应算法Best Fit、最坏适应算法Worst Fit等.在研究虚拟机选择与虚拟机放置过程中,目前的文献很少研究两个之间的关系,事实上虚拟机选择可以影响到虚拟机放置,至少在私有云中虚拟机选择和虚拟机放置都可以由一个机构去控制;在公有云中我们也必须分析虚拟机选择和虚拟机放置之间的依赖关系,然后通过调整任务的粒度和虚拟机的尺寸来改善虚拟机放置的性能.
第2节的相关工作提到的已有的虚拟机迁移策略往往都没有考虑虚拟机任务之间的数据依赖问题,这样都会对虚拟机的选择算法产生影响,本文重点考虑虚拟机选择算法的改进,虚拟机放置算法继续使用Cloudsim中的方法.由于本文属于Cloudsim项目的后续研究,所以我们先指出在CloudSim项目中已经有的虚拟机选择算法包括下面几种:
1)MaximumCorrelation(MC):最大关联选择方法,即选择同一个物理主机上的,与CPU使用效率有最高关联度的虚拟机作为对象;
2)MinimumMigrationTime(MMT): 最小迁移时间选择方法,即迁移一个在最短时间内能够完成的虚拟机作为选择对象;
3)MinimumUtilization(MU):最小使用效率选择办法,即对一个具有最小使用效率的虚拟机进行迁移.
4)RandomSelection(RS):随机选择策略,即在物理主机上随机选择一个虚拟机进行迁移.
与CloudSim项目中不同的是,DDBS(Data Dependency Based Selection)虚拟机选择考虑了虚拟机之间的数据依赖情况.
虚拟机迁移具体的过程是先主机检测、然后选择,最后放置.
CloudSim项目中,也提到几种虚拟机放置算法:
1)LocalRegression(LR):局部归约放置方法;
2)LocalRegressionRobust(LRR):鲁棒局部归约放置方法;
3)MedianAbsoluteDeviation(MAD):绝对中位差放置方法;
4)StaticThreshold(THR):静态的资源使用效率阈值放置法;
5)InterQuartileRange(IQR): 四分位数区间放置方法.
下面的四个提纲表示了本文的迁移策略的基本思路.
1)周期性的检测云数据中心的物理主机的超负载或者低负载状态(over-utilized or under-utilized);
2)判断其是否进行虚拟机迁移操作;
3)基于数据依赖完成虚拟机的选择;
4)侯选将要迁移的虚拟机进行虚拟机放置操作.
物理主机的超负载或者低负载可以通过观察它的资源使用状态来判断,如果CPU的使用效率超过90%或者低于10%都可以认为是超负载或者低负载.在这个时候,该物理节点的这个虚拟机将被选择出来,同时放置到另外一个物理节点之上.
DDBS基于数据依赖完成虚拟机的选择如图1所显示.当一个物理主机处于超负载状态,其上运行的虚拟机将进入虚拟机迁移操作.虚拟机被选择时按照其数据依赖情况完成.数据依赖主要通过运行在虚拟机之上的任务之间的数据流来判断.图1中VM1,VM2,VM3三个虚拟机运行在同一个物理主机之上,既然VM1和VM2被发现是互相数据依赖关系,这一点可以通过图1中的通信路径判断.那么DDBS将选择VM3来作为侯选迁移对象.这样决定的原因是VM3的迁移代价(cost)肯定小于VM1或者VM2.如果是其他的虚拟机迁移策略,也许会把VM1或者VM2作为侯选迁移对象,这样迁移VM1与VM2之间的交互会有很大的通信开销,包括网络带宽占用与数据移动等.本文的DDBS方法试图避免这些消耗时间与能量的开销.
图1 基于数据依赖的虚拟机迁移策略Fig.1 Data dependency based VM migration
无论物理主机处于超负载状态over-utilized还是低负载状态under-utilized,其上运行的虚拟机都要被选择,然后放置新的合适物理节点.例如图2中的场景下,物理主机1上有4个虚拟机,它由于超负载,所以要迁移一个虚拟机到物理主机2,迁移后这样它们就是处于正常的工作状态.
例如图3中的场景下,物理主机1上有1个虚拟机,它由于低负载,所以要迁移一个虚拟机到物理主机2,这样物理主机2仍然处理正常的工作状态,物理主机1空闲,自动关闭电源,节省能量消耗.
图2 超负载状态(over-utilized)的虚拟机迁移Fig.2 VM Migration in over-utilized status
虚拟机迁移过程完成之后,云数据中心的SLA(Service Level Agreement)违规率、虚拟机迁移次数、总体能量消耗完成计算,这个计算可以是24小时或者48小时之内的统计.
图3 低负载状态(under-utilized)的虚拟机迁移Fig.3 VM Migration in under-utilized status
本文基于数据依赖的虚拟机迁移策略通过Cloudsim来创建.Cloudsim是一个开源的、可扩展的、灵活的、可编程的云计算模拟器,和其他的SimGrid,Gangsim等模拟器比较起来Cloudsim支持按照需求进行资源的配置,资源的管理,可以评测云数据中心中的能量消耗相关的算法,其他的模拟器往往不提供此功能.Cloudsim的支撑平台是Java,所以采用Eclipse的编程环境很容易构造云模拟器.DDBS基于数据依赖的虚拟机选择策略工作过程主要需要计算下面4个内容:
1)使用虚拟机内部的任务之间的数据依赖关系,计算迁移代价(Cost),完成虚拟机选择DDBS.
虚拟机上的任务之间的数据依赖可以通过任务上的数据流来确定,基于任务之间的数据依赖,可以计算出迁移该虚拟机的代价(Cost),然后DDBS算法将选择与其他虚拟机比较起来代价最小的虚拟机作为迁移对象.
2)云数据中心的能量消耗的计算.
研究表明云数据中心端的物理服务器的能量消耗值主要和其CPU在某一时刻的使用率密切相关,而且基本呈线性关系.因此在DDBS中物理服务器的能量消耗可以通过这些机器的CPU使用率来表示.见公式(1):
(1)
(2)
这里wi(tj)是服务器i在tj时刻的CPU使用率,S(wi(tj))是服务器i在tj时刻的能量消耗.
还有相关文献表明,网络装置的能量消耗主要和网络设备本身的消耗及其相关的配置消耗相关.本文这里可以把网络装置认定为物理服务器,所以物理服务器的能量消耗可以按照公式(3)来表示.
S(C)=G(C)+B*Y
(3)
这里S(C)表示网络装置的能量消耗,C是网络装置的配置参数,G(C)是网络装置的线路与接口的总体的能量消耗,B表示网络接口的能量消耗,Y表示网络接口的数目.
综上所述,一个云数据中心的能量消耗可以定义为:
(4)
根据公式(2),可以得到:
(5)
这里N是物理服务器的数量.
3)SLA违规及ESV的计算.
SLA违规值表明在客户有服务请求的时候,CPU并没有分配资源的情况,因此,为了云客户端增加QoS,我们的首要目标是减少SLA违规的值.
参考文献[5]中的方法,采用了2个方法来评价SLA违规.
a)SLA violation Time per Active Host(SLATAH),单活动主机SLA违规时间;
b)Performance Degradation due to Migrations (PDM).虚拟机迁移后的性能降低情况;
所以最终SLA违规的具体值通过公式(6)来计算.
SLAV=SLATAH*PDM
(6)
SLATAH是活动主机的CPU具有100%的使用效率所占的比例.PDM是整个系统因为虚拟机迁移后的性能降低情况.
能量消耗和SLA违规率这两个指标往往是互相冲突的,QoS主要通过SLA违规(SLAViolation)来体现.如果SLA违规比率过高,表明云数据中心提供服务出现异常,这样企业将会失去商业利润.如果使用过多的IT物理资源来保证QoS,这样能量消耗就会增加,间接的提高了企业的成本,所以本文这里主要是保证能量消耗和QoS之间的平衡.参考了Cloudsim中的ESV(EnergyandSLAViolations)方法来评价整个云数据中心的性能,ESV的计算公式如下:
ESV=E*SLAV
(7)
E是云数据中心的整体能量消耗,SLAV是公式(6)中所表达的SLA违规情况.
4)云数据中心服务可用性的计算.
每经过一个时间间隔,我们必须对云服务的可用性进行计算,本文中每经过10微秒(MicroSeconds),设置为一个时间间隔.在这个时间间隔后,完成云数据中心服务可用性的计算与统计,服务可用性为分配资源与请求资源的比率.
(8)
仿真平台为Cloudsim模拟器.设置了1000个物理节点和1000个虚拟机,这样就可以保证云数据中心的基本负载与基本规模,运行时间为24小时.实验中使用了两种类型的物理服务器,HP ProLiant G4 和HP ProLiant G5.模拟器物理节点的配置与虚拟机的配置情况如表1和表2.表3显示了CPU使用效率和能量消耗之间的关系.能量模型使用的是Cloudsim项目中使用的能量模型,物理服务器中CPU使用效率和能量消耗之间的关系是通过Cloudsim工具中的编码来完成的.
表1 云数据中心中的物理节点配置
Table 1 Host configuration of cloud data centers
物理主机CPU核心数2物理主机MIPS2660物理主机内存8GB物理主机磁盘空间1TB模拟运行时间限制24 Hours
表2 虚拟机对资源的需求情况
Table 2 Resource requirements of virtual machines
虚拟机MIPS2500虚拟机核心数1虚拟机内存大小1GB网络带宽100Mbit/S虚拟机总体存储空间2.5GB
表3 基于资源使用效率的物理服务器能量消耗模型
Table 3 Engery consumption model of physical
resource uitilizaion
CPU使用效率HP ProLiant G4(W)HP ProLiant G5(W)0% 86 93.7 10% 89.4 97 20% 92.6 101 30% 96 105 40% 99.5 110 50% 102 116 60% 106 121 70% 108 125 80% 112 129 90% 114 133 100% 117 135
采用基于数据依赖的虚拟机迁移策略完成虚拟机选择算法DDBS,配合Cloudsim中的虚拟机放置算法(MAD,LRR,IRQ,LR)等,运行时间为24小时完成云数据中心能量消耗的计算、SLA违规率计算、云服务可用性的计算等.比较的对象Cloudsim中为无数据依赖的虚拟机选择(RS,MMT,MC,MU)及虚拟机放置方法(MAD,LRR,IRQ,LR)的组合,把1000个虚拟机与1000个物理主机进行调整,分3种情况进行了统计:
1)虚拟机个数小于物理主机个数;
2)虚拟机个数等于物理主机个数;
3)虚拟机个数大于物理主机个数.
图4-图7显示了数据依赖的虚拟机选择算法DDBS与(RS,MMT,MC)虚拟机选择算法中的虚拟机迁移次数、能量消耗情况、整体SLA违规率及平均SLA违规率的比较结果.从图4中可以看出,与其他虚拟机选择方法比较起来,DDBS选择方法在虚拟机迁移次数上明显要少.因为迁移次数的减少,最终影响到云数据中心的SLA违规率;DDBS选择方法也使得整个云数据中心的能量消耗减少.图5中可以看出四种选择方法的比较情况,DDBS选择方法使云数据中心的能量消耗也最少.
图4 虚拟机迁移次数性能比较Fig.4 Experimental results of VM migration numbers
图5 云数据中心总体能量消耗性能比较Fig.5 Experimental results in energy consumption of data centers
从图6和图7的实验结果可以看出,当云数据中心的虚拟机个数大于物理主机个数的时候,在SLA违规率及平均SLA违规率上DDBS选择方法处于性能中等水平,虚拟机个数小于物理主机个数时,DDBS选择方法的SLA违规率及平均SLA违规率最小.
图6 整体SLA违规比率的性能比较Fig.6 Experimental results of SLA violation
从上面的结果可以得出结论,对比(RS,MMT,MC)等方法,DDBS算法的虚拟机迁移次数和总体能量消耗等指标上明显减少,比较适合在物理主机个数很多的工作场景下,有一定的可扩展性及大规模性,但是从图6和图7看出DDBS的整体SLA违规率和平均SLA违规率与(RS,MMT,MC)比较起来不是最好的,但是在0.5%到2%范围内还是可以接受的.
图7 平均SLA违规比率的性能比较Fig.7 Experimental results of average SLA violation
为了完成可用性测试,我们每经过10微秒(Microseconds)完成在一个时间点上的请求资源与分配资源的比率的计算.将Cloudsim中的各类虚拟机选择及虚拟机放置方法组合起来,与DDBS数据依赖的虚拟机选择策略比较.图8为实验结果.
表4 DDBS的可用性的测试环境构造
Table 4 Testing environment construction of
availability for DDBS
虚拟机类型数 4物理服务器类型数2服务器上允许最大虚拟机数100虚拟机迁移的频率300.0 seconds模拟运行时间限制24 Hours最大的物理主机个数限制1000可用性计算频率10 microseconds
虚拟机选择算法RS与虚拟机分配算法IQR组合的可用性如图8RS-IQR,虚拟机选择算法MC与虚拟机分配算法IQR组合的可用性如图8MC-IQR,虚拟机选择算法MMT与虚拟机分配算法IQR组合的可用性如图8MMT-IQR,虚拟机选择算法DDBS与虚拟机分配算法IQR组合的可用性如图8DDBS-IQR,从图8可以看出,DDBS-IQR组合的可用性明显优于其他的RS-IQR,MC-IQR和MMT-IQR.
图8 DDBS-IQR策略的可用性测试结果Fig.8 Experimental results of DDBS-IQR strategy
本文提出了一种云数据中心基于数据依赖的虚拟机迁移策略,该策略在虚拟机选择过程中采用一种DDBS方法,迁移时主要考虑软件因素与虚拟机之间的数据依赖关系.参考Cloudsim项目中的虚拟机迁移过程与虚拟机迁移性能指标完成了DDBS方法的仿真测试.仿真结果表明:DDBS方法组合Cloudsim中的其他虚拟机放置策略,在虚拟机迁移次数与能量消耗上有明显的优势,可以作为IT企业构造云数据中心的参考模型.