一种云计算平台下的虚拟机分布式任务调度方法

文档序号:7799270阅读:155来源:国知局
一种云计算平台下的虚拟机分布式任务调度方法
【专利摘要】本发明公开了一种云计算平台下的虚拟机分布式任务调度方法,包括以下情况:①当物理服务器宕机事件时,将该物理服务器上的负载迁移到正常的物理服务器上;②当某个物理服务器的负载较高时,在应用不中断的情况下,将偏高的负载迁移到负载偏低的物理服务器上;③当某个物理服务器的负载较小时,在应用不中断的情况下,将该物理服务器上的负载迁移到其他物理服务器上,并将空闲出来的物理服务器进行休眠或关机。本发明实现了调度方式的多样性及灵活性;从虚拟化VCPU映射机制上整体考虑资源均衡调度,实现了虚拟机的在线迁移、高可用以及负载均衡;从虚拟化VCPU映射机制上整体考虑省电调度,实现了虚拟机的经济运行,达到了节能的效果。
【专利说明】一种云计算平台下的虚拟机分布式任务调度方法
【技术领域】
[0001]本发明涉及云计算领域,特别是涉及一种云计算平台下的虚拟机分布式任务调度方法。
【背景技术】
[0002]当前,云计算作为一种新兴的商业计算模式,已经成为学术界和各大IT厂商的研究热点。云计算是目前研究应用最广泛的分布式应用系统,它将计算能力分布在大量服务器构成的资源池上,用户能够按需获取计算、存储和通信服务。针对当前云计算虚拟机任务调度问题的研究中所存在的任务模型的单一性以及任务调度算法性能较低,且不能够兼顾云计算QoS (Quality of Service,服务质量)需求的情况,如何合理分配云资源,高效的进行虚拟机任务调度是云计算研究领域的关键问题。
[0003]传统的针对资源均衡的调度机制是基于单个虚拟机CPU负载进行调度,将某个(PU负载较高的虚拟机迁移到其他物理服务器上。这种传统的调度机制存在很大弊端:①由于虚拟机VCPU将映射到物理服务器的某个CPU核上,虚拟机负载较高时,也只能影响物理服务器映射的几个CPU核,不会影响映射到其他核的虚拟机运行,即使迁移到其他物理服务器上,如果该物理服务器的运算能力与原物理服务器的运算能力相同,迁移后也不会有改善;②虚拟机负载过高可能是瞬时高峰,迁移过程中本身会到来CPU计算损耗以及大量IO负载;③传统方式的调度机制没有从整体上进行考虑,采用“拆东墙补西墙”的方式达不到资源均衡的效果。
[0004]传统的针对省电的调度机制是基于虚拟机CPU负载以及物理服务器CPU负载进行调度,并没有从整体考虑,以及从CPU整体负载发展趋势考虑。这种针对省电的调度机制存在很大弊端:因为瞬间的峰值以及谷值容易引起错误判断,而宿主机启停需要很长时间,一般在十分钟以上,频繁启动和停止需要消耗平时十倍的能耗,不但不节能反而影响业务运行。

【发明内容】

[0005]本发明的目的在于克服现有技术的不足,提供一种云计算平台下的虚拟机分布式任务调度方法,调度方式多样,灵活性强;从虚拟化VCPU映射机制上整体考虑资源均衡调度,实现了虚拟机的在线迁移、高可用以及负载均衡;从虚拟化VCPU映射机制上整体考虑省电调度,实现了虚拟机的经济运行,达到了节能的效果。
[0006]本发明的目的是通过以下技术方案来实现的:一种云计算平台下的虚拟机分布式任务调度方法,它包括以下情况:①当物理服务器宕机事件时,将该出现宕机事件的物理服务器上的负载迁移到正常的物理服务器上;②当某个物理服务器的负载较高时,在应用不中断的情况下,将偏高的负载迁移到负载偏低的物理服务器上;③当某个物理服务器的负载较小时,在应用不中断的情况下,将该物理服务器上的负载迁移到其他物理服务器上,并将空闲出来的物理服务器进行休眠或关机,降低能耗。[0007]其中,将出现宕机事件的物理服务器上的负载迁移到正常的物理服务器上,包括以下具体步骤:
S11:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯;
S12:各物理服务器每隔一段时间tl持续的向主管理服务器发送心跳线;
S13:主管理服务器检查各物理服务器的心跳线请求,若在预设时间t2后没有收到某物理服务器的心跳线请求,发现某物理服务器的心跳异常,则自动探测该物理服务器网络是否连通,若检测到网络中断,并在一段时间内没有恢复,则触发物理服务器宕机事件,从而启动HA机制,自动的将该物理服务器上的负载转移到其他物理服务器上重新运行。
[0008]将偏高的负载迁移到负载偏低的物理服务器上,包括以下具体步骤:
S21:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯;
S22:主管理服务器实时监控各物理服务器上负载的运行情况,计算资源池中各物理服务器的负载LC,计算公式为:
负载LC= SUM (虚拟机VCPU数)/物理服务器CPU核数;
S23:对上述步骤计算所得的负载LC进行排序,即SORT(LC);
S24:判断MAX(LC)是否大于预设的调度阀值SF,若大于预设的调度阀值SF,则进入下一步,若小于或等于预设的调度阀值SF,则调度结束;
S25:从MAX (LC)物理服务器中选取MINV=MIN (虚拟机VCPU),判断“MIN (LC)- MIN (虚拟机VCPU) ”是否小于或等于调度阀值SF,若“MIN(LC) -MIN (虚拟机VCPU)≤调度阀值SF”,则进入下一步,否则调度结束;
S26:将选取的虚拟机从MAX (LC)物理服务器迁移到MIN(LC)物理服务器上,并计算迁移后MAX (LC)物理服务器及MIN (LC)物理服务器的负载LC:
MIN (LC) = (MIN (LC) *物理服务器CPU核数+MINV) /物理服务器CPU核数;
MAX (LC) = (MIN (LC) *物理服务器CPU核数-MINV) /物理服务器CPU核数;
然后,进入步骤S22,开始下一轮计算。
[0009]将负载较小的物理服务器上的负载迁移到其他物理服务器上,并将空闲出来的物理服务器进行休眠或关机,包括以下具体步骤:
S31:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯;
S32:主管理服务器实时监控各物理服务器上负载的运行情况,计算资源池中各物理服务器的负载LC,计算公式为:
负载LC=SUM (虚拟机VCPU数)/物理服务器CPU核数;
S33:判断SUM(LC)是否大于“调度阀值SF*物理服务器数”,若“SUM(LC)≤调度阀值SF*物理服务器数”则进入下一步,若“SUM(LC) >调度阀值SF*物理服务器数”,则进行如下操作:
从资源池中选择停止状态的物理服务器,进入资源均衡调度,将虚拟机从负载较高的物理服务器迁移到负载较低的物理服务器上,直到计算SUM(LC)≤调度阀值SF*物理服务器CPU核数,或者资源池已无资源为止;
S34:判断“SUM(LC) <调度阀值SF* (物理服务器数-2)”是否成立,若“SUM(LC) <调度阀值SF* (物理服务器数-2) ”,则进入下一步,若“SUM(LC)≤调度阀值SF* (物理服务器数-2)”,则调度结束; 535:依次判断负载LC==O是否成立,若负载LC==O,从集合(LC)中移出,并调度该物理服务器,将该物理服务器进行停止操作,对集合(LC)按照计算的负载LC进行排序,SPSORT (LC);
536:依次从MIN (LC)物理服务器中选取一个虚拟机VC=HOST OF (虚拟机VCPU),依次从集合(LC)中,由大到小顺序选取物理服务器计算:
MIN (LC) = (MIN (LC) *物理服务器CPU核数-VC) /物理服务器CPU核数;
CHOICE (LC) = (CHOICE (LC) *物理服务器CPU核数+VC) /物理服务器CPU核数;
并迁移该虚拟机;
然后进入步骤S33,开始下一轮计算。
[0010]所述主管理服务器和各物理服务器构成一种server-agent架构体系的分布式调度机制,主管理服务器和各物理服务器均内嵌脚本解析语言,并实现一种task-tasklet框架分布式计算模型,主管理服务器执行task部分代码,将上下文参数、tasklet部分代码转发到各物理服务器上进行执行,整个过程采用异步方式,通过分布式事件机制发送不同阶段的事件触发执行代码从而完成信息以及过程的同步。
[0011]本发明的有益效果是:本发明从多种情况下进行任务调度,实现了调度方式的多样性及灵活性;从虚拟化VCPU映射机制上整体考虑资源均衡调度,实现了虚拟机的在线迁移、高可用以及负载均衡;从虚拟化VCPU映射机制上整体考虑省电调度,实现了虚拟机的经济运行,达到了节能的效果。
【专利附图】

【附图说明】
[0012]图1为本发明将出现宕机事件的物理服务器上的负载迁移到正常的物理服务器情况下的方法流程图;
图2为本发明将偏高的负载迁移到负载偏低的物理服务器情况下的方法流程图;
图3为本发明将负载较小的物理服务器上的负载迁移到其他物理服务器并将空闲出来的物理服务器进行休眠或关机情况下的方法流程图。
【具体实施方式】
[0013]下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
[0014]一种云计算平台下的虚拟机分布式任务调度方法,它包括以下情况:①当物理服务器宕机事件时,将该出现宕机事件的物理服务器上的负载迁移到正常的物理服务器上;
②当某个物理服务器的负载较高时,在应用不中断的情况下,将偏高的负载迁移到负载偏低的物理服务器上;③当某个物理服务器的负载较小时,在应用不中断的情况下,将该物理服务器上的负载迁移到其他物理服务器上,并将空闲出来的物理服务器进行休眠或关机,降低能耗。
[0015]所述主管理服务器和各物理服务器构成一种server-agent架构体系的分布式调度机制,主管理服务器和各物理服务器均内嵌脚本解析语言,并实现一种task-tasklet框架分布式计算模型,主管理服务器执行task部分代码,将上下文参数、tasklet部分代码转发到各物理服务器上进行执行,整个过程采用异步方式,通过分布式事件机制发送不同阶段的事件触发执行代码从而完成信息以及过程的同步。
[0016]如图1所示,将出现宕机事件的物理服务器上的负载迁移到正常的物理服务器上,包括以下具体步骤:
511:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯;
512:各物理服务器每隔一段时间tl,通过管理网持续的向主管理服务器发送心跳线;
513:主管理服务器检查各物理服务器的心跳线请求,若在预设时间t2后没有收到某物理服务器的心跳线请求,发现某物理服务器的心跳异常,则自动探测该物理服务器所在网络(应用网)是否连通,此时物理服务器会自动的检查应用网是否中断,若网络中断,并在一段时间内没有恢复,则触发物理服务器宕机事件,从而启动HA机制,自动的将该物理服务器上的负载转移到其他物理服务器上重新运行,出现宕机事件的物理服务器被强行停止。[0017]主管理服务器和各物理服务器构成的server-agent架构,将资源调度与心跳检查分离,结构清晰,更易于管理配置,并且可以构建超过100个节点的大型集群,而传统的一般最大规模不能超过32个节点。另外,主管理服务器只负责管理资源调度,即使主管理服务器出现宕机,物理服务器也能正常运行,只是脱离了管理,不会出现物理服务器崩溃的现象。
[0018]如图2所示,将偏高的负载迁移到负载偏低的物理服务器上,包括以下具体步骤:
521:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯;
522:主管理服务器实时监控各物理服务器上负载的运行情况,即监控每个物理服务器上运行虚拟机状态,并计算资源池中各物理服务器的负载LC,计算公式为:
负载LC= SUM (虚拟机VCPU数)/物理服务器CPU核数;
523:对上述步骤计算所得的负载LC进行排序,即SORT (LC);
524:判断MAX(LC)是否大于预设的调度阀值SF,若大于预设的调度阀值SF,则进入下一步,若小于或等于预设的调度阀值SF,则调度结束;一般来说,虚拟机VCPU数/物理服务器CPU核数为3时为物理服务器CPU利用最佳参数,小于1,则表示有部分物理服务器CPU核可能空闲;
525:从MAX (LC)物理服务器中选取MINV=MIN (虚拟机VCPU),判断“MIN (LC)- MIN (虚拟机VCPU) ”是否小于或等于调度阀值SF,若“MIN(LC) -MIN (虚拟机VCPU)≤调度阀值SF”,则进入下一步,否则调度结束;
S26:将选取的虚拟机从MAX (LC)物理服务器迁移到MIN(LC)物理服务器上,并计算迁移后MAX(LC)物理服务器及MIN(LC)物理服务器的负载LC:
MIN (LC) = (MIN (LC) *物理服务器CPU核数+MINV) /物理服务器CPU核数;
MAX (LC) = (MIN (LC) *物理服务器CPU核数-MINV) /物理服务器CPU核数;
然后,进入步骤S22,开始下一轮计算。
[0019]如图3所示,将负载较小的物理服务器上的负载迁移到其他物理服务器上,并将空闲出来的物理服务器进行休眠或关机,包括以下具体步骤:
531:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯;
532:主管理服务器实时监控各物理服务器上负载的运行情况,计算资源池中各物理服务器的负载LC,计算公式为:负载LC=SUM (虚拟机VCPU数)/物理服务器CPU核数;
533:判断SUM(LC)是否大于“调度阀值SF*物理服务器数”,若“SUM(LC)≤调度阀值SF*物理服务器数”则进入下一步,若“SUM(LC) >调度阀值SF*物理服务器数”,则先进行如下操作:
从资源池中选择停止状态的物理服务器,进入资源均衡调度,将虚拟机从负载较高的物理服务器迁移到负载较低的物理服务器上,直到计算SUM(LC)≤调度阀值SF*物理服务器CPU核数,或者资源池已无资源为止;
534:判断“SUM(LC) <调度阀值SF* (物理服务器数-2)”是否成立,若“SUM(LC) <调度阀值SF* (物理服务器数-2) ”,则进入下一步,若“SUM (LC)≥调度阀值SF* (物理服务器数-2)”,则调度结束;一般会预留一定容量,来应对业务突发访问需求,此处预留容量为I ;
535:依次判断负载LC==O是否成立,若负载LC==O,从集合(LC)中移出,并调度该物理服务器,将该物理服务器进行停止操作,对集合(LC)按照计算的负载LC进行排序,即SORT (LC);
536:依次从MIN (LC)物理服务器中选取一个虚拟机VC=HOST OF (虚拟机VCPU),依次从集合(LC)中,由大到小顺序选取物理服务器计算:
MIN (LC) = (MIN (LC) *物理服务器CPU核数-VC) /物理服务器CPU核数;
CHOICE (LC) = (CHOICE (LC) *物理服务器CPU核数+VC) /物理服务器CPU核数;
并迁移该虚拟机;
然后进入步骤S33,开始下一轮计算。
【权利要求】
1. 一种云计算平台下的虚拟机分布式任务调度方法,其特征在于:它包括以下情况:①当物理服务器宕机事件时,将该出现宕机事件的物理服务器上的负载迁移到正常的物理服务器上;②当某个物理服务器的负载较高时,在应用不中断的情况下,将偏高的负载迁移到负载偏低的物理服务器上;③当某个物理服务器的负载较小时,在应用不中断的情况下,将该物理服务器上的负载迁移到其他物理服务器上,并将空闲出来的物理服务器进行休眠或关机,降低能耗; 其中,将出现宕机事件的物理服务器上的负载迁移到正常的物理服务器上,包括以下具体步骤: 511:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯; 512:各物理服务器每隔一段时间tl持续的向主管理服务器发送心跳线; 513:主管理服务器检查各物理服务器的心跳线请求,若在预设时间t2后没有收到某物理服务器的心跳线请求,发现某物理服务器的心跳异常,则自动探测该物理服务器网络是否连通,若检测到网络中断,并在一段时间内没有恢复,则触发物理服务器宕机事件,从而启动HA机制,自动的将该物理服务器上的负载转移到其他物理服务器上重新运行; 将偏高的负载迁移到负载偏低的物理服务器上,包括以下具体步骤: 521:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯; 522:主管理服务器实时监控各物理服务器上负载的运行情况,计算资源池中各物理服务器的负载LC,计算公式为: 负载LC= SUM (虚拟机VCPU数)/物理服务器CPU核数; 523:对上述步骤计算所得的负载LC进行排序,即SORT (LC); 524:判断MAX(LC)是否大于预设的调度阀值SF,若大于预设的调度阀值SF,则进入下一步,若小于或等于预设的调度阀值SF,则调度结束; 525:从MAX (LC)物理服务器中选取MINV=MIN (虚拟机VCPU),判断“MIN (LC)- MIN (虚拟机VCPU) ”是否小于或等于调度阀值SF,若“MIN(LC) -MIN (虚拟机VCPU)≤调度阀值SF”,则进入下一步,否则调度结束; 526:将选取的虚拟机从MAX (LC)物理服务器迁移到MIN(LC)物理服务器上,并计算迁移后MAX (LC)物理服务器及MIN(LC)物理服务器的负载LC: MIN (LC) = (MIN (LC) *物理服务器CPU核数+MINV) /物理服务器CPU核数; MAX (LC) = (MIN (LC) *物理服务器CPU核数-MINV) /物理服务器CPU核数; 然后,进入步骤S22,开始下一轮计算; 将负载较小的物理服务器上的负载迁移到其他物理服务器上,并将空闲出来的物理服务器进行休眠或关机,包括以下具体步骤: 531:主管理服务器和多个位于资源池的物理服务器建立连接保持通讯; 532:主管理服务器实时监控各物理服务器上负载的运行情况,计算资源池中各物理服务器的负载LC,计算公式为: 负载LC=SUM (虚拟机VCPU数)/物理服务器CPU核数; 533:判断SUM(LC)是否大于“调度阀值SF*物理服务器数”,若“SUM(LC)≤调度阀值SF*物理服务器数”则进入下一步,若“SUM(LC) >调度阀值SF*物理服务器数”,则进行如下操作:从资源池中选择停止状态的物理服务器,进入资源均衡调度,将虚拟机从负载较高的物理服务器迁移到负载较低的物理服务器上,直到计算SUM(LC)≤调度阀值SF*物理服务器CPU核数,或者资源池已无资源为止; 534:判断“SUM(LC) <调度阀值SF* (物理服务器数-2)”是否成立,若“SUM(LC) <调度阀值SF* (物理服务器数-2) ”,则进入下一步,若“SUM(LC)≥调度阀值SF* (物理服务器数-2)”,则调度结束; 535:依次判断负载LC==O是否 成立,若负载LC==O,从集合(LC)中移出,并调度该物理服务器,将该物理服务器进行停止操作,对集合(LC)按照计算的负载LC进行排序,即SORT (LC); 536:依次从MIN(LC)物理服务器中选取一个虚拟机VC=HOST OF (虚拟机VCPU),依次从集合(LC)中,由大到小顺序选取物理服务器计算: MIN (LC) = (MIN (LC) *物理服务器CPU核数-VC) /物理服务器CPU核数; CHOICE (LC) = (CHOICE (LC) *物理服务器CPU核数+VC) /物理服务器CPU核数; 并迁移该虚拟机; 然后进入步骤S33,开始下一轮计算。
2.根据权利要求1所述的一种云计算平台下的虚拟机分布式任务调度方法,其特征在于:所述主管理服务器和各物理服务器构成一种server-agent架构体系的分布式调度机制,主管理服务器和各物理服务器均内嵌脚本解析语言,并实现一种task-tasklet框架分布式计算模型,主管理服务器执行task部分代码,将上下文参数、tasklet部分代码转发到各物理服务器上进行执行,整个过程采用异步方式,通过分布式事件机制发送不同阶段的事件触发执行代码从而完成信息以及过程的同步。
【文档编号】H04L29/08GK103957231SQ201410099845
【公开日】2014年7月30日 申请日期:2014年3月18日 优先权日:2014年3月18日
【发明者】李凡, 柳岸, 王流一, 王铁军 申请人:成都盛思睿信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1