虚拟机调度和执行部署过程中的资源预处理方法及系统的制作方法

文档序号:6378968阅读:223来源:国知局
专利名称:虚拟机调度和执行部署过程中的资源预处理方法及系统的制作方法
技术领域
本申请涉及云计算领域,特别涉及一种云计算系统中虚拟机调度和执行部署过程中的资源预处理方法及系统。
背景技术
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云计算系统中,云计算系统在进行虚拟机调度时,将用户提交的虚拟机部署操作分发给具体的物理服务器执行,新生成的虚拟机将消耗该物理服务器上的内存、硬盘等资源,调度的目标是使得虚拟机运行的物理服务器环境至少能满足其需求,并且使得物理服务器集群中资源得到均衡使用。其中,调度决策单元和部署执行单元是紧密相连的顺序进行虚拟机部署的两个功能单元。对于 用户提交的虚拟机部署请求,首先由调度决策单元确定承担该虚拟机部署操作的物理服务器,再由部署执行单元在该物理服务器上执行部署的脚本。但是两个单元的时间效率相差很大,前者耗时相对较短,而后者是耗时相当长的操作。但是在云计算系统中,虚拟机调度决策的过程相对虚拟机部署执行过程要快很多,因此两者在同时发生的情况下,就会出现部署操作失败的问题。例如,虚拟机部署请求A和B同时发送给虚拟机调度模块,该模块处理A的结果是有2台虚拟机部署请求发送给物理服务器S,在接着处理请求B的过程中,判断物理服务器S是否资源够用时,假如以其实际资源进行比较,实际上物理服务器S上正在或即将部署的2台虚拟机占用的资源还未在实际资源扣除,导致的结果是虚拟机部署过程中发现物理服务器S上的资源不够使用,部署操作失败。因此资源预分配可以理解为一旦调度决策虚拟机部署在物理服务器S上,就应该将其资源减去此虚拟机消耗的资源,这个过程和其实际资源的变化过程是异步发生的。现有技术中采用一个字段存储物理服务器当前可用的资源值(包括硬盘和内存两个参数),物理服务器注册入云计算系统时,该字段的值为当前资源实际值。当有虚拟机部署任务被分配给该物理服务器时,将该字段的值减去该虚拟机配置文件中规定的资源参数,部署操作完成后,如果该物理服务器的虚拟机部署队列为空,通过命令方式扫描物理服务器,用扫描到的实际值更新该字段的值;否则不扫描和更新该字段。后续运行过程中,当一个虚拟机删除操作完成时,如果该物理服务器的部署队列为空,通过命令方式扫描该物理服务器,再用扫描到的实际值更新该字段的值;否则在该字段上回收被删除虚拟机占用的资源。但是发明人在研究过程中发现,采用现有技术采用一个字段的方案,当不同用户提交的任务在执行过程中同时操作该字段时,对该字段的访问是同时进行的,也就是说系统必须提供一套完备的机制,保证该字段值在不同线程之间的一致性。这就存在以下两个方面的问题第一个方面为资源数据的准确性如果当前服务器中虚拟机部署队列非空时,任意虚拟机部署操作或虚拟机删除操作执行完毕后,均只能通过参考该虚拟机配置文件中的资源使用参数,从逻辑上减去或回收这部分的值,这和实际的资源数值有或大或小的偏差,当这些偏差累积到一定阶段时,如果虚拟机部署队列始终为非空状态,和资源实际情况会有较大的出入,影响调度决策的准确性。第二个方面为资源数据的并发性和维护成本维护一个字段值的一致性的模型开销相对较大,同一时间内对该字段值的修改表面为并发性的,实际任意时间内对该字段值的修改线程均只有一个,出现资源竞争的概率会较大。

发明内容
为解决上述技术问题,本申请实施例提供了一种虚拟机调度和执行部署过程中的资源预处理方法及其相应系统,既能实现资源预分配,又能体提高资源数据的准确性,且降低出现资源竞争的概率。本申请实施例提供的虚拟机调度和执行部署过程中的资源预处理方法包括一种虚拟机调度和执行部署过程中的资源预处理方法,其特征在于,采用资源逻辑值表示各候选物理服务器的逻辑可用的内存和硬盘资源,采用资源实际值表示各候选物·理服务器的实际可用的内存和硬盘资源;所述方法包括虚拟机调度过程和虚拟机执行过程,其中,所述虚拟机调度过程包括接收用户提交的当前虚拟机的部署请求,依据各候选物理服务器的初始资源逻辑值将所述当前虚拟机的部署请求分发至目标物理服务器,并在所述目标物理服务器的虚拟机部署队列中添加所述当前虚拟机的部署请求;依据所述当前虚拟机消耗的内存和硬盘资源更新所述目标物理服务器的初始资源逻辑值;所述虚拟机执行部署过程包括从目标物理服务器中的虚拟机部署队列中按照顺序获取待处理的虚拟机部署请求;当所述待处理的虚拟机的部署请求执行完毕后,依据所述虚拟机所消耗的内存和硬盘资源更新所述目标物理服务器的部署资源实际值;依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值;删除所述虚拟机部署队列中所述待处理的虚拟机的部署请求。优选的,所述依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值,包括判断所述待处理的虚拟机的部署请求是否执行成功,如果是,则将所述部署资源逻辑值同步为更新后的部署资源实际值;如果否,则回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。优选的,还包括虚拟机删除过程,所述虚拟机删除过程包括从目标物理服务器的虚拟机删除队列中获取待处理的虚拟机删除请求;当所述虚拟机的删除脚本执行成功后,依据删除的虚拟机所占用的内存和硬盘资源更新所述目标物理服务器的删除资源实际值;依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值;在所述虚拟机删除队列中删除所述待处理的虚拟机删除请求。
优选的,所述依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值,包括判断所述目标物理服务器的虚拟机部署队列中是否为空,如果是,则将所述目标物理服务器的删除资源逻辑值同步为更新后的删除资源实际值;如果否,回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。优选的,所述同步的实现方式为判断所述目标物理服务器中的虚拟机部署队列中是否有待处理的虚拟机的部署请求,如果否,则将所述目标物理服务器的当前内存和硬盘资源值确定为当前资源实际值,并将所述当前资源实际值赋值给当前资源逻辑值。本申请实施例提供的虚拟机调度和执行部署过程中的资源预处理系统包括虚拟机调度单元和虚拟机执行部署单元,其中,
所述虚拟机调度单元包括接收模块、分发模块、建立请求模块和第一更新模块,其中,所述接收模块用于接收用户提交的当前虚拟机的部署请求,所述分发模块用于依据各候选物理服务器的初始资源逻辑值将所述当前虚拟机的部署请求分发至目标物理服务器,所述建立请求模块用于在所述目标物理服务器的虚拟机部署队列中添加所述当前虚拟机的部署请求;所述第一更新模块用于依据所述当前虚拟机消耗的内存和硬盘资源更新所述目标物理服务器的初始资源逻辑值;所述虚拟机执行部署单元包括获取模块、第二更新模块、第三更新模块和第一删除模块,其中,所述获取模块用于从目标物理服务器中的虚拟机部署队列中按照顺序获取待处理的虚拟机部署请求;所述第二更新模块用于当所述待处理的虚拟机的部署请求执行完毕后,依据所述虚拟机所消耗的内存和硬盘资源更新所述目标物理服务器的部署资源实际值;所述第三更新模块用于依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值;所述第一删除模块用于删除所述虚拟机部署队列中所述待处理的虚拟机的部署请求。优选的,所述第三更新模块包括第一判断子模块,用于判断所述待处理的虚拟机的部署请求是否执行成功;第一同步子模块,用于在所述判断子模块的结果为是的情况下,将所述部署资源逻辑值同步为更新后的部署资源实际值;第一回收子模块,用于在所述判断子模块的结果为否的情况下,回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。优选的,还包括虚拟机删除单元,所述虚拟机删除单元包括获取模块,用于从目标物理服务器的虚拟机删除队列中获取待处理的虚拟机删除请求;第四更新模块,用于当所述虚拟机的删除脚本执行成功后,依据删除的虚拟机所占用的内存和硬盘资源更新所述目标物理服务器的删除资源实际值;第五更新模块,用于依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值;第二删除模块,用于在所述虚拟机删除队列中删除所述待处理的虚拟机删除请求。
优选的,所述第五更新模块包括第二判断子模块,用于判断所述目标物理服务器的虚拟机部署队列中是否为空;第二同步子模块,用于在所述第二判断子模块的结果为是的情况下,将所述目标物理服务器的删除资源逻辑值同步为更新后的删除资源实际值;第二回收子模块,用于在所述第二判断子模块的结果为否的情况下,回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。优选的,所述同步由资源同步单元实现,所述资源同步单元包括第三判断子模块,用于判断所述目标物理服务器中的虚拟机部署队列中是否有待 处理的虚拟机的部署请求;确定子模块,用于在所述第三判断子模块的结果为否的情况下,将所述目标物理服务器的当前内存和硬盘资源值确定为当前资源实际值,并将所述当前资源实际值赋值给当前资源逻辑值。本申请实施例中,将虚拟机调度决策单元和虚拟机部署执行单元分离,使虚拟机的调度决策和部署操作变为异步关系,这样使得虚拟调度决策过程不受虚拟机部署执行过程耗时的影响,增加了虚拟机调度决策单元的并发能力。而将虚拟机调度决策和部署执行单元变成异步的代价,是需要进行资源的预分配。例如,已调度决策完毕的虚拟机部署请求在执行完毕前会为虚拟机预先分配资源,而执行该部署请求的服务器只有当部署操作完成之后,其实际资源值才会更新。因此为解决上述问题,本申请引入了资源逻辑值的概念一旦虚拟机部署任务被确定分配给特定服务器,从该服务器的资源逻辑值中为此待部署虚拟机预先分配内存和硬盘资源(即是减去该虚拟机所消耗的内存和硬盘资源);后续对新到来的虚拟机部署请求进行调度时,依照各物理服务器的资源逻辑值进行判断和决策。本申请通过设置资源逻辑值和资源实际值两个字段,分别存储物理服务器逻辑上可用的资源数值和实际可用的资源瞬时值,既能在任意时刻准确的记录该物理服务器的实际可用资源数值,又能通过资源逻辑值为虚拟机调度决策提供准确支持。并且,将两个情况下资源数值分别存储,也减少了资源竞争的概率,为虚拟机调度决策和虚拟机部署执行两个单元的并发性提供了更完备的支持。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本申请实施例的虚拟机调度和执行过程中的资源预处理方法流程图;图2为本申请实施例一中步骤107的流程图;图3为本申请虚拟机删除过程的流程图;图4为本申请虚拟机删除过程中步骤303的流程图;图5本申请实施例的虚拟机调度和执行过程中的资源预处理系统的结构框图;图6为本申请实施例中第三更新模块513的结构框图;图7为本申请实施例中虚拟机删除单元的结构框图8为本申请实施例中虚拟机删除单元的第五更新模块703的结构框图。
具体实施例方式为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本申请作进一步详细的说明。参见图1,该图示出了本申请实施例的虚拟机调度和执行过程中的资源预处理方 法的流程,在本方法实施例中,采用资源逻辑值表示各候选物理服务器的逻辑可用的内存和硬盘资源,即是云计算系统中根据推理得出的物理服务器的内存可用大小和硬盘可用大小的数值信息。采用资源实际值表示各候选物理服务器的实际可用的内存和硬盘资源,即是云计算系统中物理服务器当前真实的内存可用大小和硬盘可用大小的数值信息。所述方法包括虚拟机调度过程和虚拟机执行部署过程,其中步骤101 步骤104为虚拟机调度过程,在实际应用中可以由虚拟机调度决策单元执行;步骤105 步骤108为虚拟机执行部署过程,在实际应用中可以由虚拟机部署执行单元执行。其中,虚拟机调度过程和虚拟机执行过程是相互独立的,即是虚拟机调度过程和虚拟机执行部署过程是异步的关系,在虚拟机调度过程中处理完前一个虚拟机部署请求后,就继续处理请求下一个虚拟机部署请求,而不考虑前一个虚拟机部署请求是否执行完毕。则本实施例公开的虚拟机调度和执行过程中的资源预处理方法具体可以包括步骤101 :接收用户提交的当前虚拟机的部署请求。用户提交虚拟机部署请求,可以由虚拟机调度决策单元截获虚拟机部署请求并对其进行处理。在本申请实施例中,资源预处理包括资源预分配和同步,资源预分配是实现虚拟机调度决策和虚拟机部署执行两个过程异步化的重要手段,这样做的最大目的是提高虚拟机调度决策单元的并发能力和运行效率。步骤102 :依据各候选物理服务器的初始资源逻辑值将所述当前虚拟机的部署请求分发至目标物理服务器。虚拟机调度决策单元读取各候选物理服务器的初始资源逻辑值,基于初始资源逻辑值和预设的调度策略,将当前虚拟机部署请求分发给目标物理服务器。其中,本申请涉及的资源逻辑值和资源实际值可以仅包含两项内容物理服务器的可用内存大小和可用硬盘大小。步骤103 :在所述目标物理服务器的虚拟机部署队列中添加所述当前虚拟机的部
署请求。虚拟机调度决策单元在将当前虚拟机的部署请求分发至目标物理服务器之后,在该目标物理服务器的虚拟机部署队列中生成一个新的部署请求,即是将当前虚拟机的部署请求添加至虚拟机部署队列中。其中,虚拟机部署队列是物理服务器的属性,按FIFO (先进先出,First In First Out)存储该服务器上待部署虚拟机请求。其中,FIFO是一种数据存储策略,即是数据在数据结构中被顺序存入和读出,其被读出的顺序与其被写入的时间成正相关。步骤104 :依据所述当前虚拟机消耗的内存和硬盘资源更新所述目标物理服务器的初始资源逻辑值。在本申请实施例中,一旦该虚拟机的部署位置被确定下来,就依据所述当前虚拟机消耗的内存和硬盘资源更新所述目标物理服务器的初始资源逻辑值,即是从该目标物理服务器的资源逻辑值中预分配此虚拟机消耗的资源,将该虚拟机消耗的内存和硬盘资源扣除,从而可以在目标物理服务器并未真正执行该虚拟机的时候,就使其资源逻辑值更新为已经成功分配该虚拟机之后的资源数值。至此,虚拟机的调度决策过程已经完成。需要说明的是,本申请实施例中的虚拟机调度过程和虚拟机执行过程是异步的,在当前虚拟机的部署请求处理完毕后,虚拟机调度决策单元就接着处理下一个虚拟机的部署请求,而无需等待虚拟机部署执行单元将当前虚拟机的部署请求真正的部署执行完毕。·步骤105 :从目标物理服务器中的虚拟机部署队列中按照顺序获取待处理的虚拟机部署请求。在实际应用中,步骤105 步骤108的虚拟机执行过程可以由虚拟机部署执行单元执行,该单元从目标物理服务器的虚拟机部署队列的队头取出待处理的虚拟机部署请求,包括此虚拟机的配置信息。其中,该待处理的虚拟机部署请求并不一定是虚拟机调度决策单元处理完毕的当前虚拟机的部署请求。步骤106 :当所述待处理的虚拟机的部署请求执行完毕后,依据所述虚拟机所消耗的内存和硬盘资源更新所述目标物理服务器的部署资源实际值。虚拟机部署执行单元处理当前部署操作完毕后,通过调用资源扫描单元扫描目标物理服务器并更新该目标物理服务器的部署资源实际值,即是将该目标物理服务器的实际可用的内存和硬盘大小减去该虚拟机所消耗的内存和硬盘资源。部署资源实际值指的是在虚拟机执行部署过程中的资源实际值。资源扫描单元可以通过命令方式扫描物理服务器的内存和硬盘,获取剩余可用大小。步骤107 :依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值。虚拟机部署执行单元再依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值,即是将目标物理服务器的部署资源逻辑值的大小更新为所述更新后的部署资源实际值的大小,其中,部署资源逻辑值指的是在虚拟机部署执行过程中的资源逻辑值。其中,参考图2所示,该步骤在具体实施时可以包括步骤201 :判断所述待处理的虚拟机的部署请求是否执行成功,如果是,进入步骤202,如果否,则进入步骤203。步骤202 :在目标物理服务器的虚拟机部署队列为空的情况下,将所述部署资源逻辑值同步为更新后的部署资源实际值。如果待处理的虚拟机的部署成功完成,并且此时该目标物理服务器的虚拟机部署队列为空,则可以调用资源同步单元来同步资源逻辑值和资源实际值,即是将所述部署资源逻辑值同步为更新后的部署资源实际值。
步骤203 :回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。如果待处理的虚拟机的部署失败,则可以基于资源逻辑值回收当前部署失败虚拟机所占用的预分配资源,即是回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。步骤108 :删除所述虚拟机部署队列中所述待处理的虚拟机的部署请求。当待处理的虚拟机的部署请求处理完毕之后,删除虚拟机部署队列中当前已完成的该待处理的部署请求。
本申请实施例中,通过设置资源逻辑值和资源实际值两个字段,分别存储物理服务器逻辑上可用的资源数值和实际可用的资源瞬时值,既能在任意时刻准确的记录该物理服务器的实际可用资源数值,又能通过资源逻辑值为虚拟机调度决策提供准确支持。并且,将两个情况下资源数值分别存储,也减少了资源竞争的概率,为虚拟机调度决策和虚拟机部署执行两个单元的并发性提供了更完备的支持。在优选实施例中,本申请还可以包括虚拟机删除过程,参考图3所示,图3为虚拟机删除过程的流程图,所述虚拟机删除过程具体可以包括步骤301 :从目标物理服务器的虚拟机删除队列中获取待处理的虚拟机删除请求。在实际应用中,虚拟机删除过程可以由虚拟机删除执行单元执行,该虚拟机删除执行单元从目标物理服务器的虚拟机删除队列中取出待处理的虚拟机删除请求。其中,虚拟机删除队列为物理服务器的属性,按FIFO存储该物理服务器上待删除的虚拟机的删除请求。步骤302 :当所述虚拟机的删除脚本执行成功后,依据删除的虚拟机所占用的内存和硬盘资源更新所述目标物理服务器的删除资源实际值。执行完删除脚本后,该虚拟机删除执行单元可以调用资源扫描单元更新该目标物理服务器的删除资源实际值。其中,删除资源实际值为虚拟机删除过程中的资源实际值。资源扫描单元可以通过命令方式扫描物理服务器的内存和硬盘,获取剩余可用大小。步骤303 :依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值。虚拟机删除执行单元再依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值,参考图4所示,具体可以包括步骤401 :判断所述目标物理服务器的虚拟机部署队列中是否为空,如果是,则进入步骤402 ;如果否,则进入步骤403。步骤402 :将所述目标物理服务器的删除资源逻辑值同步为更新后的删除资源实际值。如果该目标物理服务器的虚拟机部署队列没有其他待部署请求,可以调用资源同步单元来同步资源逻辑值和资源实际值,即是将所述删除资源逻辑值同步为更新后的删除资源实际值。步骤403 :回收目标物理服务器中所述虚拟机占用的内存和硬盘资源。否则,回收目标物理服务器中当前已删除虚拟机占用的内存和硬盘资源。
步骤304 :在所述虚拟机删除队列中删除所述待处理的虚拟机删除请求。虚拟机删除执行单元最后删除虚拟机删除队列中当前已完成的删除请求。可以理解的是,在本申请实施例中,资源同步单元的实现方式可以为步骤Al :判断所述目标物理服务器中的虚拟机部署队列中是否有待处理的虚拟机的部署请求,如果否,则进入步骤A2 ;步骤A2 :将所述目标物理服务器的当前内存和硬盘资源值确定为当前资源实际值,并将所述当前资源实际值赋值给当前资源逻辑值。需要说明的是,在本申请实施例中,如果目标物理服务器中的虚拟机部署队列中有待执行部署请求,则不执行同步操作,直接返回。·可见,本申请实施例中,虚拟机删除过程也可以和虚拟机调度过程以及虚拟机执行过程互相独立,此外,因为虚拟机占用的资源尽管绝大多数时候和其配置文件中的参数一致,但是在实际执行过程中,可能会存在极小的偏差。当系统运行到一定阶段时,积累的偏差值会使得资源逻辑值和资源实际值有较大的出入。因此当虚拟机的部署请求执行完毕并且虚拟机部署队列为空时,将资源逻辑值和资源实际值进行同步,是极其必要的。此外,虚拟机的删除操作同样涉及资源逻辑值和资源实际值之间的同步,如果虚拟机部署队列为空,删除虚拟机操作执行结束后,将资源逻辑值和资源实际值同步,否则只在资源逻辑值中回收当前被删除虚拟机占用的资源。上述机制完整维持了资源逻辑值和资源实际值各自的生命周期和之间的同步操作,为提供虚拟机调度时的并发能力提供了保证。上述叙述内容均是对本申请方法实施例的描述,相应地,本申请实施例还提供了虚拟机调度和执行过程中的资源预处理系统。参见附图5,该图示出了本申请实施例的虚拟机调度和执行过程中的资源预处理系统的结构框架。该系统实施例具体可以包括虚拟机调度单元50和虚拟机执行部署单元51,其中,所述虚拟机调度单元50可以包括接收模块501、分发模块502、建立请求模块503和第一更新模块504,其中,所述接收模块501用于接收用户提交的当前虚拟机的部署请求,所述分发模块502用于依据各候选物理服务器的初始资源逻辑值将所述当前虚拟机的部署请求分发至目标物理服务器,所述建立请求模块503用于在所述目标物理服务器的虚拟机部署队列中添加所述当前虚拟机的部署请求;所述第一更新模块504用于依据所述当前虚拟机消耗的内存和硬盘资源更新所述目标物理服务器的初始资源逻辑值;所述虚拟机执行部署单元51可以包括获取模块511、第二更新模块512、第三更新模块512和第一删除模块514,其中,所述获取模块511用于从目标物理服务器中的虚拟机部署队列中按照顺序获取待处理的虚拟机部署请求;所述第二更新模块512用于当所述待处理的虚拟机的部署请求执行完毕后,依据所述虚拟机所消耗的内存和硬盘资源更新所述目标物理服务器的部署资源实际值;所述第三更新模块513用于依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值;所述第一删除模块514用于删除所述虚拟机部署队列中所述待处理的虚拟机的部署请求。其中,参考图6所示,所述第三更新模块513具体可以包括第一判断子模块611,用于判断所述待处理的虚拟机的部署请求是否执行成功;第一同步子模块612,用于在所述判断子模块的结果为是的情况下,将所述部署资源逻辑值同步为更新后的部署资源实际值;
第一回收子模块613,用于在所述判断子模块的结果为否的情况下,回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。本申请实施例中,将虚拟机调度决策单元和虚拟机部署执行单元变成异步操作,使前者从漫长的部署执行单元中独立出来,基于此思想提高虚拟机调度决策单元的时间效率和并发性。本申请通过使用资源逻辑值和资源实际值两个字段分别存储服务器逻辑情况下的可用资源值和实际情况下的资源可用值,既减少了资源竞争的概率(不同线程同时对同一字段的访问情况),又能保证在任意时刻均能获取该服务器实际可用资源情况,更好地保证了虚拟机调度决策过程的准确性。参考图7所示,所述系统还可以包括虚拟机删除单元70,所述虚拟机删除单元70具体可以包括获取模块701,用于从目标物理服务器的虚拟机删除队列中获取待处理的虚拟机·删除请求。第四更新模块701,用于当所述虚拟机的删除脚本执行成功后,依据删除的虚拟机所占用的内存和硬盘资源更新所述目标物理服务器的删除资源实际值。第五更新模块703,用于依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值。其中,参考图8所示,所述第五更新模块703具体可以包括第二判断子模块801,用于判断所述目标物理服务器的虚拟机部署队列中是否为空;第二同步子模块802,用于在所述第二判断子模块的结果为是的情况下,将所述目标物理服务器的删除资源逻辑值同步为更新后的删除资源实际值;第二回收子模块803,用于在所述第二判断子模块的结果为否的情况下,回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。第二删除模块704,用于在所述虚拟机删除队列中删除所述待处理的虚拟机删除请求。其中,本申请实施例中的同步操作由资源同步单元实现,所述资源同步单元具体可以包括第三判断子模块,用于判断所述目标物理服务器中的虚拟机部署队列中是否有待处理的虚拟机的部署请求;确定子模块,用于在所述第三判断子模块的结果为否的情况下,将所述目标物理服务器的当前内存和硬盘资源值确定为当前资源实际值,并将所述当前资源实际值赋值给当前资源逻辑值。需要说明的是,为了描述的方便,描述以上系统时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本申请可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务 器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。以上所述仅是本申请的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
权利要求
1.一种虚拟机调度和执行部署过程中的资源预处理方法,其特征在于,采用资源逻辑值表示各候选物理服务器的逻辑可用的内存和硬盘资源,采用资源实际值表示各候选物理服务器的实际可用的内存和硬盘资源;所述方法包括虚拟机调度过程和虚拟机执行过程,其中, 所述虚拟机调度过程包括 接收用户提交的当前虚拟机的部署请求,依据各候选物理服务器的初始资源逻辑值将所述当前虚拟机的部署请求分发至目标物理服务器,并在所述目标物理服务器的虚拟机部署队列中添加所述当前虚拟机的部署请求; 依据所述当前虚拟机消耗的内存和硬盘资源更新所述目标物理服务器的初始资源逻辑值; 所述虚拟机执行部署过程包括 从目标物理服务器中的虚拟机部署队列中按照顺序获取待处理的虚拟机部署请求;当所述待处理的虚拟机的部署请求执行完毕后,依据所述虚拟机所消耗的内存和硬盘资源更新所述目标物理服务器的部署资源实际值; 依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值; 删除所述虚拟机部署队列中所述待处理的虚拟机的部署请求。
2.根据权利要求I所述的方法,其特征在于,所述依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值,包括 判断所述待处理的虚拟机的部署请求是否执行成功,如果是,则将所述部署资源逻辑值同步为更新后的部署资源实际值;如果否,则回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。
3.根据权利要求I所述的方法,其特征在于,还包括虚拟机删除过程,所述虚拟机删除过程包括 从目标物理服务器的虚拟机删除队列中获取待处理的虚拟机删除请求; 当所述虚拟机的删除脚本执行成功后,依据删除的虚拟机所占用的内存和硬盘资源更新所述目标物理服务器的删除资源实际值; 依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值; 在所述虚拟机删除队列中删除所述待处理的虚拟机删除请求。
4.根据权利要求3所述的方法,其特征在于,所述依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值,包括 判断所述目标物理服务器的虚拟机部署队列中是否为空,如果是,则将所述目标物理服务器的删除资源逻辑值同步为更新后的删除资源实际值;如果否,回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。
5.根据权利要求2或4所述的方法,其特征在于,所述同步的实现方式为 判断所述目标物理服务器中的虚拟机部署队列中是否有待处理的虚拟机的部署请求,如果否,则将所述目标物理服务器的当前内存和硬盘资源值确定为当前资源实际值,并将所述当前资源实际值赋值给当前资源逻辑值。
6.一种虚拟机调度和执行部署过程中的资源预处理系统,其特征在于,该系统包括虚拟机调度单元和虚拟机执行部署单元,其中,所述虚拟机调度单元包括接收模块、分发模块、建立请求模块和第一更新模块,其中,所述接收模块用于接收用户提交的当前虚拟机的部署请求,所述分发模块用于依据各候选物理服务器的初始资源逻辑值将所述当前虚拟机的部署请求分发至目标物理服务器,所述建立请求模块用于在所述目标物理服务器的虚拟机部署队列中添加所述当前虚拟机的部署请求;所述第一更新模块用于依据所述当前虚拟机消耗的内存和硬盘资源更新所述目标物理服务器的初始资源逻辑值; 所述虚拟机执行部署单元包括获取模块、第二更新模块、第三更新模块和第一删除模块,其中,所述获取模块用于从目标物理服务器中的虚拟机部署队列中按照顺序获取待处理的虚拟机部署请求;所述第二更新模块用于当所述待处理的虚拟机的部署请求执行完毕后,依据所述虚拟机所消耗的内存和硬盘资源更新所述目标物理服务器的部署资源实际值;所述第三更新模块用于依据更新后的部署资源实际值更新所述目标物理服务器的部署资源逻辑值;所述第一删除模块用于删除所述虚拟机部署队列中所述待处理的虚拟机的部署请求。
7.根据权利要求6所述的系统,其特征在于,所述第三更新模块包括 第一判断子模块,用于判断所述待处理的虚拟机的部署请求是否执行成功; 第一同步子模块,用于在所述判断子模块的结果为是的情况下,将所述部署资源逻辑值同步为更新后的部署资源实际值; 第一回收子模块,用于在所述判断子模块的结果为否的情况下,回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。
8.根据权利要求6所述的系统,其特征在于,还包括虚拟机删除单元,所述虚拟机删除单元包括 获取模块,用于从目标物理服务器的虚拟机删除队列中获取待处理的虚拟机删除请求; 第四更新模块,用于当所述虚拟机的删除脚本执行成功后,依据删除的虚拟机所占用的内存和硬盘资源更新所述目标物理服务器的删除资源实际值; 第五更新模块,用于依据更新后的删除资源实际值更新所述目标物理服务器的删除资源逻辑值; 第二删除模块,用于在所述虚拟机删除队列中删除所述待处理的虚拟机删除请求。
9.根据权利要求8任一项所述的系统,其特征在于,所述第五更新模块包括 第二判断子模块,用于判断所述目标物理服务器的虚拟机部署队列中是否为空; 第二同步子模块,用于在所述第二判断子模块的结果为是的情况下,将所述目标物理服务器的删除资源逻辑值同步为更新后的删除资源实际值; 第二回收子模块,用于在所述第二判断子模块的结果为否的情况下,回收所述目标物理服务器中已经分配给所述虚拟机的内存和硬盘资源。
10.根据权利要求9所述的系统,其特征在于,所述同步由资源同步单元实现,所述资源同步单元包括 第三判断子模块,用于判断所述目标物理服务器中的虚拟机部署队列中是否有待处理的虚拟机的部署请求; 确定子模块,用于在所述第三判断子模块的结果为否的情况下,将所述目标物理服务器 的当前内存和硬盘资源值确定为当前资源实际值,并将所述当前资源实际值赋值给当前资源逻辑值。
全文摘要
本申请实施例公开了一种虚拟机调度和执行部署过程中的资源预处理方法及系统。该方法包括虚拟机调度过程和虚拟机执行部署过程,虚拟机调度过程包括接收用户提交的当前虚拟机的部署请求,依据各候选物理服务器的初始资源逻辑值将所述当前虚拟机的部署请求分发至目标物理服务器,并在所述目标物理服务器的虚拟机部署队列中添加所述当前虚拟机的部署请求;依据所述当前虚拟机消耗的内存和硬盘资源更新所述目标物理服务器的初始资源逻辑值。本申请实施例可以通过资源实际值追踪和记录物理服务器的可用资源,又通过资源逻辑值为虚拟机调度决策提供准确的数据支持。
文档编号G06F9/48GK102946413SQ20121039491
公开日2013年2月27日 申请日期2012年10月17日 优先权日2012年10月17日
发明者周星, 王帅, 王蕾 申请人:北京搜狐新媒体信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1