数据中心节能算法研究综述*
2012-11-24王新华
刘 永 ,王新华 ,2,王 朕 ,王 硕
(1.山东师范大学 信息科学与工程学院,山东 济南 250014;2.山东省分布式计算机软件新技术重点实验室,山东 济南 250014)
传统的数据中心总是集中于服务器等计算系统性能上的提高,忽略了电能的消耗和CO2的排放,这不仅造成数据中心运营成本的日益加重,还给周边环境带来了严重的温室效应。目前,数据中心节能因素已受到研究人员和运营商的广泛关注,亚马逊网站估计亚马逊数据中心服务器的购买和运营成本占到了数据中心总成本的53%,而用电成本则占到了42%。惠普和国际正常运行时间学会根据最近的 “数据中心用电预测报告”预测指出:服务器和网络设备在现有用电基础上还可以节约20%的电能,并且还会使相应的制冷设备减少30%的能耗。
无论是服务器、网络设备,还是制冷、用电设备,其用电量都会对各个数据中心的电能消耗带来影响。因此,要保证数据中心节能,就要想办法减少这些设备的用电水平,以降低整个数据中心的电能消耗。
1 节能技术算法介绍
1.1 硬件层节能技术
在服务器硬件节能方面采用最广泛的技术是CPU的动态电压/主频升降技术DVFS(Dynamic Voltage and Frequency Scaling)。该技术允许CPU的时钟频率自动调整,同时CPU的电压值也会根据CPU的利用情况自动变化,从而达到节能的目的。
目前针对DVFS技术降低电能消耗的算法主要有:基于时间间隔算法、进程算法和进程间算法。基于时间间隔算法主要是通过CPU在过去一段时间的利用率来预测CPU将来的利用率,并适当调整CPU的电压和主频。进程算法则利用了程序结构信息来调整处理任务的CPU主频和电压。而进程间算法对运行在系统中的任务区别对待,不同的任务其CPU处理速度不同。
虽然DVFS技术原理看似很简单,但在实际应用时可能会产生很多问题:(1)由于现代CPU架构的复杂性,例如:预测满足应用程序性能需求的CPU时钟频率是必需的,而许多CPU采用了通道技术或多级缓存技术,这对实现 DVFS技术增加了难度;(2)有研究表明,CPU的电能消耗和电压值之间也不是简单的平方关系,即 Ecpu≠V2cpu, 其中,Ecpu是 CPU消耗的电能,V2cpu是 CPU的电压值。参考文献[1]中指出:一个CPU芯片的不同部件可能需要多个不同的电压,即使其中一个部件的电压值降低,但CPU芯片总的电压消耗还是由较大的供电电压决定,并且应用程序的执行时间通常与CPU的主频成反比,而采用了DVFS技术后,就不再是简单的反比关系;(3)目前许多数据中心都采用了虚拟化技术,尤其是云计算数据中心更是以虚拟化技术为基础,而DVFS技术如果不加修改,是不能直接用于虚拟化环境的。因此,尽管采用DVFS技术可能会节省电能,但鉴于上述各种原因,要想通过DVFS技术达到节能的目的还有很长的路要走。
1.2 操作系统层节能管理
目前在操作系统层上的节能管理主要有:Pallipadi研究组的Ondemand Governor系统[2]、Zeng研究组的ECOsystem系统[3]、Rajkumar研究组的 Linux/RK内核[4]等。本文分别介绍这三种系统。
1.2.1 Ondemand Governor系统
Ondemand Governor系统是一个嵌入到Linux操作系统内核的电源管理器(称为按需管理器)。该管理器实时地监控 CPU的利用率,根据当前应用程序的CPU利用率自动调节CPU的主频和供电电压。按需管理器参数一般默认设置为与CPU利用率的80%相对应的主频和供电电压值。
目前按需管理器已经能够被应用到对称处理器系统和多核多线程的CPU架构中。但按需处理器存在一个缺点:即以集中的模式取样系统中所有CPU的利用率,这种方式增加了系统在时间上的开销。克服这一缺点一个有效的方法是:并行地对CPU利用率取样,减少在CPU利用率取样时间上的开销。
1.2.2 ECOsystem系统
ECOsystm系统是专门用于蓄电池设备的电能管理系统,它是通过修改Linux操作系统的内核得到的。Zeng等人在设计这一系统时不仅考虑了服务器硬件资源所消耗的电能,还考虑了应用程序运行时消耗电能的情况。为了计算硬件设备和应用程序消耗的电能,Zeng等人引进了一个叫做currentcy的电能消耗单位,它是一段时间内消耗的电能值。当用户向ECOsystem系统提供了蓄电池的供电时间以及所要运行应用程序的优先级时,ECOsystem系统就会计算它们消耗的currentcy值,从而把计算出的currentcy分配给要运行的应用程序和硬件设备。当应用程序消耗的电能超过了分配给它的currentcy时,该应用程序将停止运行。
1.2.3 Linux/RK内核
Rajkumar研究组[4]针对使用了 DVFS技术的服务器系统提出了一些节能算法,并修改了Linux操作系统的内核。他们把修改后的内核称为Linux/Resource内核,即Linux/RK。Linux/RK在保证应用程序运行隔离性的同时,还减少了应用程序的电量消耗。
Linux/RK包括系统时钟频率分配Sys-Clock(SystemClock Frequency Assignment)、单调优先级时钟频率 分 配 PM-Clock(Priority-MonotonicClock Frequency Assignment)、 优 化 时 钟 频 率 分 配 Opt-Clock(Optimal Clock Frequency Assignment)、动态单调优先级时钟频率分配 DPM-Clock(Dynamic PM-Clock)4种节能算法。Linux/RK会根据CPU电压/主频变化的开销等自动选择这4种算法。实验表明,Sys-Clock、PM-Clock以及DPMClock算法能节约大约50%的电量。
1.3 应用程序层节能
除了在硬件层、操作系统层设计方法节能外,还可以通过设计出优化的应用程序来节能。这是因为设计差的应用程序运行时不仅性能会很低,还会消耗大量的电能。但目前还没有一个统一的标准评价一个应用程序是否节能,而Tiwari认为程序执行越快,电能消耗就越少。因此,在开发应用程序时,应该遵循软件工程设计的原则,尽量缩短程序的代码行数,优化代码结构,从而提高应用程序执行的速度,以达到节能的目的。
1.4 集群层节能算法
集群层节能算法有多种分类方式。以DVFS技术为参照,可以将集群划分为DVFS技术集群和非DVFS技术的集群;以虚拟化技术为标准,将集群分为虚拟化集群和非虚拟化集群。本文主要根据集群是否采用了虚拟化技术进行分类,介绍目前出现的节能算法。
1.4.1 非虚拟化集群层节能算法
非虚拟化集群节能的主要思想是把服务整合到少量的服务器上,以提高单个服务器的资源利用率,并关闭多余的服务器,从而节约整个集群的电能。这里介绍几个具有代表性的非虚拟化集群节能算法的案例。
Elnozahy等人[5]研究了同构集群上运行单个Web服务的电能消耗和服务性能间的平衡问题,使用了DVFS技术,并提出了独立电压缩放IVS(Independent Voltage Scaling)、 协 调 电 压 缩 放 CVS (Coordinated Voltage Scaling)、 组 合 协 调 策 略 CCP (Coordinated Combined Policy)等3种算法用于CPU主频和电压的弹性扩展。其中,组合协调策略提供了一个决定CPU主频阈值的数学模型,它根据Web服务预期的响应时间设置CPU的主频,该策略能够决定运行Web服务的服务器数量,关闭多余的服务器,从而达到节能的目的。
Garg等人[6]研究了高性能计算应用程序在地理上分布的云数据中心上的调度问题。数据中心因为地理位置、设计和资源管理系统不同,其电力成本、CO2排放率以及负载也不同。为此,提出了5种算法。其中贪婪最小化碳排放量算法GMCE (GreedyMinimum Carbon Emission)、 最小化碳排放算法 MCEMCE (Minimum-Carbon-Emission-Minimum-Carbon-Emission)保证选择的数据中心是CO2排放最少的数据中心。贪婪最大利润算法 GMP(Greedy Maximum Profit)、最大利润算法 MPMP(Maximum-Profit-Maximum-Profit)保证选择的数据中心是最省电的数据中心。最小化碳排放以及最大利润化算法MCEMP (Minimizing Carbon Emission and Maximizing Profit)保证选择的数据中心既能节能又能减少CO2的排放。
Pinheiro等人[7]提出了一种同构集群的管理技术,该技术在保证QoS的同时,能使同构集群的电能消耗最少;使用吞吐量和应用程序的执行时间作为QoS的约束条件。算法中的master节点周期性地监视集群的负载情况,在保证应用程序QoS的同时,决定哪些节点打开或关闭,从而使电能的消耗最小。该算法也存在一定的缺点,因为集群的管理由单个的master节点执行,因此很容易造成单点失效,并且该算法一次只能添加或关闭一个节点,对激增的用户服务请求会造成很大的延迟,不适合大规模的集群环境。
1.4.2 虚拟化集群层节能算法
虚拟化集群因为使用了虚拟化技术,因此其节能算法涉及到虚拟机的调度问题。虚拟化集群节能算法的主要思想是把虚拟化了的服务,即将虚拟机整合到少量的物理服务器上,关闭多余的物理服务器,以达到集群节能的目的。
Kusic等人[8]研究了虚拟化 Web集群系统中电能和性能之间的均衡问题,所提出的系统控制器SC(System Controller)使用了限制预控制LLC(Limited Lookahead Control)策略,根据当前的Web请求负载,部署用于处理Web请求的虚拟机,在保证违反服务等级协议SLA(Service Level Agree)最小数量的同时,使得电能消耗最少。为了节能,还提出了开关主机和虚拟机的时间和电能成本模型,并使用人工神经网络来提高系统性能。实验结果显示使用LLC的服务器集群可以节省大约26%的电能,并且只有1.6%的服务等级协议违反率。但由于所提出的节能模型的复杂性,在15个主机构成的集群上控制器的执行时间长达30 min,因此所提出的系统控制器不适合大规模的集群环境。
Vinh等人[9]也提出了一个类似的用于云计算数据中心的调度器。该调度器使用了4个算法:预测算法、开关算法、任务调度算法和评估算法。预测算法使用了基于历史负载需求的神经预测器来预测负载的未来需求。开关算法根据预测结果动态地调度服务器的分配,关闭不需要的服务器以达到节能的目的,任务调度算法负责把请求分配到运行的服务器上。评估算法则在执行过程中寻找一个合适的训练周期,实验使用了ClarkNet和NASA作为负载。结果显示将动态训练和增加20%的服务器相结合效果最好,在ClarkNet负载上当丢弃率为0.02%时,节能49.8%。在NASA负载上当丢弃率仅为0.16%时,节能 55.4%。
Buyya等人[10]提出了云数据中心虚拟机的动态节能分配,把虚拟机的分配分为两步:第一步,接收新的部署虚拟机请求,并使用改进的最适合降序MBFD(Modification of the Best Fit Decreasing)算法把虚拟机放置到主机上;第二步,用单阈值 ST(Single Threshold)等算法选择要迁移的虚拟机,并使用MBFD算法把迁移的虚拟机分配到其他主机上。实验结果表明,虚拟机的动态分配不仅提供了可靠的QoS,还使得电能的消耗最小。
Song等人[11]研究了虚拟化数据中心环境下应用程序的资源分配问题,把资源调度划为应用程序调度、本地调度、全局调度三个层次。应用程序调度器把应用程序分配到虚拟机上,本地调度器根据应用程序的优先级把CPU等硬件资源分配给虚拟机,全局调度器控制CPU等硬件资源的分配。此外,还提出了一个线形编程模型和分配算法,该算法在虚拟机运行过程中,不需要虚拟机的动态迁移,应用程序有明确的优先级,适合用于企业计算环境。
1.4.3 根据DVFS技术分类的节能算法
集群节能算法除上述的分类外,还可以按照是否采用了DVFS技术进行分类。表1给出了按照算法是否采用DVFS技术分类的参考文献。
表1 按照DVFS技术分类的节能算法文献
2 数据中心节能的其他研究问题
当前数据中心的节能除了服务器节能占了很大比例以外,制冷设备、网络设备等也要注重节能。根据亚马逊网站估计其数据中心电能消耗比例为IT设备 (服务器设备,网络设备)占53%,制冷设备占 23%,电源设备占19%,其他设备占5%。
2.1 制冷设备节能
为了降低数据中心制冷设备的运营成本,首先要选择合适的制冷设备。通常数据中心都会选择机房专用精密空调作为制冷设备,因为这不仅考虑温度的降低,还要考虑环境的湿度、洁净度、控制管理等相关因素,并且机房专用精密空调具有连续运行能力强、使用寿命长的特点。
其次,还要进行合理的机柜布局。通常将高功率设备和高密度设备均分在每个机柜内,以避免造成数据中心的热点和冷却的难点,这可以大大降低制冷设备的运行费用和购买费用。
2.2 网络设备节能
数据中心除了考虑制冷设备消耗的电能外,也要考虑网络设备的电能消耗。根据统计,网络设备消耗的电能占到数据中心总消耗电能的20%~30%,并且随着服务器节能技术的发展,其耗能所占的比重还会继续上升。目前在网络设备节能方面也已经开展了很多工作。
Gupta[15]等人提出了节约连接到因特网上的网络设备的电能消耗,并在局域网上验证了节能的可行性,而且提出了有效的调度算法使得网络设备的空闲部件进入睡眠以节约电能。Nedevschi[16]和 Christensen[17]研究了网络设备的电源管理,通过网络设备睡眠和速率适配使得网络设备在网络空闲或低负载时节省电能。威斯康辛-麦迪逊大学和思科公司在网络和协议的设计及配置中把节能作为一个主要目标,并使用整体优化技术来优化网络设备的电能消耗。Shang Yunfei[18]在高密度的数据中心网络路由方面提出了节能的路由算法,首先建立了一个节能路由模型,并用0-1背包问题证明所提出的模型是一个NP问题,然后提出一个路由算法来解决节能问题。实验结果表明,该算法对于网络设备的节能很有效,尤其在网络负载低的时候节能效果更明显。
2.3 电源设备节能
目前,数据中心的电源配置PDU(Power Distribution Unit)方案有多种:机架安装电源配置方案、集中式电源配置方案、使用静态转换开关STS(StaticTransform Switch)的冗余电源配置方案、使用机架式自动转换开关ATS(Automatic Transform Switch)的负载冗余电源配置方案等。应该根据数据中心的规模、支持电源设备的类型以及选择方案的预算等选择合适的电源配置方案,以达到节约电能和节省费用的目的。表2给出了常用数据中心机房电源配置方案对比表。
表2 常用数据中心机房电源配置方案对比表
3 数据中心节能的研究热点和挑战
3.1 研究热点
3.1.1 虚拟机整合
[10]提出了有效的虚拟化数据中心的资源管理策略。该策略在保证QoS的同时,利用虚拟机迁移技术不断把虚拟机整合到少量服务器,关闭多余的服务器来减少电能消耗。参考文献[19]根据当前CPU等硬件资源利用率、虚拟机网络拓扑以及服务器的热状态,通过整合虚拟机减少电能消耗。参考文献[20]建立了CPU电能消耗模型,并使用单阈值策略和双阈值策略选择迁移的虚拟机,把虚拟机整合到少量服务器上来节约电能。参考文献[21]提出了基于自适应利用率阈值的虚拟机动态整合算法,它不仅保证了服务等级协议SLA(Service Level Agreement),还节省了大量电能。参考文献[8]提出的系统控制器使用了限制预控制,根据当前的Web请求负载,部署用于处理Web请求的虚拟机,在保证SLA的同时,使得电能消耗最少。
3.1.2 网络路由
参考文献[18]在密集型数据中心中建立了一个节能路由模型,并提出一个路由算法来解决网络节能问题。参考文献[22]提出了一个路由算法,在保证网络全连接以及链路最大利用率的同时,关闭不用的网络节点,使网络电能消耗最小。参考文献[23]考虑了网络通信设备的电能消耗,提出了电能剖面感知路由算法(Energy Profile Aware Routing),实验结果表明能节省35%的电能。参考文献[24]使用电能剖面概念(Energy Porfile)获得网络设备电能消耗特征,并提出了基于Dijkstra的节能 路 由 算 法 (Dijkstra-based PowerAware Routing Alogorithm,DPRA)。参考文献[25]提出了“活动窗口管理的拥塞控制技术”并结合提出的节能服务调谐处理算法来控制因特网服务运营商 ISP(InternetService Providers)网络上访问节点的电能消耗,实验表明在保证QoS和互联网流量的同时,能节省70%的电能。参考文献[26]基于认知包网络 CPN(Cognitive Packet Network)的路由协议 [27]提出了节能路由协议EARP(Energy-Aware Routing Protocol),在保证QoS的同时使得包网络中每条路由消耗的电能最少。参考文献[28]使用了G-网络(G-network)中的控制能力理论,在包网络的电能消耗和QoS之间建立数学模型,使用网络路由器和网络链路驱动设备电能消耗特征,使得提出的算法能够在QoS和网络电能消耗之间取得平衡。
3.1.3 网络信息复制和分发设计
数据中心中运行的应用程序很多用于信息分发,无论是移动设备用户还是Web 2.0用户,用户数量越来越多,并且这些用户分享大量的网络信息。但网络信息的快速、可靠分发需要对数据中心投入大量的硬件资源,并需要支付维持硬件设备运行的成本。目前,网络传输数据基本上基于协议栈中远程访问和复制功能等协议,其利润很难随着硬件设备的升级而提升。当数据中心成为发布和访问网络信息的巨大平台时(例如云计算数据中心),在网络上传输的数据量将大幅度增加,此时需要设计新的网络内容复制和分发策略,来保证网络内容的计算、存储、网络传输和电能消耗、服务质量之间的均衡。
3.2 面临的挑战
除了上述研究热点以外,当前数据中心还有许多问题有待研究,尤其是云计算的提出,给数据中心节能带来了更多的机遇和挑战。
本文对当前数据中心中常用的节能技术以及算法进行分析,并介绍了数据中心中网络设备、制冷设备、电源设备等节能方法。随着节能减排以及降低成本的迫切要求,越来越多的数据中心将采用虚拟化技术,虚拟化技术是云计算的重要技术之一。
当前虚拟化数据中心节能还存在很多问题,例如虚拟服务器本身的节能管理等。随着研究的深入,现阶段的研究者越来越关注通过利用虚拟机调度,关闭多余的服务器来节省整个集群消耗的电能或者提出节能的网络路由算法,关闭多余的网络设备来节省整个网络消耗的电能。
参考文献
[1]KATACHALAM V V,FRANZM.Power reduction techniques for microprocessor systems [J].ACM Computing Surveys(CSUR),2005,37(3): 195-237.
[2]PALLIPADI V,STARIKOVSKIY A.The ondemand governor[C].Proceedings ofthe Linux Symposium.Canada: LS 2006:658-672.
[3]ZENG H, ELLIS C S, LEBECK A R.A Vahdat.ECOSystem: managing energyasafirstclassoperating system resource[J].ACM SIGPLAN Notices,2002,37(10):123-132.
[4]RAJKUMAR R, JUVVA K, MOLANO A, et al.Resource kernels: A resource-centric approach to real-time and multimedia systems[C].Readings in multimedia computing and networking.San Jose/CA: ACADEMIC PRESS, 2001:476-490.
[5]ELNOZAHY E, KISTLER M, RAJAMONY R.Energy-Efficient server clusters [J]. Power-Aware Computer Systemspp.2003,2325:179-197.
[6]GARG SK, YEO C S, ANANDASIVAM A, etal.Environment-conscious scheduling of HPC applications on distributed cloud-oriented data centers[J].Journal of Parallel and Distributed Computing, 2010,71(6):732-749.
[7]PINHEIRO E, BIANCHINI R, CARRERA E V, et al.Load balancing and unbalancing for power and performance in cluster-based systems[C].Proceedings of the Workshop on Compilers and Operating Systems for Low Power.Barcelona:COLP 01, 2001:182-195.
[8]KUSIC D, KEPHART J O, HANSON J E, et al.Power and performance management of virtualized computing environments vialookahead control, clustercomputing[J].Cluster Computing, 2009, 12(1): 1-15.
[9]VINH T, SATO Y, INOGUCHI Y.A Prediction-Based Green Scheduler for Datacenters in Clouds[EB/OL].[2011-02-23].http://ino-www.jaist.ac.jp/members/duytvt/IEICE2011.pdf.
[10]BELOGLAZOV A,BUYYA R.Energy efficient allocation of virtual machine in cloud data centers[C].2010 10th IEEE/ACM International Conference on Cluster,Cloud and Grid Computing.Washington DC:IEEE Computer Society,2010:577-578.
[11]SONG Y,WANG H,LI Y,et al.Multi-tiered on-demand resource scheduling for VM-Based data center[C].Proceedings of the 9th IEEE/ACM International Symposium on ClusterComputing and the Grid.Washington:IEEE Computer Society Press, 2009:148-155.
[12]SRIKANTAIAH S, KANSAL A, Zhao Feng.Energy-aware consolidation for cloud computing[C].Proceedings of the 2008 conference on Power aware computing and systems.California: USENIX Association Berkeley, 2008:10-10.
[13]CHASE J S, ANDERSON D C, THAKAR P N, et al.Managing energy and server resources in hosting centers[C].Proceedings of the 18th ACM Symposium on Operating Systems Principles.New York: ACM New York, 2001:103–116.
[14]GMACH D, ROLIA J, CHERKASOVAL, et al.Resource pool management: reactive versus proactiveor let’s be friends[J].Computer Networks, 2009, 53(7):2905-2922.
[15]GUPTA M,SINGH S.Using low-power modes for energy conservation in ethernet LANs[C].Proceedingsof26th IEEE InternationalConferenceon Computer.Anchorage:IEEE, 2007: 2451-2455.
[16]NEDEVSCHIS, POPA L, IANNACCONE G, etal.Reducing network energy consumption via sleeping and rate-adaptation [C].Proceedings ofthe 5th USENIX Symposium on Networked Systems Design and Implementation.California:USENIX Association Berkeley, 2008:323-336.
[17]CHRISTENSENK, NORDMANB, BROWNR.Power management in networked devices[J].Computer,37(8):91-93.
[18]Shang Yunfei, Li Dan, Xu Mingwei.Green routing in data center network:modeling and algorithm Design[EB/OL].[2011-03-25].http://www.asiafi.net/meeting/2010/summerschool/p/asiafi2010s-final2.pdf.
[19]BELOGLZOV A,BUYYA R.Energyefficientresource management in virtualized cloud data centers[C].Proceedings of the 10th IEEE/ACM International Conference on Cluster,Cloud and Grid Computing.Melbourne: IEEE, 2010:826-831.
[20]BELOGLZOV A, ABAWAJY J, BUYYA R.Energy-aware resource allocation heuristics for efficient management of data centers for cloud computing[EB/OL]. [2011-03-20].http://beloglazov.info/papers/2010-energy-aware-fgcs.pdf.
[21]BELOGLZOV A,BUYYA R.Adaptivethreshold-based approach for energy-efficient consolidation of virtual machines in cloud data centers[C].Proceedings of the 8th International Workshop on Middleware for Grids,Clouds and e-Science.New York:ACM, 2010.
[22]CHIARAVIGLIO L, MELLIA M, NERI F.Energy-aware networks: reducing powerconsumption by switching off network elements[EB/OL].[2011-04-20].http://cloudbus.org/papers/AdaptiveVMCloud-MGC2010.pdf.
[23]RESTREPO J C,GRUBER C G,MACHUCA C M.Energy profile aware routing[C].IEEE International Conference on Communications Workshops(2009).Dresden: IEEE, 2009:1-5.
[24]GARROPPO R G, GIORADANO S, NENCIONI G, et al.Energy aware routing based on energy characterization of devices: solutions and analysis[EB/OL].[2011-03-30].http://networking.disi.unitn.it/cavalese2011/papers/51.pdf.
[25]PANARELLO C,LOMBARDO A, SCHEMBRA G.Energy saving and network performance:a trade-off approach[C].Proceedings of the 1st International Conference on Energy-EfficientComputingandNetworking.New York: ACM,2010:41-50.
[26]MAHMOODIT.Energy-awareroutinginthecognitive packet network[J].Performance Evaluation, 2011, 68(4):338-346.
[27]GELENBE E.Cognitive Packet network[P].U.S:Patent 6804201,2004-04-11.
[28]GELENBE E,MORFOPOULOU C.RoutingandGNetworks to qptimise energy and quality of service in packet networks[J].Lecture Notes of the Institute for Computing Sciences, Social Informatics and Telecommunications Engineering, 2011, 54(4): 163-173.