发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、基于双门限约束虚机迁移的管理方法。
一种基于双门限约束虚机迁移的管理方法,其管理过程为:
一、首先在服务器集群中,设定各物理服务器可处理的最优负载门限和最低负载门限,这里的负载是指物理服务器中动态创建的虚拟机;
二、然后实时各监控物理服务器上的活跃虚拟机数量,当物理服务器中动态创建的虚拟机数超出了最优负载门限或者低于最低负载门限时,进行虚拟机迁出操作,同时将本地无负载的物理服务器进入节能休眠状态。
所述步骤一中,按各个物理服务器处理能力设定最优负载门限;并按能耗比效率要求设定最低负载门限。
所述步骤二的详细过程为:
1)在获取各物理服务器上的活跃虚拟机数量后,根据其资源使用量,确定该虚拟机是否需要进行迁移,从而确定待迁移对象,将待迁移对象迁移至其它低于最优负载门限值的物理服务器中;
2)在迁移完成后,再获取低于最低负载门限的物理服务器,进行虚拟机迁出操作,同时将本地无负载的物理服务器进入节能休眠状态。
所述步骤1)中,获取个物理服务器上的活跃虚拟机数量通过监测服务与统计程序获取,在获取活跃虚拟机后,根据其资源使用量,将其与最优负载门限进行比较,若该数量高于最优负载门限,则迁出多于该最优负载门限的全部虚拟机至其余低于最优负载门限且高于最低负载门限的物理服务器中;
在迁出过程中,迁入的物理服务器按与最优负载门限相差数量大小的优先级进行排序,优先迁入差值更小的物理服务器,直至最终该物理服务器上的活跃虚拟机数等于或低于最优负载门限值。
所述步骤1)中,确定待迁移对象的具体过程为:
在由M个物理服务器组成的服务器集群ServerList=(S1,S2,…,SM)中,各物理服务器上的资源使用量为UsageList=(U1,U2,…,UM),最优资源使用值为BV,根据能耗比得出的最低使用值为LV;
获取每个物理服务器中的各虚拟机信息及资源占用率列表为:VMSi_List=(SiL1,SiL2,…,SiLn),且SiL1≥SiL2≥…≥SiLn,通过计算差值集合:(U1-BV,U2-BV,…,UM-BV),将元素大于0的物理服务器集合为:SubServerList=(S1,S2,…,SN),这里N≤M;
查看第一个虚拟机资源信息:若即去除SiL1后,剩余虚拟机总的资源使用量不高于BV,则继续查看SiL2、…、SiLn,直到找到其中的最小值SiLk,使得去除SiLk后,剩余虚拟机总的资源使用量不高于BV,并将该虚拟机SiLk标记为待迁移对象并置入集合L;
若即去除SiL1后,剩余虚拟机总的资源使用量高于BV,则进一步查看任意两个虚拟机的资源使用量之和,直到找到其中的最小值SiLx+SiLy,使得去除SiLx+SiLy后,剩余虚拟机总的资源使用量不高于BV,并将该SiLx和SiLy标记为待迁移对象并置入集合L;
当还找不到满足条件的虚拟机时,则将寻找范围扩大至任意3、4、….、n个虚拟机的资源使用量之和,直到能找到使得去除SiL1、…、SiLn后,剩余虚拟机总的资源使用量低于BV,且该值为当前虚拟机数中满足该条件的最小值,并将这些虚拟机标记为待迁移对象并置入集合L。
所述步骤1)中,将待迁移对象迁移的具体过程为:
11)将待迁移对象集合{Li}进行升序排列,然后根据虚拟机资源信息,统计介于BV和LV之间的全部物理服务器集合SubServerList1=(O1,O2,…,OM),该集合SubServerList1排序为降序排列;
12)查看集合中第一个迁移对象,若即将L1加入O1以后,O1中虚拟机总的资源使用量仍低于BV,则继续查看L2、…、Ln,直到找到其中的最大值Lk,使得将Lk加入O1以后,O1中虚拟机总的资源使用量高于BV,则将第Lk-1个虚拟机迁入O1服务节点,并在集合L中去除Lk-1;在此基础上,继续查看L中的虚拟机,并重复该过程,直至L中不再存在可加入O1中的虚拟机使其资源使用量仍低于BV为止;
13)若即将L1加入O1以后,O1中虚拟机总的资源使用量仍低于BV,则进一步查看O2,再重复上述12)中的迁移步骤,对L中的虚拟机进行处理,否则,将L中剩余的虚拟机重新进行编号,继续按12)中步骤进行处理;
14)按上述12)、13)两个步骤,依次处理O3,O4,…,Ok,直到L中不再有需要迁移到虚拟机为止。
当按步骤12)-14)处理完SubServerList1后,L中仍然存在需要迁移的虚拟机,则查看负载低于LV的宿主机集合SubServerList2=(R1,R2,…,RM),该集合SubServerList2按降序排列,将L中的虚拟机按上述步骤12)-14),依次迁入;当完成以上步骤后,L中仍然存在需要迁移的虚拟机,则申请新的可用物理节点资源以完成虚拟机迁移。
所述步骤2)的具体实现过程为:
21)在完成超出BV的物理主机的迁移操作后,再通过监测服务与统计程序获取负载低于LV的物理主机集合SubServerList2=(R1,R2,…,RM),同时通过平台监测系统,获取该集合中每个物理服务器中的各虚拟机信息及资源占用率列表为:VMRi_List=(RiL1,RiL2,…,RiLn),并依据各VMRi_List的数量对SubServerList2进行升序排列,当VMRi_List数量相同时,则较小的优先排前,将完成超BV门限迁移操作后介于BV和LV之间的全部物理服务器集合重新记为SubServerList1=(Q1,Q2,…,QM),且该集合排序为降序排列;
22)若Q1+R1≤BV,则将R1中的全部VMR1_List迁入Q1,并在此基础上继续按此步骤处理R2,R3,…,RM,直至全部迁移完毕;若处理过程中,Q1+Ri≤BV且Q1+Ri+1≥BV,则进一步查看Ri+1中的VMRi+1_List,并依次查看Ri+1L1,Ri+1L2,….,Ri+1Ln,若满足则将前i个R以及Ri+1中的前t个虚拟机迁入Q1中;
23)继续查看Q2,如则将Ri+1中剩余的虚拟机全部迁入Q2,否则,继续按步骤22)中方式,逐个查看此部分虚拟机是否能按升序迁移至Q2,…,QM;在迁移完Ri+1中剩余的虚拟机后,再继续按22)中方式,依次查看Q2,Q3,…,QM,直至将所有的R全部迁移完毕;
24)若Q1+R1>BV,则按步骤22)中单独查看R1中的虚拟机负载的方式,如果Q1+R1L1>BV,则继续查看Q2,…,QM;否则在Q1中按升序迁入R1中的虚拟机,直到Q1+R1Li≤BV且Q1+R1Li+1>BV,则将后续虚拟机同22)中方式继续放到Q2,…,QM中进行处理,直至全部迁移处理完。
通过上述步骤21)-24)全部迁移处理完集合R,则进行迁移操作后,将集合R的服务器转入节能休眠状态;如在迁移Ri后,无法找到有效的物理服务器继续迁移剩余的集合R,则依次由Ri+1、Ri+2向RM,RM-1进行虚拟机迁移,直至所有的集合R中的非空服务器的负载均超过LV且小于BV为止,同时将集合R的闲置服务器转入节能休眠状态。
本发明的一种基于双门限约束虚机迁移的管理方法,具有以下优点:
本发明的一种基于双门限约束虚机迁移的管理方法,解决现有虚机迁移策略单一性所引起的无法兼顾能耗与服务性能整体优化的问题,通过引入双门限迁移策略,达到最少虚机迁移数优化,在降低云数据中心整体能耗的基础上,兼顾服务性能和用户体验,实用性强,适用范围广泛,易于推广。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
云平台的数据中心一般使用单一策略进行虚拟机迁移调度,来优化系统的整体性能,云平台数据中心的服务性能优化与节能某种程度上是一对矛盾,通过虚拟机迁移调度来进行性能优化和节约能耗是一个重要的手段,而当前大部分方案只考虑了单一的约束条件进行迁移策略实施,但单一策略无法兼顾性能和开销的两方面需求,如只考虑性能要求的物理机资源量优先的方式,可能造成虚拟机的过于分散分布,增加整体数据中心的能耗,而如只考虑将虚拟机统一迁移至部分物理机并将空闲服务器休眠节能的方式,一方面可能造成物理机负荷过载,整体性能下降。另一方面,虚拟机迁移本身对业务连续性具有一定影响,且需要较大的资源开销,因此要考虑尽量避免过多的迁移操作。
现有的大规模数据中心一般采用虚拟化技术,上层管理平台可通过虚拟机迁移或定制虚拟机创建策略的方式,使得计算能力可按需分布到各集群节点。因此,如何进行虚拟机调度,使得资源使用效率更高效,更均衡的前提下,保证迁移开销小的同时,系统能耗还可以尽量降低,是一个非常具有实际应用价值的问题。
如附图1所示,针对上述问题和现有解决方案的缺陷,本发明提供一种基于双门限约束虚机迁移的管理方法。该方法的核心思想是设立一个最优负载门限和最低负载门限来计算需进行迁移的虚拟机数。当某个物理机中动态创建的虚拟机数超出了最优负载门限或者低于最低负载门限时,均需进行虚拟机迁出操作,同时通过调用管理系统,将本地无负载虚拟机的服务器进入节能休眠状态。
本发明在性能和节能的两个目标中取得最优折中,既提升了服务性能和用户体验,又节省了系统能耗和运营成本:
1)调度模块通过状态监测系统与数据中心资源管理平台进行交互,按物理服务器处理能力设定最优虚拟机承载服务上门限。并按能耗比效率要求设定但服务器最低虚拟机承载服务下门限。
2)获取各物理服务器上的活跃虚拟机数量及负载,并与最优承载门限进行比较,若该数量高于最优承载门限,则迁出多于该数量的尽可能数量较少的虚拟机至其余低于最优承载门限,且高于最低虚拟机承载门限的物理服务器中,直至最终该物理服务器上的活跃虚拟机负载等于或低于最优承载门限。
3)对活跃虚拟机负载低于最低虚拟机承载数值的物理服务器,将其上的全部虚拟机迁移至满足虚拟机业务要求的物理服务器上,且该服务器上承载的虚拟机负载低于最优承载服务上门限,高于最低虚拟机承载服务下门限。
4)对没有承载活跃虚拟机的空闲服务器,调用管理平台的操作接口,令该服务器进入节能休眠状态。
进一步的,其管理过程为:
一、首先在服务器集群中,设定各物理服务器可处理的最优负载门限和最低负载门限,这里的负载是指物理服务器中动态创建的虚拟机;
二、然后实时各监控物理服务器上的活跃虚拟机数量,当物理服务器中动态创建的虚拟机数超出了最优负载门限或者低于最低负载门限时,进行虚拟机迁出操作,同时将本地无负载的物理服务器进入节能休眠状态。
所述步骤一中,按各个物理服务器处理能力设定最优负载门限;并按能耗比效率要求设定最低负载门限。
所述步骤二的详细过程为:
1)在获取各物理服务器上的活跃虚拟机数量后,根据其资源使用量,确定该虚拟机是否需要进行迁移,从而确定待迁移对象,将待迁移对象迁移至其它低于最优负载门限值的物理服务器中;
2)在迁移完成后,再获取低于最低负载门限的物理服务器,进行虚拟机迁出操作,同时将本地无负载的物理服务器进入节能休眠状态。
所述步骤1)中,获取个物理服务器上的活跃虚拟机数量通过监测服务与统计程序获取,在获取活跃虚拟机后,根据其资源使用量,将其与最优负载门限进行比较,若该数量高于最优负载门限,则迁出多于该最优负载门限的全部虚拟机至其余低于最优负载门限且高于最低负载门限的物理服务器中;
在迁出过程中,迁入的物理服务器按与最优负载门限相差数量大小的优先级进行排序,优先迁入差值更小的物理服务器,直至最终该物理服务器上的活跃虚拟机数等于或低于最优负载门限值。
在云数据中心的资源管理平台中,通过监测服务与统计程序获取各个物理服务节点的资源使用情况,这里假定物理服务器的集群为:ServerList=(S1,S2,…,SM),并为简化起见,这里的资源只表示计算资源(在实际应用中,可以对多个资源进行适当的加权平均拟合成统一的资源使用量),并假定物理服务器规格一致。设各个服务节点的计算资源使用量为UsageList=(U1,U2,…,UM),同时,设系列服务节点的最优资源使用值为BV,根据能耗比得出的最低使用值为LV。
同时通过平台监测系统,获取每个物理服务器中的各虚拟机信息及资源占用率列表为:VMSi_List=(SiL1,SiL2,…,SiLn),不失一般性可假定该列表均为降序排列,即SiL1≥SiL2≥…≥SiLn,查看差值集合:(U1-BV,U2-BV,…,UM-BV),设元素大于0的物理服务器集合为:SubServerList=(S1,S2,…,SN),这里N≤M。随后,进一步对SubServerList中的各个元素进行以下处理:
1、若使得去除SiL1后,剩余虚拟机总的资源使用量低于BV,则进一步查看SiL2、…、SiLn,直到找到其中的最小值SiLk,使得去除SiLk后,剩余虚拟机总的资源使用量低于BV,并将该虚拟机SiVMk标记为待迁移对象并置入集合L。
2、若满足1中的条件,则进一步查看任意两个虚拟机的资源使用量之和,直到找到其中的最小值SiLx+SiLy,使得去除SiLx+SiLy后,剩余虚拟机总的资源使用量低于BV,并将该SiLx和SiLy标记为待迁移对象并置入集合L。
3、若找不到2中能满足条件的虚拟机,则将查看范围放至3、4、….、n,直到能找到使得去除SiL1、…、SiLn后,剩余虚拟机总的资源使用量低于BV,且该值为当前虚拟机数中满足该条件的最小值。并将这些虚拟机标记为待迁移对象并置入集合L。
按上述步骤遍历完SubServerList后,将待迁移对象集合{Li}再进行升序排列,再查看各服务节点Usage介于BV和LV之间的全部服务器集合SubServerList1=(O1,O2,…,OM),不失一般性,设该排序为降序排列。对待迁移对象集合{Li}执行以下步骤:
1、若使得将L1加入O1以后,O1中虚拟机总的资源使用量仍低于BV,则进一步查看L2、…、Ln,直到找到其中的最大值Lk,使得将Lk加入O1以后,O1中虚拟机总的资源使用量高于BV,则将Lk-1号虚拟机迁入O1服务节点,并在集合L中去除Lk-1。在此基础上,继续查看L中的虚拟机,并重复该过程,直至L中不再存在可加入O1中的虚拟机使其资源使用量仍低于BV为止。
2、若使得将L1加入O1以后,O1中虚拟机总的资源使用量仍低于BV,则进一步查看O2,再重复1中的步骤,对L中的虚拟机进行处理。否则,将L中剩余的虚拟机重新进行编号,继续按1中步骤进行处理。
3、按上述两个步骤,依次处理O3,O4,…,Ok,直到L中不再有需要迁移到虚拟机为止。
4、如按上述3个步骤,处理完SubServerList1后,L中仍然存在需要迁移的虚拟机,则查看负载低于LV的宿主机集合SubServerList2=(R1,R2,…,RM),并假定其按降序排列,将L中的虚拟机按上述3个步骤,依次迁入。
5、如完成以上步骤后,L中仍然存在需要迁移的虚拟机,则可通过系统管理平台通告申请新的可用物理节点资源。
完成超出BV的物理主机的迁移操作后,再通过云平台监测系统获取负载低于LV的物理主机集合SubServerList2=(R1,R2,…,RM),
同时通过平台监测系统,获取该集合中每个物理服务器中的各虚拟机信息及资源占用率列表为:VMRi_List=(RiL1,RiL2,…,RiLn),并依据各VMRi_List的数量对SubServerList2进行升序排列,如VMRi_List数量相同,则较小的优先排前。不失一般性,仍记为(R1,R2,…,RM),并将完成超BV门限迁移操作后的各服务节点Usage介于BV和LV之间的全部服务器集合仍记为SubServerList1=(O1,O2,…,OM),不失一般性,设该排序为降序排列,随后,进一步对SubServerList2中的各个元素进行以下处理:
1、若O1+R1≤BV,则将R1中的全部VMR1_List迁入O1,并在此基础上继续按此步骤处理R2,R3,…,RM,直至全部迁移完毕。若处理过程中,O1+Ri≤BV且O1+Ri+1≥BV,则进一步查看Ri+1中的VMRi+1_List,并依次查看Ri+1L1,Ri+1L2,….,Ri+1Ln,若满足则将前i个R以及Ri+1中的前t个虚拟机迁入O1中。
2、继续按此步骤查看O2,如则将Ri+1中剩余的虚拟机全部迁入O2,否则,继续按1中方式,逐个查看此部分虚拟机是否能按升序迁移至O2,…,OM。在迁移完Ri+1中剩余的虚拟机后,再继续按1中方式,依次查看O2,O3,…,OM,直至将所有的R全部迁移完毕。
3、若O1+R1>BV,则按1中单独查看R1中的虚拟机负载的方式,如果O1+R1L1>BV,则继续查看O2,…,OM。否则在O1中按升序迁入R1中的虚拟机,直到O1+R1Li≤BV且O1+R1Li+1>BV,则将后续虚拟机同1中方式继续放到O2,…,OM中进行处理。
4、如经上述步骤,可全部迁移处理完集合R,则进行迁移操作后,调用云平台管理系统,将集合R的服务器转入节能休眠状态。
5、如在迁移Ri后,无法找到有效的O服务器继续迁移剩余的R集合服务器,则依次由Ri+1、Ri+2向RM,RM-1进行虚拟机迁移,直至所有的R集合中的非空服务器的负载均超过LV且小于BV为止。同时调用云平台管理系统,将集合R的闲置服务器转入节能休眠状态。
在本发明中,提供的方法通过引入资源使用上门限,可以保证各虚拟机所在物理机有充分资源提供最佳性能服务,避免超载引起的系统性能恶化;
方法通过引入资源使用下门限,保证资源占用量较小的物理机,可以通过虚拟机迁移的方式,满足系统休眠的需求,从而降低整体系统的能耗,有效降低云数据中心运营成本;
方法的迁移过程按最少迁移优先的原则,保证需进行迁移的虚拟机数尽量少,从而降低了迁移开销,在节能的基础上最大限度保证了服务的稳定性和连续性。
通过本方案流程,数据中心服务器不仅实现了有效的负载均衡,避免了过载产生的性能恶化与能耗开销,同时达到了节能目的。本方案的调度方式,也保证了虚拟机迁移量的最小化,降低了迁移过程的系统开销。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于双门限约束虚机迁移的管理方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。