基于批装箱问题的虚拟机调度方法与流程

文档序号:11154582阅读:942来源:国知局
基于批装箱问题的虚拟机调度方法与制造工艺

本发明涉及云计算资源调度技术领域,特别涉及一种新的虚拟机调度方法。



背景技术:

资源调度是云计算中的关键问题之一,资源调度包括静态调度和动态调度。一般而言,静态调度只在虚拟机首次选择目标服务器主机时根据已有的调度策略执行一次;而动态调度指的是调度器根据当前系统负载动态变化的情况,通过虚拟机迁移等技术避免服务器过载现象的出现,并达到节能的目标。

创建或者迁移虚拟机的过程,就是资源调度的过程,在系统执行过程中,资源调度器根据新来的资源请求和动态变化的系统负载情况调整资源。高效节能的资源调度策略,是构建一个云计算系统的重中之重。

在现有技术中,有很大一部分研究都将虚拟机调度问题建模为在线装箱问题。具体的,把虚拟机看成物品,服务器主机看成箱子,系统根据源源不断的虚拟机请求和动态变化的负载进行调度。在已有的用于解决资源调度问题的装箱算法中,都是根据虚拟机请求的逐个到来制定调度策略。在现实情况中,虚拟机请求往往是批量到达的,已有的针对每次虚拟机请求都做出调度的策略有可能会造成不必要的虚拟机迁移。

因此,如何根据用户请求灵活高效地实现虚拟机的节能调度是当前亟需解决的关键技术问题。



技术实现要素:

本发明的主要目的在于克服现有技术的缺点与不足,提供一种新的虚拟机调度方法,使得系统能够根据用户请求灵活高效地实现虚拟机调度。该方法是基于批装箱问题(Batched Bin Packing Problem)的调度算法。

为了达到上述目的,本发明采用以下技术方案:

基于批装箱问题的虚拟机调度方法,如图1所示,包括下述步骤:

S1:虚拟机调度器定期接收用户提交的新的虚拟机请求,同时收集系统中每台物理机上运行的虚拟机的状态信息,包括即将结束运行的虚拟机信息;

S2:针对新的虚拟机请求和发生变化的虚拟机信息,虚拟机调度器采用装箱算法进行调整,得出新的虚拟机与物理机的对应关系表;

S3:虚拟机调度器比较算法调度前后对应关系表之间的差异,制定并发送迁移指令给指定物理机,相关物理机根据指令完成虚拟机迁移。

作为优选的,在步骤S1中,虚拟机调度器在指定的时间间隔T内应该收集的信息包括:用户提交的新虚拟机请求序列、物理机负载信息和将发生变化的虚拟机及其宿主服务器信息。

作为优选的,在步骤S2中虚拟机调度器结合虚拟机请求序列信息和负载信息发生变化的虚拟机及其宿主服务器信息,调用装箱算法得到新的虚拟机与物理机对应关系表。

作为优选的,物理机为同构服务器,如果物理机为异构服务器,则可以将物理机分为多个部分处理,每一部分物理机都为同构服务器。

作为优选的,所采用的装箱算法为在线批装箱算法。与其他在线装箱算法相比,不同之处在于,在线批装箱算法处理的是物品是一批批到达,而不是一个个到达的。换句话说,在制定调度策略时,我们除了知道已运行在物理机上的虚拟机负载信息外,另外还知道即将进行分配的一组虚拟机请求序列。

本发明与现有技术相比,具有如下优点和有益效果:

1.本发明能够根据虚拟机的生命周期灵活控制物理机的数量,同时休眠处于空闲状态的物理机,有效减少能源开销;

2.2.本发明采用批装箱算法,分批地处理用户的虚拟机请求,可以减少不必要的虚拟机迁移,节省迁移能耗;

附图说明

图1是本发明的流程图;

图2是实施例的系统逻辑结构图;

图3是本发明的信息传递图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例的系统逻辑结构如图2所示。其中,虚拟机分布在物理机上,利用虚拟化相关技术,每台物理机可同时运行多台虚拟机,虚拟机主要服务于用户,为用户提供计算服务;每台物理机上运行着一个虚拟机管理器,该虚拟机管理器可收集所有运行于该物理机上的虚拟机的负载信息,即每台虚拟机对物理机的资源占用情况,并将负载信息告知虚拟机调度器,同时,虚拟机管理器可接收虚拟机调度器发来的迁移指令,配合虚拟机调度器完成虚拟机迁移工作。

本发明在资源调度过程中的信息传递如图3所示,每台物理机上都运行着一台虚拟机管理器,可定时收集该物理机上虚拟机的负载数据并发送给虚拟机调度器,虚拟机调度器接收来自物理机的负载信息,结合用户提交的请求,根据调度策略制定并发送迁移指令至物理机。

本发明的技术方案如下:

虚拟机调度器定期运行。首先,一方面,虚拟机调度器接收来自用户的一组新的虚拟机请求序列,另一方面,虚拟机调度器接收来自每台物理机上虚拟机的负载信息。然后,虚拟机调度器调用批装箱算法得到新的虚拟机与物理机对应关系表,并比较调度前后虚拟机与物理机对应关系的差异制定虚拟机迁移计划;最后,虚拟机调度器将指令信息发送给各相关物理机并休眠处于空闲状态的物理机;各物理机中的虚拟机管理器接受到迁移指令,配合虚拟机调度器完成虚拟机迁移。

下面对本发明关键技术做进一步的分析。

(1)装箱问题的转化

本发明采用一种常见的方法将虚拟机调度问题转化为装箱问题:把物理机看作箱子,大小为单位1,把虚拟机看作物品,大小等于虚拟机各资源分别占物理机相应资源容量的比例的最大值。例如,我们考虑三种(考虑更多种资源时情况雷同)资源:CPU、内存和磁盘。现在有一台虚拟机这三类资源的负载占物理机各资源容量的比例分别为0.20、0.25、0.15,那么这台虚拟机对应的物品大小为三者最大值0.25。通过上述转化过程可虚拟机调度问题转化成装箱问题。装箱问题的约束条件使得每台物理机的资源容量都能满足运行在它上面的虚拟机,而装箱问题的目标使得尽可能多的物理机能处于空闲状态。本发明问题模型为装箱问题的一种特例,批装箱问题,是一种在线装箱问题。

(2)装箱算法的输入与输出

具体而言,装箱算法的输入包括:在一段时间段T内,虚拟机调度器接受的来自用户的一组虚拟机请求序列Q,来自物理机的各物理机上的虚拟机负载数据(包括当前虚拟机与物理机的关系对应表B和即将在本段时间T内结束运行的虚拟机集合C);装箱算法的输出是一组虚拟机与物理机的对应关系表。在本发明中,装箱算法每次处理的输入为一组虚拟机集合。

(3)装箱策略

根据即将结束运行的虚拟机集合C,关闭相应虚拟机并更新各物理机上负载信息,此时可能存在某些物理机上的虚拟机刚好全都结束运行而进去空闲状态。装箱策略如下:

将物品按照剩余容量从大到小排序,同时将物品从大到小排序,分别得到两个已排好序的序列。对于物品序列中的最大物品,判断箱子序列中剩余容量最大的箱子是否可以容纳下最大物品,如果可以,则将该物品放进箱子中并更新箱子容量,否则,开启新的箱子并把物品放进箱子中。

本发明采用最大值堆这种数据结构储存箱子信息,即按照箱子剩余容量值建立最大值堆。堆的每次取最大值操作只需要常数时间,而插入节点只需要O(logn)。因此建立最大值堆能提高本发明中装箱算法的效率。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1