WO/2003/009539 | MOBILE MACHINE COMMUNICATION SYSTEM AND COMMUNICATION METHOD |
JP2002094757 | COMMUNICATION UNIT |
WO/2002/069172 | SYSTEMS AND METHODS FOR MANAGING DISTRIBUTED DATABASE RESOURCES |
LIU AN (CN)
WANG LIUYI (CN)
WANG TIEJUN (CN)
CN102427475A | 2012-04-25 | |||
CN102981910A | 2013-03-20 | |||
CN102637138A | 2012-08-15 |
成都金英专利代理事务所 (CN)
权 利 要 求 书 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部分代码转发到各物理服务 器上进行执行, 整个过程采用异步方式, 通过分布式事件机制发送不同阶段的事件触发执行 代码从而完成信息以及过程的同步。 |
技术领域
本发明涉及云计算领域, 特别是涉及一种云计算平台下的虚拟机分布式 任务调度方法。
背景技术
当前, 云计算作为一种新兴的商业计算模式, 已经成为学术界和各大 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, 开始下一轮计算。