APP下载

一种基于资源使用阈值边界的虚拟机分配策略

2019-12-26徐胜超

关键词:能量消耗列表数据中心

侯 松,徐胜超

(1.江苏食品药品职业技术学院 现代教育技术中心, 江苏 淮安 223003; 2.北部湾大学 电子与信息工程学院,广西 钦州 535011)

0 引 言

云数据中心的虚拟机分配策略是目前提高云端资源利用效率和降低能量消耗的主要技术[1-4],它能够将应用服务封装在虚拟机之中,在服务请求减少的情况下,将云端的多个虚拟机迁移到一个物理服务器,关闭空闲服务器或者使空闲服务器进入睡眠模式[5-8];当服务请求增加时,重新唤醒空闲服务器[9]。

在研究虚拟机分配策略的时候,云数据中心的服务质量(quality of service,QoS)也是值得考虑的重要因素,因为云数据中心的最主要的目标是保证各类互联网服务可以正常提供给客户端,如果QoS不能保证,将会出现服务等级协议(service level agreement violation,SLA) 违规问题,这样企业将会失去商业利润。如果使用过多的物理资源来保证QoS,这样能量消耗就会增加,间接提高了企业的成本,所以虚拟机分配策略要保证能量消耗和QoS之间的平衡。为了降低云数据中心的能量消耗,必须考虑物理资源使用阈值边界,提高虚拟机分配策略的效果,这样才可以满足上面的要求。

1 相关工作

目前学术界利用云端的虚拟机分配与迁移策略来节省云端的能量消耗,并进行了大量的研究。早期主要在单虚拟机迁移或者非云端的虚拟机迁移领域。随着云端服务规模的扩大,目前大多采用多虚拟机迁移模式[10-12]。

文献[9]提出并评价了云端多虚拟机迁移的负载与性能变化。文献[13]同样从中央处理器(central processing unit,CPU)维度对虚拟机的动态配置问题进行建模,并利用改进的蛙跳算法进行求解。文献[14]能够在长期服务项目的局部时间段内实现较好节能效果,但是在服务项目全局的能耗优化问题上,效果并不理想。文献[15]实现了当前场景的能量优化,而且也有效降低了长期服务项目总体的能量消耗,但其考虑的维度较单一。文献[16]在Beloglazov研究的基础上提出SLA违规算法,引入最小能量最大利用率策略,进一步优化虚拟机配置方法;

上述这些方法的主要目的是应用虚拟机动态迁移技术实现云端服务的负载均衡、容错、优化服务器的电力能量管理等,最终是为了改善云端的服务质量QoS,减少SLA违规, 但是考虑的物理资源使用情况的维度比较少,例如只考虑CPU或者内存情况,没有考虑网络带宽及虚拟机本身的资源需求等情形。

本文提出的基于资源使用阈值边界的虚拟机 (resource uitilization thresholds virtual machine, RUT-VM) 分配算法也是一种面向低能量消耗,提高云平台服务质量的资源分配策略。RUT-VM不仅仅考虑云端主机的CPU资源,还考虑了内存情况与网络带宽情况,通过建立资源使用阈值边界的数学模型,根据云端当前工作负载的状态来获得物理资源的利用效率情况,最终决定是否放置虚拟机或者迁移虚拟机。本文最后通过CloudSim工具模拟了云数据中心虚拟机分配策略RUT-VM的性能,实验结果表明,RUT-VM比常见的虚拟机分配算法要优秀,能保证云数据中心的服务质量。

2 云数据中心虚拟机分配方法分析

云端的工作模式与早期的网格计算或者分布式计算不一样,它们对资源的分配与调度都是采用虚拟化技术。虚拟化技术包括资源使用方式、任务执行环境、用户的操作方式等都是虚拟的形式。它把云客户端的Job请求封装成虚拟机的形式提交给云服务器端执行,执行的结果也是以服务的形式反映给客户端。图1为早期的网络计算平台的资源分配方式和基于虚拟机的2层资源分配模式。

云数据中心的虚拟机分配可以划分为3个子问题:①针对新的请求生成新的虚拟机 (virtual machine,VM)并将虚拟机放置到可用的物理节点;②虚拟机的选择方法,就是根据当前的物理主机的负载情况,选择哪些虚拟机需要迁移;③对于那些已经被选择好的将要迁移的虚拟机,如何继续将它们分配到合适的物理主机上。

一个好的虚拟机分配策略,应该根据工作负载的状态使虚拟机在迁移时能够被部署在合适的物理服务器上,如果虚拟机并不需要所有的物理资源,那么,他们应该被透明的重新划分粒度。空闲的物理节点应该能够转入到睡眠模式。虚拟机分配及优化在理想的情况下应该基于下面2个标准。

1)设置物理主机的资源使用效率阈值上限,保持整个系统的物理资源的使用率都要低于这个阈值;

2)设置虚拟机的资源使用阈值的上限和下限, 保证整个系统的所有虚拟机的使用效率都要处于阈值下限和上限之间。

为了达到低能量消耗和防止潜在的SLA违规,保证云数据中心的服务质量, 目前常见的虚拟机迁移策略包括下面几类。

1)单一阈值策略 (single threshold, ST)。它是基于单纯上限阈值的物理主机的使用效率阈值策略,将虚拟机分配到那些能够保证所有的资源都是低于物理主机阈值的方法。ST策略目标是保证资源的自由性,这样可以保证服务质量,SLA违规比例很小。

2)最小迁移次数策略(minimization of migrations, MM)。这个策略主要基于虚拟机选择和迁移的次数最小标准,对于那些超过了资源使用效率阈值上限的情形也不考虑是否有坏处,但为了减少迁移次数和迁移时间, 超过了上限也许并不迁移。

3)最高潜在增加策略(highest potential growth, HPG)。该策略在超过了物理资源的阈值上限时, 将通过虚拟机的参数,迁移那些物理资源使用率高的虚拟机,这样可以降低和最小化物理主机的使用率,也可以防止SLA违规。

4)随机选择策略(random choice, RC)。该策略对于那些超过最高阈值的物理主机,随机选择一定数目的虚拟机,从而降低该物理主机的资源利用率。

3 RUT-VM虚拟机分配策略

3.1 工作机制

本文设计了一个考虑资源使用阈值边界的RUT-VM虚拟机分配策略。 它属于平台即服务的一种云数据中心,如图2。

在该云平台中,与传统的网络体系结构比较起来,增加了一个虚拟化层,该层用来作为基于云的应用的执行环境,云的核心硬件基础设施主要由数据中心组成,数据中心处理云客户端提高的服务请求。为了各个层都具有独立的功能和性能,云端可以有2种资源分配模块,如图1b中的2个层次的调度器, 一个物理主机级别的,另外一个虚拟机级别的。

物理主机级别的分配可以根据处理能力来分配虚拟机。在执行虚拟机级别的分配时,往往通过一个单独的任务单元的处理能力的总数来确定,这些单独的任务单元往往都保存在等待队列中。

按照这个思路,RUT-VM有2个资源分配器,一个是物理主机级别的主机分配器(host allocater,HA),一个是虚拟机级别的虚拟机分配器(virtual machine allocater,VMA)。VMA长期驻留在每个物理节点,负责保持对虚拟机迁移状态和物理节点的使用效率持续进行监视。

云客户端通过服务请求的方式把服务相关的CPU的性能参数(MIPS),内存大小,网络带宽等通报给HA, HA轮流将这些信息传递给VMA,最后完成虚拟机的分配。

VMA将物理节点的资源使用效率情况汇报给HA,这样HA具有整个平台的所有物理资源使用情况的信息。

图2 RUT-VM虚拟机分配策略的工作机制

3.2 相关术语定义

3.2.1 物理主机使用效率

物理主机的使用效率(host utilization,HU)体现了云数据中心资源使用状态,所有的物理主机的平均使用效率可以表示为

(1)

(1)式中:ui是当前的物理主机i的CPU使用效率;m是物理主机的数目。

3.2.2 能量消耗模型

为了计算云端的能量消耗(energy consumption,EC),假设服务器是空闲的,单个物理服务器的能量消耗表示为

(2)

(2)式中:k是能量消耗的百分比;pfull表示服务器在完全满负载工作时的能量消耗;ui是当前的物理主机i的CPU使用效率。整个云数据中心的能量消耗模型为

(3)

3.2.3 服务等级协议违规

云计算服务质量的衡量标准主要通过SLA来体现,SLA违规通过最小的吞吐量或者最大响应时间来表示。但是在云计算中针对不同的应用,表示方法也不完全一致,为了研究的需要,SLA违规可以表示为

SLAviolation=

(4)

(4)式中,变量Requestd_MIPS的含义是云客户端所有请求的处理能力;变量allocated_MIPS的含义是云客户端所有被分配的处理能力。SLA违规值的百分比将表明在客户有服务请求的时候,CPU并没有分配资源的比例,因此,为了云客户端增加QoS,我们的首要目标是减少SLA违规的值。

3.2.4 资源使用阈值上边界

当物理主机的CPU的使用效率超过了阈值上边界(upper threshold,UT)的时候,说明CPU的负载已经很重,系统必须迁移一些虚拟机出去。资源使用阈值上边界可以表示为

Tupper=1-(((puu·temp)+sum)-

(pul·temp)+sum))

(5)

(6)

sum=∑Uvm

(7)

(5)—(7)式中:变量puu是阈值上边界的概率;变量Pul表示阈值下边界的概率;变量Bw表示当前物理主机针对某个虚拟机已经分配好的网络带宽;变量Ram表示当前物理主机针对某个虚拟机已经分配好的可用内存大小;变量Bw(host)表示物理主机的可用带宽,变量Ram(host) 表示物理主机的可用内存,变量Uvm表示虚拟机的使用率.变量temp考虑到的各种因素,包括每个物理主机的CPU计算能力,内存情况,网络带宽情况等。

3.2.5 资源使用阈值下边界

当ui小于阈值下边界TLower时,表示该物理主机没有被充分利用,所以其上运行的虚拟机应该迁移到其他的物理节点。如果物理主机的CPU利用效率大于30%,那么资源使用阈值下边界(lower threshold,LT)的值应该设置为TLower=0.3,阈值下边界TLower表示为

Tlower=1-((Pl·temp)+sum)

(8)

(8)式中,Pl是阈值下边界的概率。

如果CPU使用效率小于30%, 则sum和temp的值通过(6)式和(7)式进行计算。

3.3 RUT-VM虚拟机分配策略描述

本节主要描述RUT-VM虚拟机分配策略的具体算法和流程。RUT-VM主要针对3个要求:最小化虚拟机迁移时间,改善云数据中心的负载均衡性能,减少SLA违规。RUT-VM可以总结以下4个特点。

1)云客户端请求完成后,当一个物理主机超负载运行时,需要将其上运行的一个或者多个虚拟机迁移出去。

2)云客户端请求完成后, 当一个物理主机几乎没有负载运行时,需要将其上运行的一个或者多个虚拟机迁移出去,使其进入省电或者睡眠模式。

3)当一个物理主机超负载运行时,如何从多个虚拟机中选择出应该被迁移的虚拟机。

4)对将要迁移出去的虚拟机,要选择合适的物理主机,将其进行放置,保证云数据中心的负载均衡。

下面从3个方面分别进行讨论。

3.3.1 基于资源使用阈值边界的虚拟机分配算法

选择要迁移的虚拟机的目的是为了优化资源的分配,首先计算所有虚拟机的CPU使用率, 算法具体过程如下。

算法1基于阈值边界的虚拟机迁移策略

输入:物理主机列表HostList,虚拟机列表VMList

输出:迁移虚拟机列表MigrationList

步骤1将虚拟机VMList按照虚拟机的使用率进行排序;

步骤2对于HostList中的每个host, 将当前host使用效率情况和Tupper比较, 如果这个值大于Tupper则进入步骤3,否则进入步骤7,调整2个最佳的使用效率参数bfuupper和bfulower;

步骤3对于当前主机的使用效率,获取每个虚拟机,如果该虚拟机的使用效率超过了当前主机的上限值,直接进入步骤4,否则进入步骤5;

步骤4如果 (VM_utilization-host_utilization+upperthreshold)>bfuupper,则bfuupper=

VM_uitilization-(host_utilization-upperthreshold),最最佳迁移的虚拟机就是当前虚拟机;

步骤5如果(host_utilization-upperthreshold)-VM_utilization

则有bfulower=(host_utilization-upperthreshold)-Vm_utilization,此时最最佳迁移的虚拟机就是当前虚拟机;

步骤6调整当前物理主机的使用效率值,使其是最佳虚拟机的使用效率,添加这个最佳迁移的虚拟机到迁移列表MigrationList,从当前物理主机列表中删除该虚拟机;

步骤7如果物理主机的使用效率小于阈值下边界TLower,则添加该物理主机的所有虚拟机到迁移列表,从该物理主机中删除所有的虚拟机;

步骤8返回迁移虚拟机列表。

3.3.2 基于最小迁移时间的虚拟机选择策略

当系统察觉到物理主机是超负载运行时,将选择哪一个虚拟机迁移,RUT-VM中称为最小迁移时间策略的虚拟机选择。在完成要迁移的虚拟机选择之后,物理主机会继续测试是否超负载,如果它还是处理超负载情况,基于最小迁移时间策略的虚拟机选择会再运行一次。这些将被反复执行,一直到物理主机被感知是没有超负载运行状态。

选择一个虚拟机v来减少物理主机负载,迁移时间通过虚拟机运行所需要的RAM内存数目与主机hostj分配给该虚拟机的可用网络带宽来计算。假设Vj是分配到hostj上的虚拟机的集合, 最小迁移时间策略可以寻找到最佳选择的虚拟机,选择到的虚拟机v满足

v∈Vj且∀a∈Vj

(9)

(9)式中:RAMu(a)是当前虚拟机所使用的RAM大小;RAMu(v)是选择到的虚拟机v所使用的RAM大小;NETj是物理主机hostj分配给它的可用的网络带宽。

算法2基于最小迁移时间的选择策略

输入:物理主机列表HostList,虚拟机列表VMList

输出:已经完成迁移的虚拟机列表

步骤1从物理主机列表中获取可能被迁移的虚拟机列表;

步骤2如果可迁移的虚拟机列表是空,那么返回空,并且指定完成迁移的虚拟机列表也为空;

步骤3设置变量minMetric的值为最大值,如果虚拟机在将要迁移的虚拟机队列中,那么获取该虚拟机的RAM值, 将其分配给变量Metric;

步骤4如果变量Metric的值小于minMetric, 那么minMeric=Metric, 把该虚拟机迁移出虚拟机列表;

步骤5返回被迁移完的虚拟机列表。

3.3.3 基于能量消耗最小的虚拟机放置策略

首先通过VMA中负载监视的方式查找物理主机列表,判断该物理主机是否处于超负载状态,如果该主机超负载,算法将应用虚拟机选择算法来选择虚拟机从该物理主机迁移出去。

只要虚拟机迁移列表已经完成,那么虚拟机放置算法将被启动,要为这些新迁移的虚拟机发现一个新的位置放置,算法如下。

算法3基于能量消耗最小的虚拟机放置策略

输入:物理主机列表HostList,虚拟机列表VMList

输出:已经分配好的虚拟机列表

步骤1根据虚拟机的使用效率将VMList降序排列;

步骤2对于VMList中的所有虚拟机,设置最小能量消耗参数Pmin,并且设置分配物理主机集合为空;

步骤3对于物理主机列表中的每个物理主机,如果物理主机有足够的资源分配虚拟机,那么将计算物理主机和虚拟机的能量消耗,如果能量消耗小于Pmin,那么当前主机将被分配放置虚拟机,并且用Pmin的值替代物理主机和虚拟机的能量消耗;

步骤4如果被分配的物理主机集合不为空,那么将虚拟机分配给该物理主机,返回已分配好的虚拟机列表。

接下来就是寻找一个未充分利用的物理主机,将这些虚拟机放置进去。算法3返回迁移的轨迹,保存了新虚拟机和被选择的虚拟机的迁移信息(迁移之前的超负载的物理主机,迁移之后的负载轻的物理主机),该算法的复杂度为2N,N为物理主机的数目。

4 仿真实验与性能分析

4.1 仿真环境

CloudSim工具是一个最常见的面向云数据中心的模拟器,与SimGrid,Gangsim等模拟器比较起来,CloudSim允许模拟虚拟化环境,支持按照需求进行资源的配置与管理。CloudSim是一个可以针对能量消耗的模拟器,其他的模拟器往往不提供此功能。除了能量消耗,CloudSim还可以随着工作负载的变化模拟服务应用的能力,CloudSim3.0版本还提供了更多的功能。

本文在仿真云数据中心时,只模拟了一个数据中心,包括100个物理主机和在这些物理主机上正在运行的100个虚拟机。每个物理主机的CPU主频3.0 GHz,10 GByte的内存,网络带宽为10 Gbit/s,磁盘空间为1 TByte,这些物理主机的计算能力可以虚拟为2 500 MIPS,2 000 MIPS,1 000 MIPS和500 MIPS,所对应的每个虚拟机需要的内存大小为1 024 MByte, 512 MByte, 256 MByte和128 MByte,所需要的空闲网络带宽是100 Mb/s,虚拟机最大内存为2.5 GByte。按照这种设置方法, 物理主机可以虚拟成大型虚拟机(2 500 MIPS,1 024 MByte,2.5 GByte,100 Mbit/s)、中型虚拟机(2 000MIPS,512 MByte,2.5 GByte,100 Mbit/s)、小型虚拟机(1 000 MIPS,256 MByte,2.5 GByte,100 Mbit/s)和微型虚拟机(500 MIPS,128 MByte,2.5 GByte,100 Mbit/s)。

4.2 性能分析

最初我们主要测试RUT-VM虚拟机分配策略在CloudSim工具上的性能分析。Closdsim4.0还不是很成熟,目前大部分云数据中心的能量消耗使用CloudSim3.0模拟器比较多。接下来将本文算法与在CloudSim3.0上已经实现的虚拟机分配算法进行比较。这些算法包括绝对中位差检测方法(median absolute deviation,MAD), 静态的资源使用效率阈值检测法(staticthreshold,ST), 局部归约检测方法(local regression,LR), 鲁棒局部归约检测方法(local regression robust,LRR), 四分位数区间检测方法(inter quartile range,IQR)等。

由于本文的RUT-VM虚拟机分配策略考虑了物理资源使用阈值边界信息,反复确定云数据中心的物理主机的资源使用情况和虚拟机的使用效率,物理资源包括CPU使用效率,内存大小,网络带宽等因素,所以RUT-VM算法获得了较好的测试性能。测试结果表明,在低能量消耗、虚拟机迁移时间与次数、SLA违规百分比等方面都优于其他的算法。具体的测试结果如表1。

表1 云数据中心不同能量管理策略性能分析

图3—图6为RUT-VM算法与其他虚拟机分配策略算法具体的情况比较。

图3 RUT-VM算法的能量消耗性能分析

从图3可知,RUT-VM的能量消耗明显低于其他的策略,大约可以节省一半的能量消耗,这对于政府和企业倡议的绿色节能云计算十分有帮助。

从图4可知, RUT-VM虚拟机的迁移次数小于MAD, ST, LR, LRR,IQR等策略,比较小的虚拟机迁移次数也可以间接降低云数据中心的能量消耗,同时改善云服务器的QoS。

图4 RUT-VM算法的虚拟机迁移次数性能分析

从图5、图6可知,与其他5个虚拟机迁移策略算法相比较, RUT-VM算法可以减少SLA违规次数与SLA违规率,代表RUT-VM算法能提供云数据中心比较好的负载均衡功能,保证Qos质量。

图5 RUT-VM算法的SLA违规比例性能分析

图6 RUT-VM算法的SLA违规次数性能分析

5 结 论

本文针对云数据中心的低能量消耗,工作负载均衡和高服务质量QoS的要求,提出了一个考虑资源使用阈值边界的虚拟机分配策略RUT-VM,通过建立阈值边界和相关性能指标的数学模型,详细描述了RUT-VM的虚拟机迁移算法,虚拟机选择算法,虚拟机放置算法。仿真实验表明,RUT-VM虚拟机分配算法能够有效减少虚拟机的迁移次数,与常见的迁移策略相比能更好地减少云数据中心的能量消耗,减少SLA违规,保证云数据中心的服务质量QoS。未来的工作是将RUT-VM的虚拟机分配策略在真实的云数据中心进行测试与性能分析,在大规模广域网或者因特网上进行测试。

猜你喜欢

能量消耗列表数据中心
太极拳连续“云手”运动强度及其能量消耗探究
酒泉云计算大数据中心
中年女性间歇习练太极拳的强度、能量消耗与间歇恢复探究分析
浅析数据中心空调节能发展趋势
学习运用列表法
没别的可吃
扩列吧
关于建立“格萨尔文献数据中心”的初步构想
列表画树状图各有所长
基于云计算的交通运输数据中心实现与应用