CN103455378A - 一种虚拟化集群的资源分配方法、装置和系统 - Google Patents

一种虚拟化集群的资源分配方法、装置和系统 Download PDF

Info

Publication number
CN103455378A
CN103455378A CN2013104006036A CN201310400603A CN103455378A CN 103455378 A CN103455378 A CN 103455378A CN 2013104006036 A CN2013104006036 A CN 2013104006036A CN 201310400603 A CN201310400603 A CN 201310400603A CN 103455378 A CN103455378 A CN 103455378A
Authority
CN
China
Prior art keywords
resource
virtual machine
apportioning cost
resource pool
pool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2013104006036A
Other languages
English (en)
Inventor
于璠
刘力力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2013104006036A priority Critical patent/CN103455378A/zh
Publication of CN103455378A publication Critical patent/CN103455378A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明实施例公开了一种虚拟化集群的资源分配方法、装置和系统,涉及云计算领域,为使资源分配更合理而发明。该资源分配方法由集群侧管理中心设备执行,所述方法包括:计算虚拟化集群中虚拟机的资源需求值;根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池的结构、所述虚拟机的资源设置以及所述资源池的资源设置,确定所述虚拟机的资源分配值;将所述确定的资源分配值发送给所述虚拟机所属主机,以使所述主机按照所述资源分配值,为所述虚拟机分配资源,本发明可用于集群资源分配技术中。

Description

一种虚拟化集群的资源分配方法、装置和系统
技术领域
本发明涉及云计算领域,尤其涉及一种虚拟化集群的资源分配方法、装置和系统。
背景技术
近年来,为了提高计算机系统的能力(例如计算、存储等)而普遍采用云计算系统,其基本原理是用多台主机来协同求解同一问题。具体而言,云计算是通过将被求解的问题分解成若干个部分,每个部分均由一个独立的主机来并行地计算,从而实现计算机系统整体能力的提高。由于这个过程涉及到对各个主机的物理资源(例如CPU资源、内存资源,以下简称为资源)进行统一管理和调度,因此,在云计算领域中,在对各个主机的资源的管理和调度中,对资源进行分配时的资源分配方法尤为重要。
以往的资源分配方法是将多个主机设置成一个虚拟化的集群,并通过虚拟化技术将这些主机的物理资源统一抽象为该集群的集群资源池,以便通过该集群资源池来聚集这些主机的资源。在该方法中,首先在集群侧决定各个主机中所设置的各虚拟机(虚拟机是通过虚拟机技术在主机上借助软件等模拟出的虚拟主机)的资源分配,接着,为了使主机按照集群侧所决定的资源分配对其下的虚拟机分配资源,需要进一步将集群的资源池结构映射到主机,以将集群侧的资源池结构转换为主机侧的资源池结构,并按照该映射的主机的资源池结构来确定对于虚拟机的资源分配。
但是,上述资源分配方法存在如下问题:
由于是在集群侧决定资源分配,因而此时仅考虑了集群侧的资源池能力及结构。但是,实际执行资源分配的主体是虚拟机所属的各自的主机,因此需要将集群侧的资源池结构通过映射的方式转换为主机侧的资源池结构,从而通过映射使资源分配与主机自身的能力及结构相符,以确保资源分配不至于超出主机的实际能力。然而,不同于简单的数据传输,映射由于涉及集群与主机对应关系的复杂性,因此对带宽资源的要求很高,映射过程会消耗大量带宽资源,该情况下集群与主机之间的传输效率不佳,用户体验会受到影响。
发明内容
本发明的实施例提供一种虚拟化集群的资源分配方法,能够减少带宽资源的消耗,从而提高集群与主机之间的传输效率,提高用户体验。
本发明的第一方面,提供一种虚拟化集群的资源分配方法,由集群侧管理中心设备执行,所述方法包括:
计算虚拟化集群中虚拟机的资源需求值;
根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池的结构、所述虚拟机的资源设置以及所述资源池的资源设置,确定所述虚拟机的资源分配值;
将所述确定的资源分配值发送给所述虚拟机所属主机,以使所述主机按照所述资源分配值,为所述虚拟机分配资源。
在第一方面的第一种可能的实现方式中,所述分配的资源包括中央处理器CPU资源和内存资源;
所述计算虚拟化集群中虚拟机的资源需求值包括:
计算虚拟化集群中虚拟机的CPU资源需求值和内存资源需求值,其中:
所述CPU资源需求值=所述虚拟机CPU的当前使用量×(1+a%),
所述内存资源需求值=所述虚拟机内存的当前使用量+(所述虚拟机内存的规格-所述内存的当前使用量)×a%;
所述a为0至30之间的任意数值;
所述确定所述虚拟机的资源分配值包括:
确定所述虚拟机的中央处理器CPU资源分配值和内存资源分配值。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,
所述资源池的资源设置包括所述资源池的预留和上限;
所述虚拟机的资源设置包括所述虚拟机的预留和上限;
所述根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池结构、所述虚拟机的资源设置以及与所述虚拟机相关的资源池的资源设置,确定所述虚拟机的资源分配值包括:
根据所述计算的虚拟机的资源需求值和所述虚拟化集群的资源池结构,计算所述资源池的实际资源需求值,所述资源池的实际资源需求值等于所述资源池下的子资源池的资源需求值和所述资源池下的虚拟机的资源需求值之和;
根据所述资源池的实际资源需求值和所述资源池的资源设置,确定所述资源池的资源需求值,其中:
如果所述资源池的实际资源需求值小于所述资源池的预留,将所述资源池的预留确定为所述资源池的资源需求值;
如果所述资源池的实际资源需求值大于所述资源池的上限,将所述资源池的上限确定为所述资源池的资源需求值;
如果所述资源池的实际资源需求值在所述资源池的预留和上限之间,将所述资源池的实际资源需求值确定为所述资源池的资源需求值;
根据所述确定的所述资源池的资源需求值和所述资源池当前的资源分配值,确定所述虚拟机的资源分配值,其中:
如果所述确定的所述资源池的资源需求值小于或等于所述资源池当前的资源分配值,将所述子资源池的资源需求值确定为所述子资源池的资源分配值,其中:如果所述虚拟机的资源需求值小于等于所述虚拟机的上限,将所述虚拟机的资源需求值确定为所述虚拟机的资源分配值,如果所述虚拟机的资源需求值大于所述虚拟机的上限,将所述虚拟机的上限确定为所述虚拟机的资源分配值;
如果所述确定的所述资源池的资源需求值大于所述资源池当前的资源分配值,将所述子资源池的预留确定为所述子资源池的资源分配值,将所述虚拟机的预留确定为所述虚拟机的资源分配值。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,
所述资源池的资源设置还包括所述资源池的份额;
所述虚拟机的资源设置还包括所述虚拟机的份额;
所述根据所述确定的所述资源池的资源需求值和所述资源池当前的资源分配值,确定所述虚拟机的资源分配值后,所述方法还包括:
如果所述资源池的剩余可用资源大于0,并且所述资源池下的子资源池的资源需求值大于所述确定的子资源池的资源分配值和/或所述资源池下的虚拟机的资源需求值大于所述确定的虚拟机的资源分配值,按照所述子资源池和所述虚拟机的份额,计算所述剩余可用资源中分配给所述虚拟机的分配值;
根据所述计算的虚拟机的分配值,更新所述确定的虚拟机的资源分配值,所述更新后的资源分配值为所述计算的虚拟机的分配值和所述确定的虚拟机的资源分配值之和;
所述将所述确定的资源分配值发送给所述虚拟机所属主机包括:
将所述更新的资源分配值发送给所述虚拟机所属主机。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,
在所述根据所述计算的分配值,更新所述确定的虚拟机的资源分配值后,所述方法还包括:
当确定所述更新的资源分配值大于所述虚拟机的资源需求值时,将所述更新的资源分配值再次更新为所述虚拟机的资源需求值;
所述将所述更新的资源分配值发送给所述虚拟机所属主机包括:
将所述再次更新的资源分配值发送给所述虚拟机所属主机。
在第一方面的第五种可能的实现方式中,
在所述根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池结构、所述虚拟机的资源设置以及与所述虚拟机相关的资源池的资源设置,确定所述虚拟机的资源分配值之后,在所述将所述确定的资源分配值发送给所述虚拟机所属主机之前,所述方法还包括:
根据所述确定的虚拟机的资源分配值,计算所述主机下的所有虚拟机的资源分配值的总和;
确定所述总和是否大于所述主机的资源总量;
如果所述总和大于所述主机的资源总量,修改所述确定的虚拟机的资源分配值,所述修改后的资源分配值=所述确定的资源分配值×所述主机的资源总量/所述总和;
所述将所述确定的资源分配值发送给所述虚拟机所属主机包括:
将所述修改后的资源分配值发送给所述虚拟机所属主机。
本发明的第二方面,提供一种虚拟化集群的资源分配装置,设置在集群侧管理中心设备中,包括:
计算单元,计算虚拟化集群中虚拟机的资源需求值;
确定单元,与所述计算单元连接,根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池结构、所述虚拟机的资源设置以及与所述虚拟机相关的资源池的资源设置,确定所述虚拟机的资源分配值;
分配单元,与所述确定单元连接,将所述确定单元确定的资源分配值发送给所述虚拟机所属主机,以使所述主机按照所述资源分配值,为所述虚拟机分配资源。
在第二方面的第一种可能的实现方式中,所述主机分配的资源包括中央处理器CPU资源和内存资源;
所述计算单元具体用于计算虚拟化集群中虚拟机的CPU资源需求值和内存资源需求值,其中:
所述CPU资源需求值=所述虚拟机CPU的当前使用量×(1+a%),
所述内存资源需求值=所述虚拟机内存的当前使用量+(所述虚拟机内存的规格-所述内存的当前使用量)×a%;
所述a为0至30之间的任意数值;
所述确定单元具体用于确定所述虚拟机的中央处理器CPU资源分配值和内存资源分配值。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,
所述资源池的资源设置包括所述资源池的预留和上限;
所述虚拟机的资源设置包括所述虚拟机的预留和上限;
所述确定单元包括:
实际需求值计算模块,根据所述计算单元虚拟机的资源需求值和所述虚拟化集群的资源池结构,计算所述资源池的实际资源需求值,所述资源池的实际资源需求值等于所述资源池下的子资源池的资源需求值和所述资源池下的虚拟机的资源需求值之和;
需求值确定模块,与所述实际需求值计算模块连接,根据所述实际需求值计算模块计算的资源池的实际资源需求值和所述资源池的资源设置,确定所述资源池的资源需求值,其中:如果所述资源池的实际资源需求值小于所述资源池的预留,所述需求值确定模块将所述资源池的预留确定为所述资源池的资源需求值;如果所述资源池的实际资源需求值大于所述资源池的上限,所述需求值确定模块将所述资源池的上限确定为所述资源池的资源需求值;如果所述资源池的实际资源需求值在所述资源池的预留和上限之间,所述需求值确定模块将所述资源池的实际资源需求值确定为所述资源池的资源需求值;
分配值确定模块,与所述需求值确定模块连接,根据所述需求值确定模块确定的所述资源池的资源需求值和所述资源池当前的资源分配值,计算单元确定所述虚拟机的资源分配值,其中:如果所述确定的所述资源池的资源需求值小于或等于所述资源池当前的资源分配值,所述分配值确定模块将所述子资源池的资源需求值确定为所述子资源池的资源分配值,其中:如果所述分配值确定模块判断为所述虚拟机的资源需求值小于等于所述虚拟机的上限,将所述虚拟机的资源需求值确定为所述虚拟机的资源分配值,如果所述分配值确定模块判断为所述虚拟机的资源需求值大于所述虚拟机的上限,将所述虚拟机的上限确定为所述虚拟机的资源分配值;如果所述确定的所述资源池的资源需求值大于所述资源池当前的资源分配值,所述分配值确定模块将所述子资源池的预留确定为所述子资源池的资源分配值,计算单元将所述虚拟机的预留确定为所述虚拟机的资源分配值。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,
所述资源池的资源设置还包括所述资源池的份额;
所述虚拟机的资源设置还包括所述虚拟机的份额;
所述装置还包括:
剩余资源分配单元,与所述确定单元连接,如果所述资源池的剩余可用资源大于0,并且所述资源池下的子资源池的资源需求值大于所述分配值确定模块确定的子资源池的资源分配值和/或所述资源池下的虚拟机的资源需求值大于所述分配值确定模块确定的虚拟机的资源分配值,按照所述子资源池和所述虚拟机的份额,计算所述剩余可用资源中分配给所述虚拟机的分配值;
更新单元,与所述剩余资源分配单元连接,根据所述剩余资源分配单元计算的分配值,更新所述确定单元确定的所述虚拟机的资源分配值,所述更新单元更新后的资源分配值为所述剩余资源分配单元计算的分配值和所述分配值确定模块确定的虚拟机的资源分配值之和剩余资源分配单元分配值确定模块;
所述分配单元将所述更新单元所更新的资源分配值发送给所述虚拟机所属主机。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,
再次更新单元,与所述更新单元连接,当确定所述更新单元更新的资源分配值大于所述虚拟机的资源需求值时,将所述更新单元更新的资源分配值再次更新为所述虚拟机的资源需求值;
所述分配单元将所述再次更新单元再次更新的资源分配值发送给所述虚拟机所属主机。
在第二方面的第五种可能的实现方式中,
所述装置还包括:
分配值修改单元,与所述确定单元连接,根据所述确定单元确定的虚拟机的资源分配值,计算所述主机下的所有虚拟机的资源分配值的总和,确定所述总和是否大于所述主机的资源总量,如果所述总和大于所述主机的资源总量,修改所述确定的虚拟机的资源分配值,所述修改后的资源分配值=所述确定的资源分配值×所述主机的资源总量/所述总和;
所述分配单元将所述分配值修改单元修改后的资源分配值发送给所述虚拟机所属主机。
本发明的第三方面,提供一种虚拟化集群的资源分配系统,包括:本发明的第二方面至第二方面的第五种可能的实现方式任一项所述的虚拟化集群的资源再分配装置;以及
主机,与所述虚拟化集群的资源再分配装置连接,设置有至少一个虚拟机;
其中:
所述主机按照所述虚拟化集群的资源再分配装置所发送的资源分配值,为所述虚拟机分配资源。
本发明实施例中提供的虚拟化集群的资源分配方法、装置和系统,能够通过由集群侧管理中心设备执行主机中虚拟机的资源分配值的确定,并将该确定的资源分配值发送给虚拟机所属主机,以使主机按照资源分配值,为所述虚拟机分配资源。由此,该情况下,集群与主机之间仅涉及资源分配值这样的数据传输,减少了二者之间复杂的同步过程,降低了对带宽资源的要求,集群与主机之间的传输效率更高,可提高用户体验。
附图说明
图1为用于说明虚拟化集群的构成示意图;
图2为本发明的虚拟化集群的资源分配方法的一个实施例;
图3为图2所示虚拟化集群的资源分配方法的第一具体实施例;
图4为图2所示虚拟化集群的资源分配方法的第二具体实施例;
图5为图2所示虚拟化集群的资源分配方法的第三具体实施例;
图6为图2所示虚拟化集群的资源分配方法的第四具体实施例;
图7为作为本发明的虚拟化集群的资源分配方法的一个具体示例的集群侧结构的示意图;
图8为图7所示具体示例的流程示意图;
图9为本发明提供的虚拟化集群的资源分配装置的一个实施例;
图10为图9所示资源分配装置的第一具体实施例;
图11为图9所示资源分配装置的第二具体实施例;
图12为图9所示资源分配装置的第三具体实施例;
图13为图9所示资源分配装置的第四具体实施例;
图14为本发明提供的虚拟化集群的资源分配系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好的理解本发明的技术方案,首先结合图1,对本发明实施例中所涉及的部分技术术语进行简要介绍,具体如下:
主机:即物理计算机,用于提供资源。
虚拟化技术:包括用户可以在一台主机上模拟出一台或多台虚拟机的技术,这些虚拟机可以像真正的物理计算机那样进行工作,例如用户可以安装操作系统、安装应用程序、访问网络资源等。
虚拟机:通过系统的虚拟化技术,在一主机上虚拟出的虚拟主机,称为虚拟机。在同一主机上可以运行多个虚拟机,每个虚拟机上具有相应的机器名及独立的虚拟网络地址,用户对虚拟机的管理相互独立,各虚拟机使用各自被分配的资源。
虚拟化集群系统:是指由多台主机所组成的虚拟集群,其具有整体计算、存储、管理等性能。
资源池:其是用于灵活管理集群内的主机的资源的逻辑抽象,一般以层级结构进行分组。
节点:包括物理节点和虚拟节点。物理节点是构成集群的具备独立功能的实体,亦即主机;虚拟节点是在物理节点的基础上通过虚拟化技术虚拟出的节点。
为了便于理解集群的资源池的层级结构以及节点彼此的关系,结合图1中的示例来进行说明。图1中的资源池采用的是多层嵌套的树形结构,其中:根资源池101是将主机1~3的资源抽象得到的资源池,该根资源池101聚集了主机1~3的物理资源,属于该集群中的资源提供者;子资源池1、子资源池2位于该根资源池101的下层,并使用根资源池101所分配的资源,属于根资源池101的资源消耗者;虚拟机1、虚拟机2、虚拟机3分别位于子资源池1、子资源池2的下层,并使用各自所属资源池的资源,属于其子资源池的资源消耗者,由此可知,在该示例中,子资源池1、2在作为根资源池101的资源消耗者的同时,还作为其下层虚拟机及资源池的资源提供者;同样的,子资源池3位于子资源池1的下层,其与虚拟机1共同享有子资源池1的资源,并进一步向其下层的虚拟机4提供资源。另外,在该示例中,跟资源池、子资源池1~3、虚拟机1~4属于虚拟节点,这些节点同样具有层级结构,其所属的上一层节点称为父节点,相应地,其被称为该父节点的子节点,在该图1中,虚拟机2与虚拟机3处于同级,同属于子资源池2的子节点,该情况下,二者为彼此的兄弟节点。
一般而言,虚拟化技术用于以集群方式统一调度多台主机来协同解决问题、以及资源的整合利用。另外,由于虚拟化技术允许在一台主机上运行多个虚拟机,因而能够在一台主机上同时运行多个操作系统。由于此时应用程序可以在相互独立的空间内运行而互不影响,因此,能够提高单个主机的工作效率,在此基础上提高整个集群的工作效率。
实施例一
下面,通过图2所示的实施例对本发明的虚拟化集群的资源分配方法进行说明。
参照图2,本发明实施例的虚拟化集群的资源分配方法由集群侧管理中心设备执行,需要说明的是,该集群侧管理中心设备可以直接利用集群中的某一台主机、也可以独立于集群中的主机而单独设置的服务器、还可以利用某一台主机上所设置的虚拟机。无论上述哪一种集群侧管理中心设备,均可设置成以独立的系统供资源分配所使用,因而均可执行本发明的虚拟化集群的资源分配方法。
该虚拟化集群的资源分配方法包括下述步骤201~203。
201,计算虚拟化集群中虚拟机的资源需求值。
其中,虚拟机的资源需求值表示虚拟机对某一物理资源的需求量,在具体应用中,分配的资源包括中央处理器CPU资源和内存资源。该资源需求值可通过多种方式获得。例如,可以检测虚拟机对某一资源的当前使用量,并将其当前使用量视为虚拟机对该资源的需求值;或者,为了使资源需求值更准确,也可以在预定时间内多次检测虚拟机对某一资源的使用量,并将多个使用量的平均值视为虚拟机对该资源的需求值。本发明实施例对该资源需求值的计算方法不作限定,本领域技术人员可以自由选择。
在本发明实施例中,计算虚拟化集群中虚拟机的资源需求值包括:
计算虚拟化集群中虚拟机的CPU资源需求值和内存资源需求值,其中:
CPU资源需求值=虚拟机CPU的当前使用量×(1+a%),
内存资源需求值=虚拟机内存的当前使用量+(虚拟机内存的规格-内存的当前使用量)×a%;
a为0至30之间的任意数值。
其中,虚拟机内存的规格是指虚拟机所指定的内存容量,其表示虚拟机被赋予的存储能力。
虽然该实施例以分配的资源为中央处理器CPU资源和内存资源为例来进行说明,但是,实际上可分配的资源不局限于上述中央处理器CPU资源和内存资源,举例而言,其还可以是网络资源、电力资源,本发明实施例对此不作限定,本领域技术人员可以任意选择。
202,根据所计算的虚拟机的资源需求值、虚拟化集群的资源池的结构、虚拟机的资源设置以及资源池的资源设置,确定虚拟机的资源分配值。
其中,虚拟化集群的资源池结构主要是指各资源池及虚拟机在集群中的层级结构;虚拟机的资源分配值是指要分配给各虚拟机的资源的分配量。
在具体应用中,资源池的资源设置包括资源池的预留和上限;虚拟机的资源设置包括虚拟机的预留和上限。这里,预留用于指定保证为资源池或虚拟机分配的最少资源量,上限用于指定为资源池或虚拟机提供的资源的最大限制。
在此步骤中,确定虚拟机的资源分配值具体为确定所述虚拟机的中央处理器CPU资源分配值和内存资源分配值。
在该情况下,如图3所示,步骤202包括:
2021,根据计算的虚拟机的资源需求值和虚拟化集群的资源池结构,计算资源池的实际资源需求值,资源池的实际资源需求值等于资源池下的子资源池的资源需求值和资源池下的虚拟机的资源需求值之和。
具体而言,根据虚拟化集群的资源池结构所示出的各资源池及虚拟机在集群中的层级结构,可以明确各资源池各自包含的资源池和/或虚拟机。在资源池包括子资源池和虚拟机的情况下,该资源池的实际资源需求值等于其下的子资源池的资源需求值和所述资源池下的虚拟机的资源需求值之和;在资源池下仅包括子虚拟机而不包括子资源池的情况下,相当于资源池的资源需求值为零,因而此时该资源池的实际资源需求值等于该资源池下的全部虚拟机的资源需求值之和。
2022,根据资源池的实际资源需求值和资源池的资源设置,确定资源池的资源需求值,其中:
如果资源池的实际资源需求值小于资源池的预留,将资源池的预留确定为资源池的资源需求值;
如果资源池的实际资源需求值大于资源池的上限,将资源池的上限确定为资源池的资源需求值;
如果资源池的实际资源需求值在资源池的预留和上限之间,将资源池的实际资源需求值确定为资源池的资源需求值;
具体而言,当资源池的实际资源需求值小于资源池的预留时,由于预留是用于指定保证为资源池或虚拟机分配的最小资源量,因此,虽然此时实际资源需求值小于资源池的预留,但为了确保虚拟集群系统的正常运行,仍要将资源池的预留确定为资源池的资源需求值。当资源池的实际资源需求值大于资源池的上限时,由于上限所指定的是对资源池提供的资源的最大限制,因此,此时意味着资源池的实际资源需求是当前所无法满足的,但为了在最大程度上满足资源池的需求,因而将资源池的上限确定为资源池的资源需求值。除上述情况以外,当资源池的实际资源需求值在资源池的预留和上限之间时,属于可正常分配资源的范围内,因而按照该实际资源需求值分配与该值相等的资源即可。
2023,根据确定的资源池的资源需求值和资源池当前的资源分配值,确定虚拟机的资源分配值,其中:
如果确定的资源池的资源需求值小于或等于资源池当前的资源分配值,将子资源池的资源需求值确定为该子资源池的资源分配值,其中:如果所述虚拟机的资源需求值小于等于所述虚拟机的上限,将虚拟机的资源需求值确定为该虚拟机的资源分配值,如果所述虚拟机的资源需求值大于所述虚拟机的上限,将所述虚拟机的上限确定为所述虚拟机的资源分配值;
如果确定的资源池的资源需求值大于资源池当前的资源分配值,将子资源池的预留确定为该子资源池的资源分配值,将虚拟机的预留确定为该虚拟机的资源分配值。
其中,资源池当前的资源分配值表示该资源池当前被分配的资源量,虚拟机当前的资源分配值表示该虚拟机当前被分配的资源量。
举例而言,当确定的资源池的资源需求值小于或等于资源池当前的资源分配值时,例如,确定的资源池的资源需求值为4GHz,资源池当前的资源分配值为6GHz,此时资源需求值小于当前的资源分配值,为了减少因分配超过需求所造成的资源浪费,因而其下子资源池的资源需求值被确定为该子资源池的资源分配值,同样,当虚拟机的资源需求值小于等于虚拟机的上限时,其下虚拟机的资源需求值被确定为该虚拟机的资源分配值。这里,需要说明的是,由于超过虚拟机的上限这部分需求无法实现,因而当虚拟机的资源需求值大于虚拟机的上限时,为了尽可能地满足该需求并同时实现资源的正常分配,将虚拟机的上限确定为所述虚拟机的资源分配值。反之,当确定的资源池的资源需求值大于资源池当前的资源分配值时,例如,确定的资源池的资源需求值为6GHz,资源池当前的资源分配值为4GHz,此时资源需求值大于当前的资源分配值。与上述情况不同的是,分配不足以满足需求,为了优化资源的分配,直接将其下子资源池的预留确定为该子资源池的资源分配值,同样,其下虚拟机的预留确定为该虚拟机的资源分配值。
可选地,资源池的资源设置还包括资源池的份额;虚拟机的资源设置包括虚拟机的份额。
在此,份额指的是资源池或虚拟机拥有的、相对于父节点的资源份值,份额的大小反映了资源池或虚拟机的优先级及重要性。份额可由操作人员通过集群侧管理中心设备根据资源池、虚拟机的重要程度来设置,其可以被设置为具体数字,也可以简单地设置为高、中、低,但无论哪种设置方式,均会对资源分配过程中的优先级起到决定性作用。
具体而言,当同一父节点下的两个子节点出现资源竞争时,由各自的份额决定其各自应得到的资源。操作人员基于各节点的重要性(例如可考虑该节点对应用户的重要性、缴费情况等),判断哪个子节点所需的资源更多,并根据该判断结果,决定两个子节点各自的份额,例如将更重要的节点的份额设置得较高,将不重要的节点的份额调低。
可以理解的是,通过设置份额,可以指定各节点对资源的优先级,从而能够在兄弟节点之间根据需要来分配资源。
该情况下,如图4所示,在步骤2023后,所述方法还包括:
2024,如果资源池的剩余可用资源大于0,并且资源池下的子资源池的资源需求值大于确定的子资源池的资源分配值和/或资源池下的虚拟机的资源需求值大于确定的虚拟机的资源分配值,按照子资源池和虚拟机的份额,计算剩余可用资源中分配给虚拟机的分配值。其中,子资源池即所述资源池的子节点,位于该资源池的下层。
2025,根据计算的分配值,更新确定的虚拟机的资源分配值,更新后的资源分配值为计算的虚拟机的分配值和确定的虚拟机的资源分配值之和。
举例而言,假设在计算剩余可用资源前为该虚拟机1确定的资源分配值为4G,并且计算后剩余可用资源中可分配给虚拟机1的分配值为1G的情况下,则该虚拟机的更新后的资源分配值=确定的资源分配值4G+计算的分配值1G=5G。
相应的,在此情况下,将所述确定的资源分配值发送给所述虚拟机所属主机即是将所述更新的资源分配值发送给所述虚拟机所属主机。
可以理解的是,由于在该实施例中考虑到剩余可用资源的再次利用,并对其进一步分配使用,因而能够提高资源的利用率。
进一步地,在具体应用中,如图5所示,在步骤2025后,所述方法还可包括:
2026,当确定更新的资源分配值大于虚拟机的资源需求值时,将更新的资源分配值再次更新为虚拟机的资源需求值。
可以理解的是,对子资源池或虚拟机而言,当更新的资源分配值大于资源需求值时,都意味着分配量会超过实际需要的需求量,此时将形成资源的过度分配而造成浪费。因此,通过将该更新的资源分配值再次更新为其资源需求值,能够确保资源分配值与资源需求值一致,以避免这部分资源的浪费。
回到图2,在最后的步骤203中,将确定的资源分配值发送给该虚拟机所属主机,以使主机按照资源分配值,为虚拟机分配资源。
需要说明的是,在上述包括2025中的更新步骤的实施例的情况下,则在其后续步骤203中,将确定的资源分配值发送给该虚拟机所属主机包括:将更新的资源分配值发送给该虚拟机所属主机。
相应的,在上述包括2026中的再次更新步骤的实施例的情况下,则在其后续步骤203中,将确定的资源分配值发送给该虚拟机所属主机包括:将再次更新的资源分配值发送给该虚拟机所属主机。
综上所述,根据本发明实施方式,提供一种虚拟化集群的资源分配方法,能够通过由集群侧管理中心设备执行主机中虚拟机的资源分配值的确定,并将该确定的资源分配值发送给虚拟机所属主机,以使主机按照资源分配值,为所述虚拟机分配资源。由此,该情况下,集群与主机之间仅涉及资源分配值这样的数据传输,减少了二者之间复杂的同步过程,降低了对带宽资源的要求,集群与主机之间的传输效率更高,可提高用户体验。
实施例二
在本发明实施例二中,提供一种虚拟化集群的资源分配方法,如图6所示,其包括下述步骤601~604。
601,计算虚拟化集群中虚拟机的资源需求值。
602,根据所计算的虚拟机的资源需求值、虚拟化集群的资源池的结构、虚拟机的资源设置以及资源池的资源设置,确定虚拟机的资源分配值。
该步骤601、602可分别参照实施例1的步骤201、202,在此不再赘述。
603,根据确定的虚拟机的资源分配值,计算主机下的所有虚拟机的资源分配值的总和,并确定总和是否大于主机的资源总量。
如果总和大于主机的资源总量,修改确定的虚拟机的资源分配值,修改后的资源分配值=确定的资源分配值×主机的资源总量/总和。
在该实施例中,在虚拟机的资源分配值的总和大于主机的资源总量的情况下,可以通过上述计算式对资源分配值予以修正,使得修正后的资源分配值的总和必然小于或等于主机的资源总量,避免超出主机的资源总量的情况的发生。
604,将确定的资源分配值发送给虚拟机所属主机,具体而言,将该修改后的资源分配值发送给虚拟机所属主机,以使主机按照资源分配值,为虚拟机及资源池分配资源。
该情况下,由于资源分配值已经在集群侧被计算及修正,因而可以更有效地避免分配超出主机容量的情况。
当然,可以理解的是,上述实施例一与实施例二的步骤是可以彼此结合的,即,在实施例二的步骤603之前,执行实施例一的步骤2021~2026的方案是可行的。
实施例三
下面通过一个具体实施例,对本发明实施例提供的虚拟化集群的资源分配方法进一步说明。
如图7所示,在该具体实施例中,为了便于理解,以分配主机1及主机2的CPU资源为例进行说明。在该实施例中,通过虚拟化技术,将主机1、主机2(图中未对主机进行单独图示)这两台主机的CPU资源抽象为一个集群的根资源池701,另外,在主机1上设置有虚拟机1及虚拟机2,在主机2上设置有虚拟机3及虚拟机4。其中,主机1、主机2各自的CPU资源均为6GHz,在该情况下,根资源池601的CPU资源即为两台主机之和6GHz+6GHz=12GHz。
另外,在本实施例中,为了确保资源分配的定期执行而设置有定时器。该定时器可设置在集群侧管理中心设备内、或者独立设置在集群侧管理中心设备外部,在本实施例中,定时器每半小时启动一次,从而虚拟化集群的资源分配方法每半小时执行一次。
可以理解的是,该定时器每半小时启动一次的频率仅为示例,其启动频率可以根据需要设置为每3分钟、每20分钟、每小时等。此外,本发明实施例的虚拟化集群的资源分配方法也不限于必须依赖于定时器的启动来触发,例如,可以通过设置事件触发器来代替定时器,该情况下,当事件触发器判断为发生了预定事件时,则事件触发器触发资源分配方法的执行,其中,预定事件例如规定了如下事件:在该集群中添加或删除主机、主机上的虚拟机被关闭或开启、资源池结构或资源设置改变等,并在当上述事件产生时,事件触发器触发使得资源分配方法被执行。因此,本发明实施例对此不做限定,本领域技术人员可以任意地选择。
下面进一步结合图8来说明本实施例的流程。在定时器启动后,首先,在步骤801中,集群侧管理中心设备计算虚拟化集群中虚拟机的CPU资源需求值。具体而言,基于上述CPU资源需求值=虚拟机CPU的当前使用量×(1+a%)的计算式,在本具体实施例中,为了便于说明,将a设为20。
该情况下,可以得到以下结果:
虚拟机1的CPU资源需求值=其当前使用量4GHz×(1+20%)=4.8GHz;
虚拟机2~虚拟机3的CPU资源需求值=其各自的当前使用量2GHz×(1+20%)=2.4GHz;
虚拟机4的CPU资源需求值=其当前使用量1GHz×(1+20%)=1.2GHz。
接着,在步骤802中,根据上面所计算的各个虚拟机的资源需求值和该虚拟化集群的资源池结构,计算资源池的实际资源需求值。
在本具体实施例中,可以得到以下结果:
子资源池1的实际资源需求值为其下子资源池与虚拟机的资源需求值之和,由于其下不包括子资源池,仅包括虚拟机1~2,因此子资源池1的实际资源需求值=4.8GHz+2.4GHz=7.2GHz;子资源池2的实际资源需求值为2.4GHz+1.2GHz=3.6GHz。
在接下来的步骤803中,根据资源池的实际资源需求值和资源池的资源设置,确定资源池的资源需求值。在该具体实施例中,子资源池1的预留为4GHz、上限为8GHz;子资源池2的预留为1GHz、上限为4GHz。按照上述的资源需求值的确定方式:如果资源池的实际资源需求值小于资源池的预留,将资源池的预留确定为资源池的资源需求值;如果资源池的实际资源需求值大于资源池的上限,将资源池的上限确定为资源池的资源需求值;如果资源池的实际资源需求值在资源池的预留和上限之间,将资源池的实际资源需求值确定为资源池的资源需求值。由于在该情况下,计算得到的资源池1的实际资源需求值7.2GHz位于其预留4GHz与上限8GHz之间,资源池2的实际资源需求值3.6GHz在其预留1GHz与上限4GHz之间,因此,将子资源池1、子资源池2各自的实际资源需求值7.2GHz、3.6GHz设为其资源需求值。
之后,在步骤804中,根据确定的资源池的资源需求值和资源池当前的资源分配值,确定虚拟机及资源池的资源分配值。在该具体实施例,设子资源池1的当前的资源分配值为4GHz;子资源池2的当前的资源分配值为8GHz。该情况下,根据前述对资源分配值的确定方法(如果确定的资源池的资源需求值小于或等于资源池当前的资源分配值,将子资源池的资源需求值确定为该子资源池的资源分配值;如果所述确定的所述资源池的资源需求值大于所述资源池当前的资源分配值,将所述子资源池的预留确定为所述子资源池的资源分配值),对确定的资源池的资源需求值与资源池当前的资源分配值的大小进行比较。在该实施例中,子资源池1的资源需求值7.2GHz大于其当前的资源分配值4GHz,因此子资源池1的资源分配值为该资源池1的预留4GHz,子资源池2的资源需求值3.6GHz小于其当前的资源分配值8GHz,因此子资源池2的资源分配值分别为3.6GHz。相应的,虚拟机1~2的资源分配值分别为其预留2GHz、2GHz。另外,在实施例中,虚拟机3~4的上限均为4GHz,由于虚拟机3~4的资源需求值2.4GHz、1.2GHz均小于该上限,从而在该条件下,虚拟机3~4的资源分配值分别为其资源需求值2.4GHz、1.2GHz。
接下来,在步骤805中,计算剩余可用资源的分配值。该情况下,根资源池尚有12GHz-(4GHz+3.6GHz)=4.4GHz的资源剩余。此时,由于该集群中仅设置有虚拟机1~4,且此时资源池1以及虚拟机1~2的资源需求值大于资源分配值,因此继续对剩余资源进行分配。此时,由于子资源池2的资源需求值不大于资源分配值,因而根资源池将剩余资源全部分配给子资源池1。当然可以理解的是,如果是在子资源池2的资源需求值也大于资源分配值的情况下,则按照子资源池1、2的份额对剩余资源进行分配。在该实施例中,子资源池1获得的剩余资源=4.4GHz,子资源池2获得的剩余资源=0GHz。相应的,按照虚拟机1~2各自的份额分配该剩余资源,虚拟机1获得的剩余资源=子资源池1的剩余资源4.4GHz×500/(500+500)=2.2GHz,虚拟机2获得的剩余资源=子资源池1的剩余资源4.4GHz×500/(500+500)=2.2GHz。
在接下来的步骤806中,根据计算的分配值,更新确定的虚拟机的资源分配值,更新后的资源分配值为所述计算的分配值和所述确定的所述虚拟机的资源分配值之和。
在该实施例中,虚拟机1的更新的资源分配值=2GHz+2.2GHz=4.2GHz,虚拟机2的更新的资源分配值=2GHz+2.2GHz=4.2GHz。
进一步地,在步骤807中,更新虚拟机的资源需求值。具体而言,通过比较更新的资源分配值与虚拟机的资源需求值的大小,其中虚拟机2的更新的资源分配值4.2GHz大于其需求值2.4GHz,因此将更新的虚拟机1~4的资源分配值再次更新为该虚拟机的资源需求值,即更新的虚拟机2的资源分配值分别为2.4GHz。剩余的资源可分配给作为其兄弟节点的虚拟机1,以满足其对资源的需求,因此虚拟机1的资源分配值=4.2GHz+1.8GHz=6GHz。
在该情况下,在步骤808中,修改虚拟机的资源分配值。具体而言,判断主机下的所有虚拟机的资源分配值的总和是否大于该主机的资源总量。由于主机1上的虚拟机的资源分配值的总和=6.0GHz+2.4GHz=8.4GHz,超出了该主机的资源总量6GHz,此时意味着主机无法满足当前的资源分配要求,由此,修改后虚拟机的资源分配值=确定的资源分配值×主机的资源总量/总和,在本实施例中,即,修改后虚拟机1的资源分配值=6.0GHz×6GHz/8.4GHz=4.29GHz,修改后虚拟机2的资源分配值=2.4GHz×6GHz/8.4GHz=1.71GHz。另一方面,主机2上的虚拟机的资源分配值的总和=2.4GHz+1.2GHz=3.6GHz,未超出主机的资源总量6GHz,因此无需对资源分配值进行修改。
至此,由集群侧执行的对资源的分配全部完成,并将最终再次更新的虚拟机1~4的资源分配值发送至主机,主机即可直接按照该值对虚拟机分配资源。
与前文的虚拟化集群的资源分配方法的实施例相对应,如图9所示,本发明的实施例还提供了一种虚拟化集群的资源分配装置900,该装置的工作原理可以参照之前对于方法的描述,这里不再赘述。具体而言,资源分配装置900设置在集群侧管理中心设备中,包括:
计算单元901,计算虚拟化集群中虚拟机的资源需求值;
确定单元902,与计算单元901连接,根据计算单元901计算的虚拟机的资源需求值、虚拟化集群的资源池结构、虚拟机的资源设置以及与虚拟机相关的资源池的资源设置,确定虚拟机的资源分配值;
分配单元903,与确定单元902连接,将确定单元902确定的资源分配值发送给虚拟机所属主机,以使其主机按照该资源分配值,为虚拟机分配资源。
其中,主机分配的资源包括中央处理器CPU资源和内存资源;
计算单元901具体用于计算虚拟化集群中虚拟机的CPU资源需求值和内存资源需求值,其中:
CPU资源需求值=虚拟机CPU的当前使用量×(1+a%),
内存资源需求值=虚拟机内存的当前使用量+(虚拟机内存的规格-内存的当前使用量)×a%;
a为0至30之间的任意数值;
确定单元902具体用于确定虚拟机的中央处理器CPU资源分配值和内存资源分配值。
可选地,在本发明的一个实施例中,如图10所示,资源池的资源设置包括资源池的预留和上限;虚拟机的资源设置包括虚拟机的预留和上限;
确定单元902包括:
实际需求值计算模块9021,根据计算单元901计算的虚拟机的资源需求值和虚拟化集群的资源池结构,计算资源池的实际资源需求值,资源池的实际资源需求值等于资源池下的子资源池的资源需求值和资源池下的虚拟机的资源需求值之和;
需求值确定模块9022,与实际需求值计算模块9021连接,根据实际需求值计算模块9021计算的资源池的实际资源需求值和资源池的资源设置,确定资源池的资源需求值,其中:如果资源池的实际资源需求值小于资源池的预留,需求值确定模块9022将资源池的预留确定为资源池的资源需求值;如果资源池的实际资源需求值大于资源池的上限,需求值确定模块9022将资源池的上限确定为资源池的资源需求值;如果资源池的实际资源需求值在资源池的预留和上限之间,需求值确定模块9022将资源池的实际资源需求值确定为资源池的资源需求值;
分配值确定模块9023,与需求值确定模块9022连接,根据需求值确定模块9022确定的资源池的资源需求值和资源池当前的资源分配值,确定虚拟机的资源分配值,其中:如果确定的资源池的资源需求值小于或等于资源池当前的资源分配值,分配值确定模块9023将子资源池的资源需求值确定为子资源池的资源分配值,其中:如果分配值确定模块9023判断为虚拟机的资源需求值小于等于虚拟机的上限,将虚拟机的资源需求值确定为虚拟机的资源分配值,如果分配值确定模块9023判断为虚拟机的资源需求值大于虚拟机的上限,将虚拟机的上限确定为虚拟机的资源分配值;如果确定的资源池的资源需求值大于资源池当前的资源分配值,分配值确定模块9023将子资源池的预留确定为子资源池的资源分配值,将虚拟机的预留确定为虚拟机的资源分配值。
具体地,在本发明一个实施例中,如图11所示,资源池的资源设置还包括资源池的份额;
虚拟机的资源设置包括虚拟机的份额;
装置还包括:
剩余资源分配单元904,与确定单元902连接,如果资源池的剩余可用资源大于0,并且资源池下的子资源池的资源需求值大于确定的子资源池的资源分配值和/或资源池下的虚拟机的资源需求值大于确定的虚拟机的资源分配值,按照子资源池和虚拟机的份额,计算剩余可用资源中分配给虚拟机的分配值;
更新单元905,与剩余资源分配单元904连接,根据剩余资源分配单元904计算的分配值,更新确定单元902确定的虚拟机的资源分配值,更新后的资源分配值为计算的分配值和确定的虚拟机的资源分配值之和;
分配单元903将更新单元905所更新的资源分配值发送给虚拟机所属主机。
进一步地,在本发明的一个实施例中,如图12所示,装置还包括:
再次更新单元906,与更新单元905连接,当确定更新单元905更新的资源分配值大于虚拟机的资源需求值时,将更新单元905更新的资源分配值再次更新为虚拟机的资源需求值;
分配单元903将再次更新单元906再次更新的资源分配值发送给虚拟机所属主机。
在本发明的另一实施例中,如图13所示,装置还可包括:
分配值修改单元907,与确定单元902连接,根据确定单元902确定的虚拟机的资源分配值,计算主机下的所有虚拟机的资源分配值的总和,确定总和是否大于主机的资源总量,如果总和大于主机的资源总量,修改确定的虚拟机的资源分配值,修改后的资源分配值=确定的资源分配值×主机的资源总量/总和;
分配单元903将分配值修改单元907修改后的资源分配值发送给虚拟机所属主机。
本发明还提供一种虚拟化集群的资源分配系统,如图14所示,其可包括前述虚拟化集群的资源再分配装置800;以及主机200,与虚拟化集群100的资源再分配装置800连接,设置有至少一个虚拟机;其中:主机200按照虚拟化集群的资源再分配装置800所发送的资源分配值,为虚拟机分配资源。
该系统的工作原理可以参照之前对于方法的描述,这里不再赘述。
综上所述,本发明能够通过由集群侧管理中心设备执行主机中虚拟机的资源分配值的确定,并将该确定的资源分配值发送给虚拟机所属主机,以使主机按照资源分配值,为所述虚拟机分配资源。由此,该情况下,集群与主机之间仅需资源分配值的传输,无须同步过程,减少了带宽资源的消耗,传输速度更快,可提高用户体验。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (13)

1.一种虚拟化集群的资源分配方法,其特征在于,由集群侧管理中心设备执行,所述方法包括:
计算虚拟化集群中虚拟机的资源需求值;
根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池的结构、所述虚拟机的资源设置以及所述资源池的资源设置,确定所述虚拟机的资源分配值;
将所述确定的资源分配值发送给所述虚拟机所属主机,以使所述主机按照所述资源分配值,为所述虚拟机分配资源。
2.根据权利要求1所述的方法,其特征在于,
所述分配的资源包括中央处理器CPU资源和内存资源;
所述计算虚拟化集群中虚拟机的资源需求值包括:
计算虚拟化集群中虚拟机的CPU资源需求值和内存资源需求值,其中:
所述CPU资源需求值=所述虚拟机CPU的当前使用量×(1+a%),
所述内存资源需求值=所述虚拟机内存的当前使用量+(所述虚拟机内存的规格-所述内存的当前使用量)×a%;
所述a为0至30之间的任意数值;
所述确定所述虚拟机的资源分配值包括:
确定所述虚拟机的中央处理器CPU资源分配值和内存资源分配值。
3.根据权利要求1或2所述的方法,其特征在于,
所述资源池的资源设置包括所述资源池的预留和上限;
所述虚拟机的资源设置包括所述虚拟机的预留和上限;
所述根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池结构、所述虚拟机的资源设置以及与所述虚拟机相关的资源池的资源设置,确定所述虚拟机的资源分配值包括:
根据所述计算的虚拟机的资源需求值和所述虚拟化集群的资源池结构,计算所述资源池的实际资源需求值,所述资源池的实际资源需求值等于所述资源池下的子资源池的资源需求值和所述资源池下的虚拟机的资源需求值之和;
根据所述资源池的实际资源需求值和所述资源池的资源设置,确定所述资源池的资源需求值,其中:
如果所述资源池的实际资源需求值小于所述资源池的预留,将所述资源池的预留确定为所述资源池的资源需求值;
如果所述资源池的实际资源需求值大于所述资源池的上限,将所述资源池的上限确定为所述资源池的资源需求值;
如果所述资源池的实际资源需求值在所述资源池的预留和上限之间,将所述资源池的实际资源需求值确定为所述资源池的资源需求值;
根据所述确定的所述资源池的资源需求值和所述资源池当前的资源分配值,确定所述虚拟机的资源分配值,其中:
如果所述确定的所述资源池的资源需求值小于或等于所述资源池当前的资源分配值,将所述子资源池的资源需求值确定为所述子资源池的资源分配值,其中:如果所述虚拟机的资源需求值小于等于所述虚拟机的上限,将所述虚拟机的资源需求值确定为所述虚拟机的资源分配值,如果所述虚拟机的资源需求值大于所述虚拟机的上限,将所述虚拟机的上限确定为所述虚拟机的资源分配值;
如果所述确定的所述资源池的资源需求值大于所述资源池当前的资源分配值,将所述子资源池的预留确定为所述子资源池的资源分配值,将所述虚拟机的预留确定为所述虚拟机的资源分配值。
4.根据权利要求3所述的方法,其特征在于,
所述资源池的资源设置还包括所述资源池的份额;
所述虚拟机的资源设置还包括所述虚拟机的份额;
所述根据所述确定的所述资源池的资源需求值和所述资源池当前的资源分配值,确定所述虚拟机的资源分配值后,所述方法还包括:
如果所述资源池的剩余可用资源大于0,并且所述资源池下的子资源池的资源需求值大于所述确定的子资源池的资源分配值和/或所述资源池下的虚拟机的资源需求值大于所述确定的虚拟机的资源分配值,按照所述子资源池和所述虚拟机的份额,计算所述剩余可用资源中分配给所述虚拟机的分配值;
根据所述计算的虚拟机的分配值,更新所述确定的虚拟机的资源分配值,所述更新后的资源分配值为所述计算的虚拟机的分配值和所述确定的虚拟机的资源分配值之和;
所述将所述确定的资源分配值发送给所述虚拟机所属主机包括:
将所述更新的资源分配值发送给所述虚拟机所属主机。
5.根据权利要求4所述的方法,其特征在于,在所述根据所述计算的分配值,更新所述确定的虚拟机的资源分配值后,所述方法还包括:
当确定所述更新的资源分配值大于所述虚拟机的资源需求值时,将所述更新的资源分配值再次更新为所述虚拟机的资源需求值;
所述将所述更新的资源分配值发送给所述虚拟机所属主机包括:
将所述再次更新的资源分配值发送给所述虚拟机所属主机。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池结构、所述虚拟机的资源设置以及与所述虚拟机相关的资源池的资源设置,确定所述虚拟机的资源分配值之后,在所述将所述确定的资源分配值发送给所述虚拟机所属主机之前,所述方法还包括:
根据所述确定的虚拟机的资源分配值,计算所述主机下的所有虚拟机的资源分配值的总和;
确定所述总和是否大于所述主机的资源总量;
如果所述总和大于所述主机的资源总量,修改所述确定的虚拟机的资源分配值,所述修改后的资源分配值=所述确定的资源分配值×所述主机的资源总量/所述总和;
所述将所述确定的资源分配值发送给所述虚拟机所属主机包括:
将所述修改后的资源分配值发送给所述虚拟机所属主机。
7.一种虚拟化集群的资源分配装置,设置在集群侧管理中心设备中,其特征在于,包括:
计算单元,计算虚拟化集群中虚拟机的资源需求值;
确定单元,与所述计算单元连接,根据所述计算的虚拟机的资源需求值、所述虚拟化集群的资源池结构、所述虚拟机的资源设置以及与所述虚拟机相关的资源池的资源设置,确定所述虚拟机的资源分配值;
分配单元,与所述确定单元连接,将所述确定单元确定的资源分配值发送给所述虚拟机所属主机,以使所述主机按照所述资源分配值,为所述虚拟机分配资源。
8.根据权利要求7所述的装置,其特征在于,
所述主机分配的资源包括中央处理器CPU资源和内存资源;
所述计算单元具体用于计算虚拟化集群中虚拟机的CPU资源需求值和内存资源需求值,其中:
所述CPU资源需求值=所述虚拟机CPU的当前使用量×(1+a%),
所述内存资源需求值=所述虚拟机内存的当前使用量+(所述虚拟机内存的规格-所述内存的当前使用量)×a%;
所述a为0至30之间的任意数值;
所述确定单元具体用于确定所述虚拟机的中央处理器CPU资源分配值和内存资源分配值。
9.根据权利要求7或8所述的装置,其特征在于,
所述资源池的资源设置包括所述资源池的预留和上限;
所述虚拟机的资源设置包括所述虚拟机的预留和上限;
所述确定单元包括:
实际需求值计算模块,根据所述计算单元虚拟机的资源需求值和所述虚拟化集群的资源池结构,计算所述资源池的实际资源需求值,所述资源池的实际资源需求值等于所述资源池下的子资源池的资源需求值和所述资源池下的虚拟机的资源需求值之和;
需求值确定模块,与所述实际需求值计算模块连接,根据所述实际需求值计算模块计算的资源池的实际资源需求值和所述资源池的资源设置,确定所述资源池的资源需求值,其中:如果所述资源池的实际资源需求值小于所述资源池的预留,所述需求值确定模块将所述资源池的预留确定为所述资源池的资源需求值;如果所述资源池的实际资源需求值大于所述资源池的上限,所述需求值确定模块将所述资源池的上限确定为所述资源池的资源需求值;如果所述资源池的实际资源需求值在所述资源池的预留和上限之间,所述需求值确定模块将所述资源池的实际资源需求值确定为所述资源池的资源需求值;
分配值确定模块,与所述需求值确定模块连接,根据所述需求值确定模块确定的所述资源池的资源需求值和所述资源池当前的资源分配值,计算单元确定所述虚拟机的资源分配值,其中:如果所述确定的所述资源池的资源需求值小于或等于所述资源池当前的资源分配值,所述分配值确定模块将所述子资源池的资源需求值确定为所述子资源池的资源分配值,其中:如果所述分配值确定模块判断为所述虚拟机的资源需求值小于等于所述虚拟机的上限,将所述虚拟机的资源需求值确定为所述虚拟机的资源分配值,如果所述分配值确定模块判断为所述虚拟机的资源需求值大于所述虚拟机的上限,将所述虚拟机的上限确定为所述虚拟机的资源分配值;如果所述确定的所述资源池的资源需求值大于所述资源池当前的资源分配值,所述分配值确定模块将所述子资源池的预留确定为所述子资源池的资源分配值,计算单元将所述虚拟机的预留确定为所述虚拟机的资源分配值。
10.根据权利要求9所述的装置,其特征在于,
所述资源池的资源设置还包括所述资源池的份额;
所述虚拟机的资源设置还包括所述虚拟机的份额;
所述装置还包括:
剩余资源分配单元,与所述确定单元连接,如果所述资源池的剩余可用资源大于0,并且所述资源池下的子资源池的资源需求值大于所述分配值确定模块确定的子资源池的资源分配值和/或所述资源池下的虚拟机的资源需求值大于所述分配值确定模块确定的虚拟机的资源分配值,按照所述子资源池和所述虚拟机的份额,计算所述剩余可用资源中分配给所述虚拟机的分配值;
更新单元,与所述剩余资源分配单元连接,根据所述剩余资源分配单元计算的分配值,更新所述确定单元确定的所述虚拟机的资源分配值,所述更新单元更新后的资源分配值为所述剩余资源分配单元计算的分配值和所述分配值确定模块确定的虚拟机的资源分配值之和剩余资源分配单元分配值确定模块;
所述分配单元将所述更新单元所更新的资源分配值发送给所述虚拟机所属主机。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
再次更新单元,与所述更新单元连接,当确定所述更新单元更新的资源分配值大于所述虚拟机的资源需求值时,将所述更新单元更新的资源分配值再次更新为所述虚拟机的资源需求值;
所述分配单元将所述再次更新单元再次更新的资源分配值发送给所述虚拟机所属主机。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
分配值修改单元,与所述确定单元连接,根据所述确定单元确定的虚拟机的资源分配值,计算所述主机下的所有虚拟机的资源分配值的总和,确定所述总和是否大于所述主机的资源总量,如果所述总和大于所述主机的资源总量,修改所述确定的虚拟机的资源分配值,所述修改后的资源分配值=所述确定的资源分配值×所述主机的资源总量/所述总和;
所述分配单元将所述分配值修改单元修改后的资源分配值发送给所述虚拟机所属主机。
13.一种虚拟化集群的资源分配系统,其特征在于,
包括:权利要求7至12任一项所述的虚拟化集群的资源再分配装置;以及
主机,与所述虚拟化集群的资源再分配装置连接,设置有至少一个虚拟机;
其中:
所述主机按照所述虚拟化集群的资源再分配装置所发送的资源分配值,为所述虚拟机分配资源。
CN2013104006036A 2013-09-05 2013-09-05 一种虚拟化集群的资源分配方法、装置和系统 Pending CN103455378A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013104006036A CN103455378A (zh) 2013-09-05 2013-09-05 一种虚拟化集群的资源分配方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013104006036A CN103455378A (zh) 2013-09-05 2013-09-05 一种虚拟化集群的资源分配方法、装置和系统

Publications (1)

Publication Number Publication Date
CN103455378A true CN103455378A (zh) 2013-12-18

Family

ID=49737783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013104006036A Pending CN103455378A (zh) 2013-09-05 2013-09-05 一种虚拟化集群的资源分配方法、装置和系统

Country Status (1)

Country Link
CN (1) CN103455378A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104484220A (zh) * 2014-11-28 2015-04-01 杭州华为数字技术有限公司 虚拟化集群的动态资源调度的方法及装置
CN104834570A (zh) * 2015-05-13 2015-08-12 北京汉柏科技有限公司 一种基于资源池的云计算平台资源管理方法及系统
CN104881325A (zh) * 2015-05-05 2015-09-02 中国联合网络通信集团有限公司 一种资源调度方法和资源调度系统
CN105843670A (zh) * 2016-03-22 2016-08-10 浙江大学 一种云平台虚拟集群部署整合方法
CN106201661A (zh) * 2016-07-20 2016-12-07 北京百度网讯科技有限公司 用于弹性伸缩虚拟机集群的方法和装置
CN106603657A (zh) * 2016-12-13 2017-04-26 国网天津市电力公司 一种基于ims的视频会议资源优化方法
CN103823709B (zh) * 2014-02-28 2017-06-20 华为技术有限公司 虚拟化集群系统、资源分配方法和管理节点
WO2018077030A1 (zh) * 2016-10-24 2018-05-03 阿里巴巴集团控股有限公司 一种虚拟机内存资源的调度方法以及装置
CN104657216B (zh) * 2015-02-04 2018-06-15 华为技术有限公司 一种资源池的资源分配方法及装置
CN108415876A (zh) * 2017-02-28 2018-08-17 张家口浩扬科技有限公司 一种动态计算装置
CN108647090A (zh) * 2018-04-03 2018-10-12 联想(北京)有限公司 一种资源分配方法及装置、服务器集群
CN109144231A (zh) * 2018-09-11 2019-01-04 联想(北京)有限公司 一种虚拟化电力管理方法及设备
CN111625364A (zh) * 2020-05-30 2020-09-04 北京字节跳动网络技术有限公司 任务分配方法、装置、电子设备及计算机可读介质
CN113641461A (zh) * 2021-10-14 2021-11-12 云宏信息科技股份有限公司 Kvm虚拟化系统资源配置方法、介质及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521055A (zh) * 2011-12-15 2012-06-27 广州杰赛科技股份有限公司 一种虚拟机资源分配方法及其系统
CN102567072A (zh) * 2010-12-20 2012-07-11 中国移动通信集团公司 一种资源分配方法、装置及系统
CN102567119A (zh) * 2011-12-31 2012-07-11 曙光信息产业股份有限公司 云计算设备
CN102958166A (zh) * 2011-08-29 2013-03-06 华为技术有限公司 一种资源分配方法及资源管理平台

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567072A (zh) * 2010-12-20 2012-07-11 中国移动通信集团公司 一种资源分配方法、装置及系统
CN102958166A (zh) * 2011-08-29 2013-03-06 华为技术有限公司 一种资源分配方法及资源管理平台
CN102521055A (zh) * 2011-12-15 2012-06-27 广州杰赛科技股份有限公司 一种虚拟机资源分配方法及其系统
CN102567119A (zh) * 2011-12-31 2012-07-11 曙光信息产业股份有限公司 云计算设备

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103823709B (zh) * 2014-02-28 2017-06-20 华为技术有限公司 虚拟化集群系统、资源分配方法和管理节点
CN104484220A (zh) * 2014-11-28 2015-04-01 杭州华为数字技术有限公司 虚拟化集群的动态资源调度的方法及装置
CN104484220B (zh) * 2014-11-28 2017-12-22 杭州华为数字技术有限公司 虚拟化集群的动态资源调度的方法及装置
CN104657216B (zh) * 2015-02-04 2018-06-15 华为技术有限公司 一种资源池的资源分配方法及装置
CN104881325A (zh) * 2015-05-05 2015-09-02 中国联合网络通信集团有限公司 一种资源调度方法和资源调度系统
CN104881325B (zh) * 2015-05-05 2018-09-21 中国联合网络通信集团有限公司 一种资源调度方法和资源调度系统
CN104834570A (zh) * 2015-05-13 2015-08-12 北京汉柏科技有限公司 一种基于资源池的云计算平台资源管理方法及系统
CN105843670A (zh) * 2016-03-22 2016-08-10 浙江大学 一种云平台虚拟集群部署整合方法
CN105843670B (zh) * 2016-03-22 2019-01-04 浙江大学 一种云平台虚拟集群部署整合方法
CN106201661A (zh) * 2016-07-20 2016-12-07 北京百度网讯科技有限公司 用于弹性伸缩虚拟机集群的方法和装置
CN106201661B (zh) * 2016-07-20 2018-09-14 北京百度网讯科技有限公司 用于弹性伸缩虚拟机集群的方法和装置
WO2018077030A1 (zh) * 2016-10-24 2018-05-03 阿里巴巴集团控股有限公司 一种虚拟机内存资源的调度方法以及装置
CN106603657A (zh) * 2016-12-13 2017-04-26 国网天津市电力公司 一种基于ims的视频会议资源优化方法
CN106603657B (zh) * 2016-12-13 2019-09-13 国网天津市电力公司 一种基于ims的视频会议资源优化方法
CN108415876A (zh) * 2017-02-28 2018-08-17 张家口浩扬科技有限公司 一种动态计算装置
CN108647090A (zh) * 2018-04-03 2018-10-12 联想(北京)有限公司 一种资源分配方法及装置、服务器集群
CN109144231A (zh) * 2018-09-11 2019-01-04 联想(北京)有限公司 一种虚拟化电力管理方法及设备
CN109144231B (zh) * 2018-09-11 2021-07-16 联想(北京)有限公司 一种虚拟化电力管理方法及设备
CN111625364A (zh) * 2020-05-30 2020-09-04 北京字节跳动网络技术有限公司 任务分配方法、装置、电子设备及计算机可读介质
CN111625364B (zh) * 2020-05-30 2023-05-16 抖音视界有限公司 任务分配方法、装置、电子设备及计算机可读介质
CN113641461A (zh) * 2021-10-14 2021-11-12 云宏信息科技股份有限公司 Kvm虚拟化系统资源配置方法、介质及系统

Similar Documents

Publication Publication Date Title
CN103455378A (zh) 一种虚拟化集群的资源分配方法、装置和系统
US11714671B2 (en) Creating virtual machine groups based on request
CN103248659B (zh) 一种云计算资源调度方法和系统
de Souza Carvalho et al. Dynamic task mapping for MPSoCs
CN111966500B (zh) 资源调度方法、装置、电子设备及存储介质
ES2743469T3 (es) Disposición de ordenadores en racimo para el tratamiento de una tarea de cálculo y procedimiento correspondiente
CN102546700B (zh) 一种资源调度以及资源迁移的方法及设备
Jeannot et al. Near-optimal placement of MPI processes on hierarchical NUMA architectures
US7979729B2 (en) Method for equalizing performance of computing components
CN106385329B (zh) 资源池的处理方法、装置和设备
CN110597639B (zh) Cpu分配控制方法、装置、服务器及存储介质
CN105159775A (zh) 基于负载均衡器的云计算数据中心的管理系统和管理方法
CN103731372A (zh) 一种混合云环境下服务提供者的资源供应方法
KR20130088512A (ko) 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
CN104035817A (zh) 大规模集成电路物理实现的分布式并行计算方法及其系统
CN107346264A (zh) 一种虚拟机负载均衡调度的方法、装置和服务器设备
CN106230986A (zh) 一种基于电力PaaS云平台的资源适配调度系统及方法
CN107291536B (zh) 一种云计算环境下应用任务流调度方法
CN110109756A (zh) 一种网络靶场构建方法、系统及存储介质
CN105573907B (zh) 用于在解聚的硬件组件上安装软件的方法和系统
CN105069702B (zh) 一种电网集成信息处理方法
Singh et al. Container-based load balancing for energy efficiency in software-defined edge computing environment
CN108132839A (zh) 一种资源调度方法及装置
CN114356543A (zh) 一种基于Kubernetes的多租户机器学习任务资源调度方法
CN111159859B (zh) 一种云容器集群的部署方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20131218

RJ01 Rejection of invention patent application after publication