书书书
第35卷 第6期2012年6月
计 算 机 学 报CHINESEJOURNALOFCOMPUTERS Vol.35No.6June2012
收稿日期:20110827;最终修改稿收到日期:20120416.本课题得到国家“八六三”高技术研究发展
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
重大项目基金(2011AA01A207)、国
家自然科学基金项目(11071215)和教育部英特尔专项基金(MOEINTEL1106)资助.叶可江,男,1986年生,博士研究生,主要研究方向为
虚拟化与云计算、性能评估与建模.Email:yekejiang@zju.edu.cn.吴朝晖,男,1966年生,博士,教授,主要研究领域为服务科学与网格计算、嵌入式普适计算等.姜晓红(通信作者),女,1966年生,博士,副教授,主要研究方向为计算机体系结构、分布式系统、云计算等.Email:
jiangxh@zju.edu.cn.何钦铭,男,1965年生,博士,教授,主要研究领域为虚拟化技术、机器学习等.
虚拟化云计算平台的能耗管理
叶可江 吴朝晖 姜晓红 何钦铭
(浙江大学计算机科学与技术学院 杭州 310027)
摘 要 数据中心的高能耗是一个亟待解决的问题.近年来,虚拟化技术和云计算模式快速发展起来,因其具有资
源利用率高、管理灵活、可扩展性好等优点,未来的数据中心将广泛采用虚拟化技术和云计算技术.将传统的能耗
管理技术与虚拟化技术相结合,为云计算数据中心的能耗管理问题提供了新的解决思路,是一个重要的研究方向.
文中从能耗测量、能耗建模、能耗管理实现机制、能耗管理优化算法4个方面对虚拟化云计算平台能耗管理的最新
研究成果进行了介绍.论文分析了虚拟化云计算平台面临的操作管理和能耗管理两方面的问题,指出了虚拟化云
计算平台能耗监控与测量的难点;介绍了能耗监测步骤及能耗轮廓分析方法;提出了虚拟机系统的整体能耗模型
及服务器整合和在线迁移两种关键技术本身的能耗模型;从虚拟化层和云平台层两个层次总结了目前能耗管理机
制方面取得的进展;并对能耗管理算法进行分类、比较.最后对全文进行总结,提出了未来十个值得进一步研究的
方向.
关键词 虚拟化;云计算;能耗管理;绿色计算;在线迁移;服务器整合
中图法分类号TP393 犇犗犐号:10.3724/SP.J.1016.2012.01262
犘狅狑犲狉犕犪狀犪犵犲犿犲狀狋狅犳犞犻狉狋狌犪犾犻狕犲犱犆犾狅狌犱犆狅犿狆狌狋犻狀犵犘犾犪狋犳狅狉犿
YEKeJiang WUZhaoHui JIANGXiaoHong HEQinMing
(犆狅犾犾犲犵犲狅犳犆狅犿狆狌狋犲狉犛犮犻犲狀犮犲犪狀犱犜犲犮犺狀狅犾狅犵狔,犣犺犲犼犻犪狀犵犝狀犻狏犲狉狊犻狋狔,犎犪狀犵狕犺狅狌 310027)
犃犫狊狋狉犪犮狋 Thehighenergyconsumptionofdatacenterisaseriousproblem.Recently,withtherapiddevelopmentofvirtualizationtechnologyandtheemergenceofcloudcomputingparadigm,alargenumberoffuturegenerationdatacenterwillusevirtualizationtechnologyandcloudcomputingtechnology,duetothebenefitsofhighresourceutilization,flexiblemanagement,anddynamicscalability.Theintegrationoftraditionalpowermanagementtechnologyandvirtualizationtechnologyprovidesnewsolutionstosolvethepowermanagementissueofclouddatacenter,whichisanimportantresearchdirection.Thispaperfocusesonthevirtualizedcloudcomputing
platform,surveysthelatestresearchresultsfromtheperspectivesofpowermeasurement,powermodeling,implementationmechanisms,andoptimizationalgorithms.Weinvestigatethechallen
gesofoperationandpowermanagementinvirtualizedcloudplatform,andtrytofindoutthedifficultiesofpowermonitoringandmeasurementtechnology.Weintroducethestepsofpowermeasurementandpowerprofilingtechnology,andtrytobuildthepowermodelforthewholevirtualmachinesystem,alsothepowermodelforthetechniqueofserverconsolidationandlivemigration.Wesummarizetheadvancesonpowermanagementmechanismsfrombothvirtualizationlevelandcloudlevel,andclassifyandcomparetheexistingpowermanagementalgorithms.Finally,wesummarizethecontentsofthispaperandproposetenpossibleresearchdirectionsinthefuture.
犓犲狔狑狅狉犱狊 virtualization;cloudcomputing;powermanagement;greencomputing;livemigration;serverconsolidation
1 引 言
近年来,数据中心的高能耗逐渐成为一个突出
的问题,尤其是随着云计算时代的到来,更多的计算
资源和存储资源集中在云端,给能耗的高效管理带
来更大的挑战[12].据统计,2006年美国6000个左
右的数据中心,消耗了大约610亿千瓦时的电能,总
值高达45亿美元,超过了当年美国所有彩色电视机
的总能耗[3].来自美国能源部的数据表明,数据中心
的能耗占全美所有能耗的1.5%,并且对电能的需
求仍在以每年12%的速度增长.如按这种速度增
长,到2011年,数据中心会消耗1000亿千瓦时的电
能,每年花费约74亿美元[3].此外,IDC(Interna
tionalDataCorporation)市场研究公司对全球所有
企业电能花费的评估结果表明,每年全球的企业大
概要花费400亿美元在能耗上[4].数据中心的高能
耗问题不仅造成电能的浪费、系统运行的不稳定,同
时也对环境造成不良影响.美国联邦机构已经指出
高能耗问题将对空气质量、国家安全、气候变化、电
网可靠性等方面造成严重影响.
高能耗问题主要来源于两个方面,一个是处理
器层次的能耗,另一个是数据中心层次的能耗.随着
处理器制造工艺的不断进步,今天的IntelItanium2
处理器的晶体管数量已达到10亿个[5].处理器在获
得高运行速度的同时,带来了高能耗问题.尽管一些
硬件上的优化技术在一定程度上提升了能量的使用
效率,但是处理器的能耗受应用程序使用模式的影
响,过高的负载和过低的利用率都会导致高能耗和
电能低效使用的问题.在数据中心层次,随着数据中
心规模的不断增长,数据中心出现了两难的境况.一
方面由于物理服务器数量不断增多和处理能力不断
增强,带来了更多的能量消耗,另一方面每个服务器
过低的利用率又造成了巨大的电能浪费.IBM的
Bohrer等人[6]曾对真实的若干典型Web服务器负
载(体育、电子商务、财经、互联网代理集群)进行研
究,发现数据中心服务器的平均利用率在11%~
50%之间.Barroso等人[7]对超过5000台服务器长
达6个月的运行情况进行统计分析,也得出类似的
结论.高能耗带来的另一个问题是配套的冷却设施
开销极大.据统计,计算资源消耗的每1瓦电能,就
需要额外的0.5~1瓦特进行冷却[8].另外,也有统
计数据表明,Google数据中心的能耗有一半是花在
了冷却上[3].因此,迫切需要开发新的技术来解决数
据中心的高能耗问题,包括重新考虑硬件、软件、算
法的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
,特别是必须把能耗作为数据中心设计和
管理的一个重要参数进行考虑,而不仅仅是考虑数
据中心的性能参数.
针对数据中心的高能耗问题,相关政府机构、社
会团体、学术组织已经开始积极关注.2007年,绿色
网格组织(GreenGrid)①成立,它的目标就是要降低
数据中心和商业计算系统的能耗.为了达到这个目
标,绿色网格组织联合了公司、政府部门、工业界团
体,共同研究并试图提供最佳的数据中心节能实践
方法、评估方法和技术.同年,Green500组织
(Green500List)②成立,该组织每年会发布2个报
告(分别是在当年的6月和12月),以MegaFlops/
W(即每瓦特电力所能完成的每秒百万次浮点计算
操作)为指标,对全球范围内最快的500台超级计算
机的节能效率进行排序,作为对TOP500排名的补
充.2008年,国际气候组织(TheClimateGroup)③
和全球电子可持续发展倡议组织(GeSI)④联合发布
了题为《SMART2020:实现信息时代的低碳经济》
的
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
.该报告表明,到2020年,信息通信技术
(ICT)共计能减少近78亿吨CO2的排放,相当于
2020年基准情景下排放总量的15%.IEEE也正在
制定一项能被国际社会接受的新
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
IEEE
P1595⑤,该标准旨在检测、评估和量化由可再生能
源和节能措施所带来的温室气体排放的改善效果.
Google也专门成立了一个能量子公司GoogleEnergy
来减少本公司的能耗,同时也制造和销售清洁能
源.此外,SPEC(StandardPerformanceEvaluation
Corporation)⑥、TPC(TheTransactionProcessing
PerformanceCouncil)⑦等国际性能评估标准化组
织也都在致力于能耗的标准化评价和优化问题.
当前,虚拟化技术的快速发展给数据中心的能
耗管理问题提供了新的解决思路[9].尤其是当云计
算成为未来数据中心发展的主要方向时,因其拥有
服务器整合[10]、在线迁移[11]、隔离性[12]、高可用
性[13]、灵活部署[14]、低管理开销等诸多方面的优点,
虚拟化技术面临更大的发展空间.加州大学伯克利
36216期 叶可江等:虚拟化云计算平台的能耗管理
①②③④⑤⑥⑦
http://www.thegreengrid.org/http://www.green500.org/http://www.theclimategroup.org/http://www.gesi.org/http://grouper.ieee.org/groups/1595/http://www.spec.org/power_ssj2008/http://www.tpc.org/tpc_energy/
分校的Patterson教授曾提出“数据中心是一个计
算机”的著名论断[15].云计算数据中心就是这样一
个计算机,它通过网络,以付费即用的方式,为全世
界的用户提供基于效用的信息服务.云计算数据中
心需要管理来自不同用户的各种各样的应用程序,
如科学计算、商业领域程序等.许多云计算服务提供
商,包括Amazon、Google、Microsoft、Yahoo和IBM
等,在世界各地部署了各自的数据中心来提供云计
算服务.但是,管理这些云程序需要消耗大量电能并
带来很高的操作开销,同时也会对环境造成负面影
响.能耗的持续升高会增加云计算基础设施的总拥
有成本(TotalCostofOwnership,TCO),降低投资
回报率(ReturnonInvestment,ROI).因此,需要一
种绿色的云计算解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
[1618],即在节约能耗的同
时降低管理操作的开销.绿色云计算的目标是在高
效处理和使用云基础设施的同时最小化能量消耗.
但是当前的云计算基础设施很少提供支持能量感知
的服务,无法在满足服务质量需求的同时最小化能
耗开销,以获取最大化投资回报.
虚拟化技术给云计算数据中心的能耗管理带来
了很多解决思路.例如,在数据中心层次,虚拟化技
术可以通过服务器整合把多个负载整合到同一个物
理机上,关闭空闲的物理机,达到节能目的.但是也
正由于虚拟化层的存在,使得传统的细粒度能耗管
理技术(如硬件层和操作系统层的能耗管理技术)不
能直接应用到虚拟化环境中,如在虚拟机(Virtual
Machine,VM)里,资源是虚拟化出来的,它无法直
接获得硬件的能耗状态数据.这些在虚拟化云平台
的能耗管理中遇到的新问题,目前正受到越来越广
泛的关注,是一个热门的研究方向[1921].
通常来讲,一个高效的能耗管理解决方案需要
考虑3方面的关键元素:(1)丰富的能耗监控与测
量方法,及时准确地提供原始数据;(2)精确的能耗
建模与分析,预测能量的消耗情况,指明趋势及因果
关系;(3)节能机制及优化算法,用来降低能耗,同
时满足性能、服务质量(QualityofService,QoS)或
服务等级协议(ServiceLevelAgreement,SLA)等
的要求.
本文从能耗监控与测量、能耗分析与建模、能耗
管理实现机制、能耗管理优化算法4个方面,对虚拟
化云计算平台的能耗管理研究进行系统分析.论文
第2节分析虚拟化云计算平台面临的操作管理和能
耗管理的挑战,指出虚拟化云计算平台中能耗监控
与测量的难点,介绍能耗监测步骤及能耗轮廓分析
方法;第3节提出虚拟机系统的能耗模型及服务器
整合和在线迁移两种节能关键技术的能耗模型;第
4节从虚拟化层和云平台层两个层次总结目前能耗
管理机制方面的最新研究进展;第5节对常用的能
耗管理算法进行分类、比较;最后对全文进行总结,
提出未来十个值得进一步研究的方向.
2 虚拟化云平台的能耗监控与测量
21 虚拟化云平台的管理挑战
2.1.1 操作管理挑战
虚拟化技术通过动态资源伸缩的方式降低了云
计算基础设施的总拥有成本,增加了负载部署的灵
活性.VMware的研究人员通过对来自真实虚拟化
部署场景的数据进行分析,总结出虚拟化场景中出
现的常见管理工作流,并评估它们对云计算数据中
心资源使用的影响[22].
虚拟化技术提供了很好的管理操作灵活性,例
如当虚拟化数据中心需要维护时,只需简单地把虚
拟机迁移到另外一台服务器上,而不需要终止应用
程序并关闭虚拟机.但虚拟机迁移也会带来一定的
开销,如给数据中心网络增加了额外的通信负载和
带宽需求,因此需要采用高性能的网络设备来满足
负载快速迁移的需求.此外,虚拟化技术的引入可能
改变数据中心的某些决策,例如为了获得虚拟化负
载的最佳性能,需要选购最新的具有硬件虚拟化(如
IntelVT技术)支持的处理器,遗留的处理器将不
再适用.同时由于运行着数以百计关键任务的虚拟
机可能同时运行在同一台物理主机上,为了获得更
高的可靠性,需要购买更可靠更昂贵的硬件.这些问
题导致在虚拟化数据中心设计的时候需要考虑系统
性能和成本的权衡.
虚拟化环境具体会产生什么样的管理开销?为
了回答这个问题,VMware的研究人员收集了运行
VMware虚拟化软件的17个企业数据中心的真实
管理操作的详细轮廓数据[22],如表1所示.虚拟化
云平台特有的几种管理操作定义如下:(1)虚拟机
重配置.为虚拟机进行硬件的重配置(如增加一块
网卡或者增加一块硬盘);(2)自动在线迁移.为了
达到自动负载均衡,虚拟机需要在主机间动态移动,
这个过程中虚拟机始终是活着的;(3)虚拟机开启.
开启虚拟机;(4)虚拟机关闭.关闭虚拟机;(5)虚拟
4621 计 算 机 学 报 2012年
机重置.对虚拟机进行软重置(类似于打开物理主
机上的重置开关);(6)补丁安装.包括针对物理主
机的补丁安装(如更新Hypervisor),或者针对虚拟
机的程序安装(如更新客户操作系统,运行最新的安
全修补程序);(7)创建快照.对虚拟机的状态进行
检查点操作;(8)快照恢复.如果发生故障,可以回
滚到前一个已知的状态;(9)快照提交.把所有的变
化写到磁盘,真正执行快照操作,并移除临时快照文
件;(10)虚拟机克隆.创建一个关闭着的虚拟机的
拷贝,这对于快速复制一个新的配置非常有用.例如
当一个新员工加入到一个公司,通过虚拟机克隆,可
以把标准的桌面虚拟机镜像快速部署到员工的虚拟
计算机上.当进行虚拟化云计算平台的能耗管理时,
需要考虑这些虚拟化特有的管理操作.
表1 虚拟化云数据中心常见的管理操作[22]
操作类型 不同站点每天平均操作次数 不同站点每天峰值操作次数
虚拟机重配置 2.3 699自动在线迁移 51.0 3156虚拟机开启 90.0 1576虚拟机关闭 35.0 1535虚拟机重置 4.6 176补丁安装 5.3 250创建快照 4.8 56快照恢复 7.0 101快照提交 13.0 19虚拟机克隆 6.0 44
2.1.2 能耗管理挑战
虚拟化技术给数据中心带来新的日常管理操作
特征的同时,也给能耗管理操作带来新的挑战[19].
首先,因为虚拟化平台所管理的虚拟资源和物理资
源是相互分离的,因而客户机器观察到的虚拟资源
与底层物理资源会不一致,特别是出现迁移的时候.
所以,客户虚拟机如何实现虚拟机程序级的能耗管
理策略是一个挑战性问题.其次,在数据中心中,不
一致性会随着平台的频繁更新、故障处理、添加新节
点扩容等操作而进一步加重.这些平台变化的一个
自然结果是导致异构性的增加.但是,出于对虚拟机
隔离性以及独立性的需求考虑,虚拟机能耗管理策
略要做到能够以不变应对多变.一般来讲,有两种解
决方法:
(1)利用客户虚拟机的能耗管理策略实现虚拟
机的能耗管理操作.但这种方法存在一些问题,例如
不能让虚拟机直接使用硬件能耗管理功能,因为这
些资源是虚拟化后的硬件资源,并为多个虚拟机所
共享.此外,直接访问硬件资源也会影响性能隔离
性.例如虚拟机增加自己所在物理核的频率来满足
自己虚拟机服务质量需求的时候会影响其它的物理
核的运行.更坏的情况是,有些活动可能是恶意的,
如功耗病毒(PowerVirus),会危害其它虚拟机的正
常运行.
(2)利用硬件能耗管理机制实现虚拟机的能耗
管理操作.但这种方法也存在局限性.硬件支持的能
耗管理机制对于虚拟化系统的问题是,这些硬件层
次的能耗管理策略会被多个客户虚拟机所共享.例
如,内存DIMM(DualInlineMemoryModules)通
过同一个总线进行访问,并且共享相同的电压水平,
而这些内存可能被分配给多个客户虚拟机.这意味
着,这个部件不能被用来进行特定虚拟机的能耗管
理操作,除非所有的客户机都想通过总线调节来降
低内存带宽.但若真的这样做,又相当于没有发挥
DIMM的优势,可以直接关闭DIMM了.相同的局
限性也反映在磁盘上,磁盘包括多个分区,每个分区
可能被分配给多个不同的客户机.只有当所有的分
区都能被设置为某个功率状态时,才能通过把磁盘
调整到那个功率状态,实现磁盘分区层次的能耗管
理.一个解决方法是采用时间域多路复用,就是根据
当前虚拟机的功耗标准设置硬件状态.但是这样也
存在两个问题:①首先,只有在资源管理状态转换
时间比Hypervisor的调度时间粒度更小的时候才
能采用这种方法.②这种方法对多核平台不一定有
用.大量的客户虚拟机在可用的物理核上并发执行,
降低了时间域多路复用的可用概率.因为在多核上,
尽管核的频率可以独立调节,但是主板传过来的只
有一个电压.因此工作电压受最高频率核的约束.
综上所述,需要研究一套同时结合“软”、“硬”能
耗调节技术的方法来进行虚拟化云计算平台的能耗
管理.
2.2 虚拟机能耗测量挑战
2.2.1 虚拟机能耗无法直接测量
在真实的云计算系统中,能耗管理技术的一个
重要方面是能耗使用情况的可视性.基于这些可视
信息,可以进行自动的或者人工的能耗管理决策,这
就涉及一个重要问题,即虚拟机的能耗测量.由于现
代数据中心对能耗管理的内在需求,目前绝大多数
的新服务器都在硬件层提供了内置的能耗测量功
能,而旧的服务器也有其它一些解决方案,如使用功
耗分布单元(PowerDistributionUnits,PDU),通过
电源测试系统的能耗.但是在虚拟化环境中,虚拟机
的能耗无法直接从硬件测量.
56216期 叶可江等:虚拟化云计算平台的能耗管理
Kansal等人[23]提出了一个间接的虚拟机能耗
测量机制Joulemeter,使得虚拟化平台也能像目前
硬件上提供给服务器的功耗测量功能一样使用能耗
管理机制.首先跟踪虚拟机使用的每个硬件部件的
资源使用情况,然后通过一个资源能耗模型,把资源
使用率转换为能耗使用率.有了资源能耗模型,就可
以根据模型从运行时资源使用情况推断出虚拟机的
能量消耗.传统的能耗模型对于运行单个应用程序
的物理服务器是有效的,但不适合于云计算平台.在
云计算平台中一个服务器可能被多个不同的虚拟机
共享,每个虚拟机运行不同的应用程序.Joulemeter
通过服务器硬件和对Hypervisor插桩(Instrumen
tation)来建立所需的基于真实平台的能耗模型.
这种方法的误差率较低(实验表明误差保持在
0.4W~2.4W之间),并且运行时的开销也较小.
Joulemeter机制的优点是不需要对应用程序负载或
虚拟机里的操作系统进行额外的插桩,能自动适应
应用程序的特征甚至硬件配置的变化.而Stoess等
人[21]提出的虚拟机能耗测量机制,有一个前提假
设:即每个硬件部件的详细能耗模型是已知的,但
实际上这种模型很难提供.McIntoshSmith等人[24]
则针对异构系统提出了一种性能和能耗的基准测试
方法.
2.2.2 能耗模型精度的挑战
在虚拟化云计算数据中心中,通常是通过评估
当前虚拟机的CPU利用率来确定虚拟机的能耗情
况.但是不幸的是,这些评估可能并不精确[25].因为
测量出来的CPU利用率,无法精确反映真实的
CPU使用情况,它还包括了内存等待时间,因此不
能真实反映CPU功耗情况.例如,有两个虚拟机,
一个是CPU密集,一个是内存密集,尽管两个虚拟
机的CPU利用率测量值相同,如都是100%,但是
这两个虚拟机的能耗来源是不同的.这证明了简单
的虚拟机能耗模型存在局限性.
为了提高虚拟机能耗模型的精度,Krishnan等
人[25]研究了复杂的内存层次对能耗模型精度的影
响,因为内存正在逐渐变为一个重要的部件.能耗评
估的精度依赖于虚拟机对内存系统的使用情况,如
不同Cache层次的使用情况或者内存级的并行执行
情况.
在云计算数据中心中精确捕获每个虚拟机的能
耗不是一件容易的事.这是因为今天云计算数据中
心部署着各种类型的负载,它们有着不同的资源使
用需求,并且经常动态变化.此外,负责管理数据中
心或云基础设施的操作者无法知道应用程序所在的
虚拟机里的信息以及应用程序本身的执行行为.没
有人知道虚拟机上的应用程序正在做什么.因此,需
要采用一种黑盒技术来捕捉虚拟机的能耗情况,即
轮廓分析的方法.
2.3 虚拟机能耗测量的步骤
虚拟机能耗测量的基本思路如下:(1)首先建
立一个能耗模型.把特定类型资源的利用率(如
CPU)和整体系统能耗建立联系,为简单起见不考
虑处在相对较低利用率层次的其它类型资源的能
耗;(2)使用轻量级监控工具测量每个虚拟机运行
时的不同资源的利用率,例如可以通过典型虚拟化
平台(如Xen)提供的硬件性能计数器进行在线的轮
廓分析;(3)评估虚拟机能耗情况.输入资源利用
率,通过资源能耗模型的计算,间接推断虚拟机的
能耗.
基于以上思路,系统的总能耗可以简单地用
式(1)表示:
犈server=犈idle+犈cpu+犈mem+犈disk+犈net (1)每个系统子部件的能耗计算方法如下:CPU子
系统的精确能耗包括处理器能耗和Cache能耗.可
以通过监控每秒钟的指令执行次数来表示虚拟机
CPU的使用率.基于此就可以建立每秒钟指令数和
动态服务器能耗的相互关系.内存子系统的能耗模
型也类似,可以通过每秒Cache的缺失率创建内存
能耗模型,建立每秒钟的Cache缺失数和服务器能
耗的关联模型.
2.4 虚拟机能耗轮廓分析方法
目前,大多数在线能耗监控都是基于物理节点
的,如Liu等人[26]提出的GreenCloud架构,通过使
用一个外部的功耗测量器来获得物理主机的总体能
耗.它只提供整个系统的能量消耗,而没有提供每个
虚拟机的能耗,是一种粗粒度的能耗测量方法,能耗
精度低.为了提升能耗测量精度,需要开发细粒度的
资源和能耗轮廓分析方法,不仅分析物理节点的能
耗,还要分析每个虚拟机的能耗.
Bohra等人[27]提出了一个新的能耗轮廓分析工
具VMeter,它对每个虚拟机的资源和能耗进行轮
廓分析.该工具对CPU、Cache、Disk和DRAM等系
统子部件进行分别监控.Srikantaiah等人[28]采用类
似的方法,通过监控底层性能计数器预测上层应用
程序或进程的能耗.为了在软件设计时就考虑能耗
的优化,需要对应用程序层的能耗轮廓进行分析.为
了达到这个目标,来自微软的研究人员提出了一个
6621 计 算 机 学 报 2012年
自动化的工具进行细粒度的应用程序能耗轮廓分
析,并提供有价值的信息给程序设计者[29].Choi等
人[3031]通过对服务器整合场景的能耗进行轮廓分
析,开发出一个模型来预测整合场景下应用程序的
平均和持久的能耗.
3 虚拟化云平台的能耗分析与建模
能耗模型可以分成两大类:基于系统功能单元
的能耗评估模型和基于硬件性能计数器的能耗预测
模型.出于对模型精度的考虑,大多数的能耗模型属
于第2类,即对通过硬件性能计数器收集到的关键
系统事件进行统计,预测系统能耗,然后进行各种策
略的能耗优化.
图1给出了针对虚拟化云计算平台的能耗建模
方法,我们把它分为静态能耗建模和动态能耗建模
两类.静态能耗建模刻画的是单个虚拟机系统功能
部件的能耗,可以分别对CPU、内存、磁盘等系统子
部件进行建模,也可以对虚拟机系统整体进行建模.
动态能耗建模,指的是对虚拟化动态应用场景的能
耗进行建模,包括服务器整合能耗建模和在线迁移
能耗建模.
图1 虚拟化云计算平台的能耗建模方法分类
3.1 虚拟机能耗模型
3.1.1 能耗与功耗的定义及相互关系
能耗和功耗是用来衡量系统能量消耗的两个重
要概念.在计算机系统中,能耗是指计算机系统一段
时间内总的能量消耗,单位是焦耳(J).而功耗是指
单位时间内能量的消耗,反映计算机系统消耗能量
的速率,单位是瓦特(W).这两者都能表示系统的能
耗情况,本文不作特别区别.它们之间的关系如
式(2)所示[32]
犈=∫狋+Δ狋狋犘·d狋 (2)
3.1.2 CPU能耗模型
CPU的能耗使用模型依赖于多个因素,如处理
器子单元的活动情况,执行特定指令的情况,片上
Cache使用情况以及处于高低频的情况.一个精确
的能耗模型,需要考虑所有这些因素,但是这样会使
得监控的开销很大,并且不适于运行时的虚拟机的
实时能耗评估.因此,Kansal等人[23]提出了一个轻
量级的替换方法来跟踪处理器的活动和休眠次数,
这可以很容易地从操作系统里的处理器使用情况获
得.令狌cpu表示处理器利用率.对于一个给定的处理器频率,CPU的能耗模型如下[23]:
犈cpu=αcpu狌cpu+γcpu (3)其中,αcpu和γcpu指的是模型的特定常数,可以通过训练获得.
如果一个虚拟机犃的处理器利用率表示为
狌cpu,犃,那么该虚拟机的能耗犈cpu,犃为
犈cpu,犃=αcpu狌cpu,犃 (4)
3.1.3 内存能耗模型
现有的内存能耗模型研究发现影响内存能耗的
主要因素是内存读写的吞吐量.尽管有用额外的插
桩技术来捕获内存吞吐量[33],也有一种轻量级的内
存吞吐量的评估方法,即记录最后一层Cache(Last
LevelCache,LLC)的缺失次数,这在大多数处理器
上很容易获得.使用这些指标,内存的能耗模型可以
被写为如下形式[23]:
犈mem(犜)=αmem犖LLC(犜)+γmem (5)其中,犈mem(犜)表示犜时间内内存的总能耗,犖LLC(犜)表示犜时间内LLC缺失次数,αmem和γmem表示线性
模型的参数.
与跟踪虚拟机处理器使用率相比,跟踪虚拟机
的LLC缺失没有那么直观.因为内存访问由处理器
硬件直接管理,操作系统和Hypervisor不能直接看
到.大多数的处理器把LLC缺失作为硬件的一个性
能计数器,如IntelNehalem处理器在每个核上都提
供这个功能.通过跟踪每个虚拟机在每个核上因上
下文切换而导致的LLC缺失次数,我们就能获得相
应虚拟机的LLC的缺失次数.因此虚拟机的内存能
耗模型如下[23]:
犈mem,犃(犜)=αmem犖LLC,犃 (6)其中,犈LLC,犃表示一个虚拟机犃在时间犜内在所有核上的LLC缺失次数,αmem含义与式(5)中一致.
3.1.4 磁盘能耗模型
磁盘子系统的能耗模型相对较难建立,这是因
为无法知道磁盘的功耗状态,以及磁盘硬件缓存的
76216期 叶可江等:虚拟化云计算平台的能耗管理
影响.在数据中心服务器中,磁盘大多数以RAID
(RedundantArrayofIndependentDisks,磁盘阵
列)的方式存在,由RAID控制器控制着物理磁盘,
Hypervisor只能看到逻辑驱动.因此只能利用
Hypervisor能看得到的参数来进行建模.而Hyper
visor只能看到读和写的字节数,以及这些读/写的
服务时间.因此可以使用这些参数来建立磁盘能耗
模型[23]:
犈disk(犜)=αrb犫r+αwb犫w+γdisk (7)其中,犈disk(犜)表示犜时间内磁盘的能量消耗,犫r和
犫w表示犜时间内读和写的字节数.α参数和γdisk可
以通过训练获得.
与CPU和内存资源一样,需要跟踪每个虚拟
机的磁盘使用参数.值得注意的是,磁盘活动的时
候,虚拟机不一定总是活动的,因为Hypervisor可
能在进行批处理I/O中断,或者缓存I/O等操作.
因此,需要在Hypervisor中显式的跟踪I/O操作,
而不是观察虚拟机活动时候存储系统的活动情况.
WindowsHyperVHypervisor已经实现了大部分
的状态跟踪操作,每个虚拟机特定的磁盘使用率能
从HyperV的性能计数器里获得,它们是HyperV
VirtualStorageDevice和HyperVVirtualIDE
Controller.因此,可以得到以下的虚拟机磁盘能耗
模型[23]:
犈disk,A=αrb×犫r,A+αwb×犫w,A (8)
其中,犫r,A和犫w,A表示虚拟机A读和写的字节数.此
外,根据实验发现,可以忽略磁盘读和写的能耗差
别,因此得到一个共同的参数,由前面提到的虚拟机
磁盘计数器总和表示,表示读和写的总字节数,因此
可以把模型简化为
犈disk(犜)=αio×犫io+γdisk (9)
相应的虚拟机的磁盘能耗为
犈disk,A=αio×犫io,A (10)
3.1.5 系统整体能耗模型
与式(1)表示的系统基本能耗模型不同,Bohra
等人[27]对监控事件的相互关联关系进行了研究,他
们采用主成分分析(PrincipalComponentAnalysis,
PCA)方法对输入数据集进行分析,发现{CPU,
Cache}对和{Disk,DRAM}对有很高的相关性.因
此,他们把系统负载分成两大类:CPU密集的负载
和I/O密集的负载.基于此,可以预测系统总功耗,
其模型表达如下:
犘{cpu,cache}=犪1+犪2狆cpu+犪3狆cache (11)
犘{DRAM,disk}=犪4+犪5狆DRAM+犪6狆disk (12)
犘{total}=α犘{cpu,cache}+β犘{DRAM,disk} (13)其中,犪1和犪4是用来调节系统空闲时的系统能耗,参数犪2、犪3、犪5和犪6表示权重,犘cpu、犘cache、犘DRAM和
犘disk分别表示CPU、Cache、DRAM和Disk各子部件的功耗,可由监控到的系统事件计算得到.
犘{cpu,cache}和犘{DRAM,disk}分别表示{CPU,Cache}和
{DRAM,Disk}子系统的功耗.使用这个模型,可以
计算每个活动虚拟机的功耗.
整体系统功耗可以分为两大类:基数功率消耗
和动态功率消耗.根据上式,犪1和犪4提供系统空闲时的基数功率消耗,因此基数功耗表示如下:
犘{baseline}=α×犪1+β×犪4 (14)其中,犘{baseline}是基数功率消耗.系统整体功率消耗表示如下:
犘{total}=犘{baseline}+∑犖犽=1犘{domain(犽)} (15)其中,犘{total}表示总体系统功率消耗,犘{domain(犽)}表示一个活动虚拟机域的功率消耗,犖是活动虚拟机域
的个数.每个虚拟机域可以由系统提供的硬件事件
的计数器值获得
犘{domain(犻)}=α(犪2狆cpu(犻)+犪3狆cache(犻))+
β(犪5狆DRAM(犻)+犪6狆disk(犻)) (16)其中,犘{domain(犻)}是指一个活动虚拟机或Dom0的功率消耗,狆cpu(犻)、狆cache(犻)、狆DRAM(犻)可以从给定域的硬件事件计数器值获得,狆disk(犻)可以从给定域的硬盘数据传输量获得.实验证明,该模型能很好地满足相应的
测试基准程序的测试,计算开销也不大,并且提升了
评价预测的精度.
3.2 服务器整合建模
服务器整合指的是把多个虚拟机应用负载整合
在一台物理主机上运行[10,12,34],它是虚拟化技术的
一个重要应用场景.服务器整合可以被形式化为如
下形式[35]:令在犜时间段,有犖个程序犃犻需要被部署到犕个物理主机犎犼上.对于每个程序犃犻,令
犆(犃犻,狋)表示在狋时刻为了满足SLA所需的资源.这里假设犆(犃犻,狋)可以从资源的监控数据获得,而不去考虑怎样把程序的SLA转为一个资源值.令物
理主机犎犼的容量为犆(犎犼),犡表示一个特定的整合配置,把程序部署到物理服务器上,如果程序犃犻被部署到主机犎犼,那么令狓犻犼=1,否则狓犻犼=0.服务器整合问题就是要找这样一个配置,优化给定的开
销函数.例如,如果整合的目标是优化能耗,那么需
要寻找一个配置犡,最小化犘(犡),犘(犡)是一个真
实估价的函数,表示一个特定程序部署的能量消耗.
部署应该确保所有程序的资源需求满足整个犜时间
8621 计 算 机 学 报 2012年
段,即狋∈犜,∑犖犻=1狓犻犼犆(犃犻,狋)犆(犎犼).我们还需要
确保所有的应用程序被成功部署上,即∑犕犼=1狓犻犼=1.动态整合假设犜非常短,这使得应用程序的容
量请求犆(犃犻)是时间无关的.因此,容量约束不再是
随机的.在动态整合场景里,为了评估犆(犃犻)和
犆(犎犼),一个主流的指标是来自IDEAS(IdeasIn
ternational)组织的RPE2(RelativeserverPerform
anceEstimate2)指标①,几乎所有的常用服务器的
性能都用RPE2值测试出来.犆(犎犼)用RPE2值来表示,通过分析服务器CPU的利用率对应用程序
的资源请求情况进行评估.如果没有使用虚拟化,服
务器的RPE2值和该时间段内服务器的最大CPU
利用率的乘积,被用来表示应用程序的资源需求大
小.如果使用了虚拟化,则根据其物理服务器上的每
个虚拟机的权重、虚拟机的CPU利用率和物理服
务器的RPE2值进行综合计算.
3.3 在线迁移建模
虚拟机在线迁移指的是一种在不停机的情况下
进行虚拟机迁移的技术[11,3637].Liu等人[38]对虚拟
机迁移的能耗进行量化建模.虚拟机迁移的能量消
耗主要由数据传输率决定.源端主机在进行虚拟机
迁移时的能量消耗随数据传输率的上升而上升.另
一方面,当数据传输率更高的时候,迁移延迟变得更
短.实验证明,因为虚拟机迁移本身而产生的能量消
耗与数据传输率无关.注意到,虚拟机迁移是一个
I/O密集的程序,能耗主要消耗在网络上进行数据
传输和接收.可以推测虚拟机迁移导致的能量开销
只由网络流量的数据量决定.基于此,Liu等人设计
了一个模型来评估虚拟机迁移的能量开销.
实现虚拟机迁移牵涉到源主机、网络交换器、目
标主机3大资源.因为交换结构非常复杂,能耗很难
量化,因此该模型只考虑源端和目标端的能量消耗.
一般来说,数据在源端传输的量与数据在目标端接
收的量是相等的,另外通过实验发现在同构的环境
中,数据传输和接收的能量消耗差异非常小.因此以
下能耗模型假设能量消耗与虚拟机迁移导致的网络
开销成线性增长关系:
犈mig=犈source+犈dest=(α狊+α犱)犞mig+(β狊+β犱)(17)其中,α狊、α犱、β狊、β犱表示需要训练的模型参数.在异构物理机环境下,该模型仍然适用,只是这些模型参数
需要重新训练.因为当前的虚拟化平台(包括Xen
和VMware)只支持虚拟机在同构主机间的迁移,为
了简化问题,只在同构环境中训练能耗模型.因此,
式(17)能被简化为
犈mig=犈source+犈dest=α犞mig+β (18)网络流量犞mig用兆字节(Mb)表示,能耗犈mig用
Joules②表示.
犞mig可以很容易从真实迁移训练实验获得.为
了计算额外的能耗犈mig,应该获得由虚拟机在线迁
移导致的能耗上升部分.首先测量物理主机的静态
功耗犘0,然后测量当虚拟机在迁移时的能耗犘狋,那
么由虚拟机迁移导致的动态能耗可以由下式计算
得到
犈mig=∫犜mig0(犘狋-犘0)d狋=∑犜mig狋=1(犘狋-犘0)(19)
4 虚拟化云平台能耗管理实现机制
节能技术可以分为静态节能技术和动态节能技
术.第1种方法在最初系统和部件设计的时候就把
能耗因素考虑进去,这种方法包括电路层节能技术
(如对未使用的组件禁用时钟信号),节能微架构设
计[8],处理器、内存和磁盘的低功耗状态设计[39]等.
第2种方法根据负载变化,从资源管理的角度自适
应地进行节能管理,这种方法需要智能的管理软件
来优化服务器层和集群层的能量消耗.把软硬件节
能技术绑定在一起是一种更为有效的方法,也是虚
拟化云计算平台可行的节能实现机制.
根据之前的分析,虚拟化云平台的能耗管理面
临一些新的挑战,因此需要针对该平台开发新的能
耗管理机制.Nathuji和Schwan[19]考虑了面向虚拟
化平台的能耗管理新机制的设计问题:(1)软硬结
合的能耗调整.虚拟化技术可以动态扩展物理资源
分配给虚拟机,有两种方式可以实现能耗调整:
①软的技术,依靠Hypervisor的管理来限制虚拟机
对硬件资源的使用率;②硬的技术,采用底层硬件
节能技术,如处理器电压频率调整(DynamicVolt
ageandFrequencyScaling,DVFS)技术.为了实现
更有效的虚拟化层能耗管理,这两方面的技术都要
采用.(2)独立和协调.客户虚拟机有自己的能耗管
理方法,如Linux操作系统允许处理器进行动态电
压频率调整,这个管理策略既可以装载到内核,也可
以在用户空间执行.此外,还可以采用其它特定应用
96216期 叶可江等:虚拟化云计算平台的能耗管理
①②
http://www.ideasinternational.com/performance/http://en.wikipedia.org/wiki/Joule
程序的节能策略解决实时负载或者满足程序最小化
能耗的需求.从这个角度来说,云平台能耗管理的一
个必要元素是需要协调各个层次的节能策略,如硬
件层、操作系统层、机架层、数据中心层等.(3)管理
的灵活性.有虚拟化技术支持的现代数据中心拥有
多种设备,这些设备有不同的属性和管理功能,或者
部署了不同类型的应用程序,而且这些应用程序有
着不同的SLA需求.这种场景下需要不同的动态能
耗管理策略.因此为了有效解决虚拟化环境的能耗
管理问题,需要给管理员提供灵活的能耗管理策略.
根据管理层次的不同,我们把虚拟化云计算平
台的能耗管理机制分为两大类:虚拟化层的能耗管
理机制和云平台层的能耗管理机制.其中在虚拟化
层的能耗管理机制中,我们分析了虚拟机管理器
(VirtualMachineMonitor,VMM)层对能耗管理的
支持,以及虚拟机层对能耗管理的支持.云平台层的
能耗管理机制范围很广,它的主要思路是从虚拟资
源管理的角度对云平台的能耗进行管理,我们又把
它具体分为VPM(VirtualPowerManagement)能
耗管理机制和能耗管理中间件框架两大类,如图2
所示.
图2 虚拟化云计算平台的能耗管理机制分类
附录表1列举了目前各种典型的虚拟化云计算
平台的能耗管理机制,分别从实现平台、考虑的资源
维度、同构/异构性、是否用到迁移、最终优化目标、
采用的具体节能技术和实现效果7大方面,全面总
结、分析和比较了各种能耗管理机制的异同点.
4.1 虚拟化层的能耗管理机制
4.1.1 VMM层的能耗管理机制
虚拟机管理器(VMM)可以有两种方式参与能
耗管理[55]:(1)虚拟机管理器可以看作为一个能耗
感知的操作系统,对系统整体性能进行监控,并利用
DVFS等技术降低系统部件的能耗;(2)依靠操作
系统特定的能耗管理策略和应用程序级的信息,把
不同虚拟机的能耗管理操作映射到硬件功耗状态的
真实改变上.虚拟机管理器一般提供类似于Linux
本身提供的按需能耗管理机制,即支持基于高级配
置与电源接口(AdvancedConfigurationandPower
ManagementInterface,ACPI)的能耗管理机制.系
统间隔性的监控CPU利用率,检测适合的功率状
态,生成一个平台独立的命令,进而调节硬件的功率
状态.
Xen支持ACPI的P状态,并在cpufreq驱动里
实现这一机制[56].与Linux功耗管理子系统类似,
Xen功耗管理系统包括4个管理器:(1)按需管理
器.根据当前的资源需求选择最佳的P状态;(2)用
户空间管理器.由用户指定设置CPU的频率;
(3)性能管理器.设置最高的可用时钟频率;(4)节
能管理器.设置最低的时钟频率.除P状态外,Xen
还支持C状态(CPU睡眠状态)[56].当一个物理
CPU没有运行任务时,就切换到C状态.当新的请
求到来时,CPU切换回活动状态.一个问题是进入
到哪一种C状态:深度C状态提供更高的节能效
果,但是也意味着更高的切换开销.目前,Xen缺省
地把CPU切换到第一个C状态.当CPU收到唤醒
信号时,会不可避免地带来一定的性能损失.与Xen
相似,VMware也支持主机层的能耗管理机制,支持
DVFS技术.系统连续监控CPU使用率,并恰当地
使用ACPI中的P状态.KVM是另外一种虚拟化
平台,它是作为Linux内核的一个模块.在这个模块
下,Linux担任Hypervisor的角色,所有的虚拟机
按正常的进程由Linux调度器进行调度.这种方法
减少了Hypervisor实现的复杂度,因为调度和内存
管理都是由Linux内核完成.KVM支持S4(休眠)
和S3(待机)两种功耗状态①.S4不需要KVM任何
特殊的支持,在休眠状态,客户操作系统把内存状态
保存进硬盘,并且关闭计算机.在下次启动的时候,
操作系统从磁盘读取保存着的内存状态,从休眠中
恢复,初始化所有设备.在S3状态,内存是开着的,
数据不需要保存到磁盘.但是,客户操作系统必须保
存设备的状态,因为他们需要恢复设备状态.在下一
次启动时,BIOS(BasicInputOutputSystem)应该
识别S3状态,而不是初始化设备,直接恢复S3保存
着的设备状态.因此BIOS需要做一些修改来支持
这种行为.
在虚拟机管理器层,除了对ACPI的支持之外,
另一个重要的特征是对虚拟机在线迁移的支持.通
0721 计 算 机 学 报 2012年
①http://www.linuxkvm.org/page/PowerManagement
过这种虚拟机的迁移可以进行能耗感知的动态虚拟
机整合,进而达到节能的目的.迁移被用来在物理主
机间转移虚拟机.离线迁移采用暂停(Suspend)的
方式把一个虚拟机从一台主机移动到另外一台主
机,拷贝内存内容,然后在目标主机恢复运行虚拟
机.而在线迁移转移虚拟机时,不需要暂停虚拟机.
Xen既支持离线迁移也支持在线虚拟机迁移.
VMware的VMotion模块使得虚拟机能通过自动
的或者管理员手动的方式在物理节点间在线迁移虚
拟机.VMware的DRS(DistributedResource
Scheduler)模块包含一个专门的功耗管理子系统叫
VMwareDPM(DistributedPowerManagement)①,
用来动态关闭空闲服务器,从而减少能量的消耗.当
资源请求量上升的时候,服务器又被重新启动起来.
VMwareDPM使用在线迁移来重新分配虚拟机,保
持最小的活动服务器数目.KVM也支持在线迁移.
表2对目前流行的3大虚拟机管理器(Xen、
VMware和KVM)的能耗管理机制进行了比较
分析.
表2 典型虚拟机管理器的能耗管理机制比较
VMM类型VMM能耗管理机制 基于迁移的能耗管理机制
Xen 支持P状态、C状态 基于在线迁移的整合
VMware 支持P状态 基于VMotion迁移的整合、DPM能耗管理机制
KVM 支持S4、S3状态 基于在线迁移的整合
4.1.2 VM层的能耗管理机制
在虚拟机里进行能耗管理面临很多挑战,
Nathuji等人[19]提出的虚拟能耗管理机制Virtual
Power填补了在虚拟机内部进行能耗管理的空白,
它结合采用硬件能耗调整和基于软件的能耗调整方
法来控制虚拟化平台的能耗.VirtualPower定义了
一整套完整的虚拟能耗管理(VirtualPowerMan
agement,VPM)元素:VPM状态、VPM通道、VPM
规则、VPM机制.通过虚拟机层的“软的VPM状
态”管理策略,客户机会拥有一致的硬件管理能力视
野,而不用考虑底层的物理资源.然后通过VPM规
则把这些更改映射到底层硬件的改变.VirtualPow
er把能耗管理策略解释成一种提示(hints)而不是
执行命令.这些提示被ACPI接口捕获.当客户虚拟
机想要通过这个接口进行特权操作时,目前的Hy
pervisor的做法是会忽视它们,但是VirtualPower
会解释提示并把它们映射到VPM通道.这些通道
提供有用的提示给VirtualPower的VPM规则.然
后,VPM规则使用由这些提示组成的“软”的状态
请求作为局部能耗管理和全局能耗管理的输入.
VPM状态和通道的绑定提供了一致的能耗管理,
同时维护了虚拟机的隔离性和独立性.
VirtualPower不需要修改客户操作系统.它的
架构流程如图3所示:每个物理平台运行一个
Hypervisor