穆瑞辉
(新乡学院计算机与信息工程学院,河南新乡453003)
改进的在线迁移算法在云计算环境中的应用
穆瑞辉
(新乡学院计算机与信息工程学院,河南新乡453003)
针对当前虚拟机迁移算法易造成物理节点负载不均衡、能耗高和SLA违反率高等问题,提出了一种基于云计算的在线迁移算法。通过构建在线迁移算法模型和虚拟机负载评估向量,依据各物理节点的带宽占用率、内存占用率和CPU占用率来确定迁移时机和需要迁移的源物理节点;同时,依据各节点的CPU占有率、ROM使用效率和带宽的利用率来确定目标物理节点。通过仿真模拟试验得出,该算法能在虚拟机在线迁移中大幅度提高物理节点的负载均衡,且其SLA违反率和云计算数据中心能耗都最小。
违反率;虚拟机;物理节点;迁移算法
云计算[1](Cloud Computing)是一种系统运算平台,客户端不需要知道工作原理,只需通过Internet将各种SERVICE和为这些SERVICE服务的各种资源链接起来,就可以使用这些资源。可见,云计算的一个重要特点[2]就是资源的虚拟化和服务的虚拟化。
基于云计算的虚拟机在线迁移可以描述为:在不影响云计算中心提供服务的前提下,在规定的时间范围内,将虚拟机从源物理节点迁移到目标节点上,以均衡节点负载和节约云计算数据中心能耗。目前已经应用的有VMware企业的VMotion虚拟机产品[3]和Xen企业的Live Migration虚拟机产品[4]。
基于虚拟机的迁移算法主要体现在迁移物理节点时,需选择恰当的迁移时间、等待迁移的虚拟机和恰当的目标物理节点。
本文在原有算法的基础上,提出了基于云计算的迁移算法,并验证了该算法的可靠性和有效性。
图1 在线迁移算法模型
图1为在线迁移算法模型。在此算法模型中,客户端把数据计算任务上传到云计算中心,云计算平台根据各服务器的数据计算负载状况,把数据计算任务分配给负载较轻的服务器,再用相应的虚拟机来进行云计算。
2.1 虚拟机负载度量评估
可以通过检测CPU、带宽流量和内存利用率来确定相应物理节点的负载。
CPU的平均占有率为
其中,Vcpuk表示虚拟机vk中单个CPU的利用率,k为虚拟机对应的物理节点拥有CPU的数目。
物理节点上内存的占用率为
式中,m为物理节点上的vk的个数,Vusek表示vk正在使用的内存大小,Vswapk表示vk交换页面实际需要的内存大小,M表示该物理节点总的内存大小。
物理节点带宽的占用率为
其中,Vbandk表示带宽在vk上被占用的情况,Tb表示该物理节点上最大的带宽流量。
物理节点的负载情况为
2.2 确定源物理节点和选择迁移时机
数据计算中心设置一个阀值向量 Sth=(Ucputh,Umemoth,Ubandth),同时采集每一个物理节点在采集周期Tc中的节点负载向量S。如果在连续三个周期Tc内,该物理节点采集的负载向量的某个分量都大于Sth相应的分量,就激活相应的迁移算法,即:如果在连续三个数据采集周期Tc中,Ucpu都大于Ucputh,则CPU激发迁移;如果Umemo都大于Umemoth时,则内存激发迁移;如果Uband都大于Ubandth时,则带宽激发迁移。确定源物理节点和选择迁移时机的流程如图2所示。
图2 遥感服务模拟器的交互映射机制
2.3 确定和选择高效的在线迁移算法
以前的迁移算法[5]只迁移CPU占有率高的虚拟机。为了高效利用虚拟机,本文不仅考虑CPU的占用率,也考虑带宽和内存的占用率:CPU在虚拟机中的占用率越高,就表示CPU占用的资源越多;内存在虚拟机中的占用率越高,就表示内存迁移需要的能量消耗越大;带宽流量在虚拟机中越大,则表示需要发送和接受的资源越多。笔者选择CPU占用率、带宽占用率和内存占用率都比较高的虚拟机进行迁移,用V=(Vcpuk,Vusek,Vbandk)来表示,其中的三个分量分别表示CPU占用率、带宽占用率和内存占用率。
如果选择的是CPU激发迁移的物理节点,那么就要对该物理节点所对应的虚拟机向量V进行占用率排序,以确定迁移具有最大Vcpuk值的虚拟机,类似地,可选择迁移最大Vusek和最大Vbandk的虚拟机。
2.4 选择目标物理节点
一旦确定了集合,即等待迁移的虚拟机,那么就要选择恰当的目标物理节点了。选择步骤如下。
1)依据源物理节点激发的类别,也就是根据带宽、CPU和内存激发的类别,把源物理节点对应的虚拟机分成三个等待队列Qband、Qcpu和Qmemo。
2)依据带宽、CPU和内存的占用率由小到大对各物理节点排序,由此得到Qnodeband、Qnodecpu和Qnodememo三个等待队列,其中的节点分别为物理节点中带宽、CPU和内存占用率较大的节点。
3)把Qnodeband等待队列中的首元素取出,把该元素作为目标物理节点Qband队列的首元素,同时,把Qnodeband等待队列中的首元素从Qnodecpu和Qnodememo等待队列中删除。
4)把Qnodecpu等待队列中的首元素取出,把该元素作为目标物理节点中Qcpu队列的首元素,同时把该元素从Qnodememo和Qnodeband等待队列中删除。
5)把Qnodememo等待队列中的首元素取出,把该元素作为目标物理节点Qmemo队列的首元素,同时,把Qnodememo等待队列中的首元素从Qnodecpu和Qnodeband等待队列中删除。
6)重复步骤3)~5),直到Qband、Qcpu和Qmemo等待队列中都为空时结束。
2.5 基于云计算的在线迁移算法表述
基于云计算的在线迁移算法可以表述如下。
输入:基于云计算的各个源物理节点。
输出:需要迁移的等待队列<s,v,g>,也就是需要把虚拟机v从源物理节点s中迁移到目标物理节点g上。
步骤1:依据(1)式计算物理节点上CPU的占用率,依据(2)式计算物理节点上内存的占用率,依据(3)式计算物理节点上带宽的占用率,从而得出物理节点上的S向量。
步骤2:根据Sth阀值,采集在连续三个Tc周期内S的分量值都大于Sth向量值的源物理节点,同时把S的分量记录为对应的带宽激发节点、CPU激发节点和内存激发节点,得到源物理节点集合。
步骤3:依据激发类型,迁移物理节点上对应值最大的虚拟机,比如该物理节点是内存激发节点,那么就在该物理节点上选择内存占用率最高的虚拟机迁移,从而得到表示等待迁移的虚拟机的集合。
步骤4:依据2.4中步骤1)、2)得到等待队列Q band、Q cpu、Q memo和Q nodeband、Q nodecpu、Q nodememo。
步骤5:将Qband、Qcpu和Qmemo中的虚拟机根据2.4中步骤3)~6),分别迁移到物理节点队列Qnodeband、Qnodecpu和Qnodememo。
本文利用基于云计算的仿真模拟工具Cloudsim[6]来构建实验环境,表1是基于云计算环境中的实验参数。在模拟环境中仿真与文中算法的结果比较如表2所示。
表1 云计算环境实验参数
表2 实验结果比较
通过表2可以看出,因为文中算法从带宽占用率、内存占用率和CPU占用率来进行分析,所以在选择目标物理节点、等待迁移的虚拟机和源物理节点上的效率更高,从而使迁移效率更高。因此,在等待迁移的数量不为最小值的情形下,该算法SLA违反率较低,能耗最小。另外,通过以牺牲用户的QoS作为代价来提高负载均衡和节能的方法,具很高的SLA违反率。
本文算法对传统算法中确定目标物理节点、选择等待迁移的虚拟机和选择源物理节点等迁移的各个关键点进行了优化,通过动态分配迁移虚拟机来实现云计算环境下的节能和负载均衡。仿真结果显示,虚拟机在线迁移中,能够提高物理节点的负载均衡,同时能耗最低。以后还需要研究如何解决在用户QoS需求越来越高的情况下,在云计算环境中实现高效的虚拟机迁移的问题。
[1]VAQUERO L,RODERO M L,CACERCE J,et al.A Break in theClouds:TowardsaCloudDefinition[J].SIGCOMM Computer Communication Review,2009(1):50-55.
[2] 张彬彬,罗英伟,汪小林,等.虚拟机全系统在线迁移[J].电子学报,2009(4):894-899.
[3] 徐志红,刘进军,赵生慧.适应广域网的虚拟机在线迁移模型[J].计算机应用,2012(7):1929-1931.
[4] 王得发,王丽芳,蒋泽军.云计算环境中虚拟机智迁移关键技术研究[J].计算机测量与控制,2012(5):1389-1391.
[5] 方义秋,唐道红,葛君伟.云环境下基于虚拟机动态迁移的调度算法研究[J].微电子学与计算机,2012(4):45-48.
[6] 胡志刚,欧阳晟,阎朝坤.云环境下面向能耗降低的资源负载均衡方法[J].计算机工程,2012(5):53-55.
【责任编辑 梅欣丽】
Live M igration Algorithm Based on Cloud Com puting
MU Ruihui
(College of Computer and Information Engineering,Xinxiang University,Xinxiang 453003,China)
As current virtualmachinemigration algorithm is likely to cause physical node load imbalance,high energy consumption, SLA violation rate and other issues,this paper proposed a new algorithm based on onlinemigration of cloud computing.By building models and virtualmachine load assessment vector,through bandwidth usage based on each physical node,memory usage and CPU utilization,this paper determined migration timing and source physical nodes;meanwhile,according to the CPU usage of each node, the efficient use of ROM,and bandwidth utilization,it determined the target physical node.Finally,the simulation of environmental testing proved that the proposed algorithm in a virtualmachine live migration could greatly improve load balancing of the physical nodes,minimize the SLA violation rate and the power consumption in cloud computing data center.
violation rate;virtualmachine;physical node;migration algorithm
TP393
A
2095-7726(2015)06-0036-03
2014-11-12
穆瑞辉(1980-),男,河南辉县人,讲师,硕士,研究方向:软件设计与开发。