一种服务器集群中的虚拟机资源调度方法及系统的制作方法

文档序号:6519553阅读:228来源:国知局
一种服务器集群中的虚拟机资源调度方法及系统的制作方法
【专利摘要】本发明提供一种服务器集群中的虚拟机资源调度方法及系统,应用于云计算【技术领域】:上述方法包括以下步骤:根据获取的历史数据周期内所有主机的实时CPU使用率,分别计算其平均值;通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机并进一步获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机;调用虚拟机迁移模块执行虚拟机迁移。本发明实现了服务器虚拟化系统中虚拟机资源的合理分布并且具备高可用性,大大提高了系统的高可用性和稳定性。
【专利说明】一种服务器集群中的虚拟机资源调度方法及系统
【技术领域】
[0001]本发明属于云计算领域,尤其涉及一种服务器集群中的虚拟机资源调度方法及系统。
【背景技术】
[0002]当前,云计算逐渐被行业认可,而服务器虚拟化系统作为云计算中的重要组成部分开始实现并付诸于实践。服务器虚拟化技术通过运用虚拟化的技术充分发挥服务器的硬件性能,能够在确保企业投入成本的同时,提高运营效率,节约经济成本和空间浪费,对于发展迅速,成长规模大的用户来说,可以通过服务器虚拟化技术带来更多的经济效益。
[0003]由上可知服务器虚拟化系统中虚拟机资源的合理分布、高可用性便显得尤其重要,它直接关系着系统的可用性和稳定性。而大多数同类的系统调度方法没有充分考虑计算节点各种负载,故调度方法并不完善,给系统带来了隐患。

【发明内容】

[0004]本发明提供一种服务器集群中的虚拟机资源调度方法及系统,以解决上述问题。
[0005]本发明提供一种服务器集群中的虚拟机资源调度方法。上述方法包括以下步骤:
[0006]根据获取的历史数据周期内所有主机的实时CPU使用率,分别计算其平均值;
[0007]通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机并进一步获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机;
[0008]调用虚拟机迁移模块执行虚拟机迁移。
[0009]本发明还提供一种服务器集群中的虚拟机资源调度系统,包括:平均值计算装置、调度装置、迁移装置;平均值装置通过计算装置与迁移装置相连;
[0010]平均值计算装置,用于根据获取的历史数据周期内所有主机的实时CPU使用率,分别计算其平均值;
[0011]调度装置,用于通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机并进一步获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机;
[0012]迁移装置,用于调用虚拟机迁移模块执行虚拟机迁移。
[0013]通过实施本发明的技术方案,实现了服务器虚拟化系统中虚拟机资源的合理分布并且具备高可用性,大大提高了系统的高可用性和稳定性。
【专利附图】

【附图说明】
[0014]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0015]图1所示为本发明实施例1的选择开启一台虚拟机的流程图;[0016]图2所示为本发明实施例2的HA (高可用)的处理流程图;
[0017]图3所示为本发明实施例3的负载均衡的处理流程图;
[0018]图4所示为本发明实施例4的系统结构图。
【具体实施方式】
[0019]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0020]本发明提供了一种服务器集群中的虚拟机资源调度方法,包括以下步骤:
[0021]根据获取的历史数据周期内所有主机的实时CPU使用率,分别计算其平均值;
[0022]通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机并进一步获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机;
[0023]调用虚拟机迁移模块执行虚拟机迁移。
[0024]其中,通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机的过程为:
[0025]设置CPU使用率临界值1,CPU负载较高的主机的CPU使用率达到或高于临界值I;
[0026]达到或高于临界值I的CPU负载较高主机的CPU使用率与较低主机的CPU使用率之差达到或高于临界值2 ;
[0027]通过上述两个步骤,获取迁移的CPU使用率高的主机及被迁移的CPU使用率较低的目标主机;其中,临界值I和临界值2可以相同,也可以不同。
[0028]其中,通过调度策略获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机的过程为:
[0029]根据被迁移的CPU使用率较低的目标主机剩余的虚拟机CPU数和获取迁移的CPU使用率较高的主机上迁移的虚拟机;
[0030]进行预计算,获取被迁移的CPU使用率较低的目标主机上使用的逻辑CPU数;
[0031]根据迁移的主机的虚拟机CPU使用率进行排序,选择CPU使用率较平均的虚拟机并根据配置值和实际值中的最小的值,选择迁移的虚拟机。
[0032]其中,预计算是指:先假设通过调度策略得出的虚拟机都迁移到被迁移的CPU使用率较低的目标主机上时,并且假设这些迁移过去的虚拟机都处于满负载运行,此时当前的系统状态不会触发与被迁移的CPU使用率较低的目标主机相关的新一轮的负载均衡调度。
[0033]其中,主机开启虚拟机的流程如下:
[0034]监控服务产生虚拟机宕机事件并推送到队列;
[0035]接收指定队列的虚拟机的宕机事件;
[0036]从数据库中获取虚拟机的业务状态;
[0037]判断虚拟机的业务状态是否关机,若是,则结束;否则,调用开启虚拟机模块开启虚拟机。
[0038]其中,虚拟机宕机,选择合适的主机重启该虚拟机的过程为:[0039]在虚拟机所在的Cluster中找到所有连通的主机;
[0040]筛选出存储可用于开启此虚拟机主机;
[0041]再根据虚拟机的配置筛选出有足够CPU和内存资源开启虚拟机的主机;
[0042]将以上筛选出的主机根据CPU使用率进行排序;
[0043]选择CPU使用率最低的主机返回给上层模块。
[0044]下面进行详细的说明:
[0045]HA模块:监控模块主动推送虚拟机的宕机事件到主调度服务,主调度服务根据事件比较业务状态,如果状态不一致并且该虚拟机位于共享存储,此时主调度服务会选择一个负载较轻的物理机重新启动意外宕机的虚拟机。开启虚拟机流程如图1所示;选择开启虚拟的流程如图2所示。
[0046]图1所示为本发明实施例1的选择开启一台虚拟机的流程图,详细说明如下:
[0047]步骤101:监控服务产生虚拟机宕机事件并推送到队列;
[0048]步骤102:接收指定队列的虚拟机的宕机事件;
[0049]步骤103:从数据库中获取虚拟机的业务状态;
[0050]步骤104:判断虚拟机的业务状态是否关机,若是,则执行步骤106 ;否则,执行步骤 105 ;
[0051]步骤105:调用开启虚拟机模块开启虚拟机;
[0052]步骤106:结束。
[0053]图2所示为本发明实施例2的HA (高可用)的处理流程图,详细说明如下:
[0054]步骤201:虚拟机对象;
[0055]步骤202:在虚拟机所在的Cluster中找到所有连通的主机;
[0056]步骤203:筛选出存储可用于开启此虚拟机主机;
[0057]步骤204:再根据虚拟机的配置筛选出有足够CPU和内存资源开启虚拟机的主机;
[0058]步骤205:将以上筛选出的主机根据CPU使用率进行排序;
[0059]步骤206:选择CPU使用率最低的主机返回给上层模块;
[0060]步骤207:结束。
[0061]负载均衡模块:
[0062]负载均衡采用的总体思路为:按收集一个历史周期内主机实时CPU数据并计算出平均值。然后将CPU负载较高的主机上的部分虚拟机迁移到CPU负载较低的主机上,以达到CPU负载的均衡。具体流程如图3所示。
[0063]图3所示为本发明实施例3的负载均衡的处理流程图,详细说明如下:
[0064]步骤301:获取Mysql数据库中一个历史数据周期(该周期时长可以根据需要进行设定)内的所有主机的实时性能数据(例如:CPU使用率);其中,获取数据的详细过程如下:
[0065]选择开启负载均衡的集群,获取一个历史数据周期内该集群cluster所有主机的实时性能数据(例如=CPU使用率)。
[0066]步骤302:根据每个主机所有的实时历史性能数据,计算获取平均值;
[0067]步骤303:依据获取的平均值,再根据CPU使用率进行排序;
[0068]通过CPU使用率处理采集的数据的详细过程为:[0069]以物理机为单位,将集群内每台物理机上的CPU使用率按从大到小顺序排列,删除最高值和最低值将剩余的CPU使用率数据取得平均值,最后依据CPU使用率平均值进行排序。
[0070]另外,一个历史数据周期内,需要去掉CPU突发使用率过高或过低时的数据的个数,由于要收集一个历史周期内的主机的CPU负载数据,在某个时间点上可能会有突发的(PU使用率过高或者过低,这样在计算平均值时会对平均数据产生影响。
[0071]步骤304:通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机并进一步获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机,并保存到数据结构中。
[0072]其中,调度策略的详细过程如下:
[0073]步骤一,设置CPU使用率临界值1,CPU负载较高的主机的CPU使用率需要达到或高于临界值I,才会具备迁移虚拟机的条件之一(条件一);
[0074]步骤二,达到或高于临界值I的CPU负载较高主机的CPU使用率与较低主机的CPU使用率之差达到或高于临界值2 ;
[0075]是指条件一满足的情况下,能找到一个CPU负载较低的主机,并且较高与较低主机的CPU使用率之差达到或高于临界值2,才会具备迁移虚拟机的条件之二 (条件二)。
[0076]其中,临界值I和临界值2可以相同,也可以不同。
[0077]通过上述两个步骤,获取迁移的CPU使用率高的主机及被迁移的CPU使用率较低的目标主机。
[0078]另外,一个执行周期内,一台物理机允许迁出或迁入最大虚拟机数的确定过程为:
[0079]在满足条件一和条件二的情况下,并在此执行周期内,CPU负载较高的主机向CPU负载较低的主机最多迁移的虚拟机数小于或等于预设值(该预设值可以根据实际需要确定)。
[0080]两台主机中将会被迁移的虚拟机的确定过程为:
[0081]在满足条件一和条件二的基础上,根据被迁移的CPU使用率较低的目标主机剩余的虚拟机CPU数和内存获取迁移的CPU使用率较高的主机上可以迁移的虚拟机;
[0082]根据虚拟机CPU使用率进行排序;
[0083]进行预计算,保证负载均衡的情况下,获取被迁移的CPU使用率较低的目标主机上可以使用的逻辑CPU数(即使这些逻辑CPU满载,也会保证整体的负载均衡);
[0084]优先选择CPU使用率较平均的虚拟机(排序后处于中间的虚拟机);
[0085]根据配置值和实际值(实际可以迁移虚拟机数)中的最小的值,选择可以迁移的虚拟机。
[0086]其中,预计算是指:
[0087]预计算是先假设通过调度策略得出的虚拟机都迁移到被迁移的CPU使用率较低的目标主机上时,并且假设这些迁移过去的虚拟机都处于满负载运行,此时当前的系统状态不会触发与被迁移的CPU使用率较低的目标主机相关的新一轮的负载均衡调度。
[0088]步骤305:根据内存中数据结构调用虚拟机迁移模块执行虚拟机迁移;
[0089]步骤306:结束。[0090]图4所示为本发明实施例4的系统结构图,包括:平均值计算装置401、调度装置402、迁移装置403 ;平均值装置401通过计算装置402与迁移装置403相连;
[0091]平均值计算装置401,用于根据获取的历史数据周期内所有主机的实时CPU使用率,分别计算其平均值;
[0092]调度装置402,用于通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机并进一步获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机;
[0093]迁移装置403,用于调用虚拟机迁移模块执行虚拟机迁移。
[0094]通过实施本发明的技术方案,实现了服务器虚拟化系统中虚拟机资源的合理分布并且具备高可用性,大大提高了系统的高可用性和稳定性
[0095]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种服务器集群中的虚拟机资源调度方法,其特征在于,包括以下步骤: 根据获取的历史数据周期内所有主机的实时CPU使用率,分别计算其平均值; 通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机并进一步获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机; 调用虚拟机迁移模块执行虚拟机迁移。
2.根据权利要求1所述的方法,其特征在于:通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机的过程为: 设置CPU使用率临界值1,CPU负载较高的主机的CPU使用率达到或高于临界值I ;达到或高于临界值I的CPU负载较高主机的CPU使用率与较低主机的CPU使用率之差达到或高于临界值2 ; 通过上述两个步骤,获取迁移的CPU使用率高的主机及被迁移的CPU使用率较低的目标主机;其中,临界值I和临界值2可以相同,也可以不同。
3.根据权利要求2所述的方法,其特征在于:通过调度策略获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机的过程为: 根据被迁移的CPU使用率较低的目标主机剩余的虚拟机CPU数和获取迁移的CPU使用率较高的主机上迁移的虚拟机; 进行预计算,获取被迁移的CPU使用率较低的目标主机上使用的逻辑CPU数; 根据迁移的主机的虚拟机CPU使用率进行排序,选择CPU使用率较平均的虚拟机并根据配置值和实际值中的最小的值,选择迁移的虚拟机。
4.根据权利要求3所述的方法,其特征在于:预计算是指:先假设通过调度策略得出的虚拟机都迁移到被迁移的CPU使用率较低的目标主机上时,并且假设这些迁移过去的虚拟机都处于满负载运行,此时当前的系统状态不会触发与被迁移的CPU使用率较低的目标主机相关的新一轮的负载均衡调度。
5.根据权利要求1所述的方法,其特征在于, 主机开启虚拟机的流程如下: 监控服务产生虚拟机宕机事件并推送到队列; 接收指定队列的虚拟机的宕机事件; 从数据库中获取虚拟机的业务状态; 判断虚拟机的业务状态是否关机,若是,则结束;否则,调用开启虚拟机模块开启虚拟机。
6.根据权利要求1所述的方法,其特征在于,虚拟机宕机,选择合适的主机重启该虚拟机的过程为: 在虚拟机所在的Cluster中找到所有连通的主机; 筛选出存储可用于开启此虚拟机主机; 再根据虚拟机的配置筛选出有足够CPU和内存资源开启虚拟机的主机; 将以上筛选出的主机根据CPU使用率进行排序; 选择CPU使用率最低的主机返回给上层模块。
7.一种服务器集群中的虚拟机资源调度系统,其特征在于,包括:平均值计算装置、调度装置、迁移装置;平均值装置通过计算装置与迁移装置相连; 平均值计算装置,用于根据获取的历史数据周期内所有主机的实时CPU使用率,分别计算其平均值; 调度装置,用于通过调度策略获取迁移的CPU使用率较高的主机、被迁移的CPU使用率较低的目标主机并进一步获取迁移的CPU使用率较高的主机向被迁移的CPU使用率较低的目标主机上迁移的虚拟机; 迁移装置,用于调用虚`拟机迁移模块执行虚拟机迁移。
【文档编号】G06F9/50GK103605574SQ201310576856
【公开日】2014年2月26日 申请日期:2013年11月18日 优先权日:2013年11月18日
【发明者】栗丽霞, 颜秉珩 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1