首页> 中国专利> 虚拟机调度器、调度需求管理器及方法和虚拟机调度系统

虚拟机调度器、调度需求管理器及方法和虚拟机调度系统

摘要

本发明涉及一种虚拟机调度器、调度需求管理器及其方法和虚拟机调度系统。本发明提供一种虚拟机调度方法,其特征在于,包括:监听来自调度需求管理器的虚拟机的调度请求,判断在该调度请求是否包含表示所述调度需求管理器与邻近调度需求管理器达成了调度决议的信息,在该调度请求包含表示所述调度需求管理器与邻近调度需求管理器达成了调度决议的信息的情况下,分别向所述调度需求管理器和所述邻近调度需求管理器发出调度指令,其中在达成了调度决议的情况下,该调度请求还包含有关所述邻近调度需求管理器的信息。

著录项

  • 公开/公告号CN104951351A

    专利类型发明专利

  • 公开/公告日2015-09-30

    原文格式PDF

  • 申请/专利权人 株式会社日立制作所;

    申请/专利号CN201410122663.0

  • 发明设计人 陶一然;杨鹏;

    申请日2014-03-28

  • 分类号G06F9/455(20060101);G06F9/50(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人崔成哲

  • 地址 日本东京

  • 入库时间 2023-12-18 11:23:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-11

    未缴年费专利权终止 IPC(主分类):G06F 9/455 专利号:ZL2014101226630 申请日:20140328 授权公告日:20181218

    专利权的终止

  • 2018-12-18

    授权

    授权

  • 2016-03-23

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20140328

    实质审查的生效

  • 2015-09-30

    公开

    公开

说明书

技术领域

本发明涉及分布式系统和计算机网络领域,更具体地说,本发明 涉及一种虚拟机调度器、调度需求管理器及其方法和虚拟机调度系统。

背景技术

近年来云计算技术蓬勃发展,云计算技术提高了资源(例如硬件 资源)的利用率,同时降低了成本,并且在支持海量数据分析、存储、 搜索和灾备方面都有很好表现。同时,基于云计算技术的平台(云平 台)具有很好的可扩展性和平衡负荷能力。但是,建立云平台同时也 对于技术有较高要求,仍然有很多课题要完成。例如,如何调度系统 资源以提高资源利用率并且平衡负荷就是一个棘手的问题。

为了改变这种情况,提出了基于云平台的虚拟机调度技术,例如 公开号为CN101719081A的专利申请(以下称为专利文献1)。该专利 文献1中提及一种虚拟机调度方法,利用一个虚拟机调度器,采用装 箱算法来解决数据中心资源计算和实时调度虚拟机的问题(参考本发 明的图1、图2)。

专利文献1中的方案做到了计算资源和调度,但是,该方案中采 用了单一的虚拟机调度器,并且需要运用装箱算法计算全系统的资源 之后统一调度,难以应对大规模系统的虚拟机调度问题。在大规模系 统中,视频数据生成速度快、变化大,统一计算、统一调度的模式难 以及时响应需求。

发明内容

基于以上的描述,希望提供一种能够更好地调度系统资源以提高 资源利用率并且平衡负荷的虚拟机调度器、调度需求管理器及方法和 虚拟机调度系统。

(底层虚拟机调度器的虚拟机调度方法)

根据本发明的第一个方面,提供了一种虚拟机调度方法,其特征 在于,包括:

监听来自调度需求管理器的虚拟机的调度请求,

判断在该调度请求是否包含表示所述调度需求管理器与邻近调度 需求管理器达成了调度决议的信息,

在该调度请求包含表示所述调度需求管理器与邻近调度需求管理 器达成了调度决议的信息的情况下,分别向所述调度需求管理器和所 述邻近调度需求管理器发出调度指令,其中在达成了调度决议的情况 下,该调度请求还包含有关所述邻近调度需求管理器的信息。

通过采用该方案,底层虚拟机调度器无需根据具体的物理服务器 负荷信息进行调度,而仅仅根据调度请求是否包含表示所述调度需求 管理器与邻近调度需求管理器达成了调度决议的信息来进行虚拟机调 度,简化了虚拟机调服方法。

根据本发明的第二个方面,在第一个方面的虚拟机调度方法中,

在该调度请求未包含表示所述调度需求管理器与所述邻近调度需 求管理器达成了调度决议的信息的情况下,监听来自其它调度需求管 理器的虚拟机的调度请求,

根据所述调度需求管理器的虚拟机的调度请求和其它调度需求管 理器的虚拟机的调度请求的需求量,判断所述调度需求管理器的虚拟 机的调度请求和所述其它调度需求管理器的虚拟机的调度请求是否能 够匹配,

如果能够匹配,则分别向所述调度需求管理器和所述其它调度需 求管理器发送有关对方的信息,并发送调度指令,

其中,所述调度需求管理器的虚拟机的调度请求和所述其它调度 需求管理器的调度请求是否能够匹配表示:所述调度需求管理器的虚 拟机迁出的请求和所述其它调度需求管理器的虚拟机迁入的请求是否 能够匹配;或者所述调度需求管理器的虚拟机迁入的请求和所述其它 调度需求管理器的虚拟机迁出的请求是否能够匹配。

通过采用该方案,底层虚拟机调度器在该调度请求未包含表示所 述调度需求管理器与所述邻近调度需求管理器达成了调度决议的信息 的情况下,不是仅仅报错或上报调度请求,而是监听来自其它调度需 求管理器的虚拟机的调度请求,并在能够匹配时,分别向所述调度需 求管理器和所述其它调度需求管理器发送有关对方的信息,并发送调 度指令。由此,可以提高调度的成功率。

(多级虚拟机调度器的底层虚拟机调度器的虚拟机调度方法)

根据本发明的第三个方面,在第一个方面的虚拟机调度方法中,

在该调度请求未包含表示所述调度需求管理器与邻近调度需求管 理器达成了调度决议的信息的情况下,判断是否存在上一层虚拟机调 度器,

在存在上一层虚拟机调度器的情况下,将上述调度请求上报给上 一层虚拟机调度器,并将从上一层虚拟机调度器接收到的有关其它调 度需求管理器的信息和调度指令传回所述调度需求管理器。

通过采用该方案,利用多级调度方案,能够更好地调度系统资源 以提高资源利用率并且平衡负荷。

根据本发明的第四个方面,在第二个方面的虚拟机调度方法中,

在该调度请求未包含表示所述调度需求管理器与邻近调度需求管 理器达成了调度决议的信息、并且所述调度需求管理器的调度请求与 其它调度需求管理器的调度请求未能匹配的情况下,判断是否存在上 一层虚拟机调度器,

在存在上一层虚拟机调度器的情况下,将上述调度请求上报给上 一层虚拟机调度器,并将从上一层虚拟机调度器接收到的有关其它调 度需求管理器的信息和调度指令传回所述调度需求管理器。

通过采用该方案,利用多级调度方案,能够更好地调度系统资源 以提高资源利用率并且平衡负荷。

根据本发明的第五个方面,在第一个方面的虚拟机调度方法中,

所述调度请求包含将虚拟机迁出的请求或将虚拟机迁入的请求。

(非底层虚拟机调度器的虚拟机调度方法)

根据本发明的第六个方面,提供一种虚拟机调度方法,其特征在 于,

监听来自两个或更多个下一层虚拟机调度器的调度请求,所述调 度请求包括将虚拟机迁出的请求或将虚拟机迁入的请求,

根据来自一个下一层虚拟机调度器的虚拟机迁出的请求和另一个 下一层虚拟机调度器的虚拟机迁入的请求的需求量,判断所述一个下 一层虚拟机调度器的虚拟机迁出的请求和所述另一个下一层虚拟机调 度器的虚拟机迁入的请求是否能够匹配,

如果所述一个下一层虚拟机调度器的虚拟机迁出的请求和所述另 一个下一层虚拟机调度器的虚拟机迁入的请求能够匹配,则分别向所 述一个下一层虚拟机调度器和所述另一个下一层虚拟机调度器发送有 关对方的调度请求中的有关调度需求管理器的信息,并发送调度指令。

通过采用该方案,利用多级调度方案,能够更好地调度系统资源 以提高资源利用率并且平衡负荷。

根据本发明的第七个方面,在第六个方面的的虚拟机调度方法中,

如果所述一个下一层虚拟机调度器的虚拟机迁出的请求和所述另 一个下一层虚拟机调度器的虚拟机迁入的请求不能够匹配,判断是否 存在上一层虚拟机调度器,

在存在上一层虚拟机调度器的情况下,将上述调度请求上报给上 一层虚拟机调度器,并将从上一层虚拟机调度器接收到的有关其它调 度需求管理器的信息和调度指令传回下一层虚拟机调度器。

通过采用该方案,利用多级调度方案,能够更好地调度系统资源 以提高资源利用率并且平衡负荷。

(调度需求管理器的调度需求管理方法)

根据本发明的第八个方面,提供一种调度需求管理方法,其特征 在于,

从物理机监控器获取物理服务器负荷信息,

根据该物理服务器负荷信息计算物理服务器负荷状态,并判断是 否需要虚拟机的调度,

在判断为需要虚拟机的调度的情况下,与邻近调度需求管理器通 信,询问是否接受虚拟机的调度,

在从所述邻近调度需求管理器接收到包含表示所述邻近调度需求 管理器接受虚拟机的调度的信息的情况下,与所述邻近调度需求管理 器达成调度决议,并向虚拟机调度器发送包含表示所述调度需求管理 器与邻近调度需求管理器达成了调度决议的信息和有关所述邻近调度 需求管理器的信息的虚拟机的调度请求,

在从所述邻近调度需求管理器接收到未包含表示所述邻近调度需 求管理器接受虚拟机的调度的信息的情况下,向所述虚拟机调度器发 送未包含表示所述调度需求管理器与邻近调度需求管理器达成了调度 决议的信息的虚拟机的调度请求,

根据来自所述虚拟机调度器的调度指令、或有关其它调度需求管 理器的信息和调度指令,指令虚拟机管理器进行虚拟机调度。

通过采用该方案,调度需求管理器并不是简单地将物理服务器负 荷信息发送到虚拟机调度器,而是根据该物理服务器负荷信息计算物 理服务器负荷状态,并判断是否需要虚拟机的调度,在判断为需要虚 拟机的调度的情况下,与邻近调度需求管理器通信,询问是否接受虚 拟机的调度,在从所述邻近调度需求管理器接收到包含表示所述邻近 调度需求管理器接受虚拟机的调度的信息的情况下,与所述邻近调度 需求管理器达成调度决议,并向虚拟机调度器发送。由此可以减少虚 拟机调度器的工作负担。

根据本发明的第九个方面,在第八个方面的调度需求管理方法中,

虚拟机的调度是虚拟机的迁出或虚拟机的迁入。

根据本发明的第十个方面,在第八个方面的调度需求管理方法中,

在从所述邻近调度需求管理器接收到是否接受虚拟机的调度的询 问的情况下,根据从物理机监控器获取的物理服务器负荷信息,判断 是否接受虚拟机的调度,并将判断结果发送给所述邻近调度需求管理 器,

在判断为接受虚拟机的调度的情况下,与所述邻近调度需求管理 器达成调度决议。

(底层虚拟机调度器)

根据本发明的第十一个方面,提供一种虚拟机调度器,其特征在 于,具有:

监听部,监听来自调度需求管理器的虚拟机的调度请求;

调度控制部,判断在该调度请求是否包含表示所述调度需求管理 器与邻近调度需求管理器达成了调度决议的信息;以及

调度指令部,在该调度请求包含表示所述调度需求管理器与邻近 调度需求管理器达成了调度决议的信息的情况下,分别向所述调度需 求管理器和所述邻近调度需求管理器发出调度指令,其中在达成了调 度决议的情况下,该调度请求还包含有关所述邻近调度需求管理器的 信息。

根据本发明的第十二个方面,在第十一个方面的虚拟机调度器中,

在该调度请求未包含表示所述调度需求管理器与邻近调度需求管 理器达成了调度决议的信息的情况下,所述监听部监听来自其它调度 需求管理器的虚拟机的调度请求,

所述调度控制部根据所述调度需求管理器的虚拟机的调度请求和 其它调度需求管理器的虚拟机的调度请求的需求量,判断所述调度需 求管理器的虚拟机的调度请求和所述其它调度需求管理器的虚拟机的 调度请求是否能够匹配,

如果能够匹配,所述调度控制部分别向所述调度需求管理器和所 述其它调度需求管理器发送有关对方的信息,并发送调度指令,

其中,所述调度需求管理器的虚拟机的调度请求和所述其它调度 需求管理器的调度请求是否能够匹配表示:所述调度需求管理器的虚 拟机迁出的请求和所述其它调度需求管理器的虚拟机迁入的请求是否 能够匹配;或者所述调度需求管理器的虚拟机迁入的请求和所述其它 调度需求管理器的虚拟机迁出的请求是否能够匹配。

(多级虚拟机调度器中的底层虚拟机调度器)

根据本发明的第十三个方面,在第十一个方面的虚拟机调度器中, 还具有:

第一判断部,在该调度请求未包含表示所述调度需求管理器与邻 近调度需求管理器达成了调度决议的信息的情况下,判断是否存在上 一层虚拟机调度器;以及

调度请求部,在存在上一层虚拟机调度器的情况下,将上述调度 请求上报给上一层虚拟机调度器,并将从上一层虚拟机调度器接收到 的有关其它调度需求管理器的信息和调度指令传回所述调度需求管理 器。

根据本发明的第十四个方面,在第十二个方面的虚拟机调度器中, 还具有:

第二判断部,在该调度请求未包含表示所述调度需求管理器与邻 近调度需求管理器达成了调度决议的信息、并且所述调度需求管理器 的调度请求与其它调度需求管理器的调度请求未能匹配的情况下,判 断是否存在上一层虚拟机调度器,

调度请求部,在存在上一层虚拟机调度器的情况下,将上述调度 请求上报给上一层虚拟机调度器,并将从上一层虚拟机调度器接收到 的有关其它调度需求管理器的信息和调度指令传回所述调度需求管理 器。

根据本发明的第十五个方面,在第十一个方面的虚拟机调度器中,

所述调度请求是将虚拟机迁出的请求或将虚拟机迁入的请求。

(非底层虚拟机调度器)

根据本发明的第十六个方面,提供一种虚拟机调度器,其特征在 于,具有:

监听部,监听来自两个或更多个下一层虚拟机调度器的调度请求, 所述调度请求包括将虚拟机迁出的请求或将虚拟机迁入的请求;以及

调度控制部,根据来自一个下一层虚拟机调度器的虚拟机迁出的 请求和另一个下一层虚拟机调度器的虚拟机迁入的请求的需求量,判 断所述一个下一层虚拟机调度器的虚拟机迁出的请求和所述另一个下 一层虚拟机调度器的虚拟机迁入的请求是否能够匹配,

调度指令部,如果所述一个下一层虚拟机调度器的虚拟机迁出的 请求和所述另一个下一层虚拟机调度器的虚拟机迁入的请求能够匹 配,则分别向所述一个下一层虚拟机调度器和所述另一个下一层虚拟 机调度器发送有关对方调度请求中的有关调度需求管理器的信息,并 发送调度指令。

根据本发明的第十七个方面,在第十六个方面的虚拟机调度器中, 还具备:

第三判断部,如果所述一个下一层虚拟机调度器的虚拟机迁出的 请求和所述另一个下一层虚拟机调度器的虚拟机迁入的请求不能够匹 配,判断是否存在上一层虚拟机调度器,

调度请求部,在存在上一层虚拟机调度器的情况下,将上述调度 请求上报给上一层虚拟机调度器,并将从上一层虚拟机调度器接收到 的有关其它调度需求管理器的信息和调度指令传回下一层虚拟机调度 器。

(调度需求管理器)

根据本发明的第十八个方面,提供一种调度需求管理器,其特征 在于,具备:

物理服务器负荷信息获取部,从物理机监控器获取物理服务器负 荷信息;

调度判断部,根据该物理服务器负荷信息计算物理服务器负荷状 态,并判断是否需要虚拟机的调度;

调度通信部,在判断为需要虚拟机的调度的情况下,与邻近调度 需求管理器通信,询问是否接受虚拟机的调度;

调度决议部,在从所述邻近调度需求管理器接收到包含表示所述 邻近调度需求管理器接受虚拟机的调度的信息的情况下,与所述邻近 调度需求管理器达成调度决议,并向虚拟机调度器发送包含表示所述 调度需求管理器与邻近调度需求管理器达成了调度决议的信息和有关 所述邻近调度需求管理器的信息的虚拟机的调度请求,

所述调度决议部在从所述邻近调度需求管理器接收到未包含表示 所述邻近调度需求管理器接受虚拟机的调度的信息的情况下,向所述 虚拟机调度器发送未包含表示所述调度需求管理器与邻近调度需求管 理器达成了调度决议的信息的虚拟机的调度请求;以及

调度指令部,根据来自所述虚拟机调度器的调度指令、或有关其 它调度需求管理器的信息和调度指令,指令虚拟机管理器进行虚拟机 调度。

根据本发明的第十九个方面,在第十八个方面的调度需求管理器 中,

虚拟机的调度是虚拟机的迁出或虚拟机的迁入。

根据本发明的第二十个方面,在第十八个方面的调度需求管理器 中,其特征在于,

在从所述邻近调度需求管理器接收到是否接受虚拟机的调度的询 问的情况下,根据从物理机监控器获取的物理服务器负荷信息,判断 是否接受虚拟机的调度,并将判断结果发送给所述邻近调度需求管理 器,

在调度判断部判断为接受虚拟机的调度的情况下,所述调度决议 部与所述邻近调度需求管

(只有一个虚拟机调度器的虚拟机调度系统)

根据本发明的第二十一个方面,提供一种虚拟机调度系统,其特 征在于,包括:

第十一个方面或第十二个方面的虚拟机调度器;以及

多个物理服务器,每个物理服务器包括一个或多个虚拟机、物理 机监控器、虚拟机管理器、以及第十八个方面-第二十个方面之一的调 度需求管理器,

其中,所述虚拟机分布在所述物理服务器上,向用户提供服务, 每一个物理服务器中能够运行一个虚拟机或同时运行多个虚拟机,

其中,在每台物理服务器上运行物理机监控器,物理机监控器实 时监控物理服务器的物理服务器负荷信息,并将物理服务器负荷信息 传送给调度需求管理器。

(具有多级虚拟机调度器的虚拟机调度系统)

根据本发明的第二十二个方面,提供一种虚拟机调度系统,其特 征在于,包括:

多个第十三个方面或第十四个方面的虚拟机调度器作为底层虚拟 机调度器;

一个或多个第十六个或第十七个方面的虚拟机调度器作为非底层 虚拟机调度器;

多个物理服务器,每个物理服务器包括一个或多个虚拟机、物理 机监控器、虚拟机管理器、以及第十八个方面-第二十个方面之一的调 度需求管理器,

其中,所述虚拟机分布在所述物理服务器上,向用户提供服务, 每一个物理服务器中能够运行一个虚拟机或同时运行多个虚拟机,

其中,在每台物理服务器上运行物理机监控器,物理机监控器实 时监控物理服务器的物理服务器负荷信息,并将物理服务器负荷信息 传送给调度需求管理器。

根据本发明的第二十三个方面,提供一种视频监控系统,其特征 在于,具有第十一个方面-第十五个方面中的任一项所述的虚拟机调度 器,、第十六个方面-第二十个方面中的任一项所述的虚拟机调度器、 或第二十一个方面或第二十二个方面的虚拟机调度系统。

本发明通过采用上述技术方案,能够更好地调度系统资源以提高 资源利用率并且平衡负荷。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公 开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公 开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出上述专利文献1中的现有的数据中心的结构图。

图2示出上述专利文献1中一种现有的虚拟机调度系统的结构图。

图3示出本发明的一个实施例的虚拟机调度系统的结构图。

图4示出本发明的一个实施例的虚拟机调度系统的层级图。

图5为本发明的一个实施例的虚拟机调度系统中的虚拟机调度方 法的流程图。图5a示出底层虚拟机调度器的一个实施例的虚拟机调度 方法的流程图。图5b示出底层虚拟机调度器的一个实施例的虚拟机调 度方法的流程图。图5c示出在虚拟机调度系统中有两级或更多级虚拟 机调度器的情况下的底层虚拟机调度器的虚拟机调度方法的流程图。

图6为本发明的一个实施例的虚拟机调度系统中的非底层虚拟机 调度器的虚拟机调度方法的流程图。图6a示出虚拟机调度系统中的非 底层虚拟机调度器的一个实施例的虚拟机调度方法的流程图。图6b 示出多级虚拟机调度系统中的中间层虚拟机调度器或顶层虚拟机调度 器的一个实施例的虚拟机调度方法的流程图。

图7示出本发明的一个实施例的调度需求管理方法的流程图。

图8示出本发明的一个实施例的虚拟机调度系统中的消息时序 图。

图9示出本发明的底层虚拟机调度器的结构框图。

图10示出本发明的非底层虚拟机调度器的结构框图。

图11示出本发明的调度需求管理器的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图 中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实 现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施 方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整 地传达给本领域的技术人员。

所属技术领域的技术人员知道,本发明可以实现为装置、系统、方 法。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、 也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件 和软件结合的形式,本文一般称为“部”、“器”或“系统”。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操 作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言 -诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸 如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上 执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分 在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服 务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种 类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或 者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网 连接)。

下面将参照本发明实施例的方法、器(系统)的流程图和/或框图描 述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图 中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令 可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理 器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编 程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功 能/操作的装置。

也可以把这些计算机程序指令存储在能使得计算机或其它可编程数 据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机 可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中 规定的功能/操作的指令装置(instruction means)的制造品 (manufacture)。

也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、 或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上 执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或 其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框 中规定的功能/操作的过程。

图1示出上述专利文献1中的现有的数据中心1的结构图。在当 前的数据中心1的构架中,具有:数据中心局域网2、物理服务器3、 专用调度网4、监控主机5和集中存储设备6。物理服务器3的一端连 接于数据中心局域网2,另一端连接于专用调度网4。该数据中心1 的集中存储设备6集中存储数据。

图2示出上述专利文献1中现有的虚拟机调度系统的结构图。该 虚拟机调度系统包括虚拟机调度器7、物理机监控器8、虚拟机9、虚 拟机管理器10。虚拟机调度器7实时监控物理机监控器8传来的物理 机状态信息,根据接收到的物理机状态信息评判资源利用情况,运用 调度算法计算最佳调度方案,对虚拟机9实施调度。虚拟机管理器10 实时管理自已所在物理机中的虚拟机9。

图3示出本发明的一个实施例的虚拟机调度系统的结构图。本发 明的一个实施例的虚拟机调度系统包含顶层虚拟机调度器11、虚拟机 调度器12(对于不同的虚拟机调度器12,用12a、12b(未图示)、… 12m…表示)、物理机监控器13(对于不同的物理机监控器13,用13a、 13b、…13m…表示)、虚拟机14、调度需求管理器15(对于不同的调 度需求管理器15,用15a、15b、…15m…表示)和虚拟机管理器16(对 于不同的虚拟机管理器16,用16a、16b、…16m…表示)。其中,物 理机监控器13、虚拟机14、调度需求管理器15和虚拟机管理器16 包含于物理服务器。

1)虚拟机14:分布在物理服务器上,向用户或其它设备提供服 务,并且在一个物理服务器中可同时运行多台虚拟机14。多个物理服 务器中的每一台物理服务器可以是同构的,也可以不是同构的。如果 物理服务器为异构物理服务器,则根据同构关系将物理服务器划分为 多个管理域,每一管理域中所包括的物理服务器为同构物理服务器。

物理服务器通过使用虚拟化管理程序(或者虚拟化软件)将一台物 理主机虚拟成多台虚拟机,各个虚拟机之间相互独立,共享主机上的 各种硬件资源包括CPU、存储、网络等。物理服务器通过虚拟化不仅 可以提高整个数据中心IT环境的资源利用效率,还可以通过虚拟机调 度等技术更加高效的管理整个云计算系统的工作负载,增强云计算系 统的弹性和灵活性。

2)虚拟机管理器16:在每台物理服务器上运行一个虚拟机管理 器16,为虚拟机提供运行平台。

3)物理机监控器13:在每台物理服务器上运行一个物理机监控 器13,实时监控物理服务器3上的各种负荷,例如CPU占用率、内存 使用百分比等,并将负荷信息传送给调度需求管理器15。

4)调度需求管理器15:在每台物理服务器上运行一个调度需求 管理器15。

调度需求管理器15从物理机监控器13获取物理服务器的负荷信 息,根据该物理服务器的负荷信息计算物理服务器负荷状态,并判断 是否需要虚拟机的调度,在判断为需要虚拟机的调度的情况下,与邻 近调度需求管理器15通信,询问是否接受虚拟机的调度,在对方接受 虚拟机14的调度的情况下,与所述邻近调度需求管理器15达成调度 决议,并向虚拟机调度器12发送包含表示所述调度需求管理器与邻近 调度需求管理器达成了调度决议的信息和有关所述邻近调度需求管理 器的信息的虚拟机的调度请求,在对方不接受虚拟机14的调度的情况 下,向所述虚拟机调度器12发送未包含表示所述调度需求管理器15 与邻近调度需求管理器15达成了调度决议的信息的虚拟机14的调度 请求,根据来自所述虚拟机调度器12的调度指令、或有关其它调度需 求管理器15的信息和调度指令,指令虚拟机管理器16进行虚拟机调 度。

包含表示所述调度需求管理器15与邻近调度需求管理器15达成 了调度决议的信息可以告知虚拟机调度器12只要指令所述调度需求 管理器15与邻近调度需求管理器15进行虚拟机的调度就可以了。

与此相对,未包含表示所述调度需求管理器15与邻近调度需求管 理器15达成了调度决议的信息可以告知虚拟机调度器12需要找到与 调度需求管理器15的调度需求相匹配的其它调度需求管理器15。

5)虚拟机调度器12:该虚拟机调度系统中有一个或多个虚拟机 调度器12,运行在专门的设备上,可以认为虚拟机调度器12所在的 设备与物理服务器是异构的。虚拟机调度器12的数量不多于物理服务 器,且根据物理服务器之间的网络延迟大小,尽量在延迟较小的物理 服务器之间架设虚拟机调度器12。

例如,有物理服务器3A、3B、3C、3D(均未图示),并且有虚拟 机调度器12a和12b(未图示),并且物理服务器3A和3B的延迟较 小,物理服务器3C和3D的延迟较小,但物理服务器3A、3B与物理服 务器3C、3D的延迟较大(即,物理服务器3A与物理服务器3C、3D 延迟较大,物理服务器3B与物理服务器3C、3D延迟较大),则在物 理服务器3A和3B之间架设虚拟机调度器12a,在物理服务器3C和3D 之间架设虚拟机调度器12b。

6)顶层虚拟机调度器11:顶层虚拟机调度器11和虚拟机调度器 12可以是同构的设备,也可以是不同构的设备。顶层虚拟机调度器11 需要连接所有的虚拟机调度器12,而且不存在上层虚拟机调度器12。 顶层虚拟机调度器11只会接收到来自下层虚拟机调度器12的调度请 求,并且寻找可匹配的调度需求。

图4为本发明的一个实施例的虚拟机调度系统的层级图,其中包 含三个层:虚拟机调度层401、物理层407以及虚拟机层405。虚拟机 调度层401中包含顶层虚拟机调度器402(对应于图3的顶层虚拟机 调度器11)、和虚拟机调度器403(对应于图3的虚拟机调度器12)。 物理层407中包含物理服务器404(对应于关于图3的说明中的物理 服务器),该物理服务器404包括虚拟机406(对应于图3的虚拟机 14)、物理机监控器408(对应于图3的物理机监控器13)、调度需 求管理器409(对应于图3的调度需求管理器15)、和虚拟机管理器 410(对应于图3的虚拟机管理器16)。在物理层中还有虚拟机层405, 该虚拟机层405包括虚拟机406(对应于图3的虚拟机14)。

尽管在图3和图4的图示中,本发明的一个实施例的虚拟机调度 系统包括两级虚拟机调度器,但是本发明的虚拟机调度系统中,即可 以仅包括一个虚拟机调度器(相当于一级虚拟机调度器),也可以包 括三级以上(包括三级)的虚拟机调度器。

在本发明的虚拟机调度系统仅包括一个虚拟机调度器的情况下, 相当于虚拟机调度系统包括图3中的虚拟机调度器12a、物理机监控 器13(对于不同的物理机监控器13,用13a、13b、…表示)、虚拟 机14、调度需求管理器15(对于不同的调度需求管理器15,用15a、 15b、…表示)和虚拟机管理器16(对于不同的虚拟机管理器16,用 16a、16b、…表示),而不包括顶层虚拟机调度器11、虚拟机调度器 12m及物理机监控器13m、虚拟机14、调度需求管理器15m和虚拟机 管理器16m。

图5为本发明的一个实施例的虚拟机调度系统中的虚拟机调度方 法的流程图。

图5a示出底层虚拟机调度器12的一个实施例的虚拟机调度方法 的流程图。

图5a中的底层虚拟机调度器12的虚拟机调度方法既适用于在虚 拟机调度系统中只有一个虚拟机调度器12a的情况,也适用于有两级 或更多级虚拟机调度器12的情况。

虚拟机调度器12负责监听来自调度需求管理器15的消息 (ST501),判断在该调度请求是否包含表示所述调度需求管理器15a 与邻近调度需求管理器15b达成了调度决议的信息(ST502),在该调 度请求包含表示所述调度需求管理器15a与邻近调度需求管理器15b 达成了调度决议的信息的情况下(ST502:“是”),分别向所述调度 需求管理器15a和所述邻近调度需求管理器15b发出调度指令,其中 在达成了调度决议的情况下,该调度请求还包含有关所述邻近调度需 求管理器15b的信息(ST503)。

作为一个例子,虚拟机调度器12可以按照先收到先返回的顺序, 发出调度指令。

其中,所述调度指令指示调度需求管理器15开始进行虚拟机调 度。所述调度指令可以仅包括指令调度需求管理器15开始进行虚拟机 调度的信息,也可以还包括指令调度需求管理器15何时开始进行虚拟 机调度的信息。只要能够指令调度需求管理器15开始进行虚拟机调 度,则在形式上没有特别限制。

在该例子中,由于调度需求管理器15a与邻近调度需求管理器15b 达成了调度决议,故只要虚拟机调度器12分别向调度需求管理器15a 和邻近调度需求管理器15b发出调度指令,则所述调度需求管理器15a 和所述邻近调度需求管理器15b便可以执行虚拟机的调度。

在该调度请求未包含表示所述调度需求管理器15a与邻近调度需 求管理器15b达成了调度决议的信息的情况下(ST502:“否”),可 以生成错误信息,通知管理员,也可以向发来调度请求的调度需求管 理器15发送错误信息,也可以进行如图5b那样的操作(ST5001)。

图5b示出底层虚拟机调度器的一个实施例的虚拟机调度方法的 流程图。更具体地说,图5b是图5a的ST502为“否”的情况下的一 个实施例的虚拟机调度方法的流程图。特别需要说明的是,如上所述 在图5a的ST502为“否”的情况下,不限于图5b的虚拟机调度方法, 也可以生成错误信息,通知管理员,也可以向发来调度请求的调度需 求管理器15发送错误信息。

图5b中的底层虚拟机调度器12的虚拟机调度方法既适用于在虚 拟机调度系统中只有一个虚拟机调度器12a的情况,也适用于有两级 或更多级虚拟机调度器12的情况。

图5b的ST501-ST503与图5a中的ST501-ST503完全相同,故不 进行重复说明。

在该调度请求未包含表示所述调度需求管理器15a与邻近调度需 求管理器15b达成了调度决议的信息的情况下(ST502:“否”),监 听来自其它调度需求管理器的调度请求(ST504),根据所述调度需求 管理器15a的虚拟机的调度请求和其它调度需求管理器15的调度请求 的需求量,判断所述调度需求管理器15a的虚拟机的调度请求和所述 其它调度需求管理器15的调度请求是否能够匹配(ST505),如果能 够匹配,则分别向所述调度需求管理器15a和所述其它调度需求管理 器15发送有关对方的信息,并发送调度指令(ST506)。

在上述方案中,在该调度请求未包含表示所述调度需求管理器 15a与邻近调度需求管理器15b达成了调度决议的信息的情况下,监 听来自其它调度需求管理器的调度请求而不是非邻近调度需求管理器 的调度请求的原因在于,可以简化流程。在该方案中,在监听时,无 需判断调度需求管理器的调度请求的来自非邻近调度需求管理器还是 来自邻近调度需求管理器。当然,也可以设为监听来自非邻近调度需 求管理器的调度请求,此时只要判断调度需求管理器的调度请求的来 自非邻近调度需求管理器还是来自邻近调度需求管理器即可。

在能够匹配时分别向所述调度需求管理器15a和所述其它调度需 求管理器15发送有关对方的信息的理由在于,使得所述调度需求管理 器15a和所述其它调度需求管理器15能够知道下一步向谁进行虚拟机 调度。所述有关对方的信息可以包括对方的地址。只要能够识别对方, 则所述有关对方的信息不限于地址信息,也可以是比如编号信息等。

其中,所述调度需求管理器15a的虚拟机的调度请求和所述其它 调度需求管理器15的调度请求是否能够匹配表示:所述调度需求管理 器15a的虚拟机迁出的请求和所述其它调度需求管理器15的虚拟机迁 入的请求是否能够匹配;或者所述调度需求管理器15a的虚拟机迁入 的请求和所述其它调度需求管理器15的虚拟机迁出的请求是否能够 匹配。

在该调度请求未包含表示所述调度需求管理器15a与邻近调度需 求管理器15b达成了调度决议的信息的情况下,等待来自其它调度需 求管理器的匹配的调度请求一定时间(例如10分钟,可以预先设定)。

作为一个具体实施例,如果由调度需求管理器15a传来的调度请 求未包含表示所述调度需求管理器15a与邻近调度需求管理器15b达 成了调度决议的信息,并且该调度请求表示需要迁出虚拟机14以减轻 CPU负荷30%,则虚拟机调度器12a开始监听来自其它调度需求管理器 15c的表示需要迁入虚拟机的调度请求。如果监听到来自其它调度需 求管理器15c的表示需要迁入虚拟机的调度请求表示要迁入虚拟机14 以增加CPU负荷30%或更多,则判断为能够匹配,则分别向所述调度 需求管理器15a和所述其它调度需求管理器15发送有关对方的信息, 并发送调度指令。

在分别向所述调度需求管理器15a和所述其它调度需求管理器15 发送有关对方的信息后,也可以等待所述调度需求管理器15a和所述 其它调度需求管理器15应答后,发送调度指令。

作为另一个具体实施例,如果由调度需求管理器15a传来的调度 请求未包含表示所述调度需求管理器15a与邻近调度需求管理器15b 达成了调度决议的信息,并且该调度请求表示需要迁入虚拟机14以增 加CPU负荷30%,则虚拟机调度器12a开始监听来自其它调度需求管 理器15c的表示需要迁出虚拟机的调度请求。如果监听到来自其它调 度需求管理器15c的表示需要迁出虚拟机的调度请求表示要迁出虚拟 机14以减少CPU负荷30%或更少,则判断为能够匹配,则分别向所述 调度需求管理器15a和所述其它调度需求管理器15发送有关对方的信 息,并发送调度指令。

在判断为所述调度需求管理器15a的虚拟机的调度请求和所述其 它调度需求管理器15的调度请求不能够匹配时(ST505:否),可以 生成错误信息,通知管理员,也可以向发来调度请求的调度需求管理 器15发送错误信息,也可以进行如图5c那样的操作(ST5002)。

图5c示出在虚拟机调度系统中有两级或更多级虚拟机调度器的 情况下的底层虚拟机调度器的虚拟机调度方法的流程图。更具体地说, 图5c是图5a的ST502为“否”的情况下的一个实施例的虚拟机调度 方法的流程图。特别需要说明的是,如上所述在图5a的ST502为“否” 的情况下,不限于图5c的虚拟机调度方法,也可以生成错误信息,通 知管理员,也可以向发来调度请求的调度需求管理器15发送错误信 息。

图5c的ST501-ST503与图5a中的ST501-ST503完全相同,故不 进行重复说明。

在调度请求未包含表示所述调度需求管理器15a与邻近调度需求 管理器15b达成了调度决议的信息的情况下(ST502中判断为“否”), 判断是否存在上一层虚拟机调度器12(ST507),在存在上一层虚拟 机调度器12的情况下,将上述调度请求上报给上一层虚拟机调度器 12,并将从上一层虚拟机调度器12接收到的有关其它调度需求管理器 15a的信息和调度指令传回所述调度需求管理器15(ST508)。

另外,也可以在图5b的ST505中判断为“否”的情况下,进行上 述ST507、ST508。具体来说,如果在一定时间内(例如10分钟)没 有找到匹配的调度请求,将从调度需求管理器15a传来的迁出虚拟机 14的调度请求继续上报给上一级虚拟机调度器12,该上级虚拟机调度 器12也可能是顶层虚拟机调度器11(两级虚拟机调度器的情况), 并将从上一层虚拟机调度器12接收到的有关其它调度需求管理器15a 的信息和调度指令传回所述调度需求管理器15。

图6为本发明的一个实施例的非底层虚拟机调度器的虚拟机调度 方法的流程图。

图6a示出虚拟机调度系统中的非底层虚拟机调度器的一个实施 例的虚拟机调度方法的流程图。

非底层虚拟机调度器11(或顶层虚拟机调度器11)监听来自两个 或更多个下一层虚拟机调度器12的调度请求(ST601),所述调度请 求包括将虚拟机迁出的请求和将虚拟机迁入的请求,根据来自一个下 一层虚拟机调度器12a的虚拟机迁出的请求和另一个下一层虚拟机调 度器12m的虚拟机迁入的请求的需求量,判断所述一个下一层虚拟机 调度器12a的虚拟机迁出的请求和所述另一个下一层虚拟机调度器 12m的虚拟机迁入的请求是否能够匹配(ST602),如果所述一个下一层 虚拟机调度器12a的虚拟机迁出的请求和所述另一个下一层虚拟机调 度器12m的虚拟机迁入的请求能够匹配(ST602:“是”),则分别向所 述一个下一层虚拟机调度器12a和所述另一个下一层虚拟机调度器 12m发送有关对方调度请求中的有关调度需求管理器的信息,并发送 调度指令(ST603)。

在一个实施例,非底层虚拟机调度器11接收来自下一层虚拟机调 度器12a的表示迁出虚拟机14的需求的调度请求,该调度请求表示调 度需求管理器15a需要迁出虚拟机14以减轻CPU负荷30%,则非底层 虚拟机调度器11开始寻找从其它下一级虚拟机调度器12传来的表示 迁入虚拟机14的需求的调度请求,该迁入虚拟机14的调度请求需要 满足迁入虚拟机14以增加CPU负荷30%或更多的要求,随后将第一个 找到的发来这种需求的调度需求管理器15m的信息通知给虚拟机调度 器12a,并将调度需求管理器15a的信息通知给虚拟机调度器12m,并 发送调度指令。

在将调度需求管理器15m的信息通知给虚拟机调度器12a,并将 调度需求管理器15a的信息通知给虚拟机调度器12m后,也可以等待 虚拟机调度器12a和虚拟机调度器12m的应答后,发送调度指令。

如果在一定时间内(例如10分钟)没有找到匹配的需求,也可以 将配对失败结果通知给虚拟机调度器12a或/和虚拟机调度器12m。

作为另一个实施例,非底层虚拟机调度器11接收来自下一层虚拟 机调度器12a的表示迁入虚拟机14的需求的调度请求,该调度请求表 示调度需求管理器15a需要迁入虚拟机14以增加CPU负荷30%,则非 底层虚拟机调度器11开始寻找从其它下一级虚拟机调度器12传来的 表示迁出虚拟机14的需求的调度请求,该迁出虚拟机14的调度请求 需要满足迁入虚拟机14以减少CPU负荷30%或更少的要求,随后将第 一个找到的发来这种需求的调度需求管理器15m的信息通知给虚拟机 调度器12a,并将调度需求管理器15a的信息通知给虚拟机调度器12m, 并发送调度指令。

如果所述一个下一层虚拟机调度器12a的虚拟机迁出的请求和所 述另一个下一层虚拟机调度器12m的虚拟机迁入的请求不能够匹配 (ST602:“否”),可以生成错误信息,通知管理员,也可以向发来调 度请求的调度需求管理器15发送错误信息,也可以进行如图6b那样 的操作(ST6001)。

图6b示出多级虚拟机调度系统中的中间层虚拟机调度器或顶层 虚拟机调度器的一个实施例的虚拟机调度方法的流程图。更具体地说, 图6b是图6a的ST602为“否”的情况下的一个实施例的虚拟机调度 方法的流程图。特别需要说明的是,如上所述在图6a的ST602为“否” 的情况下,不限于图6b的虚拟机调度方法,也可以生成错误信息,通 知管理员,也可以向发来调度请求的调度需求管理器15发送错误信 息。

图6b的ST601-ST603与图6a中的ST601-ST603完全相同,故不 进行重复说明。

如果所述一个下一层虚拟机调度器12a的虚拟机迁出的请求和所 述另一个下一层虚拟机调度器12m的虚拟机迁入的请求不能够匹配 (ST602:“否”),虚拟机调度器11判断是否存在上一层虚拟机调 度器(ST604)。

在存在上一层虚拟机调度器的情况下(ST604:“是”),将上述 调度请求上报给上一层虚拟机调度器,并将从上一层虚拟机调度器接 收到的有关其它调度需求管理器15的信息和调度指令传回下一层虚 拟机调度器12a(ST605)。

图7示出本发明的一个实施例的调度需求管理方法的流程图。

以下,以调度需求管理器15a为例子进行说明调度需求管理器15 执行的四个动作:

(1)从物理机监控器13a获取物理服务器的负荷信息(ST701)。

(2)从物理机监控器13获取物理服务器的负荷信息,根据该物 理服务器的负荷信息(例如有关CPU、内存的信息)计算物理服务器 的负荷状态(ST702),并判断是否需要虚拟机的调度(ST703)。负 荷状态表示例如CPU负荷过大、CPU负荷过小或CPU负荷正常,或者 内存负荷过大、内存负荷过小或内存负荷正常。物理服务器的负荷信 息也可以是除了CPU、内存之外的其它的有关物理服务器的信息。

(3)在判断为需要虚拟机14的调度(虚拟机14的迁出或迁入) 的情况下(ST703:“是”),与邻近调度需求管理器15b通信,询问 是否接受虚拟机14的调度(ST704)。

在判断为不需要虚拟机14的调度(虚拟机14的迁出或迁入)的 情况下(ST703:“否”),例如可以返回到步骤ST701。

在从所述邻近调度需求管理器15b接收到包含表示所述邻近调度 需求管理器15b接受虚拟机的调度的信息的情况下(ST705:“是”), 与所述邻近调度需求管理器15b达成调度决议,并向虚拟机调度器12a 发送包含表示所述调度需求管理器15a与邻近调度需求管理器15b达 成了调度决议的信息和有关所述邻近调度需求管理器15b的信息的虚 拟机的调度请求(ST706)。

在从所述邻近调度需求管理器15b接收到未包含表示所述邻近调 度需求管理器15b接受虚拟机的调度的信息的情况下(ST705:“否”), 向所述虚拟机调度器12a发送未包含表示所述调度需求管理器15a与 邻近调度需求管理器15b达成了调度决议的信息的虚拟机的调度请求 (ST707)。

所述调度需求管理器15a可以向其它调度需求管理器15发送响应 时间测试请求,获取其它调度需求管理器15的响应时间,按照响应时 间从短到长的顺序,依次询问其它调度需求管理器15是否接受虚拟机 的调度,直到其它调度需求管理器15中的一个调度需求管理器15接 受虚拟机的调度,所述调度需求管理器15a与接受虚拟机的调度的其 它虚拟机调度器15达成调度决议,并视为所述调度需求管理器15a 与邻近调度需求管理器15达成了调度决议,如果在规定的时间内,所 述调度需求管理器15a未接收到接受虚拟机的调度的信息,则视为所 述调度需求管理器15a与邻近调度需求管理器15未达成调度决议。

在上述方案中,所述调度需求管理器15a也可以同时询问响应时 间最短的某几个(例如3台,可以跟据网络的延迟情况具体修改为1、 2、4…台等)其它调度需求管理器15是否接受虚拟机的调度,并与最 早发来接受虚拟机的调度的信息的调度需求管理器15达成调度决议, 如果在规定的时间内,所述调度需求管理器15a未接收到接受虚拟机 的调度的信息,则视为所述调度需求管理器15a与邻近调度需求管理 器15未达成调度决议。

在上述方案中,所述调度需求管理器15a也可以不发送响应时间 测试请求,而直接询问与同一个虚拟机调度器12连接的其它调度需求 管理器15是否接受虚拟机的调度,并与最早发来接受虚拟机的调度的 信息的调度需求管理器15达成调度决议。

与邻近调度需求管理器通信,询问是否接受虚拟机的调度方法是 多种多样的,不限于上述的方案。

例一,本物理服务器上的CPU负荷过大,调度需求管理器15a向 网络延迟最小的3台调度需求管理器15b、15c、15d发出虚拟机14 迁出请求,请求迁出30%的CPU负荷。调度需求管理器15b在从所述 邻近调度需求管理器15a接收到是否接受虚拟机的调度的询问的情况 下,根据从物理机监控器获取的物理服务器负荷信息,判断是否接受 虚拟机的调度,并将判断结果发送给所述邻近调度需求管理器15a。 例如,如果调度需求管理器15b判断为要求迁入量大于等于30%的CPU 负荷,则判断为接受虚拟机的调度。对于调度需求管理器15c、15d, 其动作与调度需求管理器15b相同。如果从调度需求管理器15b、15c、 15d都发送了接收调度请求的判断结果的情况下,调度需求管理器15a 只与其中最早发送来接收调度请求的判断结果的调度需求管理器15c 达成调度决议即可。

例二,本物理服务器上的CPU负荷过小,调度需求管理器15a向 网络延迟最小的3台调度需求管理器15b、15c、15d发出虚拟机14 迁入请求,请求迁入30%的CPU负荷。调度需求管理器15b在从所述 邻近调度需求管理器15a接收到是否接受虚拟机的调度的询问的情况 下,根据从物理机监控器获取的物理服务器负荷信息,判断是否接受 虚拟机的调度,并将判断结果发送给所述邻近调度需求管理器15a。 例如,如果调度需求管理器15b判断为要求迁出量小于等于30%的CPU 负荷,则判断为接受虚拟机的调度。对于调度需求管理器15c、15d, 其动作与调度需求管理器15b相同。

(3)根据来自所述虚拟机调度器12的调度指令、或有关其它调 度需求管理器15的信息和调度指令,指令虚拟机管理器16进行虚拟 机调度(ST708)。

在从邻近调度需求管理器15a接收到是否接受虚拟机的调度的询 问的情况下,根据从物理机监控器13获取的物理服务器负荷信息,判 断是否接受虚拟机的调度,并将判断结果发送给所述邻近调度需求管 理器15,在判断为接受虚拟机的调度的情况下,与所述邻近调度需求 管理器15达成调度决议。

图8示出本发明的一个实施例的虚拟机调度系统中的消息时序 图。假设该虚拟机调度系统具有两级虚拟机调度器。调度需求管理器 15向物理机监控器13请求物理服务器负荷信息(ST801),等待物理 服务器负荷信息返回后(ST802),根据该物理服务器负荷信息计算物 理服务器负荷状态,并判断是否需要虚拟机的调度(ST803),如果判 断为不需要虚拟机调度,则重复ST801-ST803的步骤,在判断为需要 虚拟机的调度的情况下,与邻近调度需求管理器15通信,询问是否接 受虚拟机的调度,如果邻近调度需求管理器15接受调度请求,则向虚 拟机调度器12发送包含表示所述调度需求管理器与邻近调度需求管 理器达成了调度决议的信息和有关所述邻近调度需求管理器的信息的 虚拟机的调度请求(ST804),虚拟机调度器12返回调度指令(ST805), 如果虚拟机调度器12需要进一步上报,虚拟机调度器12上报给顶层 虚拟机调度器11(ST806),等待返回。如果顶层虚拟机调度器11找 到调度方案,返回调度指令给虚拟机调度器12(ST807),虚拟机调 度器12返回调度指令给调度需求管理器15(ST808)。

在上述例子中,也可以由物理机监控器13向调度需求管理器15 主动发送物理服务器负荷信息(ST801),调度需求管理器15根据该 物理服务器负荷信息计算物理服务器负荷状态,并判断是否需要虚拟 机的调度(ST803)。

图9示出本发明的底层虚拟机调度器的结构框图。

本发明的底层虚拟机调度器,具有:监听部901,监听来自调度 需求管理器的虚拟机的调度请求;调度控制部902,判断在该调度请 求是否包含表示所述调度需求管理器与邻近调度需求管理器达成了调 度决议的信息;以及调度指令部903,在该调度请求包含表示所述调 度需求管理器与邻近调度需求管理器达成了调度决议的信息的情况 下,分别向所述调度需求管理器和所述邻近调度需求管理器发出调度 指令,其中在达成了调度决议的情况下,该调度请求还包含有关所述 邻近调度需求管理器的信息。

图10示出本发明的非底层虚拟机调度器的结构框图。

本发明的非底层虚拟机调度器12具有:监听部1001、调度控制 部1002以及调度指令部1003。监听部1001,监听来自两个或更多个 下一层虚拟机调度器的调度请求,所述调度请求包括将虚拟机迁出的 请求和将虚拟机迁入的请求。调度控制部1002根据来自一个下一层虚 拟机调度器的虚拟机迁出的请求和另一个下一层虚拟机调度器的虚拟 机迁入的请求的需求量,判断所述一个下一层虚拟机调度器的虚拟机 迁出的请求和所述另一个下一层虚拟机调度器的虚拟机迁入的请求是 否能够匹配。调度指令部1003如果所述一个下一层虚拟机调度器的虚 拟机迁出的请求和所述另一个下一层虚拟机调度器的虚拟机迁入的请 求能够匹配,则分别向所述一个下一层虚拟机调度器和所述另一个下 一层虚拟机调度器发送有关对方调度请求中的有关调度需求管理器的 的信息,并发送调度指令。

图11示出本发明的调度需求管理器的结构框图。

本发明的调度需求管理器15具备:物理服务器负荷信息获取部 1101、调度判断部1102、调度通信部1103、调度决议部1104以及调 度指令部1105。物理服务器负荷信息获取部1101从物理机监控器获 取物理服务器负荷信息。调度判断部1102根据该物理服务器负荷信息 计算物理服务器负荷状态,并判断是否需要虚拟机的调度。调度通信 部1103在判断为需要虚拟机的调度的情况下,与邻近调度需求管理器 通信,询问是否接受虚拟机的调度。调度决议部1104在从所述邻近调 度需求管理器接收到包含表示所述邻近调度需求管理器接受虚拟机的 调度的信息的情况下,与所述邻近调度需求管理器达成调度决议,并 向虚拟机调度器发送包含表示所述调度需求管理器与邻近调度需求管 理器达成了调度决议的信息和有关所述邻近调度需求管理器的信息的 虚拟机的调度请求,所述调度决议部1104在从所述邻近调度需求管理 器接收到未包含表示所述邻近调度需求管理器接受虚拟机的调度的信 息的情况下,向所述虚拟机调度器发送未包含表示所述调度需求管理 器与邻近调度需求管理器达成了调度决议的信息的虚拟机的调度请 求。调度指令部1105,根据来自所述虚拟机调度器的调度指令、或有 关其它调度需求管理器的信息和调度指令,指令虚拟机管理器进行虚 拟机调度。

本发明还提供一种虚拟机调度系统,包括:上述的底层虚拟机调 度器;以及多个物理服务器,每个物理服务器包括一个或多个虚拟机、 物理机监控器、虚拟机管理器、以及上述的调度需求管理器,其中, 所述虚拟机分布在所述物理服务器上,向用户提供服务,每一个物理 服务器中能够运行一个虚拟机或同时运行多个虚拟机,其中,在每台 物理服务器上运行物理机监控器,物理机监控器实时监控物理服务器 的物理服务器负荷信息,并将物理服务器负荷信息传送给调度需求管 理器。

本发明还提供另一种虚拟机调度系统,其特征在于,包括:多个 上述的底层虚拟机调度器;一个或多个上述的非底层虚拟机调度器; 多个物理服务器,每个物理服务器包括一个或多个虚拟机、物理机监 控器、虚拟机管理器、以及上述的调度需求管理器,其中,所述虚拟 机分布在所述物理服务器上,向用户提供服务,每一个物理服务器中 能够运行一个虚拟机或同时运行多个虚拟机,其中,在每台物理服务 器上运行物理机监控器,物理机监控器实时监控物理服务器的物理服 务器负荷信息,并将物理服务器负荷信息传送给调度需求管理器。

现代城市中视频监控系统的应用越来越广泛,例如城市安防、交 通监控、楼宇监控等等。并且视频监控的规模也越来越巨大,单纯摄 像头的数目每年都会有激增。同时城市规模的扩大,监控对象的增多, 对于视频监控系统的要求也越来越高,单纯的摄像头配合录像机的模 式已经无法满足当前需求。现代视频监控系统要求监控规模越来越大, 有时甚至以城市为单位。对于传统的视频监控系统和数据中心,越来 越难以应对监控规模的进一步扩大。

鉴于以上的情况,运用云平台去解决大规模视频监控系统带来的 诸多挑战是很不错的选择,但同时,云平台本身又给我们带来了新的 课题,那就是面对海量的动态变化的视频监控数据,如何动态调度系 统资源,最大限度的提高效率。固有的物理数据中心难以做到动态调 度。目前流行的基于服务器虚拟化技术的服务器热迁移技术能够实现 动态调度,然而,热迁移技术需要精确把握系统资源的状态和实时的 响应系统调度需求。并且,面对大规模视频监视系统,要统一计算整 个系统的全部状态并且做出实时相应。根据本发明还提供一种视频监 控系统,其特征在于,具有上述的底层虚拟机调度器、非底层虚拟机 调度器、或上述的虚拟机调度系统。

通过在视频监控系统中采用本发明的上述的底层虚拟机调度器、 非底层虚拟机调度器、或上述的虚拟机调度系统,可以调度系统资源 以提高资源利用率并且平衡负荷。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方 法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上, 流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分, 所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑 功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续 的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行, 这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、 以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的 专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组 合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷 尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例 的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改 和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实 施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其 它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号