-
在当前全社会呼吁节能环保的形势下,高额电费支出的运行成本压力,明显推动了企业从大规模数据中心建设阶段转为资源整合与高效利用阶段.同时,云计算技术下信息系统集中部署也为IT资源整合和基础设施节能创造了条件.云计算是一种新型的服务模式,它能够改变传统的信息技术产业和商业服务模式.随着云计算技术的不断进步和发展,它已经逐渐转变成一种按需支付的服务模式,云计算服务模式能够向用户提供便捷、高效的网络服务,使用户能够对资源共享池进行一定的配置[1].云计算通过加强整合各种物理资源,向用户提供其所需的存储与计算能力.因此,云计算的发展促使数据中心数量不断增加,造成了能耗的浪费,同时增加了云计算服务的成本.除此以外,能耗的浪费会增加二氧化碳排放,对大气环境造成污染.如何对云计算数据中心进行节能调度成为了当前研究的热点话题[2].
相关研究学者对此进行研究.文献[3]提出一种基于云计算架构的数据云平台中心调度方法,此方法采用云计算架构,能够对中心调度进行分区,具有很好的处理效率,但是能耗过高,节能效果不佳.文献[4]提出一种基于云计算架构的自动化调度方法,此方法采用云计算架构,对不同的调度需求进行划分,提高调度的效率,有效降低能耗,但是虚拟机迁移次数过多,支出损耗过大.文献[5]提出一种数据中心可变节能调度方法,此算法能够对数据中心进行及时的调度,能够减少时间的浪费,但是此方法节能效果不明显.
针对上述问题,本文提出一种新的云计算数据中心节能调度算法,以降低云计算数据中心的能耗.
HTML
-
假设,云计算数据中心要完成一组包含b个独立实时任务的集合H,集合中各个任务表示为hi={ai,li,di,si}[6].将数据中心虚拟机vmjk与所执行任务hi间关系用Aijk表示,如式(1)所示:
式(1)表示当任务hi在虚拟机vmjk上执行时[7],Aijk为1,反之为0.
将任务hi在虚拟机vmjk上的开始时间、执行时间和完成时间分别用shijk,ehijk和fhijk表示,任务hi在虚拟机vmjk的执行、完成时间如式(2)和式(3)所示:
上式中,li表示执行过程路径i上没有被确认的数据包数量,cjk表示执行存储节点存储级别,si表示完成时间的路径i上没有被确认的数据包数量,bjk表示完成存储节点存储级别.将任意时刻t时数据中心物理机j的使用状态用Uj(t)表示,且物理机处于运行状态时,Uj(t)为1,反之为0,则
任务截止时间di大于任务完成时间fhijk说明虚拟机完成所执行任务,将虚拟机的执行结果用Bijk表示,虚拟机执行结果如式(5)所示:
其中,Xijk表示虚拟机资源负载.若Bijk值为1说明任务在虚拟机上按时完成,反之任务未被完成.面向实时任务的节能调度算法需降低云数据中心完成任务集合的总能耗[8],其表示如式(6)所示:
式中,Dmax为云计算数据中心物理机的最大功耗,且物理机CPU利用率为g(t),z表示数据中心静态的功耗占总功耗比重[9],通常取值为0.8,FT和ST分别为虚拟机执行任务的开始和结束时间.
在对面向实时任务的云计算数据中心进行节能调度时,应以保证任务的完成效率为主,降低数据中心的能源消耗为辅.尽管该算法能够保证数据中心的任务完成率,但无法有效降低数据中心的处理能耗.因此,本文在此基础上构建云计算数据中心功耗模型,分析SLA(服务等级协议违约率)和虚拟机迁移消耗对数据中心的能耗影响,采用基于能耗感知的虚拟机节能调度算法加强对云计算数据中心虚拟机的节能调度,降低云数据中心的能耗.
-
将云计算数据中各物理节点构成的集合记为{E1,E2,…,Em},云计算数据中心物理机数量为m,其计算能力用MIPS(每秒百万条指令),且各台物理机的极限计算能力为OH(Ei),当云计算数据中心物理机错误时用Ei表示,云计算数据中心的虚拟机记为vmjk,ni表示Ei上运行的虚拟机个数,OV(vmjk)表示虚拟机的CPU计算能力[10];将虚拟机的利用率用αV(vmjk)表示,虚拟机的计算能力表示为αV(vmjk)×OV(vmjk).云计算数据中心服务器通常处于低效率运行,采取虚拟化物理机实际运行状态对物理机的部分虚拟机进行有效迁移,降低云计算数据中心的物理机数量,实现数据中心的节能调度.
云计算数据中心物理机在不同的利用率下所需能耗有所差异,将[t0,t1]时间内数据中心能耗用式(7)表示,则
其中,数据中心主机的利用率pi(α(t))表示虚拟机在t时刻的功耗.
-
云计算数据中心提供的QoS(服务质量)可采用SLA违约率度量,当云计算数据中心出现物理机CPU的MIPS大于物理机支持的极限计算能力时,可能出现SLA违约的现象[11],当出现SLA违约现象时,应采取一定对策迁移虚拟机,衡量SLA的违约程度可用γSLATAH(云计算数据中心物理机的SLA违约时间的平均比率)表示,如式(8)所示:
其中,χFT和χST分别表示主机处于违约状态和正常运行状态的总时长.
-
可通过迁移高负荷云计算数据中心物理机的虚拟机数量,降低SLA的违约率,虚拟机迁移会产生不必要的功耗,且对云计算数据中心有一定影响,由虚拟机迁移导致的数据中心能力下降(λPDM)来表示虚拟机迁移产生的消耗.如式(9)所示:
其中,由虚拟机迁移导致的数据中心性能下降量为Sjk,虚拟机的MIPS需求量为Njk,本文假设虚拟机迁移导致的数据中心性能下降百分比为15%.
λPDM和γSLATAH分别从数据中心性能降低和SLA违约率两方面表示虚拟机迁移对数据中心的影响结果,将二者结合得到虚拟机迁移对云计算数据中心的综合影响结果,如式(10)所示:
-
通过功耗模型计算物理机资源量,结合节能调度算法完成数据中心节能.本文采用基于能耗感知的虚拟机节能调度算法,通过有效部署和迁移云计算数据中心的虚拟机,实现云计算数据中心的节能调度.
首先合理安置虚拟机,采用能耗感知方法对虚拟机进行分析,通过将负载率低的物理机的虚拟机迁移到负载率高的物理机上[12],降低物理机的使用台数,实现云计算数据中心各台物理机资源的最大化利用,完成云计算数据中心的节能.
-
云计算数据中心出现应用请求时,数据中心需为该应用封装一个虚拟机,同时使该虚拟机在某台物理机上运行.物理机的选取可采用基于资源利用率的虚拟机部署算法,通过该算法得到数据中心各台物理机的剩余资源[13],然后将封装后的虚拟机安置到物理机上,使部署后物理机的资源利用率均衡值RUVi为最小值,假设云计算数据中心的物理机数量为num,虚拟机安置流程如下:
① 设RUVi最小值等于1,i表示云计算数据中心物理机的编码,则
其中,wi为虚拟机资源调度时间片的权重;
② 计算物理机i的剩余资源,如CPU、网络带宽资源和内存等;
③ 当计算出物理机上剩余资源满足虚拟机的需求,则将虚拟机安置在该物理机上并计算出该物理机的RUVi值;反之,计算出物理机上剩余资源不满足虚拟机的需求,需返回步骤③,重新进行分析;
④ 当出现RUVmin>RUVi后,将RUVmin替换为RUVi;
⑤ 计算云计算数据中心下一台物理机i+1的RUVi+1;
⑥ 重复操作步骤②至步骤⑤num次;
⑦ 若出现RUVmin=1,应启动一台新的未被使用的物理机,同时安置虚拟机到该物理机,若RUVmin≠1,执行步骤⑧;
⑧ 安置虚拟机到RUVmin的物理机,流程结束.
-
虚拟机迁移是将负载率低的物理机上所有虚拟机迁移到负载率高的物理机上,有效关闭负载率低的物理机的使用,以达到节能的目的.
依据物理机上虚拟机需要CPU的资源量,划分物理机为负载正常和负载低节点[14],当物理机上全部虚拟机的资源需求量不足该台物理机资源量的65%,称该物理机是负载低节点,若该值超出65%,则视该物理机为负载正常节点[15-17],在此基础上设计云计算数据中心虚拟机的迁移过程,如图 1所示.
根据图 1可知,首先计算物理机资源量,然后对虚拟机物理资源量进行判断,当资源量<65%时,此时物理机处于负载过低状态,需要进行虚拟机迁移,此时选择负载正常的物理机进行连接迁移,然后计算迁移能耗,再判断迁移后的物理机是否还需迁移,将资源量全部迁移的物理机关闭,并添加到迁移列表,完成虚拟机的迁移过程,实现云计算数据中心的节能调度.
1.1. 面向实时任务的云计算数据中心节能调度算法
1.2. 云计算数据中心功耗模型
1.2.1. SLA(服务等级协议)违约及度量
1.2.2. 虚拟机迁移功耗计算
1.3. 基于能耗感知的虚拟机节能调度算法
1.3.1. 安置虚拟机
1.3.2. 迁移虚拟机分析
-
为验证本文算法的高效性,通过仿真实验分析本文算法的实际应用效果,模拟现实中某大型企业的云计算数据中心,实验以PlanetLab平台提供的实际测量产生的工作数据为负载数据,实验采用的服务器物理机、虚拟机和任务负载数据均为真实的监测数据.该数据中心由1 000个物理机构成,其中分别有500台模拟HP Proliant ML 110 G5物理机,和500台HP Proliant ML 110 G4物理机,2种物理机均可提供不同MIPS的CPU,其中实验物理机在不同负载时的能耗用表 1描述,实验选取的虚拟机参数如表 2所示,实验从以下几方面比较算法的性能:总能耗、虚拟机迁移次数以及数据中心任务量对算法性能的影响.
-
为比较采用本文算法后云计算数据中心的能耗情况,此处将文献[16]云数据中心中负载均衡的虚拟机调度方法、文献[17]用于云存储数据服务器的I/O请求调度算法与本文算法进行比较,比较采用不同的算法将虚拟机部署到物理机上后数据中心的能耗,能耗结果如图 2所示.
分析图 2可以看出,采用3种算法调度后数据中心的总能耗均不断增加,且随着云计算数据中心虚拟机数量的提升,采用本文算法调度后数据中心的能耗增幅较低,采用数据服务器的I/O请求调度算法调度后数据中心的能耗提升幅度较高,且能耗超出本文算法较大比重,采用虚拟机调度方法调度后数据中心的能耗在本文算法和数据服务器的I/O请求调度算法中间,结果表明本文算法可有效降低云计算数据中心的能耗,节能效果好.
图 3为3种算法调度过程中产生的虚拟机迁移次数.云计算数据中心虚拟机迁移次数的提升会增加数据中心的成本,因此应尽量降低虚拟机的迁移次数.分析图 3可知,采用本文算法调度后,随着云计算数据中心虚拟机数量的增加,虚拟机迁移次数先增加后基本保持不变,采用虚拟机调度方法调度后虚拟机迁移次数随虚拟机数量的增加而不断增加,说明数据中心的成本增加较多,数据服务器的I/O请求调度算法在虚拟机数量较少时的迁移次数较多,且随虚拟机数量增加迁移次数波动较小,结果表明本文算法可降低由于虚拟机频繁迁移带来的成本增加,是一种有效的云计算数据中心节能调度算法.
-
实验为测试云计算数据中心不同任务数量对本文算法的影响效用,实验比较不同任务量情况下,3种算法的任务完成率和任务完成总能耗,结果见表 3,并将表 3结果分别用图 4和图 5描绘.
结合表 3的数据分析和图 4结果可以看出,随着云计算数据中心任务量的不断增加,本文算法的任务完成率几乎保持不变,始终在0.93~0.96之间变化,说明本文算法不受任务量的变化而变化,在任务量增加时,数据中心可开启新的主机用于满足任务的需求;虚拟机调度方法和数据服务器的I/O请求调度算法的任务完成率无明显变化趋势,但2种算法的任务完成率始终保持在较低水平,说明本文算法能大幅度完成云计算数据中心的调度任务,具有较高的任务完成率.
同样结合表 3的数据分析和图 5可以得出,随着云计算数据中心任务量的提升,3种算法的总能耗均在不断增加,从图 5看出本文算法的总能耗提升幅度低于其它2种算法,随着任务量的提升,本文算法的总能耗从0.55×103 kW/h提升到1.55×103 kW/h,提升幅度为1.0×103 kW/h,而虚拟机调度方法从初始总能耗0.84×103 kW/h最终提升到4.07×103 kW/h,提升幅度为3.23×103 kW/h,提升幅度超出本文算法3.2倍以上,同样分析可知数据服务器的I/O请求调度算法提升幅度为3.8×106 W,超出本文算法3.8倍.结果表明,本文算法一方面可在云计算数据任务量增加的同时合理安排现有的虚拟机,降低开启新虚拟机所需的额外能耗,另一方面有效迁移负载较小的虚拟机,将这些负载小的虚拟机关闭,减少总体能耗.
2.1. 能耗比较
2.2. 数据中心任务量对算法性能影响
-
云计算的快速发展为数据中心带来了新的挑战,如何有效地降低数据中心的能耗损失是当前的研究热点,本文对云计算数据中心节能调度算法进行改进,为了解决面向实时任务的云计算数据中心节能调度算法不能在保障较高完成率的同时降低能耗的问题,分析了影响数据中心能耗的因素,采用基于能耗感知的虚拟机节能调度算法,合理部署和规划数据中心的虚拟机,以达到节能降耗的最终目的.