云数据中心能效可靠的虚拟机部署
2021-03-16刘秋菊
李 攀 陈 平 刘秋菊
1(济源职业技术学院 河南 济源 459000)
2(郑州工程技术学院 河南 郑州 450044)
0 引 言
云计算将传统的计算能力获取模式转变为当前的服务租用模式[1],基于资源的实际使用情况,按需以即付即用的弹性服务利用方式向用户提供资源。云数据中心是云服务的支撑基础设施。为了适应巨量规模云服务的需求增长,数据中心需要配置数以千计的服务器以满足这种计算需求。然而,数据中心同时需要消耗巨大的能量提供云服务。根据美国能源部的报告[2],美国的数据中心消耗了其国家总能量的2%(约700亿kW·h)。数据中心不仅消耗能量,同时还会产生巨量的温室气体,导致很高的碳排放。具体地,每年有430亿吨CO2排放,每季度在以13%的速度增长[3-4]。因此,改善数据中心能效对于云计算的可持续发展和营运代价将是至关重要的。
云数据中心的主要能耗来源于计算系统和冷却系统,基本上,冷却系统的能耗等于计算系统的能耗[5]。因此,数据中心资源管理系统需要同步考虑计算和冷却系统,从而实现全局的整体能效。
为了降低计算能耗,将负载合并至更少的主机上是一种有效方法,这样可以保持未使用的主机处于低功能状态[6-9]。然而,这种激进的合并可能导致局部热点的产生。热点主机的产生对于整个数据中心系统的可靠性具有很大的不利影响[10]。此外,若超过主机的温度阈值也会导致CPU硅组成的损坏,进而导致主机的失效。而且,为了进一步解决散热问题,冷却系统会传输很多的冷空气进而增加冷却系统的代价。而通过最优的负载分布的热量管理方法可以有效避免热点出现,并同步降低数据中心的能耗。
数据中心的温度变化也与多个因素相关。首先,主机功耗所挥发的热量会分布至数据中心环境中[11],这种功耗与资源的利用率是成正比的。其次,机房空调系统CRAC所提供的冷空气本身也会携带一定温度,即所谓的供冷温度。最后,研究表明主机的入口温度具有时空现象[12]。从一台主机所挥发的热量会影响其他主机的温度。由于热空气热力学的特征,这种热量会在数据中心内循环存在,经过主机的空气并不会完全到达回流口,部分仍将留在主机所有空间,此时,解决这种时空特征也可以优化能量使用。另一方面,估算数据中心温度也有一定难度,目前主要有三种方法。第一种方法是计算流体动态模型进行精确预测[13],然而这种方法固定的复杂性使其利用在实时在线调度问题上计算代价太高,不可行。第二种方法是利用机器学习的预测模型,这种方法极大地依赖于预测模型和数据的数量和质量。第三种方法是分析模型,主要根据热量的热力学特征和数据中心物理属性进行预测。
动态虚拟机合并是数据中心能耗节省的有效手段。而这些合并算法对于实体布局和物理主机的位置并不可知。由于数据中心内部温度的分布,将负载合并至较少的主机上并不一定会节省能耗,甚至可能导致冷却系统的代价升高和创建一些热点主机。但部分的合并能解决部分能耗问题。如文献[14]在异构数据中心中提出一种功耗和温度感知的负载分配算法,文献[15]提出基于DVFS的对偶时空感知的作业调度算法,但是这些方案均不直接应用于虚拟云数据中心中。
本文综合考虑了主机利用率、主机温度、主机功耗、冷却系统功耗,以及主机可靠性间的相互关系,建立了确保主机可靠性的冗余模型,在主动避免产生机架热点的情况下,可以实现动态的虚拟机部署决策,在降低数据中心总体能耗的前提下,确保主机服务的可靠性。仿真实验验证了算法在能效提高和性能提升上的优势。
1 性能模型
云数据中心中的虚拟机部署问题有多个需要考虑的性能评估因素,为了建立考虑能效和可靠性的虚拟机部署的性能模型,本节将讨论:主机利用率与功耗间的关系,主机利用率与主机热量间的关系,主机利用率与冷却系统功耗间的关系,主机热量与主机可靠性间的关系,以及建立一个冗余模型在给定的主机温度下获得主机的目标可靠性。
1.1 主机利用率与功耗间的关系
由于数据中心中主机的实际利用率一般较低,通过利用虚拟机技术将主机运行整合至数量较少的主机上(替代以较低的利用率运行所有可用主机)的方式可以降低主机功耗。为了最小化主机能耗,需要以集中的方式将虚拟机部署至数据较少的主机上。将虚拟机部署至一台主机上即可增加主机的利用率,如此,主机利用率与主机功耗拥有以下关系:
Ps(u)=Pidle+u×(Pmax-Pidle)
(1)
式中:u代表主机利用率;Pidle代表主机在空闲状态时的功耗;Pmax代表主机在100%利用率时的功耗。即使主机在空闲状态,仍将消耗能量。如果数据中心中的一台主机仅提供一种服务,那么当它无法满足来自用户的大量请求时,其资源利用率将较低。因此,通过虚拟机部署的主机合并方法可以节省数据中心的主机能耗。
1.2 主机利用率与主机热量间的关系
多数的数据中心功耗消耗于迁移主机散发的热量。基本上,数据中心冷却系统的功耗等于计算系统的功耗,这表明冷却系统需要持续运行以确保迁移来自主机所散发的大量热量。因此,降低主机本身的能耗与降低主机的热量散发对于整个数据中心而言具有相同的重要性。主机产生的热量(温度)与主机功耗的关系为[16]:
Tout=Tin+K×Ps(u)
(2)
式中:Tin代表提供给主机降温的冷气温度;Ps(u)代表主机功耗,为主机利用率的函数;K代表一个常量,K=1/ρfcp,ρ代表空气密度,为1.19 kg/m3,f代表气流速率,为0.245 4 m3/s,cp代表空气比热,为1 005 J/(kg·K)。
1.3 主机利用率与冷却系统功耗间的关系
数据中心中的空调系统的目的是快速地迁移主机的热量。由于主机所散发的空气温度会随着主机利用率的增加而增加,此时需要更多的冷却热量。对于高度整合的服务器机架,如刀片服务器,需要专用的机架空调系统,由于主机可能释放的热量要高于冷却系统的制冷能力。数据中心的空调系统可划分为两种类型:外部空气冷却法和水冷却法。水冷却系统的功耗可表示为:
(3)
式中:性能度量系数CoP表示冷却系统用于挥发主机产生热量的功耗,可表示为:
(4)
式中:Tsup代表空调系统挥发的空气温度(单位:℃)。如果Tsup设置为预定义的主机稳定运行的最大值,则冷却系统的功耗与主机利用率存在线性关系。因此,虚拟机部署可以改变主机利用率,不仅可以影响主机功耗,而且还可以影响冷却系统的功耗。
1.4 主机热量与主机可靠性间的关系
由于主机是由大量的复杂半导体元器件所构成,正常的运行必须保持其合适的温度和湿度。如果虚拟机被部署至数量较少的主机上,以此降低主机的使用数量,则可能产生热量岛,即热点主机,这反过来会影响主机长周期运行的可靠性,甚至不利于能耗的降低。根据文献[17]的研究,主机的环境温度与主机可靠性有直接关系。图1为主机的相对失效率与主机温度的关系。假设主机相对失效率为1时的温度为20 ℃,则根据温度主机将有不同的失效概率。在35 ℃时,主机失效率是主机运行于20 ℃的1.6倍。相当于,如果数据中心拥有10 000台主机运行于20 ℃,则将有100台主机在给定周期内会失效。若温度增加至40 ℃,主机相对失效率将提高1.66倍,这表明将有166台主机出现失效。因此,为了降低主机的失效率,冷却系统需要运行维持一个合适的室内温度,则备份主机也必须有充分的冗余准备。
图1 主机温度与相对失效率间的关系
1.5 确保可靠性的主机冗余建模
本文利用可用性作为描述主机可靠性的性能指标。可用性定义为系统在给定时间内的系统可用的概率[18]:
(5)
式中:MTBF代表主机失效间的平均时间,即系统的平均生命周期;MTTR代表主机修复的平均时间,即主机出现失效后修复系统需要的平均时间。
为了改进主机可靠性,需要冗余主机作为备份。一旦应用主机冗余,则需要考虑主机并行连接计算主机可用性。假设拥有N个工作主机和一个备份主机,表示为N:1冗余,其中N代表冗余率。当N个工作主机中的一台失效时,备份系统可以代替失效主机工作。这种类型的主机联接可建模为M/M/1/N+1/N+1的队列模型[19],如图2所示。图中每个状态上的数字代表失效主机的数量,λ代表平均失效发生率,等于1/MTBF,μ代表平均失效完成率,等于1/MTTR。基于以上的队列模型,应用冗余的主机可用性可通过以下方式计算。k个主机失效的概率为:
(6)
式中:k=1,2,…,N+1。
(7)
图2 基于系统可靠性的M/M/1/N+1/N+1队列模型
由于当所有主机均可用(P0)或仅有一个主机失效时(P1),主机即可用。拥有一个备份主机A时N个个体主机的可用性可计算为:
(8)
现在计算温度在20 ℃和40 ℃时主机的可用性以及两种情况下的主机冗余率。根据图1,温度为40 ℃时,其失效率比20 ℃时高66%。为了利用式(8),假设在给定周期内温度为20 ℃时主机失效发生率(λ=1/MTBF)为0.001,即10 000个主机拥有10个失效。因此,主机失效发生率为0.001 66,相当于10 000个主机中有16.6个失效。如果MTTR设置为1小时,则失效完成率μ变为1。利用式(8),假设数据中心中一个主机的目标可用性是0.999 9,则其温度需要维持在20 ℃,备份主机需要在每9个工作主机间提供一次。对于数据中心温度在40 ℃的情况,备份主机则需要在每6个工作主机间提供一次。
对于备份主机,其能耗取决于它是否为热备份或冷待机。若运行在热备份,则主机为空闲状态,拥有空闲能耗,由于需要随时准备主机失效的发生。冷待机状态则仅仅消耗最小的能量。
2 满足能效可靠的虚拟机部署算法
2.1 优化模型与算法设计
为了节省数据中心的能耗,需要将虚拟机尽可能部署至数量较少的主机上。利用虚拟化技术可以将大量的虚拟机合并至较少数量的主机上,从而降低整个主机的能耗,以及冷却系统的功耗。然而,过度的合并势必会导致热点主机的出现,这反过来会影响设备的可靠性。为了确保运行于高温环境下的主机的可靠性,需要考虑主机的冗余机制。本节提出一种同步考虑能耗节省和主机可靠性的虚拟机部署算法。算法的目标是最小化容纳虚拟机部署请求的主机功耗,并同时考虑避免由于主机密集部署下的热点主机,并满足主机的目标可靠性。假设J表示M台主机的集合,I表示D台虚拟机的集合,以上的最优化问题可以形式化为:
目标函数:
(9)
约束条件:
(10)
xij∈{0,1} ∀i∈I,∀j∈J
(11)
Tj≤Tth∀j∈J
(12)
(13)
(14)
虚拟机部署算法的目标是最小化所有主机的总体功耗。如式(1)所示,主机j的功耗P为主机利用率Sj的函数。式(10)表明拥有需求V的虚拟机将尽可能地部署于主机上,Vi表示虚拟机i的资源请求量,需要小于或等于一台主机的全部能力。假设一台主机的全部能力为1,一台主机的利用率Sj∈R为0至1之间。式(11)定义主机j与虚拟机i间的部署关系,xij=1代表虚拟机i部署于主机h上,xij=0代表未部署。式(12)表明服务器机架的出口温度Tj(主机j的位置处)需小于或等于最大可允许的温度Tth,Tj和Tth均为实数值,Tj由式(2)和式(1)计算,表示主机利用率Sj的函数。即使有主机可以满足虚拟机的部署请求,若出口温度超过最大温度,虚拟机也无法进行部署,这样可以避免产生热点。式(13)确保成功部署在主机上的虚拟机数量小于或等于用户请求的虚拟机数量。式(14)表明用户请求的虚拟机的总资源需求量之和需要小于或等于所有主机的能力之和。
拥有约束条件的虚拟机部署目标最优化问题是NP问题,本文设计一种启发式算法,如算法1所示。
算法1能效可靠的虚拟机部署算法
输入:服务器集合S,目标可靠性的冗余率,最大可允许温度Tth,虚拟机需求集合V。
输出:虚拟机映射解。
1. 对虚拟机请求进行降序排列
2. fori=1 toD
//虚拟机请求集合
3.Savailable=1-S
//可用主机能力,S是主机利用率
4. forj=1 toM
//主机集合
5. ifV[i]≤Savailable[j]
//请求量小于等于主机可用量
6.S[j]=S[j]+V[i]
//添加虚拟机请求i至主机j
7. 计算主机功耗和主机所在机架的整体功耗
8. 计算主机所在机架的出口温度
9. ifT≥Tth
//避免热点机架,需要搜索其他可用主机
10. 到下一服务器
11.S[j]=S[j]-V[i]
//从主机j上删除虚拟机请求i
12. end if
13. end if
//代表没有可用主机
14. 到下一服务器
15. if the number of working servers>N
//确保主机目标可靠性
16. 添加备份主机
17. 计算主机功耗
18. end if
19. end for
20. end for
初始条件下,有多个算法的输入参数,包括:主机集合(S[j],j=1,2,…,M,M是数据中心中主机的总量)、主机最大允许温度Tth、主机运行的目标可靠性A、用户请求的虚拟机量(V[i],i=1,2,…,D,D是到达数据中心的虚拟机总量)。S[i]表示主机j的利用率。算法开始时,需要通过式(8)计算满足主机目标可靠性的冗余率N。步骤1对虚拟机请求量做降序排列。可容纳虚拟机部署要求的可用主机被按序搜索,即步骤3-步骤5。如果一台主机拥有足够的资源能力容纳虚拟机部署请求,虚拟机即部署于该主机上,即步骤6。步骤7计算主机功耗P[j]和主机所处位置的机架。由于超载主机密集部署在一个主机机架时会产生热点,步骤8需要计算每个主机机架的出口温度Tout。即使有一个可用主机可以容纳虚拟机,如果出口温度超过最大允许的温度,也需要搜索其他可用主机用于虚拟机部署,即步骤9-步骤11。
另一方面,为了实现主机的目标可靠性,需要安排备份主机。根据前文所述,当目标温度给定时,可以计算冗余率N来确保主机的可靠性。随着虚拟机的部署,如果工作主机的数量增加,并超过冗余率N,则需要部署附加的备份主机。备份主机的功耗需要加至数据中心的总体功耗中,即步骤15-步骤17。
2.2 算法时间复杂度分析
算法首先对请求的虚拟机做降序排列(步骤1),排序算法的时间复杂度为O(nlogn),n为待部署的虚拟机数量。步骤2-步骤20将所有虚拟机部署至可用主机上,时间复杂度为O(n)。步骤4-步骤19从最低ID至最高ID的主机间寻找一台可容纳虚拟机的主机,时间复杂度为O(m),m为所有主机的数量。在搜索主机期间,一部分需要计算决定是否产生一个热点,即步骤9-步骤13,另一部分需要计算备份主机,即步骤15-步骤18,这部分并不会影响算法的时间复杂度。因此,算法的时间复杂度为O(nm)。为了改进算法的运行时间,搜索主机部分可以修改为二进制搜索方法,则算法时间复杂度为O(nlogm)。仿真中,算法试图从较低ID搜索主机,利用较低ID的可用主机部署虚拟机。随着虚拟机数量n的增加,仿真算法的运行时间呈线性增加。当虚拟机数量较少时,主机数量m对算法运行时间影响较小,然而,随着虚拟机数量的增加,它将进一步影响算法运行时间。这是由于虚拟机数量较少时,可搜索的主机数量受限,而在大量的虚拟机数量下,待搜索的主机数量增加,就增加了算法的运行时间。
3 仿真实验
3.1 实验配置
根据前文所述,主机设备的失效率会随着主机运行温度的增加而增加,因此,有必要配置备份主机以备工作主机出现失效。表1给出了根据主机运行温度和主机目标可靠性得到的请求冗余率,可由1.5节中的相关计算公式得到。冗余率代表共享一个备份主机的主机数量。主机温度和目标可靠性要求越高,则冗余率越低。例如:如果主机温度为20 ℃,目标可靠性为0.999 5,则需要一台备份主机服务于21台工作主机。然而,温度为45 ℃,目标可靠性为0.999 95时,必须为三台工作主机预留一台备份主机。即:失效率越高,或目标可靠性越高,则所要求的备份主机也越多。根据文献[17]设计的ASHRAE模型,本文假设最大允许温度为70 ℃,主机的目标可靠性为0.999 95进行性能评估。根据这些假设条件,可知每5台工作主机的失效需要配置一台备份主机。
表1 确保目标可靠性的冗余率
仿真环境如下:主机总共有1 000台,每10台配置一个主机机架。所有主机的硬件和软件运行环境是相同的。用户请求的云服务以请求的虚拟机表示,该虚拟机对于主机的资源请求服从正态的均匀分布。假设主机处于待机状态时的功耗为5 W,处于空闲状态时的功耗为120 W,处于最大利用率时的功耗为450 W。冷却系统提供至主机的空气温度为20 ℃,主机最大允许的温度为70 ℃。假设来自于主机的热量挥发不会再次流入该主机环境。算法在MATLAB环境下进行仿真。
选取的基准算法及主要思想如下:Random算法将所有虚拟机随机部署在所选主机上,不考虑主机热量或功耗状态。RR算法即轮转法,所有虚拟机以轮转方式部署至主机上,试图以均匀方式将负载分布至活跃主机上。PABFD算法[7]是一种基于功耗感知的修改最佳适应算法,但仅考虑了合并过程中的CPU利用率,而没有考虑热量问题。GRANITE算法[20]是一种以最小化数据中心能耗为目标的贪婪虚拟机调度算法,可以动态地进行虚拟机迁移,从而将负载均匀分配,使主机温度在确定的温度阈值以内。TAS算法[21]是一种温度感知调度算法,所选目标主机是温度最低的主机。
3.2 性能指标
能耗:数据中心所有主机运行带来的能耗,单位kW。
SLA违例:该指标描述由于动态合并带来的性能开销,定义为式(15)。由于过量订购原因,主机可能达到满利用率100%,此时,这类主机上的虚拟机会表现出较差的性能,即出现单个活动主机的SLA违例SLATAH,定义为式(16)。进一步,由于虚拟机的迁移所带动的虚拟机合并还会带到性能的开销。这种虚拟机迁移所带来的性能下降PDM可定义为式(17)。
SLAviolation=SLATAH×PDM
(15)
(16)
(17)
式中:N为主机总量;Tmax为主机经历100%占用的时间;Tactive为主机的总活跃时间;M为虚拟机总量;pdmj为由于虚拟机j迁移带来的性能下降,实验中设置为10%;Cdemandj为虚拟机j在其生命周期内请求的CPU资源总量。总体SLA违例SLAviolation为两个指标的乘积。
热点主机:描述超过门限值温度的主机数量。
活动主机:描述整个实验过程中活跃主机的数量。
峰值温度:描述在调度间隔中任意主机的最高温度。
3.3 结果分析
图3是算法的能耗情况,随机算法最高能耗有363 kW·h,RR、PABFD、GRANITE和TAS算法分别达到342 kW·h、235 kW·h、265 kW·h、327 kW·h,本文算法约为250 kW·h,同时还具有95%的置信区域CI,即(247,252)。换言之,本文算法能耗较随机算法、RR、GRANITE和TAS算法分别降低了31%、27%、6%、23%。较PABFD算法略高6%,这是由于PABFD算法进行了更极端的虚拟机合并,所使用的主机数量更少。但这种极端合并忽略了潜在的热量约束,可能导致热点。
图3 能耗情况
图4是算法得到热点主机数量情况,尽管PABFD比本文算法的能耗更少,但其创造了大量热点主机。随机算法的随机顺序对于能耗和热点的产生均有较大影响,热点最多。RR算法的均匀分布策略比较随机算法具有一定优势,热点降低至约416台,然而其能耗太高。PABFD约有123台热点主机,本文算法没有产生一台热点主机。本文算法虽然能耗略高于PABFD,但没有产生热点,其优势在于:1) 温度过高可能使得服务器失效;2) 热点产生后,数据中心管理员需要进一步降低冷却温度,这会进一步增加冷却系统的能耗。
图4 热点主机数量
图5是算法的SLA违例情况。随机算法、PABFD和TAS的SLA违例较多,其他三种算法较少。尽管RR算法在做出部署决策时没有考虑SLA需求,但其固有的负载均匀分布的特征较随机算法、PABFD和TAS算法还是可以降低一定的SLA违例的。本文算法在SLA违例方面已经表现得足够优秀,同时还可以降低能耗和避免热点主机的产生,综合性能最优。
图5 SLA违例
图6是算法的活跃主机数量情况。标记时间是每隔一小时得到的均值结果。PABFD得到更少的活跃主机,而本文算法在PABFD的基础上仍有增加,GRANITE则又高于本文算法,这种结果也可从图3的能耗结果中推断出来。随机算法拥有最多的活跃主机数量,TAS的增加幅度最小,并小于RR算法。同时,活跃主机数量、热点主机、能耗之间的关系也可被推断出来,拥有更少活跃主机的算法也倾向于会产生较多的热点主机。随机算法显得比较异常,因为它是随机选择主机的。总体来看,活跃主机数量在所有算法间并没有表现出很大的不同,原因在于算法在超载主机和低载主机发现机制上采用了相同的策略。本文算法虽然没有得到最少的活跃主机数量,但相比PABFD能够避免负载过于集中,温度过高并避免热点主机的产生。
图6 平均资源利用率
图7是算法中主机的峰值温度情况。本文由于利用能效可靠的虚拟机部署机制从未超过红线温度,并接近于红线温度,这样极大地提高了资源利用率,降低了冷却代价。TAS总是运行在一个更低的温度等级,而PABFD几乎均运行在红线温度周围,甚至超过红线温度70度。GRANITE的主机峰值温度一直是最低的,由于该算法仅仅考虑了温度阈值,高温度的主机上的虚拟机会被迁移出去,从而均衡负载。尽管RR是均匀分配负载,但由于主机性能的异差以及未进行热量感知,部分主机会超过红线温度。同时需要注意,图中的温度结果并非所有主机的温度均值结果,而是所有主机中的最高温度。
图7 主机的峰值温度
如果数据中心中的主机无法提供满足用户请求的虚拟机部署要求,虚拟机部署会出现失效。虚拟机部署的失效率结果如表2所示。当虚拟机部署请求为1 000和1 500时,没有出现部署失效。但是,在部署数量为2 000时,由于没有可用的主机,虚拟机部署出现了失效。本文算法通过严格控制部署数量,使得不能超过主机目标温度,其失效率略微高于对比算法。但经过100次重复实验后得到的标准差结果已经较为接近。考虑到服务的质量,本文算法在本项指标上似乎并没有优势,但对于确保主机热量控制上,本文算法是最优的。实际运行过程中,主机的出口温度会随着虚拟机部署请求的到达或离开出现变化,因此,本文模型的瞬间主机热量应该更低。因此,实际出现的未部署的失效虚拟机数量应该小于仿真实验中得到的结果。
表2 失效虚拟机部署的数量
4 结 语
本文提出一种基于能效和可靠性的虚拟机部署算法。算法综合考虑了主机利用率、主机温度、主机功耗、冷却系统功耗、主机可靠性间的相互关系,建立了确保主机可靠性的冗余模型,在主动避免产生机架热点的情况下,可以实现动态的虚拟机部署决策,在降低数据中心总体能耗的前提下,保障主机服务的可靠性。分析了算法的时间复杂度,对算法进行了仿真测试。仿真结果表明,所提算法不仅可以节省更多能耗,避免热点机架,而且性能保障也更好。