虚拟化云计算数据中心能量感知资源分配机制

时间:2022-04-07 10:41:03

虚拟化云计算数据中心能量感知资源分配机制

摘要:针对云计算的资源管理问题,提出了云计算数据中心的能量模型以及四个虚拟机放置算法首先计算每个机架上主机的负载并根据设定的阈值进行归类,然后采用最少迁移策略从主机上选择合适迁移的虚拟机并且接受新的虚拟机分配请求,对每个虚拟机与主机集合进行匹配,选择最优化的主机进行放置实验结果表明,与现有的能量感知资源分配方法相比,该方法在主机、网络设备以及冷却系统方面能量利用率分别提高了2.4%,18.5%和281%,总的能量利用率平均提高了14.5%

关键词:云计算; 虚拟机放置; 数据中心; 阈值; 能量利用率; 能量感知

中图分类号: TP393.02 文献标志码:A

0引言

近年来,云计算受到学术界和工业界的广泛关注通过云计算,只需计算和存储能力十分有限的终端设备就可随时随地获得近乎无限的计算能力到目前为止,云计算服务可以分为三大类:基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service, PaaS)和软件即服务(Software as a Service, SaaS)随着云服务的增长,国内外很多公司,比如Microsoft、Google、IBM等都扩展了它们的数据中心规模,然而单纯扩大集群规模会带来更高的能量开销

最近几年,为了提高虚拟云计算数据中心的能量利用效率,研究者在节能资源管理方面做了大量的工作[1-3],同时虚拟化已经成为了一种重要的云计算节能技术[4]该技术的思想是把主机虚拟化成虚拟机,之后把虚拟机部署在最小数量的物理机器上,同时处在运行状态的物理机器保持资源利用率最大化

文献[5]基于轮转调度算法,提出了动态轮转调度算法,它是轮转调度算法的一种扩展当某个主机上的虚拟机完成了任务,就等待设定的阈值,超过该阈值就迁移主机上的虚拟机文献[6]改进了装箱算法,为了避免不合理的虚拟机迁移,给主机资源利用率设定一个阈值当主机的资源利用率低于设定的阈值时,主机上的虚拟机才被迁移至其他主机上,同时关闭该主机该算法不足之处是没有考虑频繁迁移带来的成本和主机资源利用率过高而带来可能的服务等级合约(Service Level Agreement, SLA)冲突

文献[7]首先找出适合迁移的虚拟机,然后把该虚拟机迁移到有足够资源且最优化的主机上根据动态迁移[8],把数据从源主机拷贝至目标主机占用80%的迁移时间这个过程CPU和网络使用最频繁,因此消耗的能量最多为了降低虚拟机迁移成本,选择内存比较小且CPU剩余量比较大的主机进行迁移

Beloglazov等[9]研究了云计算数据中心节能框架和资源分配策略,提出了改进的最好适应算法(Modification Best Fit Decreasing,MBFD)通过设定主机的CPU利用率阈值来确定需要迁移的虚拟机相对以前的算法,该算法在提高资源利用率的同时兼顾了服务质量(Quality of Service,QoS),更加节能

现阶段大多数研究仅考虑了主机的能量消耗,一个典型的云计算数据中心的能量开销应该包括主机、网络以及冷却系统本文提出的算法中同时考虑了主机、网络设备以及冷却系统的能量开销,把虚拟机放置到最小数量的主机上,通过关闭空闲的主机、网络设备以及冷却系统来达到节能的目的

本文首先基于MBFD[9]提出了改进最好适应递减算法(Improved Modification of the Best Fit Decreasing, IMBFD)之后提出了三种基于机架的虚拟机放置算法:机架首次适应递减虚拟机放置算法(Rack First Fit Decreasing, RFFD)、阈值内机架虚拟机放置算法(NoneUnderutilized Rack, NUR)和迁移低于阈值下限机架虚拟机放置算法(Migrate Underutilized Racks,MUR)所做的工作主要如下:

1)在由支架、冷却系统以及网络拓扑组成的传统虚拟云计算中心中,评估了本文提出的虚拟机放置算法

2)把新请求的和需要迁移的虚拟机组合在一起统一进行放置,同时确保运行的主机的数量最小化

3)在放置算法中,除了主机,还考虑了机架的负载,这样可以提高网络和冷却系统的能量利用率

4)动态监测,把资源利用率过低的机架上的虚拟机迁移至其他的机架上,然后关闭负载过低机架上的物理主机

1虚拟化云计算数据中心系统模型

本章首先介绍云计算数据中心的结构,然后提出能量模型,该结构主要由主机、冷却系统和网络交换机组成

1.1云计算数据中心结构

一个典型的云计算数据中心一般由网络交换机、冷却系统、机架和主机组成图1表示的是一个云计算数据中心的结构,该数据中心由若干台机架组成,每台机架里有若干台主机和一个

1.2能量模型

云计算数据中心的能量开销分为主机、冷却设备和网络

主机的能量开销主要由CPU、内存、硬盘和网络接口产生,其中CPU的能量开销占了总开销的大部分文献[10]表明CPU的能量开销和CPU的频率使用率有关,而且呈线性关系研究表明当主机处于空闲状态时会消耗相当于70%的满载负荷时的能量因此可以近似地把能量开销表示如下:

2能量感知虚拟机管理算法

2.1问题描述

虚拟化云计算资源管理主要分为两部分:第一部分是找出资源利用率低于阈值下限和高于阈值上限的主机集合H,然后从H中根据最少迁移策略选择适合迁移的虚拟机集合V1,接受请求的虚拟机集合V2,把V1、V2合并得到需要放置的虚拟机集合V;第二部分是对集合V里的虚拟机分别采用提出的虚拟机放置算法,选择最优化的主机并把虚拟机放置到该主机上因此资源管理的两个核心问题是选择迁移的虚拟机和虚拟机放置

2.2改进最好适应递减算法

改进最好适应递减算法(IMBFD)对MBFD[9]算法进行了改进首先,根据虚拟机需要的MIPS进行降序排序,然后从资源利用率在阈值上下限之间的主机集合中找到最适合的放置主机如果没有符合的主机,则从资源利用率低于阈值下限的主机集合中寻找,如果还是没有符合的主机,则开启一台主机,然后把该虚拟机放置在上面该算法可以确保开启的主机的数量最少,但是还没有考虑机架上的冷却系统和网络设备的能量开销该算法的伪代码描述如下:

程序前

输入:

ServerArray

//ServerArray为存放所有主机的数组

VMArray

//VMArray为需要放置的虚拟机数组

输出:

AllocationOfVMs//AllocationOfVMs为被放置的虚拟机与主机之间的映射

初始化:

EmptyServerQueue

//EmptyServerQueue为关闭的主机的队列

UnderutilizaedServerQueue

//UnderutilizaedServerQueue为利用率低于阈值下限的主机的队列

SortVMsInDecreasingMIPS()

foreach VM in VMArray do

MinPowerMAX

/*MinPower表示主机放置虚拟机后带来的能量最小开销,初始化为一个大数*/

AllocatedServersNULL

//被选定放置虚拟机的主机集合

foreach Server in ServerArray do

//Server为主机集合里的一台主机

/*如果主机是关闭的则把该主机放入关闭状态的主机列表里*/

if Server is empty then

EmptyServerQueueServer

else

/*如果主机负载低于下限则把该主机放入低于阈值下限的主机列表里*/

if Server is a underutilized server then

UnderutilizaedServerQueueServer

else

/*如果主机负载处于上限和下限之间且有足够的资源放置该虚拟机,则利用式(1)估计需要的能量,然后进行比较,选出最优化的主机*/

if Server has enough resources then

PowerEstimatedPower by 式(1)

//Power为服务器放置该虚拟机所需要的能量开销

if Power

AllocatedServersServer

MinPowerPower

/*如果阈值内没有最优化的主机,则从低于阈值下限的主机列表中,利用式(1)估计需要的能量,然后进行比较,寻找最优化的主机*/

if AllocatedServers=NULL then

foreach Server in UnderutilizaedServerQueue

if Server has enough resources then

PowerEstimatedPower by 式(1)

if Power

AllocatedServersServer

MinPowerPower

/*如果还没有找到优化的主机,则开启关闭的主机放置该虚拟机*/

if AllocatedServers=NULL then

foreach Server in EmptyServerQueue

if Server has enough resources then

PowerEstimatedPower by 式(1)

if Power

AllocatedServersServer

MinPowerPower

/*如果已经合适的主机,则把虚拟机放置到主机上*/

if AllocatedServers≠NULL then

Allocate VM to AllocatedServers

return AllocationOfVMs

程序后

2.3基于机架负载的虚拟机放置算法

除了主机本身,机架上的冷却系统,以及上层的网络设备也会消耗大量的能量,本节提出的算法还考虑了机架利用率首先给机架利用率设定一个下限,当机架利用率低于阈值下限时,机架上的所有虚拟机都进行迁移,之后关闭机架上的主机、冷却系统和网络设备来节省能量开销

2.3.1机架首次适应递减虚拟机放置算法(RFFD)

算法首先根据机架的利用率和虚拟机的MIPS进行降序排序,从机架列表中找到第一台满足虚拟机需求的机架,然后利用IMBFD算法把虚拟机放置到该机架中合适的主机上在该算法中,如果运行的主机没有足够的资源满足虚拟机,则启动关闭的主机在分配完所有的虚拟机之后,把利用率低于阈值的机架上的虚拟机迁移至其他有足够资源且资源利用率在阈值之内的机架上该算法的伪代码片段如下:

程序前

输入:

RackArray

//机架数组

VMArray

//VMArray为需要放置的虚拟机数组

ServerArray

//ServerArray为存放所有主机的数组

输出:

AllocationOfVMs

//AllocationOfVMs为被放置的虚拟机与主机之间的映射

SortVMsInDecreasingMIPS()

SortRacksInDecreasingUtilization()

foreach VM in VMArray do

/*利用FFD算法从机架数组中找出第一个有足够资源的机架*/

SelectedRackFirstRackfromRackListWithEnoughResources()

/*采用IMBFD从选择的机架中找出最优化的主机*/

foreach Server in SelectedRack do

AllocatedServersFindAppropriateServerbyIMBFD()

/*如果已经合适的主机,则把虚拟机放置到主机上*/

if AllocatedServers≠NULL then

Allocate VM to AllocatedServers

return AllocationOfVMs

程序后

2.3.2阈值内机架虚拟机放置算法(NUR)

算法从所有阈值高于阈值下限的机架上的主机中,利用IMBFD算法找出最合适的主机;如果找不到适合的主机,就从低于阈值下限的机架上的主机中找合适的主机和RFFD类似,低于阈值下限的机架上的虚拟机都会被迁移至其他的合适的主机上具体过程可以用下面的代码片段表示:

程序前

输入:

RackArray

//机架数组

VMArray

//VMArray为需要放置的虚拟机数组

ServerArray

//ServerArray为存放所有主机的数组

输出:

AllocationOfVMs

//AllocationOfVMs为被放置的虚拟机与主机之间的映射

SortVMsInDecreasingMIPS()

foreach VM in VMArray do

/*从负载在阈值内的所有机架上采用IMBFD算法找出最优化的主机*/

foreach Server in NoneUnderutilizedRacks

AllocatedServersFindAppropriateServerbIMBFD()

/*如果没有找到最优化的主机,则采用IMBFD算法从低于阈值的下限的机架上找出最优化的主机 */

if AllocatedServers=NULL then

foreach Server in UnderutilizedRacks do

AllocatedServersFindAppropriateServerbyIMBFD()

/*如果已经合适的主机,则把虚拟机放置到主机上*/

if AllocatedServers≠NULL then

Allocate VM to AllocatedServers

return AllocationOfVM

程序后

2.3.3迁移低于阈值下限的机架虚拟机放置算法(MUR)

在该算法中,使用机架整合和虚拟机放置技术来减少云计算数据中心的能量开销通过本算法,可以确保虚拟机被分配到最少数量的主机和机架上首先,把虚拟机放置在负载高于阈值下限的机架的主机上,使得主机当前的利用率和阈值上限差距最小化如果没有合适的虚拟机,则根据机架的利用率进行降序排序,同时对每个机架内的主机也根据利用率进行降序排序然后利用IMBFD算法把虚拟机放置到低于阈值机架的主机上在放置完虚拟机之后,把低于阈值机架上的虚拟机迁移至阈值内机架的主机上,这样可以降低总的能量开销

程序前

输入:

RackArray

//机架数组

VMArray

//VMArray为需要放置的虚拟机数组

ServerArray

//ServerArray为存放所有主机的数组

输出:

AllocationOfVMs

//AllocationOfVMs为被放置的虚拟机与主机之间的映射

SortVMsInDecreasingMIPS()

foreach VM in VMArray do

//VM为放置虚拟机数组里的一台虚拟机

/*从阈值内的机架上找出最优化的主机,使得放置该虚拟机后,主机的负载和阈值上限差距最少*/

foreach Server in NoneUnderutilizedRacks do

AllocatedServersFindServerWithMinimumUtilizationGap()

/*如果不存在这种主机,则从负载低于阈值的机架上采用IMBFD算法找出最优化的主机*/

if AllocatedServers=NULL then

foreach Server in UnderutilizedRacks do

AllocatedServersFindAppropriateServerbyIMBFD()

if AllocatedServers≠NULL then

Allocate VM to AllocatedServers

/*把负载低于阈值的机架上的主机的虚拟机迁移至其他机架的主机上*/

foreach Rack in RackArray do

Migrate VMs of underutilized Racks

return AllocationOfVMs.

程序后

3实验结果和性能分析

为了评估提出的虚拟化云计算资源管理方法的性能,使用云计算仿真开发包CloudSim[13]模拟了实验的仿真环境同时实现了MBFD、IMBFD、RFFD、NUR和MUR算法,以验证它们在不同环境下的能量开销、SLA冲突率和虚拟机迁移数量的情况

3.1实验配置

实验分两组,每组有42个机架单元,每个机架单元有10台主机每台主机由一个频率为2000MIPS的CPU,10GB内存,1TB的硬盘和1Gb/s的网络带宽组成在这种配置下,当空闲时,每台主机的功率为175W;当满负荷时,功率为250W每台虚拟机需要250、500、750或1000MIPS不等的CPU,128MB内存和1TB硬盘存储

实验中,随机产生不同的虚拟机请求实验安排了四组不同的虚拟机:第一组为完成任务离开数据中心的虚拟机,第二组为在新的阶段需求降低的虚拟机,第三组为在新的阶段需求增加的虚拟机,第四组为新来的虚拟机与文献[9]类似,基于不同的参考标准,每个实验执行4次

与实际中的云计算中心类似,也为了实验方便,采用简单的三层网络拓扑结构三层中的设备有功率为366W的HP5920机架,功率为405W的集成交换机HP6600,以及功率为3500W的核心路由器除了这些网络设备,还有机架的冷却系统,使用的是惠普的模块化冷却系统G2,功率为950W根据文献[9],这里选择最好的阈值,其中上限为80%,下限为40%

3.2实验仿真结果

3.2.1虚拟机放置算法评估

如图2对比了MBFD、MBFD、RFFD、NUR和MUR五个不同的虚拟机放置算法的总能量开销、主机能量开销、网络能量开销和冷却系统的能量开销

如图2(a)所示,与其他算法相比,IMBFD和MUR的主机能量效率提高2.5%一般情况下,IMBFD和MUR会尽量减少所有机架上运行主机的数量来降低能量的开销,RFFD和NUR则试图减少运行机架的数量,因此RFFD和NUR在主机能量开销上要比MBFD更大如图2(b)和图2(c),RFFD和MUR在网络能量开销上降低了27.9%和28.2%NUR尽量把虚拟机放置在阈值内的机架上避免开启新的机架,与MBFD相比,网络能量开销和冷却系统能量开销降低了151%和22.6% IMBFD算法最小化活跃的主机数量,但是在这种情况下,它并不能有效地减少活跃机架数量因此,它在网络和冷却系统能量消耗方面相对MBFD仅仅提高了07%和01%

图2(d)所示数据表明,与MBFD相比,在包含网络、冷却系统和主机的总能量开销上,IMBFD、RFFD、NUR和MUR分别提高了1.5%,11.7%,9.7%和14.5%MUR优于其他四个算法在于它能够弹性地在最少的机架里选择最少的主机,然后关闭空闲的主机、机架和网络设备一般来说,云计算数据中心的冷却系统能量开销会占到30%以上[14],因此基于机架的算法(RFFD,NUR和MUR)的节能效率高于OBFD和MBFD

3.2.2迁移代价的评估

仿真中,迁移时间通过虚拟机内存除以网络带宽来获得虚拟机的数据必须被存储在网络附加存储(Network Attached Storage,NAS)上,以防止复制虚拟机的存储,因此迁移开销是很低的,但是会带来额外的CPU开销[15]如图3所示,在最坏的情况下,IMBFD和MUR的迁移数量比MBFD增加3.8%和7.5%这是由于它们产生更多的过载和低于阈值下限的主机导致的但是,RFFD和NUR的迁移虚拟机数量分别降低了3.4%和1%

3.2.3算法服务等级合约(SLA)评估

与文献[9]类似,冲突率表示SLA冲突次数占所有请求的比例,SLA冲突表示一个给定的虚拟机不能得到它需要的MIPS此标准可以体现出消费者和服务提供商之间协商的服务质量需求不能被满足的级别SLA冲突率取决于CPU本身负载以及接受虚拟机的大小和时间因此在不同的实验中,SLA是不一样的如图 4所示,RFFD、NUR和MUR冲突率降低了7.1%,5.4%,0.4%IMBFD算法由于产生更多的过载的主机,冲突率会上升由图可知IMBFD冲突率比MBFD升高了6.5%,但是所有的算法的冲突率都不超过22%

4结语

本文针对虚拟云计算数据中心能量感知资源分配提出了管理的流程、能量模型和四种虚拟机放置算法目前很多研究仅仅考虑主机的能量消耗,本文则从网络设备、机架主机等方面综合分析能量的开销仿真结果表明,本文算法在不降低服务质量的同时降低了能量的开销

参考文献:

[1]秦志光,潘郁,凌晨,等.云计算环境下资源节能调度[J].计算机应用,2012,32(7):1913-1915,1946.

[2]叶可江,吴朝晖,姜晓红,等. 虚拟化云计算平台的能耗管理[J].计算机学报,2012,35(6):1262-1285.

[3]徐骁勇,柯涛,刘梦娟,等.面向云平台的资源分配策略研究[J].计算机应用,2013,33(2):299-303,307.

[4]ARMBRUST M, FOX A, GRIFFITH R. A view of cloud computing[J]. Communications of the ACM, 2010,53(4):50-58

[5]LIN C, LIN P. Energyaware virtual machine dynamic provision and scheduling for cloud computing [C]// Proceedings of the 2011 IEEE 4th International Conference on Cloud Computing. Piscataway: IEEE, 2011: 736-737.

[6]WANG X L, LIU Z H. An energyaware VMs placement algorithm in cloud computing environment [C]// ISDEA 2012: Proceedings of the Second International Conference on Intelligent System Design and Engineering Application. Piscataway: IEEE, 2012: 627-630.

[7]PIAO A, YAN J. A networkaware virtual machine placement and migration approach in cloud computing [C]// GCC 10: Proceedings of the Ninth International Conference on Grid and Cloud Computing. Washington, DC: IEEE Computer Society, 2010: 87-92.

[8]VERSICK D, TAYANGARIAN D. Reducing energy consumption by load aggregation with an optimized dynamic live migration of virtual machines [C]// 3PGCIC 10: Proceedings of the 2010 International Conference on P2P, Parallel, Grid, Cloud and Internet Computing. Washington, DC: IEEE Computer Society, 2010: 164-170.

[9]BELOGLAZOV A, ABAWAJY J, BUYYA R. Energyaware resource allocation heuristics for efficient management of data centers for cloud computing [J]. Future Generation Computer Systems, 2012, 28(5): 755-768.

[10]RAGHAVENDRA R, RANGANATHAN P. No "power" struggles: coordinated multilevel power management for the data center [J]. ACM SIGARCH Computer Architecture News - ASPLOS 08, 2008, 36(1): 48-59.

[11]VERMA A, AHUJA P, NEOGI A. pMapper: power and migration cost aware application placement in virtualized systems[C]. Middleware '08 Proceedings of the 9th ACM/IFIP/USENIX International Conference on Middleware, LNCS 5346. Berlin: SpringerVerlag, 2008: 243-264

[12]GANDHI A, HARCHOLBALTER M, DAS R, et al. Optimal power allocation in server farms [C]// SIGMETRICS 09: Proceedings of the Eleventh International Joint Conference on Measurement and Modeling of Computer Systems. New York: ACM, 2009: 157-168..

[13]CALHEIROS R N, RANJAN R, BELOGLAZOV A, et al. CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms [J]. Software: Practice and Experience, 2011, 41(1):23-50.

[14]PAKBAZNIA E, GHASERMAZAR M, PRDRAM M. Temperature aware dynamic resource provisioning in a power optimized datacenter [C]// DATE 10: Proceedings of the Conference on Design, Automation and Test in Europe. Leuven, Belgium: European Design and Automation Association, 2010: 124-129.

[15]KUSIC D, KEPHART J Q, HANSON J E. Power and performance management of virtualized computing environments via lookahead control[J]. Cluster Computing, 2009,12(1):1-15.

上一篇:基于共线点的镜头畸变校正方法 下一篇:适于进化算法的迭代式MapReduce框架