基于能耗降低的虚拟机动态迁移算法
2017-11-01,,
, ,
(1.华东理工大学计算机科学与工程系,上海 200237; 2.上海市计算机软件测评重点实验室,上海 201112)
基于能耗降低的虚拟机动态迁移算法
李飞标1,2,虞慧群1,范贵生1
(1.华东理工大学计算机科学与工程系,上海200237;2.上海市计算机软件测评重点实验室,上海201112)
在云计算环境中,有效的虚拟机动态迁移算法有助于降低能耗和SLA违反率。本文提出了一种改进的虚拟机动态迁移算法,通过双阈值策略、基于最小迁移代价的虚拟机选择策略和目标物理节点的概率选择策略来降低能耗,并降低SLA违反率。仿真实验表明,该方法在虚拟机动态迁移中能够降低系统的能源消耗,同时也降低了SLA违反率。
云计算; 虚拟机; 动态迁移算法; 能耗;SLA违反率
云计算是一种新的服务模式和商业计算模型,而云数据中心是当前云计算一个非常重要的应用形式,它基于云计算架构,并以松耦合形式提供计算、存储和网络资源。同时,各类物理资源采用虚拟化技术,以保证整体具备较高的绿色节能能力。其中,比较常见的应用是将数据中心的集群服务器采用虚拟化技术为用户提供按需租用服务,包括租用服务器、网络、存储等资源。随着云数据中心应用的日益广泛,如何保证虚拟机动态迁移和配置的能力已成为当前研究的热点[1-3]。然而随着越来越多的服务配置到云端,使得云数据中心资源利用率并不高,存在着资源浪费和由此带来的高能耗问题。
虚拟机动态迁移是将正在运行的虚拟机从一台主机迁移到另一台主机,保证系统正常运行。云环境下利用虚拟机动态迁移,以使迁移开销最小并保证系统的性能为目标,对数据中心的服务器资源进行整合,从而提高资源的利用率,降低系统的能耗,因此具有重要的研究意义和现实价值[4]。然而目前的一些动态迁移算法大多存在着高能耗和SLA违反率较高的问题。
为了解决云计算服务规模不断增大带来的高能耗问题,本文综合考虑和研究了系统的性能要求、能源消耗和整个虚拟机迁移过程等因素,提出了一种虚拟机动态迁移算法。
(1) 在迁移触发阶段,引入双限定阈值触发策略,即通过设定服务器负载的高阈值和低阈值,判断服务器负载是否均达到了虚拟机的迁移条件;
(2) 在待迁移的虚拟机选择阶段,基于最小迁移代价来选择虚拟机,即以对系统性能影响为迁移代价,选取具有最小迁移代价的方案进行虚拟机的迁移,避免迁移带来过多的系统资源消耗;
(3) 在目标物理节点的选择阶段,综合考虑节点的CPU计算能力和内存容量两个性能特征,基于概率机制来选择目标节点,避免群聚效应的发生。
1 相关工作
近年来,国内外已有不少学者对虚拟机动态迁移问题进行了研究,对于动态迁移的不同过程或者某些因素也提出了一些虚拟机动态迁移算法。例如,ST(Single Threshold)算法和DT(Double Threshold)算法,都是通过设定阈值来进行迁移,只不过DT算法是一种新的基于双限定阈值的虚拟机动态迁移调度算法,即通过设定虚拟机迁移的总利用率上限和设定关闭物理节点的下限进行迁移操作[5]。但是DT算法只在迁移的触发阶段加入了双阈值的触发策略,而在待迁移虚拟机选择和目标服务器选择上并没有采取相关的节能方法。在DT算法的基础上,改进的PDT(Predicted Double Threshold)算法[6]引入了负载预测机制,即在双阈值触发机制的基础上,加入了对云数据中心的负载预测机制,减少了不必要的迁移和服务器过载的发生,降低了能耗。但是由于目前的负载预测算法并不是很成熟,与实际结果可能存在偏差,各方面性能仍有提升空间。另外,LBES(Load Balancing and Energy Saving)算法[7]是一种面向负载均衡的算法,它将应用对存储资源的需求转换为一系列约束,再通过分析约束之间的关系选择合适的存储节点或者已有的调度方案,并考虑结合能量消耗,提高调度方案的复用率,维护了策略复用与节点负载之间的平衡关系,寻找到最佳的负载均衡策略,但该算法同样限制于负载平衡的难题,节能效果不显著而且SLA违反率高。
除了这些常见算法以外,还有的算法主要关注虚拟机内存迁移问题,利用马尔科夫链预测脏内存页,但这种算法只传输预测修改率低的内存页,以期减少迁移时间,并没有考虑其他因素[8]。
虚拟机动态迁移算法一般是在迁移触发、迁移虚拟机选择和目标服务器选择阶段采取策略,然而以上几种迁移算法并没有综合考虑整个迁移过程,或者是整个系统性能的影响,容易造成能耗高和SLA违反率高等问题[9-10]。
2 虚拟机动态迁移算法设计
2.1虚拟机动态迁移问题描述
越来越大的云服务规模,导致云数据中心负载过大,降低了系统的资源利用率,使得能耗越来越高。有效的虚拟机动态迁移有助于减少能量的消耗,主要包括以下3个过程:
(1) 迁移触发。设服务器集合S={s1,s2,…,sn},服务器s的资源集合smul={scpu,smem,sbw}分别表示服务器的CPU资源、内存资源和网络带宽资源。依据判定条件,选择最佳时机触发迁移。
(2) 选择待迁移的虚拟机。设虚拟机集合为V={v1,v2,…,vm},虚拟机v的资源集合vmul={vcpu,vmem,vbw}分别表示虚拟机的CPU资源请求、内存资源请求和网络带宽资源请求。当迁移触发后,在虚拟机集合V中,选择一个迁移开销最小且释放资源多的虚拟机vi进行迁移。
(3) 选择目标服务器。在目标服务器集合中,依据目标服务器选择算法给被迁移的虚拟机vi选择一个最佳目标服务器。
迁移的目标是为了取得更低的能耗,并保持较低的SLA违反率。由于CPU能耗是总能耗的主要组成部分,因此本文对于服务器的能耗主要关注CPU部分。CPU的能耗和利用率成正比关系,而且由于服务器节点负载实时变化,能耗模型应为时间t的函数,因此服务器在t0到t时间段的总能耗E如式(1)所示。
(1)
其中:u(t)表示CPU的利用率;pi(u(t))为服务器的能耗函数。
用户的服务质量用SLA违反率的高低来评价,SLA违反率越低,则用户享有更好的服务质量。结合本文考虑的因素,用虚拟机请求的CPU、内存、带宽资源和实际获得的CPU、内存、带宽资源的差值分别占虚拟机请求的CPU、内存、带宽资源比重的平均值来表示SLA违反率。
2.2迁移触发
基于双阈值的虚拟机动态迁移策略需要综合考虑服务器CPU、内存、带宽资源的使用情况。服务器的CPU利用率如式(2)所示。
(2)
其中,Vcpui表示单个CPU在虚拟机vi中的利用率;Scpu表示该物理节点总的CPU利用率。
服务器的内存利用率如式(3)所示。
(3)
其中:Vmemi表示虚拟机vi所获得的内存大小;M表示该物理节点总的内存大小。
服务器的带宽利用率如式(4)所示。
(4)
其中:Vbwi表示带宽在虚拟机vi上的利用情况;Tb表示该物理节点最大的带宽流量。
服务器节点CPU、内存、带宽资源的利用率可用一个三维向量表示,如式(5)所示。
Umul={Ucpu,Umem,Ubw}
(5)
在采集服务器的CPU、内存或带宽资源等各种资源数据时,设定一个采集周期T来保证采集到的相关数据的准确性,大幅度地减小了采集到的资源数据与实际资源数据的偏差。在确定触发迁移的判定条件时,设定一个高阈值Tup和一个低阈值Tlow。另外,为了使判定条件更加合理,选定在连续3个周期内进行判断迁移时机。如果在3个连续周期内,该物理主机采集到的资源向量Umul的3个分量均小于阈值Tlow,也就是说,服务器的CPU、内存和带宽资源的利用率在连续3个周期都低于阈值Tlow,则触发迁移,这种情况属于低负载触发迁移。另外,在3个连续周期内,如果Ucpu>Tup,则CPU会触发迁移;如果Umem>Tup,则内存会触发迁移;如果Ubw>Tup,则带宽会触发迁移,以上3种情况都属于高负载触发迁移。若是其他情况,则表明物理主机负载正常,无需迁移。具体的迁移触发流程如图1所示。
图1 迁移触发流程图Fig.1 Flow chart of triggering migration
2.3待迁移虚拟机的选择
为了使得迁移开销最小,以对系统性能影响为迁移代价,选取具有最小迁移代价的方案进行虚拟机的迁移,避免迁移带来过多的系统资源消耗。虚拟机动态迁移时会消耗系统资源,可能导致SLA违反的发生。Voorsluys等[11]为了能够计算系统性能下降的量化数值,设计了一种模型架构,提出了系统性能影响的具体量化方法,将CPU负载占用的10%作为系统性能的下降值。虚拟机迁移需要的时间ti,mig由虚拟机的内存和迁移时的网络带宽决定,如式(6)所示。
(6)
其中,BWi表示供虚拟机迁移的带宽,则迁移带来的服务器性能下降D(vi)如式(7)所示。
(7)
其中:t0表示迁移的开始时间;ti,mig表示虚拟机迁移过程花费的时间。
在选择需要迁移的虚拟机时,若Umul的3个分量均小于低阈值Tlow,也就是低负载触发的迁移时,则物理主机上所有的虚拟机都要进行迁移,与此同时还要关闭主机,或者使物理主机在低能耗的情况下工作,减小系统能耗;相反,若是高负载触发的迁移,则为了使得迁移代价最小,此时需要在判断服务器CPU、内存和带宽资源的可利用率与已经被虚拟机消耗的利用率的差值是否小于阈值Tup的同时计算并且选择最小迁移代价,在虚拟机迁移后,物理主机的各种负载也都要低于Tup,以避免物理主机超载,在保证系统的性能、SLA违反率较低的同时降低了系统的能量消耗。需要迁移的虚拟机集合R如式(8)所示。
(8)
基于最小迁移代价虚拟机选择算法流程如下:
最小迁移代价虚拟机选择算法(Min_migration_cost VM migration seclection)
Input:hostList //主机列表
Output:migVMList //迁移虚拟机列表
(1) 对hostList按照资源量从大到小排序
(2) for host inhostList do
(3) 取得当前主机所有虚拟机的使用资源 (vmUseList)
(4) 对vmUseList按照资源量从大到小排序
(5) While !(Tlow (6) minCost = MAX (7) for each VM invmUseList do (8)r=Umul-sum (Vmul/S) (9) //求解公式(7)中的判断条件 (10) While (r (11)tmig=vmem/BW//公式(5) (12) cost=D(vi) //公式(6) (13) if cost (14) migVM = VM (15) minCost = cost (16) End if (17) ifmigVM != NULL then (18) 当前主机上vmUseList删除虚拟机 (19) migVMList.add(migVM) (20) //加入当前VM到迁出list (21) end if (22) End While (23) End for (24) End While (25) End for (26) returnmigVMList 假设M为可使用的物理主机数量,N为每台物理主机的虚拟机数量,则该选择算法的时间复杂度为O(MxN)。 2.4迁移目标物理节点的选择 利用上述算法进行虚拟机选择后,需要迁移的虚拟机确定,得到需要迁移的虚拟机集合,接下来就是选择目标物理节点来完成这些虚拟机的迁移,此时需要选择合适的目标节点接受被迁移的虚拟机。 为了防止多个虚拟机同时选择性能最好的同一个物理节点迁移的群聚效应的发生,综合考虑节点的CPU资源和内存大小两个因素,计算需要迁移的虚拟机与目标服务器(CPU消耗/内存消耗)的匹配程度,基于概率选择机制选择目标节点,避免因为物理节点内存过剩但CPU利用率不足或者内存不足但CPU资源过剩导致的资源浪费。具体的目标物理节点的选择步骤如下: Step 1 根据目标节点的URavailable和虚拟机的URcost值匹配度,以及目标节点的性能,从云数据中心选择出n个符合要求的目标节点。 定义URi表示运行的虚拟机vi的CPU利用率Ucpu与该虚拟机的内存利用率Umem的比值。根据UR定义可知,虚拟机CPU利用率越高,占用的内存越小,该虚拟机UR值越大。URavailable和URcost分别代表可利用率的比值、已消耗的利用率的比值。 定义Ri表示运行的虚拟机vi的CPU利用率Ucpu与该虚拟机的内存利用率Umem的乘积。根据R的定义可知,虚拟机CPU利用率越高,占用的内存越大,R值也越大。 Step 2 根据n个目标节点的Ravailable所组成的概率模型进行选择,设节点i的当前可利用资源能力为(Ri)available,则该节点接受被迁移虚拟机的概率Pi如式(9)所示。 (9) Step 3 选择一个目标节点时,用random函数生成一个[0,1]的小数,然后根据该数最后落在哪个目标节点的概率空间中,将虚拟机迁移到这个目标节点。 物理主机可利用资源能力越大,成为接受该被迁移虚拟机目标节点的概率也越大。因此,概率机制在一定程度上避免了群聚效应发生,较大程度地提高了资源利用率。 3.1仿真实验设计 本文利用CloudSim云仿真平台[12]对提出的虚拟机动态迁移算法进行了实验验证分析,并从能量消耗、虚拟机迁移数量和SLA违反率3个方面与常用的几种虚拟机动态迁移算法进行了性能比较,这些算法包括:ST算法、DT算法、PDT算法和LBES算法。实验环境配置为MyEclipse 8.5,JDK:jdkl.6.0,CloudSim-3.0,主要实验参数见表1。 表1 环境参数配置 3.2仿真结果分析 通过仿真环境,分别对上述几种算法和本文算法进行虚拟机动态迁移测试。 图2示出了几种算法的能耗对比结果。从图2可以看出,在阈值相同的情况下,DT算法比ST算法能耗低,这是因为DT算法是在ST算法的基础上设定了一个更小的阈值,当物理机的CPU利用率小于这个阈值时,会选择将该物理机上的所有虚拟机都迁移出去,并关闭该物理机,使得总能耗降低。PDT算法和LBES算法是在DT算法的基础上通过对负载的预测机制,减少不必要的迁移和服务器过载的发生,从而降低能量消耗,但是目前预测负载机制的性能并不是很成熟。本文提出的虚拟机动态迁移算法不仅采用了双阈值策略,还在迁移过程的其他阶段采取了有效策略,使得系统资源利用率更高、能耗最小,在节能效果上比其他算法更加显著。 图3示出了几种算法的SLA违反率对比结果。由图3可以看出,在阈值相同的情况下,DT算法的SLA违反率高于ST算法,这是因为DT算法为了节能设定的阈值使得关闭的物理主机增多,相应地每个物理主机所承受的任务数增多,导致SLA违反率升高。而PDT算法和LBES算法由于考虑了负载预测加以平衡负载,所以SLA违反率降低。本文算法在DT算法的基础上,还考虑了迁移代价等,使得SLA违反率更低。 图2 几种算法的能耗对比Fig.2 Comparison of energy consumption for different algorithms 图3 几种算法的SLA违反率对比Fig.3 Comparison of the violation rate of SLA for different algorithms 图4示出了几种算法的虚拟机迁移数量对比结果。由图4可以看出,在阈值相同的情况下,DT算法、PDT算法和LBES算法都比ST算法的虚拟机迁移数量低,设定的双阈值和负载预测避免了许多无用的虚拟机迁移。本文算法设定了双阈值,并充分考虑到迁移代价最小等,大大减少了虚拟机的迁移数量。 总的来说,本文提出的动态迁移算法是对迁移过程的3个关键阶段分别加入了双阈值策略、最小迁移代价的虚拟机选择策略和基于概率机制的目标物理节点选择策略。仿真模拟对比实验结果表明,从能量消耗、虚拟机迁移数量和SLA违反率3个方面分析比较来看,本文算法比其他算法的资源利用率高、SLA违反率较低、能耗最小。 图4 几种算法的虚拟机迁移数量对比Fig.4 Comparison of the number of VM migration for different algorithms 当前高能耗是制约云数据中心发展的一大难题,针对服务器资源利用率偏低、能耗浪费严重的问题,通过分析虚拟机迁移的过程,对传统算法进行了优化,给出了相关的迁移策略,提出了一种改进的虚拟机动态迁移算法。仿真实验结果表明,本文的虚拟机动态迁移算法,通过设定虚拟机迁移的总利用率上限和设定关闭物理节点的下限进行迁移操作,使得关闭的物理主机增多,同时选择最小迁移代价虚拟机和综合考虑CPU计算能力和内存容量来选择目标服务器,减少了不必要的迁移,从而降低了能量消耗,同时也使得SLA违反率有所降低。随着虚拟机迁移技术的持续升温,在后续研究中,将会考虑在迁移过程中加入负载预测机制,研究设计切实可行的负载预测模型,使得虚拟机迁移更加高效、节能。 [1] FILANI D,HE J,GAO S,etal.Dynamic data center power management:Trends,issues,and solutions[J].Intel Technology Journal,2008,12 (1):59-67. [2] SHIEH A,KANDULA S,GREENBERG A,etal.Sharing the data center network[C]// Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation.Berkeley,USA :ACM,2011:309-322. [3] XU F,LIU F,JIN H,etal.Managing performance overhead of virtual machines in cloud computing:A survey,state of the art,and future directions[J].Proceedings of the IEEE,2014,102 (1):11-31. [4] IBRAHIM EJDAYID A.MANSOUR,etal.Effective live cloud migration[C]//IEEE on International Conference on Future Internet of Things and Cloud (FiCloud).USA:IEEE,2016:334-339. [5] 毕冉,李建中,高宏,等.无线传感器网络中基于双阈值的分布式监测算法[J].电子学报,2014,42(8):1594-1600. [6] 李丹程,王晓晨,宋晓雪,等.基于OpenStack的资源负载预测方法研究[J].计算机应用研究,2014,31(7):2178-2182. [7] 肖鹏,刘洞波,屈喜龙.云计算中基于能耗比例模型的虚拟机调度算法[J].电子学报,2015,43(2):305-311. [8] XU F,LIU F,JIN H,etal.iAware:Making live migration of virtual machines interference-aware in the cloud[J].IEEE Transactions on Computers ,2014,63 (12):3012-3025. [9] EGGER B,CHO Y.Efficient check pointing of live virtual machines[J].IEEE Transactions on Computers, 2016,65(10):3041 - 3054. [10] DENG W,LIU F,JIN H,etal.Harnessing renewable energy in cloud datacenters:Opportunities and challenges[J].IEEE Network,2013,28( 1):48-55. [11] VOORSLUYS W.Cost of Virtual Machine Live Migration in Clouds:A Performance Evaluation[M].Berlin Heidelberg:Springer ,2009:254-265. [12] RAWAT P S,DIMRI P,SAROHA G P,etal. Power consumption analysis across heterogeneous data center using CloudSim[C]//2016 3rd International Conference on Computing for Sustainable Global Development.USA:IEEE,2016:1-5. LiveMigrationAlgorithmofVirtualMachineforReduceEnergyConsumption LIFei-biao1,2,YUHui-qun1,FANGui-sheng1 (DepartmentofComputerScienceandEngineering,EastChinaUniversityofScienceandTechnology,Shanghai200237,China;2.ShanghaiKeyLaboratoryofComputerSoftwareTestingandEvaluating,Shanghai201112,China) In cloud computing environment,an effective live migration algorithm of virtual machine can greatly reduce energy consumption and the violation rate of SLA.This work proposes an improved virtual machine live migration algorithm,which adopts the double thresholds strategy,the virtual machine selection strategy based on the minimum cost of migration,and the probabilistic selection strategy of the target physical nodes.The simulation experiments show that the proposed algorithm can reduce the system energy consumption and the SLA violation rate in the virtual machine live migration. cloud computing; virtual machine; live migration algorithm; energy consumption; violation rate of SLA TP393 A 1006-3080(2017)05-0692-06 10.14135/j.cnki.1006-3080.2017.05.014 2016-11-23 李飞标(1991-),男,安徽人,硕士生,主要研究方向为云计算和软件工程等。E-mail:lifeibiao2010@163.com 虞慧群,E-mail: yhq@ecust.edu.cn3 仿真实验设计与分析
4 结束语