云数据中心中基于虚拟机迁移的资源利用高效的节能方法与流程

文档序号:11864042阅读:376来源:国知局
云数据中心中基于虚拟机迁移的资源利用高效的节能方法与流程

本发明属于互联网技术领域,尤其涉及云数据中心中一种基于虚拟机迁移的资源利用高效的节能方法。



背景技术:

云计算是一种基于付费使用模型的按需分配计算资源的高吞吐量计算范式,它通过大的数据中心或服务器集群向云用户提供云服务,即IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务)。云计算为开发者和IT公司提供了极大的便利,将他们从设置服务器硬件和管理系统软件等低级任务中解放出来,使得他们可以专注于应用程序的开发。同时,云用户只需要按需支付给云提供商操作费用、无需购买固定硬件设备,极大地降低了用户和企业的计算成本,提高了开发效率。

虚拟化作为云计算的基础技术,通过在同一个主机上多路复用虚拟机的方式来共享昂贵的硬件资源。多个云用户提交的任务可以在同一个物理主机上的不同虚拟机上同时运行,且各个虚拟机之间的工作相互独立,共享物理机硬件资源。这不仅使灵活地扩展各个虚拟机的资源需求成为可能,也为数据中心的管理者提供了方便。基于虚拟机迁移的服务器聚集操作已成为虚拟化技术在数据中心的一个主要应用。

随着云计算的快速发展,数据中心的数量正以前所未有的速度增长,而数据中心的能耗问题也越来越受到人们的广泛关注。据估计,到2020年,云数据中心的电能消耗将占全球电能消耗的2%。云数据中心如此巨大的能耗,不仅会增加温室气体排放进而引发环境问题,同时也会提高云用户的使用成本。由于目前的云数据中心的资源利用率仅在20%到50%之间,利用虚拟机实时迁移技术来实现服务器聚集从而减少活动主机数量、降低数据中心能耗的方法已成为研究热潮。虚拟机实时迁移技术通过迁移处理器状态、内存内容、网络状态等信息,能够将源主机上的客户端操作系统状态复制到目的主机,实现虚拟机在不同主机上实时的转移。但是,虚拟机迁移会导致增加物理机的资源消耗、占用网络带宽和影响服务质量等问题;另外,迁移出去的虚拟机在选择宿主主机时,容易引起宿主主机的资源使用不均衡,使得宿主主机因为资源阻塞而出现资源浪费的情况。因此,如何在提高云数据中心物理机资源利用率、减少活动主机数量的同时降低虚拟机迁移的数量、满足用户和云服务提供者之间签订的服务水平协议(SLA)成为服务器聚集操作急需解决的问题。

经对现有文献检索发现,相关文献如下:

Xin Li于2013年在《Mathematical and Computer Modelling》期刊上发表的名为“Energy efficient virtual machine placement algorithm with balanced and improved resource utilization in a data center”文章中,针对数据中心的物理机由于多维资源使用不均衡导致的资源浪费问题,提出了一个多维空间划分模型并且基于这个模型提出了虚拟机放置算法(EAGLE)。该多维空间划分模型将物理机的资源使用状态分为接受域(AD)、安全域(SD)和静止域(FD)三个区域,EAGLE算法则根据每个主机在接受虚拟机后的资源使用状态所在的区域,按照各个区域的优先级选择合适的主机。文中实验结果显示,该方法比经典FF(First Fit)算法节省15%的能耗。但是,文中仅仅是从虚拟机的放置角度进行了虚拟机与主机数量的验证,并没有从已经处于工作状态的数据中心的虚拟机放置问题上进行有效分析。

K.Sunil Rao于2015年在《Future Generation Computer Systems》期刊上发表的名为“Heuristics based server consolidation with residual resource defragmentation in cloud data centers”一文中为了减少服务器聚集后的剩余资源碎片化,提出了RFAware Server Consolidation算法。该算法包括四个阶段,即预处理阶段、物理机减少阶段、剩余资源去碎片化阶段和迁移方案优化阶段。预处理阶段在聚集操作开始之前根据虚拟机最新的资源需求进行资源分配,物理机减少阶段使用贪婪的方式减少活动主机的数量,剩余资源去碎片化阶段根据前一阶段生成的调度方案对资源使用不均衡的主机进行负载调整,迁移优化阶段则是确定迁移的优先顺序和减少不必要的虚拟机迁移。实验结果表明,该算法所需的虚拟机迁移数量较多,能够有效地减少剩余资源的碎片化。

综上所述,虽然数据中心的资源使用不均衡和剩余资源碎片化的问题已经有所改善,但是仍然存在一些问题值得深入研究:

1.调整云数据中心各物理主机的资源利用率,不仅要考虑各种资源的均衡利用以减少资源浪费,还应该提高各物理主机的资源利用率、充分利用各主机资源消耗均衡的优势,减少活动主机的数量,降低云数据中心的能耗。

2.上述文献中都没有涉及到对于数据中心中已经存在资源阻塞的物理机的处理,如图3所示,这些物理机的资源使用不均衡可能是由于一开始就存在的或者虚拟机资源需求动态变化而造成的。RFAware Server Consolidation算法只是在物理机聚集阶段之后对各物理机的资源使用状态进行了调整,这种通过交换虚拟机的调整方式对于已经处于阻塞状态的物理机的作用并不大。如果在聚集开始之前就对这些资源使用不均衡的物理机进行处理,使得它们能够接收来自其它物理主机的虚拟机,提高它们的资源使用率,这对于减少数据中心活动状态的物理机数量有着积极的意义。

3.在物理机聚集的过程中,上述文献都忽略了云数据中心中资源需求动态变化的特点,对于轻载主机的选择仅仅考虑到其资源利用率。在当前时刻资源利用率低的物理机在下一时刻的资源需求可能会增加。如果仅将资源消耗少的物理机作为轻载主机进行迁移,那么当这些虚拟机的资源需求增加时就容易导致宿主主机过载,造成虚拟机的频繁迁移,影响服务质量。因此,在选择轻载主机时应该结合对其资源需求的预测值和当前运行着的虚拟机的数量进行考虑以减少虚拟机迁移的数量,增加宿主主机的稳定性。



技术实现要素:

针对现有技术存在的上述问题,本发明提供了一种云数据中心中基于虚拟机迁移的资源利用高效的节能方法。所述云数据中心包括大量的活动物理主机和在主机上运行着的虚拟机,云用户提交的任务在不同的虚拟机中执行,所述方法包括以下步骤:

步骤a:云数据中心过载主机的处理:根据物理主机的本地管理器中记录的资源使用率日志,对该物理主机上的资源需求进行预测;若该资源需求超过了主机的容量,则选择其上运行的虚拟机迁移出去,直到该过载主机恢复到正常工作状态;如果没有发现过载主机则直接进入步骤b;

步骤b:云数据中心资源阻塞的物理主机的调整:在目标主机集合中根据各主机的资源使用情况选择待调整的物理主机;然后从这些物理主机中选择资源消耗与其资源使用类型相同的虚拟机迁移出去,提高该物理主机资源使用的均衡性;

步骤c:云数据中心轻载主机的选择:对于云数据中心资源使用率较低的物理主机,根据其资源使用率状态和其上运行的虚拟机的数量,选择合适的物理主机并将其上的所有虚拟机迁移到资源利用率相对较高的物理主机上,然后关闭该物理主机以减少活动主机的数量;若轻载主机上的虚拟机中存在一个或者多个虚拟机找不到可用的宿主主机,则该主机上的虚拟机不进行迁移,继续运行;

步骤d:云数据中心中待迁移虚拟机的放置:将上述步骤a、b、c中需要迁移的虚拟机按顺序放置到合适的物理主机上,提高云数据中心中各活动物理主机的资源使用效率。

优选地,所述步骤b中的资源阻塞物理主机的具体调整过程如下:

a、根据云数据中心中的资源需求的总和以及物理主机的容量,计算出理论上满足当前资源需求所需要的物理主机的数量N;

b、根据物理主机的资源使用情况,为数据中心中各个主机计算一个score值,计算式如下:

<mrow> <mi>s</mi> <mi>c</mi> <mi>o</mi> <mi>r</mi> <mi>e</mi> <mo>=</mo> <mrow> <mo>|</mo> <mfrac> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msqrt> <mn>2</mn> </msqrt> <mo>&CenterDot;</mo> <mi>d</mi> <mo>)</mo> <mo>&CenterDot;</mo> <mi>x</mi> <mo>+</mo> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msqrt> <mn>2</mn> </msqrt> <mo>&CenterDot;</mo> <mi>d</mi> <mo>)</mo> <mo>&CenterDot;</mo> <mi>y</mi> </mrow> <mn>2</mn> </mfrac> <mo>|</mo> </mrow> </mrow>

上式中的x代表物理主机的cpu利用率,y则代表该物理主机的内存利用率,d表示此时物理主机的资源使用状态偏离其资源利用均衡状态的距离;选择score值较大的前N个物理主机作为虚拟机迁移时的目的主机,构成目标主机集合;

c、对于这N个物理主机,选择资源使用状态不在可接受均衡区域ETA内的物理机,然后计算出这些物理主机资源利用率偏离均衡状态的平均值,选择出资源利用率偏离其均衡状态的距离d大于的物理主机作为待调整的主机;

d、对于这些待调整的主机,按照d值从大到小的顺序对其进行处理;如果该物理主机中的资源使用情况为Pcpu>Pmem,其中Pcpu和Pmem分别表示物理主机的cpu和内存利用率,则选择迁移的虚拟机资源需求情况应为Vcpu>Vmem,其中Vcpu和Vmem分别表示虚拟机的cpu和内存利用率,并且该物理主机的资源使用情况满足下式:

<mrow> <mrow> <mo>|</mo> <mrow> <msub> <mi>newUtilization</mi> <mi>P</mi> </msub> <mo>-</mo> <msub> <mi>oldUtilization</mi> <mi>P</mi> </msub> </mrow> <mo>|</mo> </mrow> <mo>&lt;</mo> <mfrac> <mrow> <msub> <mi>oldUtilization</mi> <mi>P</mi> </msub> </mrow> <mi>m</mi> </mfrac> </mrow>

上式中的oldUtilizationP和newUtilizationP分别表示该虚拟机迁移前后该物理主机的平均资源利用率,m则表示该主机上运着的虚拟机的数量;当物理主机的资源使用情况为Pcpu>Pmem时,处理情况类似。

优选地,所述步骤c中的轻载主机选择的具体过程如下:

根据各个物理主机的score值的大小,对于不处于目标主机集合中的物理主机,计算其SF值:

<mrow> <mi>S</mi> <mi>F</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mi>predictedUtilization</mi> <mi>P</mi> </msub> </mrow> <mrow> <msub> <mi>currentUtilization</mi> <mi>P</mi> </msub> </mrow> </mfrac> <mo>&times;</mo> <mi>m</mi> </mrow>

上式中的predictedUtilizationP和currentUtilizationP分别表示该物理主机上资源利用率预测的平均值和当前实际使用情况的平均值,m则表示该物理主机上运行的虚拟机的数量;那么,就将SF值较小的物理主机判定为轻载主机。

优选地,所述步骤d中的虚拟机放置策略的具体过程如下:

a、对于资源阻塞物理主机中需要迁移出来的虚拟机,优先将它们放置到其它的待调整的物理主机上,使得迁移虚拟机的物理主机和接受虚拟机的物理主机的资源使用状态落在ETA内或者使d值减小;若不存在这样的物理主机,则将该虚拟机放置到不在目标主机集合内的物理主机上,使得它们的资源利用状态落在ETA内或者使d值减小,并将该物理主机加入到目标主机集合中;如果仍然找不到放置的物理主机,则放弃对该物理主机的调整;

b、对于从低利用率主机上迁移出来的虚拟机,从目标主机集合中选择主机,如果能够使该主机资源使用状态落在ETA内,那么该主机就接受该虚拟机;否则,就找使得接受该虚拟机后d值最小的物理主机作为目的主机;当目标主机集合中的物理主机不能再接收虚拟机后,则在剩余的物理主机中找SF值最大的物理主机作为宿主主机来接收其它物理主机上的虚拟机,直到没有物理主机能够被关闭。

本发明的有益效果:

本发明考虑到了云数据中心中的物理主机存在资源利用率不均衡,以及由此而带来的资源浪费的问题,在进行聚集操作之前就对资源阻塞的物理主机进行调整以提高其资源利用率、降低数据中心活动主机的数量。另外,在虚拟机放置阶段,考虑到各个物理主机的资源使用状态,以减少资源使用不均衡的情况同时提高各主机的资源使用效率为目的,本算法能够有效提高云数据中心各活动主机的资源利用率;同时,对于主机资源均衡状态的界定能够加速虚拟机的放置过程。考虑到云数据中心资源需求动态变化的特性,在轻载主机选择过程中充分考虑到主机资源需求情况和运行的虚拟机的数量,能够减少由于负载变化带来的虚拟机反复迁移的影响,提高云数据中心的服务质量。

附图说明

图1是本发明的流程图;

图2是物理主机中的资源使用情况的划分图;

图3是物理主机中cpu资源过度使用的示意图;

图4是物理主机中内存资源过度使用的示意图。

具体实施方式

如图1所示,一种云数据中心中基于虚拟机迁移的资源利用高效的节能方法,所述云数据中心包含大量的活动物理主机和在主机上运行着的虚拟机,用户提交的任务在不同的虚拟机中执行,如图3和图4所示,物理主机会出现因资源使用不均衡而导致资源浪费的情况;为了提高物理主机资源利用率、降低云数据中心的能耗,一种云数据中心中基于虚拟机迁移的资源利用高效的节能方法具体实施步骤如下:

步骤a:云数据中心过载主机的处理:在服务器聚集操作开始之前,根据物理主机的本地管理器中记录的资源使用率日志,对该物理主机上的资源需求进行预测;若该资源需求超过了主机的容量,则选择其上运行的虚拟机迁移出去,直到该过载主机恢复到正常工作状态;如果没有发现过载主机则直接进入步骤b;

步骤b:云数据中心资源阻塞的物理主机的调整:在目标主机集合中根据各主机的资源使用情况选择待调整的物理主机;然后从这些物理主机中选择资源消耗与其资源使用类型相同的虚拟机迁移出去,提高该物理主机资源使用的均衡性;

步骤c:云数据中心轻载主机的选择:对于云数据中心资源使用率较低的物理主机,根据其资源使用率状态和其上运行的虚拟机的数量,选择合适的物理主机并将其上的所有虚拟机迁移到资源利用率相对较高的物理主机上,然后关闭该物理主机以减少活动主机的数量;若轻载主机上的虚拟机中存在一个或者多个虚拟机找不到可用的宿主主机,则该主机上的虚拟机不进行迁移,继续运行;

步骤d:云数据中心中待迁移虚拟机的放置:将上述步骤a、b、c中需要迁移的虚拟机按顺序放置到合适的物理主机上,提高云数据中心中各活动物理主机的资源使用效率。

优选地,所述步骤b中的资源阻塞物理主机的具体调整过程如下:

根据云数据中心中的资源需求的总和以及物理主机的容量,计算出理论上满足当前资源需求所需要的物理主机的数量N;然后根据物理主机的资源使用情况,为数据中心中各个主机计算一个score值,计算式如下:

<mrow> <mi>s</mi> <mi>c</mi> <mi>o</mi> <mi>r</mi> <mi>e</mi> <mo>=</mo> <mrow> <mo>|</mo> <mfrac> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msqrt> <mn>2</mn> </msqrt> <mo>&CenterDot;</mo> <mi>d</mi> <mo>)</mo> <mo>&CenterDot;</mo> <mi>x</mi> <mo>+</mo> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msqrt> <mn>2</mn> </msqrt> <mo>&CenterDot;</mo> <mi>d</mi> <mo>)</mo> <mo>&CenterDot;</mo> <mi>y</mi> </mrow> <mn>2</mn> </mfrac> <mo>|</mo> </mrow> </mrow>

上式中的x代表物理主机的cpu利用率,y则代表该物理主机的内存利用率,d表示此时物理主机的资源使用状态偏离其资源利用均衡状态的距离;选择score值较大的前N个物理主机作为虚拟机迁移时的目的主机,构成目标主机集合;

如图2所示,对于这N个物理主机,选择资源使用状态不在可接受均衡区域ETA内的物理机,然后计算出这些物理主机资源利用率偏离均衡状态的平均值,选择出资源利用率偏离其均衡状态的距离d大于的物理主机作为待调整的主机;

对于这些待调整的主机,按照d值从大到小的顺序对其进行处理;如果该物理主机中的资源使用情况为Pcpu>Pmem,其中Pcpu和Pmem分别表示物理主机的cpu和内存利用率,则选择迁移的虚拟机资源需求情况应为Vcpu>Vmem,其中Vcpu和Vmem分别表示虚拟机的cpu和内存利用率,并且该物理主机的资源使用情况满足下式:

<mrow> <mrow> <mo>|</mo> <mrow> <msub> <mi>newUtilization</mi> <mi>P</mi> </msub> <mo>-</mo> <msub> <mi>oldUtilization</mi> <mi>P</mi> </msub> </mrow> <mo>|</mo> </mrow> <mo>&lt;</mo> <mfrac> <mrow> <msub> <mi>oldUtilization</mi> <mi>P</mi> </msub> </mrow> <mi>m</mi> </mfrac> </mrow>

上式中的oldUtilizationP和newUtilizationP分别表示该虚拟机迁移前后该物理主机的平均资源利用率,m则表示该主机上运着的虚拟机的数量;当物理主机的资源使用情况为Pcpu<Pmem时,处理情况类似。

优选地,所述步骤c中的轻载主机选择的具体过程如下:

根据各个物理主机的score值的大小,对于不处于目标主机集合中的物理主机,计算其SF值:

<mrow> <mi>S</mi> <mi>F</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mi>predictedUtilization</mi> <mi>P</mi> </msub> </mrow> <mrow> <msub> <mi>currentUtilization</mi> <mi>P</mi> </msub> </mrow> </mfrac> <mo>&times;</mo> <mi>m</mi> </mrow>

上式中的predictedUtilizationP和currentUtilizationP分别表示该物理主机上资源利用率预测的平均值和当前实际使用情况的平均值,m则表示该物理主机上运行的虚拟机的数量;那么,就将SF值较小的物理主机判定为轻载主机。

优选地,所述步骤d中的虚拟机放置策略的具体过程如下:

对于资源阻塞物理主机中需要迁移出来的虚拟机,优先将它们放置到其它的待调整的物理主机上,使得迁移虚拟机的物理主机和接受虚拟机的物理主机的资源使用状态落在ETA内或者使d值减小;若不存在这样的物理主机,则将该虚拟机放置到不在目标主机集合内的物理主机上,使得它们的资源利用状态落在ETA内或者使d值减小,并将该物理主机加入到目标主机集合中;如果仍然找不到放置的物理主机,则放弃对该物理主机的调整;

对于从低利用率主机上迁移出来的虚拟机,从目标主机集合中选择主机,如果能够使该主机资源使用状态落在ETA内,那么该主机就接受该虚拟机;否则,就找使得接受该虚拟机后d值最小的物理主机作为目的主机;当目标主机集合中的物理主机不能再接收虚拟机后,则在剩余的物理主机中找SF值最大的物理主机作为宿主主机来接收其它物理主机上的虚拟机,直到没有物理主机能够被关闭。

以上所述是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应当视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1