一种云数据中心里基于共享内存页面的虚拟机选择与放置方法与流程

文档序号:14504869阅读:266来源:国知局

本发明涉及云数据中心里热迁移虚拟机时的虚拟机选择与放置的方法。



背景技术:

目前云计算逐步走出了新兴技术的阶段,越来越多的用户正在投入云计算服务的怀抱。随着用户数量的大规模增长,各个云数据中心也都在通过增加服务器的方式来扩展其规模。如何有效利用大规模的物理服务器是云数据中心面临的一大难题。通过虚拟机热迁移,云数据中心能在不中断服务的情况下将虚拟机从物理资源过度使用的物理机上转移至物理资源尚未被充分使用的物理机上。通过虚拟机迁移,云数据中心的负载得到了均衡,物理资源也能被更有效地利用。

在优化虚拟机热迁移时面临多个挑战,主要有如下四个。首先是物理机过载检测:通过设置过载阈值的方式判断哪些物理机处于CPU过载状态,即物理机CPU资源被过度使用的状态。接着是物理机轻载检测:通过设置轻载阈值的方式判断哪些物理机处于CPU轻载状态,即物理机CPU资源没有被充分有效利用的状态。再次是虚拟机选择问题:如何从处于过载状态的物理机上选择虚拟机前一出去,使得物理机不再处于过载状态。最后是虚拟机放置问题:通过解决虚拟机选择问题,得到一组待迁移的虚拟机,选择合适的未过载物理机来放置这些虚拟机。一般情况下,虚拟机选择问题与虚拟机放置问题是按先后顺序来解决的。

目前已经提出了多种虚拟机选择策略。最小迁移数(MM)策略选择数量最少的虚拟机来迁移,使得过载物理机不再处于过载状态。潜在增长(HPG)策略选择那些有着最小CPU资源使用量的虚拟机迁移,从而降低物理机的负载。在随机选择(RC/RS)策略中,虚拟机被随机选择迁移,直到物理机不再过载。在最小迁移时间(MMT)策略中,在给定网络带宽的情况下,那些有着最小内存使用量的虚拟机将被迁移。最大相关策略(MC)策略选择那些有着最大CPU相关性的虚拟机进行迁移。最小CPU使用量(MinU)策略选择占用最小CPU资源量的虚拟机进行迁移,而最大CPU使用量(MaxU)策略选择占用最大CPU资源量的虚拟机进行迁移。参考文献【1】中的实验表明,以上多种虚拟机选择策略里MMT策略在能耗、服务等级协议违背(SLAV)等性能指标上要优于其他虚拟机选择策略。导致这一结果的原因是使用MMT策略会产生最少的需要传输的虚拟机内存量,而其他虚拟机选择策略只考虑了虚拟机对CPU资源的使用情况。

研究发现虚拟机内存内容之间存在很大的相似性。虚拟机内存以内存页面为基本单位进行存储。在内存页面的角度观察发现,使用相同或相似操作系统、相同应用软件的虚拟机之间有很多内存页面是完全一样或是相似的。通过利用这种性质,虚拟机热迁移过程中需要传输的虚拟机内存量能大幅降低:当往一台物理机上迁移多台虚拟机时,相同的内存页面只需要传输一次即可。

因此,有必要设计一种能够最少化所需传输的虚拟机内存量,同时在能耗、SLAV等性能指标上能进一步优化的的虚拟机选择与放置方法。



技术实现要素:

本发明所解决的技术问题是,针对现有技术的不足,提供一种云数据中心里基于共享内存页面的虚拟机选择与放置方法,能够优化云数据中心热迁移虚拟机时的网络压力,SLAV及能耗。

本发明为解决上述技术问题所提供的技术方案为:

一种云数据中心里基于共享内存页面的虚拟机选择与放置方法,包括以下步骤:

步骤一:输入未过载的m台物理机列表、过载的s台物理机列表以及每台物理机上运行的虚拟机列表,记未过载的m台物理机为pm1~pmm,过载的s台物理机列表为pmm+1~pmm+s,所有过载的物理机上运行的虚拟机所构成的集合为V;

步骤二:将未过载的非空物理机按CPU可用资源量降序排列,然后将空载物理机添加在其后,构成初始物理机列表PM_List;用表示在第i轮迭代时所有准备迁移到初始物理机列表PM_List中第t台物理机上的虚拟机所构成的集合,t=1,2,…,m;初始化t=1;

步骤三:将当前物理机列表PM_List中第一个物理机记为PM1,将PM1上所有虚拟机所包含的内存页面集合记为p1,PM1上所有虚拟机集合记为VM,PM1的过载阈值记为T(VM);初始化迭代计数器i=0;

步骤四:对V中任意的虚拟机vm,令pi(vm=p(vm)\\p1,其中符号\\表示求两个集合之间的差集,p(vm)为虚拟机vm所包含的内存页面集合,pi(vm)为第i轮迭代时虚拟机vm所需传输的内存页面集合;

步骤五:判断是否对于任意的j∈[m+1,m+s],都有Tj(Vj)≠1,若是,则令算法结束,其中Vmt为算法结束时得到的迁移到初始物理机列表PM_List中第t台物理机上的虚拟机集合,其中Vj为物理机pmj上运行的虚拟机所构成的集合,Tj(Vj)为物理机pmj的过载阈值,过载阈值不等于1说明该物理机未过载,过载阈值等于1说明该物理机过载;否则,进入步骤六;

步骤六:判断是否有T(VM)=1,若是,说明PM1已经处于过载状态,则令对V中任意的虚拟机vm,令p(vm)=pi(vm)∪p1,并从PM_List中删除PM1,然后令t=t+1,再跳转至步骤三;否则,进入步骤七;

步骤七:判断是否对于j∈[m+1,m+s],存在一个物理机pmj有Tj(Vj)≠1,说明该物理机已从过载状态转入未过载状态,若是,则令V=V\\Vj,再进入步骤八;否则,直接进入步骤八;

步骤八:从V中选出一个虚拟机,第i轮迭代中选出的虚拟机记为vmi,其满足为最小,标记运行着该虚拟机的过载物理机为pmq,其中pi(vmi)为第i轮迭代时虚拟机vmi所需传输的内存页面集合,|pi(vmi)|为pi(vmi)中的内存页面数目,c(vmi)为虚拟机vmi使用的CPU资源量;

步骤九:将虚拟机vmi放置在物理机PM1上,令VM=VM⌒vmi,p1=p1∪pi(vmi),Vq=Vq\\vmi,Vq为物理机pmq上所运行虚拟机所构成的集合;对V中任意的虚拟机vm,令pi+1(vm)=pi(vm)\\pi(vmi);令i=i+1,并跳转至步骤五。

所述步骤一中,输入的未过载的m台物理机列表与过载的s台物理机列表包含每台物理机pmj的过载阈值Tj(Vj)与空载时的CPU可用资源量CAj,j∈[1,m+s],其中Vj为物理机pmj上运行虚拟机所构成的集合,由输入的每台物理机运行的虚拟机列表得到。输入的每台物理机运行的虚拟机列表还应包括每个虚拟机包含的内存页面集合与所使用的CPU资源量大小。

所述步骤五中过载阈值Tj(Vj)由过载阈值函数FT,IQR,MAD,LR与LRR【IQR(Vi)、MAD(Vi)、LR(Vi)、LRR(Vi)的计算为现有技术,参考文献【1】中详细描述了其计算方法】任选其一转化而来,具体转化方式如下所示。

对于固定阈值FT(FT(Vj)=0.81·CAj)有:

对于IQR有:

对于MAD有:

对于LR有:

对于LRR有:

所述步骤二中,非空物理机的CPU可用资源量的计算公式如下,:

其中,Cj为物理机pmj的CPU可用资源量,CAj为物理机pmj在空载时的CPU可用资源量,Vj为物理机pmj上运行的虚拟机的集合,c(vm)为虚拟机vm使用的CPU资源量。

本发明基于以下原理大大减少了热迁移时所需传输的虚拟机内存量、SLA以及能耗:

虚拟机的内存以内存页面为基本单位存储在物理机的内存里。不同虚拟机内存内容之间存在很大的相似性,因此它们之间很多内存页面都是相同的。在进行虚拟机热迁移时,若往一台物理机上迁移多台虚拟机,则相同的虚拟机内存页面只需要传输一次。

有益效果:

本发明能够实现将过载物理机转变为不过载的状态,在过载物理机上挑选虚拟机进行迁移并放置时,在考虑CPU资源使用的情况下以最小化需传输的虚拟机内存页面数为目标,每次选择那些所需传输的内存页面数尽可能少的虚拟机,直到物理机不再处于过载状态。本发明能进一步优化MMT策略,将虚拟机选择问题与虚拟机放置问题合二为一来解决,大幅减少了热迁移时所需传输的虚拟机内存量、SLA以及能耗,从而更好的优化云数据中心的资源配置,减少了网络压力,提高了物理计算资源的利用率。

附图说明

图1为本发明的流程图。

图2为各个算法就SLAV性能指标的对比情况。

图3为各个算法就所需传输虚拟机内存页面数目的对比情况。

图4为各个算法就能耗性能指标的对比情况。

在图2至图4中,本发明提出的算法为CVSP。

具体实施方式

下面结合附图对本发明作进一步的说明。

本发明公开了一种云数据中心里基于共享内存页面的虚拟机选择与放置方法,参见图1,包括以下步骤:

步骤一:输入未过载的m台物理机列表、过载的s台物理机列表以及每台物理机上运行的虚拟机列表,记未过载的m台物理机为pm1~pmm,过载的s台物理机列表为pmm+1~pmm+s,所有过载的物理机上运行的虚拟机所构成的集合为V;

步骤二:将未过载的非空物理机按CPU可用资源量降序排列,然后将空载物理机添加在其后,构成初始物理机列表PM_List;用表示在第i轮迭代时所有准备迁移到初始物理机列表PM_List中第t台物理机上的虚拟机所构成的集合,t=1,2,…,m;初始化t=1;

步骤三:将当前物理机列表PM_List中第一个物理机记为PM1,将PM1上所有虚拟机所包含的内存页面集合记为p1,PM1上所有虚拟机集合记为VM,PM1的过载阈值记为T(VM);初始化迭代计数器i=0;

步骤四:对V中任意的虚拟机vm,令pi(vm)=p(vm)\\p1,其中符号\\表示求两个集合之间的差集,p(vm)为虚拟机vm所包含的内存页面集合,pi(vm)为第i轮迭代时虚拟机vm所需传输的内存页面集合;

步骤五:判断是否对于任意的j∈[m+1,m+s],都有Tj(Vj)≠1,若是,则令算法结束,其中Vmt为算法结束时得到的迁移到初始物理机列表PM_List中第t台物理机上的虚拟机集合,其中Vj为物理机pmj上运行的虚拟机所构成的集合,Tj(Vj)为物理机pmj的过载阈值,过载阈值不等于1说明该物理机未过载,过载阈值等于1说明该物理机过载;否则,进入步骤六;

步骤六:判断是否有T(VM)=1,若是,说明PM1已经处于过载状态,则令对V中任意的虚拟机vm,令p(vm)=pi(vm)∪p1,并从PM_List中删除PM1,然后令t=t+1,再跳转至步骤三;否则,进入步骤七;

步骤七:判断是否对于j∈[m+1,m+s],存在一个物理机pmj有Tj(Vj)≠1,说明该物理机已从过载状态转入未过载状态,若是,则令V=V\\Vj,再进入步骤八;否则,直接进入步骤八;

步骤八:从所有过载物理机上中选出一个虚拟机,第i轮迭代中选出的虚拟机记为vmi,其满足为最小,标记运行着该虚拟机的过载物理机为pmq,其中pi(vmi)为第i轮迭代时虚拟机vmi所需传输的内存页面集合,|pi(vmi)|为pi(vmi)中的内存页面数目,c(vmi)为虚拟机vmi使用的CPU资源量;

步骤九:将虚拟机vmi放置在物理机PM1上,令VM=VM⌒vmi,p1=p1∪pi(vmi),Vq=Vq\\vmi,Vq为物理机pmq上所运行虚拟机所构成的集合;对V中任意的虚拟机vm,令pi+1(vm)=pi(vm)\\pi(vmi);令i=i+1,并跳转至步骤五。

本发明利用参考文献【2】中提供的PlantLab分布式集群在一天之内接近4000台虚拟机对CPU的使用记录(每五分钟采集一次)为基础,运用Matlab2000为仿真平台,进行性能测试。对比的算法为参考文献【1】中提出的RS、MC、MMT等虚拟机选择算法来组合参考文献【1】中提出的PABFD虚拟机放置算法。对比中采用的阈值函数为参考文献【1】中提出的FT、MAD、IQR、LR、LRR过载阈值函数。

图2-4中可以看出,就SLAV、所需传输的虚拟机内存页面数量与能耗而言,本发明提出的CVSP算法在采用不同的过载阈值函数情况下,都要优于PABFD与各种虚拟机选择策略的组合。

参考文献:

【1】A.Beloglazov,R.Buyya,Optimal online deterministic algorithms and adaptive heuristics for energy and performance efficient dynamic consolidation of virtual machines in cloud data centers,Concurrency and Computation:Practice and Experience 24(13)(2012)1397-1420.

【2】A.Beloglazov,R.Buyya,Managing overloaded hosts for dynamic consolidation of virtual machines in cloud data centers under quality ofservice constraints,IEEE Transactions on Parallel and Distributed Systems 24(7)(2013)1366-1379.

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