Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
VIRTUAL MACHINE DISTRIBUTED TASK SCHEDULING METHOD IN CLOUD COMPUTING PLATFORM
Document Type and Number:
WIPO Patent Application WO/2015/139374
Kind Code:
A1
Abstract:
Disclosed is a virtual machine distributed task scheduling method in a cloud computing platform, comprising the following situations: (1) when a physical server is in downtime, migrating the load from the physical server to a normal physical server; (2) when a specific physical server has a high load, migrating the high load to a physical server with a low load without interrupting applications; (3) when a specific physical server has a low load, migrating the load of the physical server to other physical servers without interrupting applications, and allowing idle physical servers to sleep or be powered off. The present invention realizes diversified and flexible scheduling; balanced resource scheduling being considered as a whole in a virtualized VCPU mapping mechanism realizes online migration, high availability and load balancing of a virtual machine; and power saving scheduling being considered as a whole in the virtualized VCPU mapping mechanism realizes economical operation and energy conservation.

Inventors:
LI FAN (CN)
LIU AN (CN)
WANG LIUYI (CN)
WANG TIEJUN (CN)
Application Number:
PCT/CN2014/079039
Publication Date:
September 24, 2015
Filing Date:
May 31, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CHENGDU SHENGSIRUI INFORMATION TECHNOLOGY CO LTD (CN)
International Classes:
H04L29/08; G06F9/455
Foreign References:
CN102427475A2012-04-25
CN102981910A2013-03-20
CN102637138A2012-08-15
Attorney, Agent or Firm:
CHENGDU JINYING PATENT FIRM (CN)
成都金英专利代理事务所 (CN)
Download PDF:
Claims:
权 利 要 求 书

1. 一种云计算平台下的虚拟机分布式任务调度方法, 其特征在于: 它包括以下情况: ① 当物理服务器宕机事件时, 将该出现宕机事件的物理服务器上的负载迁移到正常的物理服务 器上; ②当某个物理服务器的负载较高时, 在应用不中断的情况下, 将偏高的负载迁移到负 载偏低的物理服务器上; ③当某个物理服务器的负载较小时, 在应用不中断的情况下, 将该 物理服务器上的负载迀移到其他物理服务器上,并将空闲出来的物理服务器进行休眠或关机, 降低能耗;

其中, 将出现宕机事件的物理服务器上的负载迁移到正常的物理服务器上, 包括以下具 体步骤:

S11 : 主管理服务器和多个位于资源池的物理服务器建立连接保持通讯;

S12: 各物理服务器每隔一段时间 tl持续的向主管理服务器发送心跳线;

S13: 主管理服务器检査各物理服务器的心跳线请求, 若在预设时间 t2后没有收到某物 理服务器的心跳线请求, 发现某物理服务器的心跳异常, 则自动探测该物理服务器网络是否 连通, 若检测到网络中断, 并在一段时间内没有恢复, 则触发物理服务器宕机事件, 从而启 动 HA机制, 自动的将该物理服务器上的负载转移到其他物理服务器上重新运行;

将偏高的负载迁移到负载偏低的物理服务器上, 包括以下具体步骤:

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 (IX)物理服务器迁移到 MIN (LC)物理服务器上, 并计算迁移 后 MAX (LC)物理服务器及 MIN (LC)物理服务器的负载 LC:

MIN (LC) = (MIN (LC) *物理服务器 CPU核数 +MINV) /物理服务器 CPU核数;

MAX (LC) = (MIN (LC) *物理服务器 CPU核数 -MINV) /物理服务器 CPU核数;

然后, 进入步骤 S22, 开始下一轮计算:

将负载较小的物理服务器上的负载迁移到其他物理服务器上, 并将空闲出来的物理服务 器进行休眠或关机, 包括以下具体步骤:

S31 : 主管理服务器和多个位于资源池的物理服务器建立连接保持通讯;

S32: 主管理服务器实时监控各物理服务器上负载的运行情况, 计算资源池中各物理服务 器的负载 LC, 计算公式为:

负载 LC=SUM (虚拟机 VCPU数) /物理服务器 CPU核数;

S33: 判断 SUM (LC)是否大于 "调度阀值 SF*物理服务器数", 若 " SUM (LC) 调度阀值 SF* 物理服务器数"则进入下一步, 若 " SUM (LC)〉调度阀值 SF*物理服务器数", 则进行如下操 作- 从资源池中选择停止状态的物理服务器, 进入资源均衡调度, 将虚拟机从负载较高的物 理服务器迁移到负载较低的物理服务器上, 直到计算 SUM (LC) 调度阀值 SF*物理服务器 CPU 核数, 或者资源池已无资源为止;

S34: 判断 " 5 0 <调度阀值5?* (物理服务器数-2) "是否成立, 若 " SUM (LC) <调度 阀值 SF* (物理服务器数 -2) ",则进入下一步,若" SUM (LC) 调度阀值 SF* (物理服务器数 -2) ", 则调度结束;

S35: 依次判断负载 LC==0是否成立, 若负载 LC==0, 从集合 (LC) 中移出, 并调度该物 理服务器, 将该物理服务器进行停止操作, 对集合 (LC) 按照计算的负载 LC进行排序, 即 SORT (LC);

S36: 依次从 MIN (LC)物理服务器中选取一个虚拟机 VC=H0ST 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部分代码转发到各物理服务 器上进行执行, 整个过程采用异步方式, 通过分布式事件机制发送不同阶段的事件触发执行 代码从而完成信息以及过程的同步。

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

技术领域

本发明涉及云计算领域, 特别是涉及一种云计算平台下的虚拟机分布式 任务调度方法。

背景技术

当前, 云计算作为一种新兴的商业计算模式, 已经成为学术界和各大 IT厂商的研究热 点。 云计算是目前研究应用最广泛的分布式应用系 统, 它将计算能力分布在大量服务器构成 的资源池上, 用户能够按需获取计算、 存储和通信服务。 针对当前云计算虚拟机任务调度问 题的研究中所存在的任务模型的单一性以及任 务调度算法性能较低,且不能够兼顾云计算 QoS (Qual ity of Service , 服务质量)需求的情况, 如何合理分配云资源, 高效的进行虚拟机任 务调度是云计算研究领域的关键问题。

传统的针对资源均衡的调度机制是基于单个虚 拟机 CPU负载进行调度, 将某个 CPU负载 较高的虚拟机迁移到其他物理服务器上。 这种传统的调度机制存在很大弊端: ①由于虚拟机 VCPU将映射到物理服务器的某个 CPU核上, 虚拟机负载较高时, 也只能影响物理服务器映射 的几个 CPU核, 不会影响映射到其他核的虚拟机运行, 即使迁移到其他物理服务器上, 如果 该物理服务器的运算能力与原物理服务器的运 算能力相同, 迁移后也不会有改善; ②虚拟机 负载过高可能是瞬时高峰, 迁移过程中本身会到来 CPU计算损耗以及大量 10负载; ③传统方 式的调度机制没有从整体上进行考虑, 采用 "拆东墙补西墙"的方式达不到资源均衡的效果

传统的针对省电的调度机制是基于虚拟机 CPU负载以及物理服务器 CPU负载进行调度, 并没有从整体考虑, 以及从 CPU整体负载发展趋势考虑。 这种针对省电的调度机制存在很大 弊端: 因为瞬间的峰值以及谷值容易引起错误判断, 而宿主机启停需要很长时间, 一般在十 分钟以上, 频繁启动和停止需要消耗平时十倍的能耗, 不但不节能反而影响业务运行。

发明内容

本发明的目的在于克服现有技术的不足, 提供一种云计算平台下的虚拟机分布式任务调 度方法, 调度方式多样, 灵活性强; 从虚拟化 VCPU映射机制上整体考虑资源均衡调度, 实现 了虚拟机的在线迁移、 高可用以及负载均衡; 从虚拟化 VCPU映射机制上整体考虑省电调度, 实现了虚拟机的经济运行, 达到了节能的效果。

本发明的目的是通过以下技术方案来实现的: 一种云计算平台下的虚拟机分布式任务调 度方法, 它包括以下情况: ①当物理服务器宕机事件时, 将该出现宕机事件的物理服务器上 的负载迁移到正常的物理服务器上; ②当某个物理服务器的负载较高时, 在应用不中断的情 况下, 将偏高的负载迁移到负载偏低的物理服务器上 ; ③当某个物理服务器的负载较小时, 在应用不中断的情况下, 将该物理服务器上的负载迁移到其他物理服务 器上, 并将空闲出来 的物理服务器进行休眠或关机, 降低能耗。

其中, 将出现宕机事件的物理服务器上的负载迁移到 正常的物理服务器上, 包括以下具 体步骤:

S11 : 主管理服务器和多个位于资源池的物理服务器 建立连接保持通讯;

S12: 各物理服务器每隔一段时间 tl持续的向主管理服务器发送心跳线;

S13: 主管理服务器检査各物理服务器的心跳线请求 , 若在预设时间 t2后没有收到某物 理服务器的心跳线请求, 发现某物理服务器的心跳异常, 则自动探测该物理服务器网络是否 连通, 若检测到网络中断, 并在一段时间内没有恢复, 则触发物理服务器宕机事件, 从而启 动 HA机制, 自动的将该物理服务器上的负载转移到其他物 理服务器上重新运行。

将偏高的负载迁移到负载偏低的物理服务器上 , 包括以下具体步骤:

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, 开始下一轮计算。

将负载较小的物理服务器上的负载迁移到其他 物理服务器上, 并将空闲出来的物理服务 器进行休眠或关机, 包括以下具体步骤:

S31 : 主管理服务器和多个位于资源池的物理服务器 建立连接保持通讯;

S32: 主管理服务器实时监控各物理服务器上负载的 运行情况, 计算资源池中各物理服务 器的负载 LC, 计算公式为:

负载 LC=SUM (虚拟机 VCPU数) /物理服务器 CPU核数; S33: 判断 SUM (LC)是否大于 "调度阀值 SF*物理服务器数", 若 " SUM (LC) 调度阀值 SF* 物理服务器数"则进入下一步, 若 " SUM (LC)〉调度阀值 SF*物理服务器数", 则进行如下操 作- 从资源池中选择停止状态的物理服务器, 进入资源均衡调度, 将虚拟机从负载较高的物 理服务器迁移到负载较低的物理服务器上, 直到计算 SUM (LC) 调度阀值 SF*物理服务器 CPU 核数, 或者资源池已无资源为止;

S34: 判断 " 5 0 <调度阀值5?* (物理服务器数-2) "是否成立, 若 " SUM (LC) <调度 阀值 SF* (物理服务器数 -2) ",则进入下一步,若" SUM (LC) 调度阀值 SF* (物理服务器数 -2) ", 则调度结束;

S35: 依次判断负载 LC==0是否成立, 若负载 LC==0, 从集合 (LC) 中移出, 并调度该物 理服务器, 将该物理服务器进行停止操作, 对集合 (LC) 按照计算的负载 LC进行排序, 即 SORT (LC);

S36: 依次从 MIN (LC)物理服务器中选取一个虚拟机 VC=H0ST OF (虚拟机 VCPU), 依次从 集合 (LC)中, 由大到小顺序选取物理服务器计算:

MIN (LC) = (MIN (LC) * 物理服务器 CPU核数 -VC) / 物理服务器 CPU核数;

CHOICE (LC) = (CHOICE (LC) * 物理服务器 CPU核数 +VC) / 物理服务器 CPU核数; 并迁移该虚拟机;

然后进入步骤 S33, 开始下一轮计算。

所述主管理服务器和各物理服务器构成一种 server-agent架构体系的分布式调度机制, 主管理服务器和各物理服务器均内嵌脚本解析 语言,并实现一种 task-tasklet框架分布式计 算模型, 主管理服务器执行 task部分代码, 将上下文参数、 tasklet部分代码转发到各物理 服务器上进行执行, 整个过程采用异步方式, 通过分布式事件机制发送不同阶段的事件触发 执行代码从而完成信息以及过程的同步。

本发明的有益效果是: 本发明从多种情况下进行任务调度, 实现了调度方式的多样性及 灵活性; 从虚拟化 VCPU映射机制上整体考虑资源均衡调度, 实现了虚拟机的在线迁移、 高可 用以及负载均衡; 从虚拟化 VCPU映射机制上整体考虑省电调度, 实现了虚拟机的经济运行, 达到了节能的效果。

附图说明

图 1为本发明将出现宕机事件的物理服务器上的 载迁移到正常的物理服务器情况下的 方法流程图;

图 2为本发明将偏高的负载迁移到负载偏低的物 服务器情况下的方法流程图; 图 3为本发明将负载较小的物理服务器上的负载 移到其他物理服务器并将空闲出来的 物理服务器进行休眠或关机情况下的方法流程 图。

具体实施方式

下面结合附图进一步详细描述本发明的技术方 案, 但本发明的保护范围不局限于以下所 述。

一种云计算平台下的虚拟机分布式任务调度方 法, 它包括以下情况: ①当物理服务器宕 机事件时, 将该出现宕机事件的物理服务器上的负载迁移 到正常的物理服务器上; ②当某个 物理服务器的负载较高时, 在应用不中断的情况下, 将偏高的负载迁移到负载偏低的物理服 务器上; ③当某个物理服务器的负载较小时, 在应用不中断的情况下, 将该物理服务器上的 负载迁移到其他物理服务器上, 并将空闲出来的物理服务器进行休眠或关机, 降低能耗。

所述主管理服务器和各物理服务器构成一种 server-agent架构体系的分布式调度机制, 主管理服务器和各物理服务器均内嵌脚本解析 语言,并实现一种 task-tasklet框架分布式计 算模型, 主管理服务器执行 task部分代码, 将上下文参数、 tasklet部分代码转发到各物理 服务器上进行执行, 整个过程采用异步方式, 通过分布式事件机制发送不同阶段的事件触发 执行代码从而完成信息以及过程的同步。

如图 1所示, 将出现宕机事件的物理服务器上的负载迁移到 正常的物理服务器上, 包括 以下具体步骤:

S11 : 主管理服务器和多个位于资源池的物理服务器 建立连接保持通讯;

S12: 各物理服务器每隔一段时间 tl, 通过管理网持续的向主管理服务器发送心跳线 ; S13: 主管理服务器检査各物理服务器的心跳线请求 , 若在预设时间 t2后没有收到某物 理服务器的心跳线请求, 发现某物理服务器的心跳异常, 则自动探测该物理服务器所在网络 (应用网) 是否连通, 此时物理服务器会自动的检査应用网是否中断 , 若网络中断, 并在一 段时间内没有恢复, 则触发物理服务器宕机事件, 从而启动 HA机制, 自动的将该物理服务器 上的负载转移到其他物理服务器上重新运行, 出现宕机事件的物理服务器被强行停止。

主管理服务器和各物理服务器构成的 server-agent架构, 将资源调度与心跳检査分离, 结构清晰, 更易于管理配置, 并且可以构建超过 100个节点的大型集群, 而传统的一般最大 规模不能超过 32个节点。 另外, 主管理服务器只负责管理资源调度, 即使主管理服务器出现 宕机, 物理服务器也能正常运行, 只是脱离了管理, 不会出现物理服务器崩溃的现象。

如图 2所示, 将偏高的负载迁移到负载偏低的物理服务器上 , 包括以下具体步骤:

S21 : 主管理服务器和多个位于资源池的物理服务器 建立连接保持通讯;

S22: 主管理服务器实时监控各物理服务器上负载的 运行情况, 即监控每个物理服务器上 运行虚拟机状态, 并计算资源池中各物理服务器的负载 LC, 计算公式为:

负载 LC= SUM (虚拟机 VCPU数) /物理服务器 CPU核数;

S23: 对上述步骤计算所得的负载 LC进行排序, 即 SORT(LC);

S24: 判断 MAX(LC)是否大于预设的调度阀值 SF, 若大于预设的调度阀值 SF, 则进入下 一步, 若小于或等于预设的调度阀值 SF, 则调度结束; 一般来说, 虚拟机 VCPU数 /物理服务 器 CPU核数为 3时为物理服务器 CPU利用最佳参数, 小于 1, 则表示有部分物理服务器 CPU 核可能空闲;

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, 开始下一轮计算。

如图 3所示, 将负载较小的物理服务器上的负载迁移到其他 物理服务器上, 并将空闲出 来的物理服务器进行休眠或关机, 包括以下具体步骤:

S31: 主管理服务器和多个位于资源池的物理服务器 建立连接保持通讯;

S32: 主管理服务器实时监控各物理服务器上负载的 运行情况, 计算资源池中各物理服务 器的负载 LC, 计算公式为:

负载 LC=SUM (虚拟机 VCPU数) /物理服务器 CPU核数;

S33: 判断 SUM(LC)是否大于 "调度阀值 SF*物理服务器数",若 "SUM(LC) 调度阀值 SF* 物理服务器数"则进入下一步, 若 "SUM(LC)〉调度阀值 SF*物理服务器数", 则先进行如下 操作- 从资源池中选择停止状态的物理服务器, 进入资源均衡调度, 将虚拟机从负载较高的物 理服务器迁移到负载较低的物理服务器上, 直到计算 SUM(LC) 调度阀值 SF*物理服务器 CPU 核数, 或者资源池已无资源为止;

S34: 判断 "5 0<调度阀值5?*(物理服务器数-2)"是否成立, 若 "SUM(LC)<调度 阀值 SF*(物理服务器数 -2) ",则进入下一步,若" SUM(LC) 调度阀值 SF*(物理服务器数 -2) ", 则调度结束; 一般会预留一定容量, 来应对业务突发访问需求, 此处预留容量为 1;

S35: 依次判断负载 LC==0是否成立, 若负载 LC==0, 从集合 (LC) 中移出, 并调度该物 理服务器, 将该物理服务器进行停止操作, 对集合 (LC) 按照计算的负载 LC进行排序, 即 SORT (LC);

S36: 依次从 MIN (LC)物理服务器中选取一个虚拟机 VC=H0ST OF (虚拟机 VCPU), 依次从 集合 (LC)中, 由大到小顺序选取物理服务器计算:

MIN (LC) = (MIN (LC) * 物理服务器 CPU核数 -VC) / 物理服务器 CPU核数;

CHOICE (LC) = (CHOICE (LC) * 物理服务器 CPU核数 +VC) / 物理服务器 CPU核数; 并迁移该虚拟机;

然后进入步骤 S33, 开始下一轮计算。