长江大学学报(自科版) 2015年2月第12卷第4期(理工上旬TU) Journal of Yangtze University(Natural Science Edition) Feb.2015。Vo1.12 No.4 ・ 29 ・ [引著格式]基于负载预测的动态虚拟机整合算法[J].长江大学学报(自科版),2015,12(4):29 ̄33,37 基于负载预测的动态虚拟机整合算法 阮志强,罗海波 (闽江学院计算机科学系,福建福州3501 08) [摘要]提出了一种基于负载预测的动态虚拟机整合算法,其利用虚拟化技术解决云数据中心负载均衡问 题,在降低计算节点能耗的同时满足服务水平协议。该方法将虚拟机整合划分为4个关键步骤(即主机 低负荷检测、主机超负荷检测、虚拟机选择和虚拟机放置)并给出相应解决策略。仿真试验结果表明, 与目前静态虚拟机管理方法相比,该算法的复杂度较低、易于实现、适用性强,能够有效降低云计算数 据中心的能耗。 [关键词]云计算;资源管理;虚拟化;能耗有效性 [中图分类号]TP393 [文献标志码]A [文章编号]1673—1409(2015)04—0029—05 近年来,虚拟机整合被认为是一种提高资源利用率和降低能耗的有效方法口 ]。通过虚拟化技术能 够在单个服务器上创建多个虚拟机实例,并将空闲节点的状态切换为睡眠或休眠状态以降低能耗。虚拟 化技术的另一个功能是可以在物理服务器(以下简称主机或节点)之间进行虚拟机动态迁移或实时迁 移,其中利用实时迁移可以动态整合虚拟机以适应负荷的变化并最小化活动主机的数量_4]。动态虚拟机 整合包含2个阶段,即从未充分利用的主机中迁移出虚拟机以保持最小的活跃主机数量以及从主机中卸 载虚拟机以避免主机超载导致性能和服务质量(Quality of Service,QoS)下降。下面,笔者对云数据 中心资源管理的能效问题进行了研究,即在确保计算资源被应用程序高效利用的过程中最小化能量消 耗,同时满足所需的服务水平协议(Service Level Agreements,SLA)。与现有工作不同之处在于,该 算法的虚拟机管理系统采用分布式体系结构,这样便于云服务提供者扩展计算节点的数量,更重要的是 可以提高系统的容错性。为此,笔者提出了一种基于负载预测的动态虚拟机整合算法(Energy—aware Dynamic Virtual—Machine Management,EDVM),并将其划分为4个子问题并给出相应解决策略。4 个子问题的具体内容如下:①确定当前主机是否处于低负荷,以便将所有虚拟机从主机中迁移,并将该 主机切换为低功耗模式;②确定当前主机是否超负荷,以便将部分虚拟机从主机中迁移到其他活动主机 或重新激活的主机上,从而避免sLA违约;③从超负荷主机中选择合适的虚拟机进行迁移;④将选择 的虚拟机放置在其他主机或重新激活的主机上。 1 系统模型 依据据上述划分的4个子问题,系统软件层可以划分为本地管理者(1ocal manager)和全局管理者 (global manager)(见图1)。本地管理者作为虚拟机管理器(virtual machine monitor,VMM)的子模 块驻留在每个节点上,并持续监控节点的CPU使用情况、低负荷和超负荷条件。当某个主机超负荷 时,本地管理者触发虚拟机选择算法,确定哪一些虚拟机从主机中迁移。全局管理者驻留在主节点上, 收集本地管理者中的信息并协调全局资源使用。全局管理者基于本地管理者的反馈信息发布虚拟机迁移 命令,实现最优的虚拟机放置策略。VMM执行实际的虚拟机迁移任务同时改变节点的电源模式。 [收稿日期]2014—10—13 [基金项目]福建省自然科学基金资助项目(2014J05079);福建省教育厅省属高校科研专项(JK2013043);福建省中青年教师教育 科研项目(JA13248);闽江学院科研启动项目(YKQ13oo3);教育部互联网创新平台开放基金项目(KJRP13O1)。 [作者简介]阮志强(1982一),男,博士,讲师。现主要从事云计算、分布式存储以及虚拟化技术方面的教学与研究工作;E—mail: rzq一911@163.corn。 理工上旬刊*计算机科学与电子信息工程 2015年2月 2动态虚拟机整合算法 2.1主机低负荷检测 基于阈值的低负荷检测方法 (简称算法1)的具体内容如下: Input:T , ,utilization Output:主机是否低负荷 1.if utilization!一 2.utilization then 1,S 2,…,S 3.i sum(utilization)/ 4.return <T 5.return false 首先从历史状态数据中获得 个最新的CPU使用率测量值 s。,S ,…, ,将其平均值 与 给定的阈值丁 进行比较。如果 低于丁 ,则算法检测到主机低负 荷情况。该算法有3个输人参 数,分别是最低阈值(T )、计算平均值的状态值个数( )以及一个CPU使用情况表( till atio )。通 过算法1找到所有的低负荷主机,然后将这些主机上的所有虚拟机迁移到选中的目标主机上。一旦虚拟 机迁移完毕,源主机状态切换为睡眠模式。如果不能为源主机上的所有虚拟机找到合适的目标主机,则 该主机必须继续运转。 2.2主机超负荷检测 图1 系统运行框架图 每个计算节点周期性执行超负荷检测算法以避免性能下降和SLA违约。文献I-s-1提出一种基于局 部回归的启发式算法,即通过计算观测样本参数值,建立一条近似原始数据的拟合曲线,并结合虚拟机 迁移时间以预测下一时刻CPU的使用情况,其具体过程如下。 令X (z)一}z — J为 和z 的距离,并将这些距离按从小到大排列后记为X㈤(-z)。定义观测 值(z ,Y )的领域权重函数为: Wi(x)=T( ) 其中,T( )是立方加权函数: 。 一 ㈩ 。 对任意X ,满足X (z)<X (z),其中,q为 周围数据子集中观测值的个数。数据的拟合直线 使用加权最小平方法,即找到参数a和b,使得: min W ( )( 一n—bx ) (3) 上述方法可以拟合一条包含k个最近CPU利用率构成的趋势多项式,k一 。令 表示最后的观 测值,z 为从数据集右边界开始的第k个观测值。对于任意z ,当z ≤z ≤ 时,满足X (z )一 z ,。≤妻 ≥≤1。因此,立方加权函数可以简化为T ( )一(1-"O 3)。,其中,。≤ ≤1, 一 相应的权重函数为: ( 一慝 。 ㈩ 第lz卷第4期 阮志强等:基于负载预测的动态虚拟机整合算法 ・31・ 主机超负荷检测算法(简称算法2)描述整个CPU超负荷检测流程,其具体内容如下: Input:闭值T ;参数 ,n,t ,utilization Output:主机是否超负荷 1.if len(utilization)<n then 2.return false 3.estimates PrameterEstimates(utilization) 4.prediction—estimatesEo]+estimates[1]×( +t ) 5.return ×prediction≥T 、 在该算法中,对于每一个新的CPU使用率的观测值,找到一条新的曲线f(x)一a十 ,用于估计下 一个观测值f(x川),一旦满足以下不等式,则算法检测到主机超负荷,需要从主机中卸载一些虚拟机: ・厂(z +1)≥T z +l— ≤t (5) 式中, 是一个安全参数;f是主机空闲时的功耗比例;t 是虚拟机迁移需要的最大时间。 2.3虚拟机选择 一旦检测到主机超负荷,下一步骤是选择合适的虚拟机进行迁移。下面,给出一种最少虚拟机迁移 Input:主机列表(HL) Output:虚拟机迁移列表(ML) 1.for i in HL do 2.VL—i.get~个数策略(Least number of Migration,LM)的虚拟机选择方法(简称算法3),其具体内容如下: VM——List() —3.VL.Decreasing4.Host—sortutilization() —U i.gethostutilization() 5.Optset ̄-MAX 6.while HostU>T do —7.for j in VL do 8.ifJ.get—utilization()>HostU—T then —9.k—J.get—utilization()一Host—U+T 10.if k<0ptset then ~11.Opt—set—k 12.OptVM— 13.else if 0pt——set—MAX then 14.OptVM— break 15.Host—U_卜I Host——U—OptVM.getutilization() ——16.ML.add(OptVM) 1 7.VL remove(OptVM) —18.if Host—U<Tz then —19.ML.add(I.gethostutilization()) 2O.VL.remove(i.gethostutilization()) ——21.returnML 由于虚拟机迁移需要耗费较多的资源开销,LM策略希望减少虚拟机迁移的个数。当算法2监测到主 机CPU使用率超过给定阈值T 时,将触发算法3的虚拟机选择算法并选择部分虚拟机进行迁移。同样 的,当算法1监测到CPU使用率低于最低阈值T 时,该主机上所有的虚拟机都将迁移到其他主机。 用 表示当前分配给主机 的虚拟机集合,P(Vj)表示集合 的幂集,则LM策略的目标是找到 一个集合S∈P( )满足以下条件: ’R∈P(V )' J一 口( )<丁^'l R I min’ s= 当 >T^时 当 <T 时 (6) 其他 ・32・ 理工上旬刊*计算机科学与电子信息工程 2015年2月 式中, ,是主机J当前的CPU使用率;U。( )是虚拟机 占用CPU使用率的百分比。 算法3的执行过程如下:首先,将虚拟机按CPU使用率降序排列,然后反复查找虚拟机列表 (VL)以找到最适合的虚拟机。这里,最适合的虚拟机需要满足以下条件:①该虚拟机的CPU使用率 必须大于主机总的CPU使用率与最高阈值之差;②如果该虚拟机被迁移出主机,那么最高阈值与新的 CPU使用率之差应该是所有虚拟机中最小的。如果找不到这样的虚拟机,就选择具有最高CPU利用率 的虚拟机。一旦主机中新的CPU使用率降至最高阈值以下则算法结束。显然,算法3的复杂度与超负 荷主机个数及其分配的虚拟机个数成正比。 2.4虚拟机放置 虚拟机放置类似于装箱问题,箱子表示物理节点,物品就是待分配的虚拟机,每个箱子有大小和价 格2个变量。箱子大小表示节点可用的CPU容量,价格对应节点的功耗。由于装箱问题属于NP—hard 问题,可使用一种启发式算法,即最佳适应递减法(Best Fit Decreasing,BFD),该算法使用不超过11/9 ・OPT+1的箱子(OPT为最优算法所需的箱子个数) 。下面,笔者采用改进的BFD算法(简称算 法4),其具体内容如下: Input:主机列表(HL),虚拟机列表(VL) Output:放置列表(PL) 1.VL.Decreasingsort—~utilization() 2.for i inVL do 3.LeastPower+一MAX 4.HostAllocated 5.{orj in HL do 6.ifJ≥i then 7.power ̄--PowerEstimation(HI ,VI ) 8.if power<LeastPower then 9.HostAllocated.卜I 10.LeastPower power 1 1.if HostAllocated≠ then 12.Add(HostAllocated,i)to PL 13.return PL 该算法将虚拟机按照当前的CPU使用率降序排列,这样主机的功耗可以最小的幅度递增,使得算 法能够利用主机之间的异构性,优先选择能效最高的节点。该算法的复杂度为nm,其中 为主机个 数,m为需要放置的虚拟机个数。 3性能评估 3.1仿真试验环境的搭建 为了确保试验的可重复性,利用CloudSimc 模拟云计算环境。在仿真试验中,数据中心有100个异构 物理节点,每个节点模拟单核CPU(可量化为1000、2000或3000MIPS不等的处理能力),8GB内存和 1TB的存储空间,每个服务器网络带宽为1GB/s。服务器的功耗模型参照文献[3],其定义如下: P(“)=f・P +(1一厂)・P ・ (7) 式中,P 是主机完全利用情况下的最大功耗; 是CPU利用率。 在仿真试验中,P…设为常用值250W,而CPU使用率是一个随时间变化的函数U( )。因此,一 个物理节点的总能耗(E)可以表示为: E= ( ))d£ (8) 每个虚拟机需要单核CPU(250、500、750或1000MIPS)、128MB内存和1GB存储空间。为此, 选取2个典型比较方案,即随机虚拟机选择策略(Random Selection,RS)和最短虚拟机迁移时间策略 芝哥 硝1v∞ 第12卷第4期 阮志强等:基于负载预测的动态虚拟机整合算法 加 ・33・ H 8 (Shortest Time of Migration,SM)。RS是在CPU使用率到达某个阈值时,任意选择一个虚拟机进行 迁移,而放置虚拟机时随机选择一个空闲主机。SM是在CPU使用率达到某个阈值时选择一个迁移时 间最短的虚拟机进行迁移,迁移时间由虚拟机占用的内存大小与当前可用网络带宽之比,放置虚拟机时 应首先考虑内存占用较小的虚拟机。由于SM采用贪婪算法的工作方式找到合适的虚拟机,因而具有典 型的代表意义。 3.2试验结果及分析 为了评估几种方案在不同工作负荷和不同 时间段下的性能,将RS和SM的阈值设为某一 固定值(如80 ),相应地,EDVM双阈值可 设为40 ~8O 。图2所示为能耗和用户虚拟 机请求个数的关系图。从图2可以看出,随着 虚拟机请求个数的增大,几种方案的能耗都不 同程度地上升。由于EDVM采用预测的方法来 避免主机超负荷导致能耗急剧增大,且在虚拟 ^ . \骥 赣 辩峭 藉但 机迁移和放置时总是选择最佳的虚拟机,从而 在整体性能上优于其他方法。尽管SM每次都 选择迁移时间短的虚拟机,但是,随着系统或 主机负荷的增大、虚拟机之间的差异缩小以及 图2能耗与虚拟机请求个数的关系图 主机的网络带宽不断变化,只能做到局部性能最优,很难保证整体性能最优。 图3所示为SLA违约率与虚拟机请求个数的关系图。从整体上看,RS、SM和EDVM的SLA违 约率分别是14.9 、8.4 和3.3 ,EDVM的违约率最低。 图4显示了整个云数据中心持续运行一周统计的虚拟机迁移次数情况。从图4可以看出,EDVM 的虚拟机迁移次数最少(只有SM方法的5O 左右),并且基本维持在(2046,3069)区间内上下波 动,这说明EDvM方法能够有效整合虚拟机资源。 1×10‘ l—二 e- lSM l -.-ljii….-- i ~ i…… i…牛. i... ; … 9×lOs I一 I .1':'r-DVMI i i i i ii —I...… m『 8×lOs 7×103 / ,、、 I一●’、。 6×lOs . : . ,一上— : ——占—— Y I l l 5×10 4×103 3×l00 r i 1, j 、r 丫 T l I j j i i : i ii l 2×lO0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 24 48 72 96 120 144 168 虚拟机请求个数 时间/h 图3 SLA违约率与虚拟机请求个数的关系图 图4一周内虚拟机迁移次数图 4结语 提出了一种基于负载预测的动态虚拟机整合算法,将云计算的资源管理划分为4个子问题并提出了 具体解决方案。仿真试验结果表明,该算法在节能效率和服务质量上都优于目前静态虚拟机管理方法。 同时,该方法的算法复杂度较低、易于实现、适用性强,可以有效降低目前云计算数据中心的能耗,从 而实现绿色云计算。 (下转第37页) 第12卷第4期 罗来俊等:网络工程实验平台的构建与应用 ・37・ 现代网络工程实验室大都采用基于WEB的实验管理软件对设备进行管理[7]。在实验管理软件的管 理下,学生实验前必须先获得实验室为其分配的特定权限的账号,用账号登陆后才能进行相关操作,如 查看实验要求、登陆设备做实验、在线提问等。管理员则具有设置学生账号、分配操作权限、发布实验 信息、恢复设备状态等功能(见图3)。 为拓展实验室的功能,还可以将WEB服务器与Internet连接,实验室就可以在无人值守的情况下 继续远程为用户提供实验平台。这样即便在课后及周末等非实验室开放时间,实验室也可以继续通过网 络发挥其功能。教师可以远程发布实验公告、在线回答学生的提问、监管实验设备;学生可以远程访问 网络实验室,远程做实验。该方法将网络实验室的功能从时间和空间方面提升到了一个新的高度。 3 结语 从近几年的实践教学效果来看,实践教学过程中将虚拟与真实实验平台紧密结合、取长补短、充分 发挥各自的优点,能较好的提升实验课程的教学效果。 [参考文献] [1]顾国盛.应用型本科高校计算机网络实验室的建设EJ].实验室研究与探索,2013,32(1):16O~161. [2]温卫.基于仿真实验平台的网络工程专业教学模式的研究及实践[J].江西理工大学学报,2009,30(4):89~9l_ [3]桂学勤.基于模拟器的网络工程实验室建设方案探讨[J].计算机教育,2013(1):41~44. [4]陈俊健.网络工程实验室建设及实验教学研究LJ].中国电子商务,2012(4):194~195. r5]黄重水,张旭东,叶阳.网络工程专业教学实验室建设探讨EJ].计算机教育,2012(1):75~78. r6]王燕,李华,卢慧.网络工程课实验教学结构的改革探索[J].计算机教育,2013(14):29~32. [7]杨建良,李勇帆.基于Web的网络工程在线虚拟实验室的研究与开发[J].中国教育信息化,2013(3):73 ̄75. [编辑] 辛长静 (上接第33页) [参考文献] [1]胡志刚,欧阳晟,阎朝坤.云环境下面向能耗降低的资源负载均衡方法[J].计算机工程,2012,38(5):53~55. r2]叶可江,吴朝晖,姜晓红,等.虚拟化云计算平台的能耗管理I-J].计算机学报,2012,35(6):1262--1285. [3]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,2011,28(5):755~768. [4]Clark C,Fraser K,Hand S,et a1.Live migration of virtual machines[A].Proceedings of the 2nd International Conference on Networked Systems Design and Implementation[C].New York:ACM,2005:273 ̄286. [5]Xu Y,Wang L.K—nearest neighbor-based weighted twin support vector regression[J].Applied Intelligence,2014,41:299 ̄309. E6]Maiza M,Labed A,Radjef M S.Efifcient algorithms for the ofifine variable sized bin-packing problem[J].Journal of Global Optimization, 2O13,57(3):1025~1038. [7]Calheiros R N,Ranjan R,Beloglazov A,et a1.CloudSim:A toolkit for modelling and simulation of cloud computing environments and evaluation of resource provisioning algorithms[J].Software:Practice and Experience,2011,41(1):23~50. [编辑] 李启栋