中央处理器资源分配方法和计算节点转让专利

申请号 : CN201610737463.5

文献号 : CN106126319B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 单卫华刘锦涛李候青

申请人 : 华为技术有限公司

摘要 :

本发明实施例涉及中央处理器的资源分配方法和计算节点。方法包括:根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量;根据所述高级资源池中物理核的分配数量调整默认资源池中的物理核的分配数量;其中,所述高级资源池和默认资源池是按照资源池的服务等级将中央处理器的物理核进行划分而得到的资源池。根据本发明实施例,通过将物理核划分为不同的资源池,并且不同的资源池中的物理核的计算资源在不同资源池之间彼此隔离,实现了针对不同应用场景的物理核计算资源的有效分配。

权利要求 :

1.一种中央处理器资源分配方法,其特征在于,所述方法包括:根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量;

根据所述高级资源池中物理核的分配数量调整默认资源池中的物理核的分配数量;

其中,所述高级资源池和默认资源池是按照资源池的服务等级将中央处理器的物理核进行划分而得到的资源池;其中,在所述高级资源池中运行的虚拟机占用预设比例的物理核计算资源;所述默认资源池中运行虚拟机;

其中,所述根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量,包括:在所述高级资源池中的虚拟机数量增加时,根据增加的虚拟机数量以及所述高级资源池的服务等级确定需要向所述高级资源池分配的第一数量的物理核;从所述默认资源池向所述高级资源池分配所述第一数量的物理核;

或者

在所述高级资源池中的虚拟机数量减少时,根据减少的虚拟机数量以及所述高级资源池的服务等级确定需要从所述高级资源池减少的第二数量的物理核;

从所述高级资源池向所述默认资源池分配所述第二数量的物理核。

2.如权利要求1所述的方法,其特征在于,所述服务等级包括允许每台虚拟机占用物理核计算资源的数量。

3.如权利要求1或2所述的方法,其特征在于,所述高级资源池包括第一级资源池,其中所述第一级资源池中允许每台虚拟机独占一个物理核计算资源。

4.如权利要求1或2所述的方法,其特征在于,所述高级资源池包括第二级资源池,其中所述第二级资源池中允许每台虚拟机占用一个物理核计算资源的50%。

5.如权利要求1所述的方法,其特征在于,所述在所述高级资源池中的虚拟机数量减少时,根据减少的虚拟机数量以及所述高级资源池的服务等级确定需要从所述高级资源池减少的第二数量的物理核,从所述高级资源池向所述默认资源池分配所述第二数量的物理核,具体包括:当所述高级资源池中没有虚拟机运行时,将所述高级资源池中的物理核分配给所述默认资源池。

6.如权利要求1或2所述的方法,其特征在于,

在所述根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量之前,所述方法还包括:

确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中的物理核数量不足以满足所述高级资源池中的服务等级。

7.如权利要求1或2所述的方法,其特征在于,

在所述根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量之前,所述方法还包括:

确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中存在不服务于该高级资源池中的虚拟机的空闲的至少一个物理核计算资源。

8.如权利要求1或2所述的方法,所述方法还包括:

为所述默认资源池中的虚拟机设定允许每台虚拟机占用的物理核计算资源的上限百分比和/或下限百分比。

9.如权利要求1或2所述的方法,所述方法还包括:

为所述默认资源池中的虚拟机设定每台虚拟机使用物理核计算资源的优先级,并根据所述优先级高低顺序为所述默认资源池中的虚拟机分配物理核的计算资源。

10.一种用于虚拟系统的计算节点,其特征在于,所述计算节点包括:资源调整单元,用于根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量,根据所述高级资源池中物理核的分配数量调整默认资源池中的物理核的分配数量;

资源分配单元,用于根据资源池的服务等级,将中央处理器的物理核划分成默认资源池和高级资源池;其中,在所述高级资源池中运行的虚拟机占用预设比例的物理核计算资源;所述默认资源池中运行虚拟机;

在所述高级资源池中的虚拟机数量增加时,所述资源调整单元根据增加的虚拟机数量以及所述高级资源池的服务等级确定需要向所述高级资源池分配的第一数量的物理核,并且从所述默认资源池向所述高级资源池分配所述第一数量的物理核;

或者

在所述高级资源池中的虚拟机数量减少时,所述资源调整单元根据减少的虚拟机数量以及所述高级资源池的服务等级确定需要从所述高级资源池减少的第二数量的物理核,并且从所述高级资源池向所述默认资源池分配所述第二数量的物理核。

11.如权利要求10所述的计算节点,其特征在于,

所述服务等级包括允许每台虚拟机占用物理核计算资源的数量。

12.如权利要求10或11所述的计算节点,其特征在于,所述高级资源池包括第一级资源池,其中所述第一级资源池中允许每台虚拟机独占一个物理核计算资源。

13.如权利要求10或11所述的计算节点,其特征在于,所述高级资源池包括第二级资源池,其中所述第二级资源池中允许每台虚拟机占用一个物理核计算资源的50%。

14.如权利要求10或11所述的计算节点,其特征在于,当所述高级资源池中没有虚拟机运行时,所述资源调整单元用于将所述高级资源池中的物理核分配给所述默认资源池。

15.如权利要求10或11所述的计算节点,所述计算节点还包括:第一确定单元,用于确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中的物理核数量不足以满足所述高级资源池中的服务等级。

16.如权利要求10或11所述的计算节点,所述计算节点还包括:第一确定单元,用于确定所述高级资源池中的虚拟机数量发生变化时,所述高级资源池中存在不服务于该高级资源池中的虚拟机的空闲的至少一个物理核计算资源。

17.如权利要求10或11所述的计算节点,其特征在于,所述资源分配单元用于为所述默认资源池中的每台虚拟机设定允许每台虚拟机占用的物理核计算资源的上限百分比和/或下限百分比。

18.如权利要求10或11所述的计算节点,其特征在于,所述资源分配单元用于为所述默认资源池中的虚拟机设定每台虚拟机使用物理核计算资源的优先级,并根据所述优先级高低顺序为所述默认资源池中的虚拟机分配物理核的计算资源。

说明书 :

中央处理器资源分配方法和计算节点

技术领域

[0001] 本发明实施例涉及虚拟化技术,特别是中央处理器资源分配方法和计算节点。

背景技术

[0002] 目前在信息技术领域,虚拟化技术得到了广泛的应用。虚拟化技术提供了一种能够将多个虚拟机部署在一个服务器上的能力,降低了用户的总成本并且改善了应用的可靠性和灵活性。目前业界虚拟机中央处理器(Central Processing Unit,简称CPU)的管理普遍实现了CPU超分配,即虚拟机的虚拟CPU个数大于服务器中物理CPU的个数,以此来达到物理资源的充分利用。但是在物理资源紧张的情况下,如何合理分配物理CPU资源,成为摆在面前的最大问题之一。常用的实现方式是设置虚拟机的优先级,根据优先级的不同,为虚拟机分配不同份额的CPU资源。高优先级的虚拟机分配较多份额的物理CPU资源,以此实现针对不同需求的用户,提供不同的服务,提高服务质量。
[0003] 根据优先级的高低为虚拟机分配物理CPU资源,可能导致高优先级的虚拟机处于垄断地位,而低优先级的虚拟机无法获得物理CPU资源,不利于有效调配物理CPU资源。

发明内容

[0004] 本发明实施例提出了一种中央处理器资源分配方法,通过将CPU的物理核分隔成不同的资源池来实现物理核在不同资源池之间彼此隔离,并根据每个资源池服务的虚拟机的数量,在不同资源池之间动态地分配物理核,实现了物理核资源的有效利用,同时可靠地保证了不同资源池中虚拟机的服务质量。
[0005] 第一方面,提出了一种中央处理器资源分配方法,所述方法包括:
[0006] 根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量;
[0007] 根据所述高级资源池中物理核的分配数量调整默认资源池中的物理核的分配数量;
[0008] 其中,所述高级资源池和默认资源池是按照资源池的服务等级将中央处理器的物理核进行划分而得到的资源池。
[0009] 结合第一方面,在第一种可能的实现方式中,所述服务等级包括允许每台虚拟机占用物理核计算资源的数量。
[0010] 结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述默认资源池中的虚拟机共享所述默认资源池中的全部物理核的计算资源。
[0011] 结合第一方面或者第一方面的第一和第二种可能的实现方式,在第三种可能的实现方式中,所述高级资源池包括第一级资源池,其中所述第一级资源池中允许每台虚拟机独占一个物理核计算资源。
[0012] 结合第一方面或者第一方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,所述高级资源池包括第二级资源池,其中所述第二级资源池中允许每台虚拟机占用一个物理核计算资源的50%。
[0013] 结合第一方面或者第一方面的第一至第四种可能的实现方式,在第五种可能的实现方式中,所述根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量,包括:
[0014] 在所述高级资源池中的虚拟机数量增加时,根据增加的虚拟机数量以及所述高级资源池的服务等级确定需要向所述高级资源池分配的第一数量的物理核;
[0015] 从所述默认资源池向所述高级资源池分配所述第一数量的物理核;
[0016] 或者
[0017] 在所述高级资源池中的虚拟机数量减少时,根据减少的虚拟机数量以及所述高级资源池的服务等级确定需要从所述高级资源池减少的第二数量的物理核;
[0018] 从所述高级资源池向所述默认资源池分配所述第二数量的物理核。
[0019] 结合第一方面或者第一方面的第一至第五种可能的实现方式,在第六种可能的实现方式中,所述在所述高级资源池中的虚拟机数量减少时,根据减少的虚拟机数量以及所述高级资源池的服务等级确定需要从所述高级资源池减少的第二数量的物理核,从所述高级资源池向所述默认资源池分配所述第二数量的物理核,具体包括:当所述高级资源池中没有虚拟机运行时,将所述高级资源池中的物理核分配给所述默认资源池。
[0020] 结合第一方面或者第一方面的第一至第六种可能的实现方式,在第七种可能的实现方式中,在所述根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量之前,所述方法还包括:
[0021] 确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中的物理核数量不足以满足所述高级资源池中的服务等级。
[0022] 结合第一方面或者第一方面的第一至第六种可能的实现方式,在第八种可能的实现方式中,在所述根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量之前,
[0023] 所述方法还包括:
[0024] 确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中存在不服务于该高级资源池中的虚拟机的空闲的至少一个物理核计算资源。
[0025] 结合第一方面或者第一方面的第一至第八种可能的实现方式,在第九种可能的实现方式中,所述方法还包括:为所述默认资源池中的虚拟机设定允许每台虚拟机占用的物理核计算资源的上限百分比和/或下限百分比。
[0026] 结合第一方面或者第一方面的第一至第九种可能的实现方式,在第十种可能的实现方式中,所述方法还包括:为所述默认资源池中的虚拟机设定每台虚拟机使用物理核计算资源的优先级,并根据所述优先级高低顺序为所述默认资源池中的虚拟机分配物理核的计算资源。
[0027] 第二方面,提出了一种用于虚拟系统的计算节点,所述计算节点包括:
[0028] 资源调整单元,用于根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量,和用于根据所述高级资源池中物理核的分配数量调整所述默认资源池中的物理核的分配数量;
[0029] 资源分配单元,用于根据资源池的服务等级,将中央处理器的物理核划分成默认资源池和高级资源池。
[0030] 结合第二方面,在第一种可能的实现方式中,在所述高级资源池中的虚拟机数量增加时,所述资源调整单元根据增加的虚拟机数量以及所述高级资源池的服务等级确定需要向所述高级资源池分配的第一数量的物理核,并且从所述默认资源池向所述高级资源池分配所述第一数量的物理核;
[0031] 或者
[0032] 在所述高级资源池中的虚拟机数量减少时,所述资源调整单元根据减少的虚拟机数量以及所述高级资源池的服务等级确定需要从所述高级资源池减少的第二数量的物理核,并且从所述高级资源池向所述默认资源池分配所述第二数量的物理核。
[0033] 结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述计算节点还包括:
[0034] 第一确定单元,用于确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中的物理核数量不足以满足所述高级资源池中的服务等级。
[0035] 结合第二方面或者第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述计算节点还包括:第一确定单元,用于确定所述高级资源池中的虚拟机数量发生变化时,所述高级资源池中存在不服务于该高级资源池中的虚拟机的空闲的至少一个物理核计算资源。
[0036] 结合第二方面或者第二方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,所述资源分配单元用于为所述默认资源池中的每台虚拟机设定允许每台虚拟机占用的物理核计算资源的上限百分比和/或下限百分比。
[0037] 结合第二方面或者第二方面的第一至第四种可能的实现方式,在第五种可能的实现方式中,所述资源分配单元用于为所述默认资源池中的虚拟机设定每台虚拟机使用物理核计算资源的优先级,并根据所述优先级高低顺序为所述默认资源池中的虚拟机分配物理核的计算资源。
[0038] 根据本发明实施例,通过将物理核划分为不同的资源池,并且不同的资源池中的物理核的计算资源在不同资源池之间彼此隔离,实现了针对不同应用场景的物理核计算资源的有效分配,同时避免出现长期占用大量计算资源的垄断虚拟机,防止了物理核计算资源分配失衡,提高了物理核的计算资源的利用效率。

附图说明

[0039] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1是根据本发明实施例的中央处理器资源分配方法的示意流程图;
[0041] 图2是根据本发明实施例的虚拟机迁入过程具体示例的流程图;
[0042] 图3是根据本发明实施例的虚拟机迁出过程具体示例的流程图;
[0043] 图4是虚拟机从源计算节点向目的结算接点迁移的信令交互图;
[0044] 图5是根据本发明实施例的计算节点的示意结构图;
[0045] 图6是根据本发明实施例的计算节点的示意结构图;
[0046] 图7是根据本发明实施例的计算节点的另一种示意结构图。

具体实施方式

[0047] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048] 本发明实施例的技术方案建立在虚拟机的虚拟CPU(简称VCPU)可以绑定到指定的资源池的基础能力来实现的。本领域技术人员可以理解VCPU绑定到资源池的具体方式以及实现方法。为了简略,本文对此不作详细描述。
[0049] 在本发明实施例的描述中,物理核指的是物理中央处理器的内核。运行虚拟机的服务器或者说计算节点一般包括多个CPU,每个CPU包含至少一个物理核。这些物理核可以分别用于不同的目的。本发明实施例中构成资源池的CPU的物理核可以是一个CPU的物理核,也可以是多个CPU的物理核;其中CPU可以位于一台服务器或者说计算节点上,也可以位于多台服务器或者说计算节点上,本发明实施例不作具体限定。
[0050] 在本发明实施例中,一台虚拟机可以包括多个VCPU,为了叙述简便,以一个虚拟机包括一个VCPU为例进行描述。在描述过程中,因为实施例中以一台虚拟机包括一个VCPU,所以“VCPU与资源池绑定”也可以通俗地表达为“虚拟机与资源池绑定”。本领域技术人员理解“绑定”在文中的意思正如与本领域通常理解的意思相同。本领域技术人员可以理解,“虚拟机在资源池中运行”指的是虚拟机占用该资源池中的物理核的计算资源,而不占用其他资源池中的物理核的计算资源。在本发明实施例中,物理核的计算资源指的是该物理核提供的计算能力。在资源池中运行的虚拟机所允许占用的计算资源可以来自该资源池的一个物理核,也可以来自该资源池中的多个物理核,本发明实施例对此并不做限制。“允许虚拟机占用的物理核的计算资源”指的是允许一台虚拟机占用的该虚拟机所运行的资源池中的物理核的计算资源,也可以表示允许该虚拟机的一个VCPU占用的该虚拟机所运行的资源池中的物理核的计算资源,或者可以表示允许该虚拟机的全部VCPU占用的该虚拟机所运行的资源池中的物理核的计算资源。在以下叙述中,为了描述清晰,本发明实施例以虚拟机的全部VCPU占用的该虚拟机所运行的资源池中的物理核的计算资源作为“虚拟机占用的物理核的计算资源”的例子进行描述。
[0051] 图1是根据本发明实施例的中央处理器资源分配方法的示意流程图。如图1所示,方法100包括:
[0052] 110:根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量;
[0053] 120:根据所述高级资源池中物理核的分配数量调整所述默认资源池中的物理核的分配数量;
[0054] 其中,所述高级资源池和默认资源池是按照资源池的服务等级将中央处理器的物理核进行划分而得到的资源池。
[0055] 在本发明实施例中,每个资源池服务于在该资源池中运行的虚拟机,资源池的服务等级对应于该资源池中运行的虚拟机所要求的服务等级。这里所述的“服务等级”例如为允许每台虚拟机占用的物理核计算资源的数量,本发明实施例以及后面的实施例中使用的“占用”是指资源池中实际分配给每台虚拟机的物理核计算资源。例如,在一个高级资源池中,允许一台虚拟机占用一个物理核计算资源的50%,是指在该高级资源池中实际分配给该虚拟机一个物理核计算资源的50%。例如,在另一个高级资源池中,允许虚拟机占用一个物理核计算资源,即给一台虚拟机实际分配一个物理核的计算资源。
[0056] 在本发明实施例中,不同资源池之间逻辑隔离,即每个资源池中的物理核仅服务于在该资源池中运行的虚拟机,为该资源池中运行的虚拟机提供物理核计算资源。这里所述的逻辑隔离并不排除物理隔离的可能性。在根据本发明实施例的一种可能的实现方式中,不同的资源池甚至可以物理隔离,例如,不同的资源池中的物理核安装在不同的计算节点上。
[0057] 在本发明实施例中,在默认资源池中运行的虚拟机共享默认资源池中全部物理核的计算资源。高级资源池的设置方式,可以根据具体的应用需求来设置。在一种可能的实现方式中,高级资源池包括第一级资源池,其中所述第一级资源池中允许每台虚拟机独占一个物理核的计算资源,也就是说第一级资源池的服务等级为100%。在虚拟机仅包括一个VCPU的情况下,也就是说,第一级资源池中的物理核数量与在该资源池中运行的虚拟机的数量相等。第一级资源池可以保证给在其中运行的虚拟机全天候实际分配一个物理核的计算资源,但是所述“一个物理核的计算资源”可能来自该资源池中的一个物理核或者多个物理核。在另一种可能的实现方式中,除了第一级资源池之外,高级资源池还包括第二级资源池。在第二级资源池中运行的虚拟机允许占用一个物理核计算资源的50%,也就是说第二级资源池的服务等级为50%。或者说,在第二级资源池中,给每台虚拟机实际分配一个物理核的计算资源的50%,但是所述“一个物理核的计算资源的50%”可能来自该资源池中的一个物理核或者多个物理核。根据本发明实施例的另一种可能的实现方式,高级资源池也可以仅包括第二级资源池。而根据本发明实施例的另一种可能的实现方式,高级资源池里还可以包括第三级资源池等等,其中在第三级资源池中运行的虚拟机允许占用一个物理核计算资源的33%。本领域技术人员可以理解,根据具体的应用需求,可以在高级资源池中设置或多或少的子资源池,各子资源池的服务等级可以不同。
[0058] 根据本发明实施例,步骤110具体可以包括:
[0059] 在所述高级资源池中的虚拟机数量增加时,根据增加的虚拟机数量以及所述高级资源池的服务等级确定需要向所述高级资源池分配的第一数量的物理核;
[0060] 从所述默认资源池向所述高级资源池分配所述第一数量的物理核;
[0061] 或者
[0062] 在所述高级资源池中的虚拟机数量减少时,根据减少的虚拟机数量以及所述高级资源池的服务等级确定需要从所述高级资源池减少的第二数量的物理核;
[0063] 从所述高级资源池向所述默认资源池分配所述第二数量的物理核。
[0064] 当所述高级资源池中没有虚拟机运行时,将所述高级资源池中的物理核分配给所述默认资源池。下面以资源池包括默认资源池和高级资源池,其中高级资源池包括第一级资源池和第二级资源池为例进行说明。需要说明的是,这里所举的例子仅仅为了说明本发明实施例的实施方式,而不用于对本发明实施例进行限制。在描述本发明实施例时,运行于不同服务等级的资源池的虚拟机,也可以称为对应服务等级的虚拟机,例如,运行于第一级资源池的虚拟机,可以称为第一级虚拟机,运行于默认资源池的虚拟机,可以称为默认虚拟机。
[0065] 在初始情况下,例如系统开机上电后,由于高级资源池中没有虚拟机运行,全部的物理核分配在默认资源池中。根据应用场景的不同,启动虚拟机并将其加入不同的资源池或者将虚拟机迁入不同的资源池,。与此相反的过程,即关闭虚拟机的过程或者将虚拟机迁出。例如,需要第一级虚拟机,即允许占用物理核计算资源100%的虚拟机。则需要在第一级资源池中创建第一级虚拟机。本领域技术人员理解并知悉虚拟机的创建和启动过程,因此为了简略,这里不再详细描述。在第一级资源池增加第一级虚拟机时,根据增加的第一级虚拟机的数量确定需要向第一级资源池分配的第一数量的物理核,然后从默认资源池中分配第一数量的物理核到第一级资源池。如果根据具体应用场景,需要减少第一级虚拟机的数量,例如将第二数量的第一级虚拟机从第一级资源池中迁出或者将第二数量的第一级虚拟机关闭。以将第二数量的第一虚拟机迁出为例,在将第二数量的第一级虚拟机迁出的同时,确定需要从第一级资源池中减少第二数量的物理核。然后,将第一级资源池中的第二数量的物理核分配到默认资源池中。由此实现了根据第一级资源池中的虚拟机的数量变化,动态地调整所述第一级资源池中的物理核的分配数量并相应的调整默认资源池中的物理核的分配数量。
[0066] 对于第二级资源池而言,调整的方式是类似的。区别之处在于,第二级资源池中第二级虚拟机实际分配一个物理核的计算资源的50%。
[0067] 根据本发明实施例,在一种可能的实现方式中,步骤110之前,所述方法还包括:
[0068] 确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中的物理核数量不足以满足所述高级资源池的计算资源需求。例如,在高级资源池的第一级资源池中增加1台第一级虚拟机时,第一级资源池无法满足第一级资源池中全部虚拟机的计算资源需求,因为第一级资源池中允许每台虚拟机需要独占一个物理核的计算资源。还有可能存在下述情况,例如在高级资源池的第二级资源池中存在3台第二级虚拟机,允许每台第二级虚拟机占用一个物理核计算资源的50%,因此第二级资源池中三台第二级虚拟机需要分配两个物理核,但在实际分配给三台第二级虚拟机物理核的计算资源后,还剩一个物理核的计算资源的50%。在这种情况下,如果第二级资源池中增加一个第二级虚拟机,则不会导致第二级资源池不满足全部第二级虚拟机的计算资源需求。这样,可以将第二级资源池中剩余一个物理核的计算资源的50%分配给该新增加的虚拟机。在这种情况下,不需要从默认资源池向第二级资源池分配新的物理核。
[0069] 根据本发明实施例,在一种可能的实现方式中,步骤110之后,所述方法还包括:
[0070] 确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中存在不服务于该高级资源池中的虚拟机的空闲的至少一个物理核计算资源。这里所述“空闲的至少一个物理核计算资源”可能来自不同的物理核,即来自不同物理核的计算资源的总和相当于一个物理核的计算资源。例如,在高级资源池的第一级资源池中迁出1台第一级虚拟机之后,则第一级资源池中出现空闲的一个物理核计算资源。在这种情况下,该第一级资源池可以将一个物理核分配到默认资源池中,供运行在默认资源池中的虚拟机使用,以便有效利用物理核的计算资源。
[0071] 例如在高级资源池的第二级资源池中迁出1个第二级虚拟机之后,有可能并没有出现空闲的一个物理核计算资源,因为第二级资源池中是允许每台虚拟机占用一个物理核的计算资源的50%。因此,只有在确定第二级资源池中存在空闲的至少一个物理核计算资源的情况下,才可以将物理核从该第二级资源池分配回到默认资源池中。
[0072] 如前所述,默认资源池中的默认虚拟机共享默认资源池中的全部物理核的计算资源。根据本发明实施例,共享的方式可以根据具体的情况来确定。在第一种可能的实现方式中,默认虚拟机可以平均地共享默认资源池中全部物理核的计算资源。根据第一种可能的实现方式的一种改进方案,可以设定允许默认资源池中的每台默认虚拟机所能占用的物理核计算资源的上限百分比,例如默认资源池中允许每台虚拟机所占用的物理核计算资源的上限百分比为一个物理核计算资源的10%,由此防止默认资源池中的出现垄断虚拟机,即占用了大量计算资源的虚拟机。根据另一种改进方案,为了保证默认资源池中虚拟机的计算性能,可以设定允许每台虚拟机所能占用的物理核的计算资源的下限百分比,例如默认资源池中的允许每台虚拟机所占用的物理核计算资源的下限百分比为一个物理核计算资源的5%。在确定每台虚拟机所能占用的物理核的计算资源的上限百分比和下限的情况下,在实施步骤110之前,所述方法100包括:
[0073] 根据默认资源池中的虚拟机数量以及该默认资源池中虚拟机允许占用物理核计算资源下限百分比来确定默认资源池有足够的资源分配给高级资源池。或者,在默认资源池增加虚拟机的情况下,确定默认资源池的容量还没有达到上限,即还可以容纳额外的虚拟机。
[0074] 例如,假设允许默认资源池中每台虚拟机占用物理核的计算资源的下限百分比为5%,且允许默认资源池中每台虚拟机占用物理核的计算资源的上限百分比为10%。此时,假设默认资源池包括10个物理核,则在默认资源池中,最多为可以200台默认虚拟机提供物理核计算资源,最少可以为100台默认虚拟机提供物理核计算资源。假如运行在默认资源池中的虚拟机数量为185台。如果需要增加1台第一级虚拟机,即需要从默认资源池向高级资源池中的第一级资源池分配1个物理核,而根据计算结果,如果向第一资源池中分配一个物理核后,默认资源池中剩余物理核计算资源最多只能为180台默认虚拟机提供物理核计算资源,而现在在默认资源池中运行185台默认虚拟机。则所述方法100包括:拒绝增加高级虚拟机的请求。在本例中,拒绝增加第一级虚拟机。当然,在本发明实施例的另一种情况下,可以向高级资源池中第一资源池分配一个物理核,同时调整默认资源池中每台默认虚拟机占用的物理核计算资源的下限,或者根据默认资源池中虚拟机部署策略,关闭相应的默认虚拟机,以满足默认资源池中现有的每台默认虚拟机占用的物理核计算资源的下限。
[0075] 再例如,假设允许默认资源池中每台虚拟机占用一个物理核的计算资源的下限百分比为5%,且允许默认资源池中每台虚拟机占用一个物理核的计算资源的上限百分比为10%。此时,假设默认资源池包括10个物理核,运行在默认资源池中的虚拟机数量为185台。
如果在默认资源池增加1台虚拟机,即增加一个默认虚拟机,则根据计算结果,默认资源池的容量还可以容纳3台默认虚拟机,因此允许向默认资源池中增加1个虚拟机。
[0076] 在另一种可能的实现方式中,可以进一步为默认资源池中的默认虚拟机设定优先级。默认资源池中的物理核计算资源优先满足优先级高的默认虚拟机的需求。由于设定了允许每台默认虚拟机占用物理核计算资源的上限百分比和上限,即使高优先级的默认虚拟机也不会成为“垄断虚拟机”而导致低优先级的默认虚拟机无法分配到计算资源。
[0077] 以下以第二级资源池增加虚拟机的具体流程实例完整描述本发明实施例的一种实现过程。图2是根据本发明实施例的虚拟机迁入过程具体示例的流程图。如图2所示,第二级资源池增加虚拟机的流程200包括:
[0078] 210:用户请求将虚拟机1迁入第二级资源池;
[0079] 220:系统判断物理核计算资源是否充足;
[0080] 也就是说,系统根据目前高级资源池中第一级资源池和第二级资源池内的虚拟机数量、默认资源池中的虚拟机数量以及默认资源池中每台虚拟机分配的计算资源下限百分比,确定是否有足够的计算资源分配给第二级资源池。在本例中,由于物理核可能迁入第二级资源池,系统需要确定默认资源池至少有一个物理核可以分配到第二级资源池。在物理核资源充足的情况下,流程前进到步骤230,而在物理核资源不充足的情况下,流程跳到步骤270。
[0081] 230:在物理核计算资源充足的情况下,系统判断虚拟机1迁入第二级资源池后,是否需要为第二级资源池分配新的物理核;
[0082] 鉴于第二级资源池中允许每台虚拟机占用一个物理核计算资源的50%,所以虚拟机1迁入第二级资源池之前,如果第二级资源池中的虚拟机数量为奇数的情况下,第二级资源池剩余一个物理核的计算资源的50%尚未分配。在这种情况下,不需要为第二级资源池分配新的物理核。相反,在虚拟机1迁入第二级资源池之前,如果第二级资源池中的虚拟机数量为偶数的情况下,需要从默认资源池向第二级资源池分配一个物理核,为虚拟机1提供计算资源。
[0083] 240:在不需要为第二级资源池分配新的物理核的情况下,将虚拟机1迁入第二级资源池,并将剩余一个物理核的计算资源50%分配给该虚拟机1;
[0084] 250:在需要为第二级资源池分配新的物理核的情况下,从默认资源池分配1个物理核到第二级资源池,并将虚拟机1迁入第二级资源池,为该虚拟机1提供一个物理核计算资源的50%;
[0085] 260:默认资源池相应调整物理核的计算资源在默认资源内的虚拟机之间的分配。
[0086] 根据前述内容,默认资源池中物理核计算资源的调整方式根据默认资源池的具体设置有所不同。例如,在默认资源池中的虚拟机平均地共享默认资源池中的物理核的计算资源的情况下,由于减少了一个物理核,则默认资源池中各虚拟机所实际分配的物理核的计算资源相应调低。
[0087] 270:不允许虚拟机1迁入第二级资源池。
[0088] 在这种情况下,可以通过消息向用户发出通知,表示系统中的物理核计算资源不足,不允许虚拟机1迁入。
[0089] 虚拟机迁入第一级资源池、默认资源池的流程与图2所示流程类似。
[0090] 与图2所示流程对应,图3是从第二级资源池迁出虚拟机的流程。如图3所示,流程300包括:
[0091] 310:用户请求将虚拟机2从第二级资源池迁出;
[0092] 320:系统判断虚拟机2迁出第二级资源池后,是否需要缩减第二级资源池中的物理核数量;
[0093] 鉴于第二级资源池中允许每台虚拟机占用一个物理核计算机的50%,所以虚拟机2迁出第二级资源池之前,如果第二级资源池中的虚拟机数量为奇数的情况下,第二级资源池剩余一个物理核的计算资源的50%尚未分配。在这种情况下,虚拟机2迁出第二级资源池之后,则有一个物理核计算资源空闲,需要将第二级资源池的物理核减少1个。相反,在虚拟机2迁出第二级资源池之前,如果第二级资源池中的虚拟机数量为偶数的情况下,则不能从第二级资源池缩减物理核的数量。
[0094] 330:在需要将第二级资源池的物理核数量减少的情况下,即第二级资源池现有虚拟机数量为奇数个时,第二级资源池剩余一个物理核的计算资源的50%尚未分配。在这种情况下,虚拟机2迁出第二级资源池之后,则有一个物理核计算资源空闲,将一个物理核分配到默认资源池中,流程跳转到步骤350;
[0095] 340:在不需要将第二级资源池的物理核数量减少的情况下,将虚拟机2迁出第二级资源池;
[0096] 350:默认资源池相应调整物理核的计算资源在默认资源内的虚拟机之间的分配。
[0097] 本发明实施例中,如果第二级资源池中虚拟机全部迁出,则将第二资源池中的物理核全部分配给默认资源池。
[0098] 上述实施例中以高级资源池中包括第一级资源池和第二级资源池为例,根据实际应用场景,高级资源池也可以不再包括如第一级资源池和第二级资源池这样的子资源池。根据实际应用场景,高级资源池也可以不仅仅包含第一级资源池和第二级资源池,每个子资源池的服务等级可以根据实际应用具体设定。
[0099] 根据前述内容,默认资源池中物理核计算资源调整根据默认资源池的具体设置有所不同。例如,在默认资源池中的虚拟机平均地共享默认资源池中的物理核的计算资源的情况下,由于增加了一个物理核,则默认资源池中各虚拟机所分配的物理核的计算资源被相应调高,以充分利用物理核计算资源。
[0100] 图4是根据本发明实施例的一种具体应用场景的信令交互图。如图4所示应用场景描述的是虚拟机从源计算节点向目的计算节点迁移。如图1、2和3所示的本发明实施例的方法可以应用在图4所示应用场景中。
[0101] 如图4所示,迁移过程400包括:
[0102] 410:客户向集群控制器发出虚拟机迁移请求,请求将虚拟机3从源计算节点迁移到目的计算节点;
[0103] 420:集群控制器接收客户发出的虚拟机迁移请求并进行相应处理;
[0104] 集群控制器可以根据传统的虚拟机调度流程,执行相应的处理,例如预占分配的资源。
[0105] 430:集群控制器向源计算节点发出调度请求,用于将虚拟机3从源计算节点迁出;
[0106] 440:虚拟机3从源计算节点迁出;
[0107] 在源计算节点,例如执行图3所示的虚拟机迁出流程。
[0108] 450:源计算节点实施物理核计算资源动态调整;
[0109] 460:虚拟机3迁入目的计算节点;
[0110] 在目的计算节点,例如执行图2所示的虚拟机迁入流程。
[0111] 470:目的计算节点实施物理核计算资源动态调整
[0112] 480:源计算节点向集群控制器返回迁出成功或失败消息。
[0113] 490:集群控制器通知客户虚拟机3从源计算节点向目的计算节点的迁移结果。
[0114] 根据本发明实施例,通过将物理核划分为不同的资源池,并且不同的资源池中的物理核的计算资源在不同资源池之间彼此隔离,实现了针对不同应用场景的物理核计算资源的有效分配,同时避免出现占用大量计算资源的垄断虚拟机,防止了物理核计算资源分配失衡,提高了物理核的计算资源的利用效率。
[0115] 本发明实施例的方法可以应用于不同的云计算商业模式中,例如在互联网数据中心(Internet Data Center,简称IDC)商业模式下,可以向用户提供处于第一级资源池中的虚拟机,使得虚拟机全时独占物理核的计算资源,而且计算资源不会被其他用户占用,为客户提供了稳定的计算能力。例如,业务私有云(Service Private Cloud,简称SPC)商业模式下,向客户提供的虚拟机既要求有较高性能和业务稳定性,也需要一定程度的CPU资源复用,则第一级和第二级资源池中的虚拟机都满足这一场景的应用。再例如,在虚拟桌面基础架构(Virtual Desktop Infrastructure,简称VDI)商业模式下,客户要求虚拟机的性价比比较高,资源可复用。在这种情况下,虚拟机有较大的忙闲比,所以默认资源池中的虚拟机适合这种场景。
[0116] 本发明实施例还提出了可以应用本发明实施例的方法的计算节点。如图5所示,计算节点500包括:
[0117] 资源调整单元510,用于根据高级资源池中的虚拟机的数量变化,动态地调整所述高级资源池中的物理核的分配数量,和用于根据所述高级资源池中物理核的分配数量调整所述默认资源池中的物理核的分配数量;
[0118] 资源分配单元520,用于根据资源池的服务等级,将中央处理器的物理核划分成默认资源池和高级资源池。
[0119] 本发明实施例中,每个资源池服务于在该资源池中运行的虚拟机,在适当的情况下,根据本发明实施例的计算节点可以具备本发明方法实施例中的其他技术特征。以下举例说明。
[0120] 根据本发明实施例,所述服务等级包括允许每台虚拟机占用物理核计算资源的数量。
[0121] 根据本发明实施例,所述资源分配单元用于调度所述默认资源池中的虚拟机共享所述默认资源池中的全部物理核的计算资源。
[0122] 根据本发明实施例,所述高级资源池包括第一级资源池,其中所述第一级资源池中的每台虚拟机允许独占一个物理核计算资源。
[0123] 根据本发明实施例,所述高级资源池包括第二级资源池,其中所述第二级资源池中的每台虚拟机允许占用一个物理核计算资源的50%。
[0124] 根据本发明实施例,在所述高级资源池中的虚拟机数量增加时,所述资源调整单元510根据增加的虚拟机数量以及所述高级资源池的服务等级确定需要向所述高级资源池分配的第一数量的物理核,并且从所述默认资源池向所述高级资源池分配所述第一数量的物理核;
[0125] 或者
[0126] 在所述高级资源池中的虚拟机数量减少时,所述资源调整单元510根据减少的虚拟机数量以及所述高级资源池的服务等级确定需要从所述高级资源池减少的第二数量的物理核,并且从所述高级资源池向所述默认资源池分配所述第二数量的物理核。
[0127] 根据本发明实施例,当所述高级资源池中没有虚拟机运行时,所述资源调整单元用于将所述高级资源池中的物理核分配给所述默认资源池。
[0128] 如图6所示,根据本发明实施例,所述计算节点还包括:
[0129] 第一确定单元530,用于确定所述高级资源池中的虚拟机数量发生变化之后,所述高级资源池中的物理核数量不足以满足所述高级资源池中的服务等级。
[0130] 根据本发明实施例,所述第一确定单元530还用于确定所述高级资源池中的虚拟机数量发生变化时,所述高级资源池中存在不服务于该高级资源池中的虚拟机的空闲的至少一个物理核计算资源。
[0131] 根据本发明实施例,所述资源分配单元520用于调度所述默认资源池中的虚拟机按照预设的允许每台虚拟机占用的物理核计算资源的百分比来共享所述默认资源池中的全部物理核的计算资源。
[0132] 根据本发明实施例,所述资源调整单元510用于根据所述默认资源池中的物理核数量和所述预设的允许每台虚拟机占用的物理核计算资源的百分比,确定所述默认资源池所能容纳的虚拟机的数量。
[0133] 根据本发明实施例,所述资源分配单元520用于调度所述默认资源池中的虚拟机平均地共享所述默认资源池中的全部物理核的计算资源。
[0134] 根据本发明实施例,所述资源分配单元520用于为所述默认资源池中的每台虚拟机设定允许每台虚拟机占用的物理核计算资源的上限百分比和/或下限百分比。
[0135] 根据本发明实施例,所述资源分配单元520用于为所述默认资源池中的虚拟机设定每台虚拟机使用物理核计算资源的优先级,并根据所述优先级高低顺序为所述默认资源池中的虚拟机分配物理核的计算资源。
[0136] 图7所示是根据本发明实施例的计算节点的另一种示意结构图。如图7所示,计算节点700包括至少一个处理器710,例如CPU,至少一个端口720,存储器730,和至少一个通信总线740。通信总线740用于实现这些装置之间的连接通信。处理器710用于执行存储器730中存储的可执行模块,例如计算机程序;计算节点可选的包含用户接口750,包括但不限于显示器,键盘和点击设备,例如鼠标、轨迹球(trackball)、触感板或者触感显示屏。存储器730可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个端口720实现该计算节点与集群控制器的通信连接,通过至少另一个端口720与至少一个其他计算节点之间的通信连接。
[0137] 在一些实施方式中,存储器730存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0138] 操作系统732,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
[0139] 应用模块734,包含各种应用程序,用于实现各种应用业务。
[0140] 应用模块734中包括但不限于资源调整单元(510)、资源分配单元(520)、第一确定单元(530)。
[0141] 应用模块732中各单元的具体实现参见图5和图6所示实施例中的相应单元,在此不赘述。
[0142] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0143] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0144] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0145] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0146] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0147] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0148] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。