CN113760457A - 一种虚拟机资源分配方法、装置、电子设备及存储介质 - Google Patents

一种虚拟机资源分配方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113760457A
CN113760457A CN202111012057.XA CN202111012057A CN113760457A CN 113760457 A CN113760457 A CN 113760457A CN 202111012057 A CN202111012057 A CN 202111012057A CN 113760457 A CN113760457 A CN 113760457A
Authority
CN
China
Prior art keywords
resource
virtual machine
resources
target
determining
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.)
Granted
Application number
CN202111012057.XA
Other languages
English (en)
Other versions
CN113760457B (zh
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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202111012057.XA priority Critical patent/CN113760457B/zh
Publication of CN113760457A publication Critical patent/CN113760457A/zh
Application granted granted Critical
Publication of CN113760457B publication Critical patent/CN113760457B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种虚拟机资源分配方法、装置、电子设备及存储介质,方法包括:通过获取待分配资源的虚拟机所在的宿主机中资源的资源信息,基于资源信息从资源中确定目标资源,其中目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,将目标资源与虚拟机绑定,以将目标资源分配给虚拟机。由于分配给虚拟机的目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,因此,虚拟机在运行过程中,将对同一NUMA节点下的资源进行访问,避免了虚拟机跨NUMA节点访问导致的虚拟机的IO性能降低,进而提高了虚拟机IO性能的稳定性。

Description

一种虚拟机资源分配方法、装置、电子设备及存储介质
技术领域
本申请涉及云计算领域,尤其涉及一种虚拟机资源分配方法、装置、电子设备及存储介质。
背景技术
目前,基于intel的高性能存储框架SPDK(storage performance develop kit,一种intel开源的高效存储开发包)开发的本地磁盘型虚拟机(即云主机)相对于基于kernelvhost模式开发的虚拟机,在性能上有了很大的提升,基本上可以发挥出NVME SSD(Non-Volatile Memory express固态硬盘)的所有性能。
然而,经实践发现,本地磁盘型虚拟机在运行过程中体现出来的IO性能并不稳定,抖动较大,因此,需要一种方法来提高本地磁盘型虚拟机在使用过程中的IO性能以及稳定性。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种虚拟机资源分配方法、装置、电子设备及存储介质。
第一方面,本申请提供了一种虚拟机资源分配方法,包括:
获取待分配资源的虚拟机所在宿主机中资源的资源信息,所述宿主机为非统一内存访问NUMA服务器,所述资源信息至少包括所述资源所属的NUMA节点的节点信息;
基于所述资源信息,从所述资源中确定目标资源,其中,所述目标资源与所述虚拟机使用的逻辑卷属于同一所述NUMA节点;
将所述目标资源与所述虚拟机绑定,以将所述目标资源分配给所述虚拟机。
作为一种可能的实现方式,所述基于所述资源信息,从所述资源中确定目标资源,包括:
基于所述资源信息对所述资源进行分组,其中,将属于同一NUMA节点的资源划分至同一分组,将属于不同NUMA节点的资源划分至不同分组;
确定所述虚拟机使用的逻辑卷所属的目标NUMA节点;
从所述目标NUMA节点对应的所述分组中确定目标资源。
作为一种可能的实现方式,所述逻辑卷的名称中携带有组成所述逻辑卷的固态硬盘所属NUMA节点的节点信息;
所述确定所述虚拟机使用的逻辑卷所属的目标NUMA节点,包括:
获取所述虚拟机使用的逻辑卷的名称;
对所述名称进行解析,得到组成所述逻辑卷的固态硬盘所属NUMA节点的节点信息;
将解析得到的所述节点信息对应的所述NUMA节点,确定为所述虚拟机使用的逻辑卷所属的目标NUMA节点。
作为一种可能的实现方式,所述从所述目标NUMA节点对应的所述分组中确定目标资源,包括:
将所述目标NUMA节点对应的所述分组中,未分配给其他虚拟机的资源确定为备选资源;
从所述备选资源信息中确定目标资源。
作为一种可能的实现方式,所述从所述备选资源中确定目标资源,包括:
确定待分配给所述虚拟机的第一资源数量,以及确定所述备选资源的第二资源数量;
将所述第一资源数量和所述第二资源数量进行比较;
若比较出所述第二资源数量不小于所述第一资源数量,则从所述备选资源中确定所述第一资源数量的资源作为目标资源。
作为一种可能的实现方式,所述方法还包括:
若比较出所述第二资源数量小于所述第一资源数量,则将所有所述备选资源确定为目标资源,以及从其他所述分组中未分配给其他虚拟机的资源中,确定第三资源数量的资源作为所述目标资源,所述第三资源数量为所述第一资源数量与所述第二资源数量之间的差值。
第二方面,本申请实施例还提供了一种虚拟机资源分配装置,包括:
获取模块,用于获取待分配资源的虚拟机所在宿主机中资源的资源信息,所述宿主机为非统一内存访问NUMA服务器,所述资源信息至少包括所述资源所属的NUMA节点的节点信息;
资源确定模块,用于基于所述资源信息,从所述资源中确定目标资源,其中,所述目标资源与所述虚拟机使用的逻辑卷属于同一所述NUMA节点;
资源绑定模块,用于将所述目标资源与所述虚拟机绑定,以将所述目标资源分配给所述虚拟机。
作为一种可能的实现方式,所述资源确定模块,包括:
分组子模块,用于基于所述资源信息对所述资源进行分组,其中,将属于同一NUMA节点的资源划分至同一分组,将属于不同NUMA节点的资源划分至不同分组;
目标节点确定子模块,用于确定所述虚拟机使用的逻辑卷所属的目标NUMA节点;
资源确定子模块,用于从所述目标NUMA节点对应的所述分组中确定目标资源。
第三方面,本发明实施例还提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的虚拟机资源分配程序,以实现第一方面所述的虚拟机资源分配方法。
第四方面,本发明实施例还提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面所述的虚拟机资源分配方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的一种资源分配方法,通过获取待分配资源的虚拟机所在的宿主机中资源的资源信息,基于资源信息从资源中确定目标资源,其中目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,将目标资源与虚拟机绑定,以将目标资源分配给虚拟机。由于分配给虚拟机的目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,因此,虚拟机在运行过程中,将对同一NUMA节点下的资源进行访问,避免了虚拟机跨NUMA节点访问导致的虚拟机的IO性能降低,进而提高了虚拟机IO性能的稳定性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种虚拟机资源分配方法的流程图。
图2为本申请实施例提供的一种从资源中确定目标资源的方法流程图。
图3为本申请实施例提供的一种从备选资源中确定目标资源的方法流程图。
图4为本申请实施例提供的一种虚拟机资源分配装置的框图。
图5为本申请实施例提供的一种电子设备的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着计算机技术的快速发展,云计算得到了快速发展和广泛应用。云计算是通过虚拟化技术将原本分散的物理计算机资源整合成巨大的资源池,为用户提供“取之不尽用之不竭”的计算资源。
目前,NUMA(Non Uniform Memory Access,非统一内存访问)服务器中安装的虚拟机在运行时,通常由虚拟机所在的宿主机(也即安装有该虚拟机的NUMA服务器)利用numad服务,根据虚拟机所需要的资源数量对虚拟机进行资源的调度分配,这里,资源包括但不限于处理器、内存、NVME SSD等。虽然此种虚拟机资源的分配方式比较通用,但是,由于仅仅是根据虚拟机所需要的资源数量对虚拟机进行资源分配,从而使得宿主机在进行资源分配时针对性不强,尤其是在宿主机中有多个NUMA节点的情况下,宿主机常常会为虚拟机分配不同NUMA节点下的资源,这就导致虚拟机在运行过程中将出现跨NUMA节点访问的情况。
本领域技术人员可以理解的是,虚拟机跨NUMA节点访问将导致虚拟机的IO性能降低,并且,不同的虚拟机很可能涉及访问相同的资源,这就导致同一资源被不同的虚拟机来回调度,从而产生不同虚拟机间的相互干扰现象,使得虚拟机的IO性能稳定性较差。
为了解决上述技术问题,本申请提供了一种虚拟机资源分配方法。下面以具体实施例对本申请提供的方法进行详细的解释说明,实施例并不构成对本申请实施例的具体限定。
参见图1,为本申请一示例性实施例提供的一种虚拟机资源分配方法的流程示意图,如图1所示,该方法可以包括如下步骤:
S101.获取待分配资源的虚拟机所在宿主机中资源的资源信息,宿主机为NUMA服务器,资源信息至少包括资源所属的NUMA节点的节点信息。
在实践中,一个宿主机中可能有多个虚拟机,本申请实施例对一个宿主机中包括的虚拟机的数量不做限制。以下为便于描述,以对一个虚拟机(以下称待分配资源的虚拟机)分配资源为例,对本申请实施例提供的虚拟机资源分配方法进行说明。
首先说明,在多NUMA节点的宿主机上,宿主机中所有的资源都是按NUMA节点进行等分的,也就是说,宿主机中的资源被平均分布到多个NUMA节点下。优选的,宿主机中NVMESSD占用的PCIE插槽在布线时,可以设计为按照多个NUMA节点均匀分布,如此,就可以实现将宿主机中的所有NVME SSD平均分布于多个NUMA节点下。其中宿主机中的资源除了NVMESSD之外,还包括处理器CPU和内存等。
进一步的,宿主机中可记录有各NUMA节点与资源之间的对应关系,以便根据该对应关系确定各NUMA节点下包含的资源,以及确定各资源所属的NUMA节点。具体的,上述NUMA节点与资源之间的对应关系可实现为NUMA节点标识和资源标识的对应关系。其中,资源标识包括但不限于:NVME SSD对应的系统编号、内存对应的内存编号、CPU对应处理器编号等。
本申请实施例中,如S101中的描述,在为虚拟机分配资源时,首先获取虚拟机所在宿主机中资源的资源信息。这里,资源信息至少包括资源所属NUMA节点的节点信息,例如节点标识。
S102.基于资源信息,从资源中确定目标资源,其中,目标资源与虚拟机使用的逻辑卷属于同一NUMA节点。
S103.将目标资源与虚拟机绑定,以将目标资源分配给虚拟机。
由上述S102和S103中的描述可知,本申请实施例中,分配给虚拟机的目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,这就也意味着虚拟机在运行时,将对其逻辑卷所在NUMA节点中的资源进行访问,从而能够避免出现虚拟机在运行时跨NUMA节点访问资源的现象,进而能够避免虚拟机跨NUMA节点访问导致的虚拟机的IO性能降低,提高了虚拟机IO性能的稳定性。至于是如何基于资源信息,从宿主机的资源中确定待分配给虚拟机的目标资源的,在下文中通过图2所示流程进行说明,这里先不详述。
本申请实施例中,将目标资源与虚拟机绑定可以包括:创建虚拟机的配置文件,将目标资源的信息,例如CPU的处理器编号和内存的内存编号添加到该配置文件中,如此,宿主机便可以基于该虚拟机的配置文件将目标资源分配给该虚拟机。可选的,宿主机可以在虚拟机启动时,或在虚拟机运行过程中,将目标资源分配给虚拟机。
本申请实施例提供的一种资源分配方法,通过获取待分配资源的虚拟机所在的宿主机中资源的资源信息,基于资源信息从资源中确定目标资源,其中目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,将目标资源与虚拟机绑定,以将目标资源分配给虚拟机,由于分配给虚拟机的目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,因此,虚拟机在运行过程中,是在自身逻辑卷所属NUMA节点内进行资源访问的,这则避免了虚拟机在运行过程中跨NUMA节点访问的现象,从而能够提升虚拟机的IO性能以及IO性能的稳定性。
参见图2,为本申请另一实施例提供的一种虚拟机资源分配方法的实施例流程图,在图1所示的虚拟机资源分配方法的基础上,如图2所示,上述S102中基于资源信息,从资源中确定目标资源,可以包括如下步骤:
S201.基于资源信息对资源进行分组,其中,将属于同一NUMA节点的资源划分至同一分组,将属于不同NUMA节点的资源划分至不同分组。
在本申请实施例中,资源信息中至少包括资源所属的NUMA节点的节点信息,因此,可以基于资源信息,将属于同一NUMA节点的资源划分至同一分组,将属于不同NUMA节点的资源划分至不同的分组,从而得到各NUMA节点各自对应的分组。
S202.确定虚拟机使用的逻辑卷所属的目标NUMA节点。
在本申请实施例中,虚拟机可以基于SPDK开发,在宿主机中的SPDK服务的启动阶段收集宿主机中所有NVME SSD的信息,然后给每个NVME SSD设置与其所属的NUMA节点相匹配的名称,从而能够基于NVME SSD的名称确定NVME SSD所属的NUMA节点。
作为一个可选的实现方式,NVME SSD的名称可以由NVME SSD的系统编号、命名空间的个数和NVME SSD所属的NUMA节点的节点标识组成。一个例子,NVME SSD的名称为:Nvme0n1m0,其中Nvme0表示该NVME SSD的系统编号为0,n1表示该NVME SSD包括1个namespace(也即命名空间),m0表示该NVME SSD所属的NUMA节点的节点标识为0。
进一步的,在为NVME SSD设置名称之后,可以通过调用SPDK封装的命令行创建虚拟机使用的逻辑卷,且创建的逻辑卷的名称中可以携带有组成该逻辑卷的NVME SSD的名称,而组成逻辑卷的NVME SSD所属的NUMA节点即为该逻辑卷所属的NUMA节点。由此可见,可以根据逻辑卷的名称确定逻辑卷所属的目标NUMA节点。
具体的,确定虚拟机使用的逻辑卷所属的目标NUMA节点包括:获取虚拟机使用的逻辑卷的名称,对名称进行解析,得到组成逻辑卷的固态硬盘(即NVME SSD)所属NUMA节点的节点信息,将解析得到的节点信息对应的NUMA节点,确定为虚拟机使用的逻辑卷所属的目标NUMA节点。其中NUMA节点的节点信息可以为NUMA节点的节点标识。
一个例子,假设逻辑卷的名称为Nvme0n1m0-lv0,其中lv0表示逻辑卷的编号0,对该逻辑卷的名称进行解析,确定其中组成该逻辑卷的固态硬盘所属NUMA节点的节点信息为m0,如此,便可以确定该逻辑卷所属的目标NUMA节点为节点标识为m0的NUMA节点。
S203.从目标NUMA节点对应的分组中确定目标资源。
本申请实施例中,为避免不同虚拟机调用相同的资源导致的相互干扰,在从目标NUMA节点对应的所分组中确定目标资源时,首先将目标NUMA节点对应的分组中未分配给其他虚拟机的资源确定为备选资源,然后,从备选资源中确定目标资源。
由于虚拟机所需要的资源数量(以下称第一资源数量)是已知的,因此,在从备选资源中确定目标资源时,可根据第一资源数量从备选资源中确定目标资源。然而,在实践中,备选资源的数量(以下称第二资源数量)并非一定大于第一资源数量,这也就意味着,有可能出现目标NUMA节点对应的分组中备选资源不足以满足虚拟机的资源需求的现象,因此,本申请实施例中,提出图3所示例方式,实现从备选资源中确定目标资源。
如图3所示,包括以下步骤:
S301.确定待分配给虚拟机的第一资源数量,以及确定备选资源的第二资源数量。
S302.将第一资源数量和第二资源数量进行比较,若比较出第二资源数量不小于第一资源数量,则执行S303,若比较出第二资源数量小于第一资源数量,则执行S304。
S303.从备选资源中确定第一资源数量的资源作为目标资源。
S304.将所有备选资源确定为目标资源,以及从其他分组中未分配给其他虚拟机的资源中,确定第三资源数量的资源作为目标资源,其中第三资源数量为第一资源数量与第二资源数量之间的差值。
可以理解的是,若比较出第二资源数量小于第一资源数量,则意味着备选资源不足以满足虚拟机的资源需求,此时,为满足虚拟机的资源需求,除了将全部的备选资源确定为目标资源以外,还从其他分组中未分配给其他虚拟机的资源中确定目标资源,优选的,在一个其他分组中的资源能够满足虚拟机的资源需求的情况下,第三资源数量的资源从同一分组中确定。通过该种设置,可以在无法完全避免跨NUMA节点访问时,尽可能降低跨NUMA节点的节点数量。
具体的,作为一个实施例,在比较出第二资源数量小于第一资源数量后,还可以确定其他各分组中未分配给其他虚拟机的资源的数量,并从中选取未分配给其他虚拟机的资源的数量不小于第三资源数量的备选分组,若备选分组的个数为1,则从该备选分组中选取第三资源数量的资源作为目标资源,若备选分组的个数大于1,则选取任一备选分组,并从该任一备选分组中选取第三资源数量的资源作为目标资源。
本申请实施例提供的虚拟机资源分配方法,在确定目标资源时,优先选取同一NUMA节点下未分配给其他虚拟机的资源,如此便可以最大限度的减少跨NUMA节点访问的发生,同时也可以避免由于同一资源被不同的虚拟机调用所产生的不同虚拟机间的相互干扰现象,进而减少了跨NUMA节点访问带来的IO性能损耗,同时提高虚拟机的IO性能以及稳定性。
参见图4,为本申请一实施例提供的一种虚拟机资源分配装置的示意图,如图4所示,该装置可以包括:
获取模块41,用于获取待分配资源的虚拟机所在宿主机中资源的资源信息,宿主机为非统一内存访问NUMA服务器,资源信息至少包括资源所属的NUMA节点的节点信息;
资源确定模块42,用于基于所述资源信息,从资源中确定目标资源,其中,目标资源与虚拟机使用的逻辑卷属于同一NUMA节点;
资源绑定模块43,用于将目标资源与虚拟机绑定,以将目标资源分配给虚拟机。
作为一个实施例,资源确定模块42,包括(图4中未示出):
分组子模块,用于基于资源信息对资源进行分组,其中,将属于同一NUMA节点的资源划分至同一分组,将属于不同NUMA节点的资源划分至不同分组;
目标节点确定子模块,用于确定虚拟机使用的逻辑卷所属的目标NUMA节点;
资源确定子模块,用于从目标NUMA节点对应的分组中确定目标资源。
作为一个实施例,逻辑卷的名称中携带有组成逻辑卷的固态硬盘所属NUMA节点的节点信息;
目标节点确定子模块,具体用于:
获取虚拟机使用的逻辑卷的名称;
对名称进行解析,得到组成逻辑卷的固态硬盘所属NUMA节点的节点信息;
将解析得到的节点信息对应的NUMA节点,确定为虚拟机使用的逻辑卷所属的目标NUMA节点。
作为一个实施例,资源确定子模块,具体用于:
将目标NUMA节点对应的所述分组中,未分配给其他虚拟机的资源确定为备选资源;
从备选资源信息中确定目标资源。
作为一个实施例,从所述备选资源中确定目标资源,包括:
确定待分配给虚拟机的第一资源数量,以及确定备选资源的第二资源数量;
将第一资源数量和第二资源数量进行比较;
若比较出第二资源数量不小于第一资源数量,则从备选资源中确定第一资源数量的资源作为目标资源。
作为一个实施例,上述装置还包括:
若比较出第二资源数量小于第一资源数量,则将所有备选资源确定为目标资源,以及从其他分组中未分配给其他虚拟机的资源中,确定第三资源数量的资源作为目标资源,第三资源数量为第一资源数量与第二资源数量之间的差值。
本申请实施例提供的一种资源分配装置,获取待分配资源的虚拟机所在的宿主机中资源的资源信息,其中宿主机为非统一内存访问NUMA服务器,资源信息中至少包括资源所属的NUMA节点的节点信息,基于资源信息从资源中确定目标资源,其中目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,将目标资源与虚拟机绑定,以将目标资源分配给虚拟机。由于分配给虚拟机的目标资源与虚拟机使用的逻辑卷属于同一NUMA节点,因此,虚拟机在运行过程中,是在自身逻辑卷所属NUMA节点内进行资源访问的,这则避免了虚拟机在运行过程中跨NUMA节点访问的现象,并且目标资源为分配给其他虚拟机的资源,如此也可以避免由于同一资源被不同的虚拟机调用所产生的不同虚拟机间的相互干扰现象,从而减少了跨NUMA节点访问带来的IO性能损耗,同时提高虚拟机的IO性能以及稳定性。
从而能够提升虚拟机的IO性能以及IO性能的稳定性。
参见图5,图5是本申请的另一实施例提供的一种电子设备的结构示意图。
如图5所示,本实施例提供的电子设备包括:至少一个处理器501、存储器502、至少一个网络接口503和其他用户接口504。电子设备500中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统505。
其中,用户接口504可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器502存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统5021和第二应用程序5022。
其中,操作系统5021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。第二应用程序5022,包含各种第二应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在第二应用程序5022中。
在本发明实施例中,通过调用存储器502存储的程序或指令,具体的,可以是第二应用程序5022中存储的程序或指令,处理器501用于执行各方法实施例所提供的方法步骤,例如包括:
获取待分配资源的虚拟机所在宿主机中资源的资源信息,宿主机为非统一内存访问NUMA服务器,资源信息至少包括资源所属的NUMA节点的节点信息;
基于资源信息,从资源中确定目标资源,其中,目标资源与虚拟机使用的逻辑卷属于同一NUMA节点;
将目标资源与所述虚拟机绑定,以将目标资源分配给虚拟机。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文功能的单元来实现本文的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的虚拟机资源分配方法。
处理器用于执行存储器中存储的虚拟机资源分配程序,以实现以下在电子设备侧执行的虚拟机资源分配方法的步骤:
获取待分配资源的虚拟机所在宿主机中资源的资源信息,宿主机为非统一内存访问NUMA服务器,资源信息至少包括资源所属的NUMA节点的节点信息;
基于资源信息,从资源中确定目标资源,其中,目标资源与虚拟机使用的逻辑卷属于同一NUMA节点;
将目标资源与所述虚拟机绑定,以将目标资源分配给虚拟机。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种虚拟机资源分配方法,其特征在于,包括:
获取待分配资源的虚拟机所在宿主机中资源的资源信息,所述宿主机为非统一内存访问NUMA服务器,所述资源信息至少包括所述资源所属的NUMA节点的节点信息;
基于所述资源信息,从所述资源中确定目标资源,其中,所述目标资源与所述虚拟机使用的逻辑卷属于同一所述NUMA节点;
将所述目标资源与所述虚拟机绑定,以将所述目标资源分配给所述虚拟机。
2.根据权利要求1所述的方法,其特征在于,所述基于所述资源信息,从所述资源中确定目标资源,包括:
基于所述资源信息对所述资源进行分组,其中,将属于同一NUMA节点的资源划分至同一分组,将属于不同NUMA节点的资源划分至不同分组;
确定所述虚拟机使用的逻辑卷所属的目标NUMA节点;
从所述目标NUMA节点对应的所述分组中确定目标资源。
3.根据权利要求2所述的方法,其特征在于,所述逻辑卷的名称中携带有组成所述逻辑卷的固态硬盘所属NUMA节点的节点信息;
所述确定所述虚拟机使用的逻辑卷所属的目标NUMA节点,包括:
获取所述虚拟机使用的逻辑卷的名称;
对所述名称进行解析,得到组成所述逻辑卷的固态硬盘所属NUMA节点的节点信息;
将解析得到的所述节点信息对应的所述NUMA节点,确定为所述虚拟机使用的逻辑卷所属的目标NUMA节点。
4.根据权利要求2所述的方法,其特征在于,所述从所述目标NUMA节点对应的所述分组中确定目标资源,包括:
将所述目标NUMA节点对应的所述分组中,未分配给其他虚拟机的资源确定为备选资源;
从所述备选资源信息中确定目标资源。
5.根据权利要求4所述的方法,其特征在于,所述从所述备选资源中确定目标资源,包括:
确定待分配给所述虚拟机的第一资源数量,以及确定所述备选资源的第二资源数量;
将所述第一资源数量和所述第二资源数量进行比较;
若比较出所述第二资源数量不小于所述第一资源数量,则从所述备选资源中确定所述第一资源数量的资源作为目标资源。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若比较出所述第二资源数量小于所述第一资源数量,则将所有所述备选资源确定为目标资源,以及从其他所述分组中未分配给其他虚拟机的资源中,确定第三资源数量的资源作为所述目标资源,所述第三资源数量为所述第一资源数量与所述第二资源数量之间的差值。
7.一种虚拟机资源分配装置,其特征在于,包括:
获取模块,用于获取待分配资源的虚拟机所在宿主机中资源的资源信息,所述宿主机为非统一内存访问NUMA服务器,所述资源信息至少包括所述资源所属的NUMA节点的节点信息;
资源确定模块,用于基于所述资源信息,从所述资源中确定目标资源,其中,所述目标资源与所述虚拟机使用的逻辑卷属于同一所述NUMA节点;
资源绑定模块,用于将所述目标资源与所述虚拟机绑定,以将所述目标资源分配给所述虚拟机。
8.根据权利要求1所述的装置,其特征在于,所述资源确定模块,包括:
分组子模块,用于基于所述资源信息对所述资源进行分组,其中,将属于同一NUMA节点的资源划分至同一分组,将属于不同NUMA节点的资源划分至不同分组;
目标节点确定子模块,用于确定所述虚拟机使用的逻辑卷所属的目标NUMA节点;
资源确定子模块,用于从所述目标NUMA节点对应的所述分组中确定目标资源。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的虚拟机资源分配程序,以实现权利要求1-6任一所述的虚拟机资源分配方法。
10.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1-6任一所述的虚拟机资源分配方法。
CN202111012057.XA 2021-08-31 2021-08-31 一种虚拟机资源分配方法、装置、电子设备及存储介质 Active CN113760457B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111012057.XA CN113760457B (zh) 2021-08-31 2021-08-31 一种虚拟机资源分配方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111012057.XA CN113760457B (zh) 2021-08-31 2021-08-31 一种虚拟机资源分配方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113760457A true CN113760457A (zh) 2021-12-07
CN113760457B CN113760457B (zh) 2024-09-13

Family

ID=78792213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111012057.XA Active CN113760457B (zh) 2021-08-31 2021-08-31 一种虚拟机资源分配方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113760457B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114371911A (zh) * 2021-12-28 2022-04-19 天翼云科技有限公司 虚拟机调度方法、装置、电子设备和可读存储介质
CN114510321A (zh) * 2022-01-30 2022-05-17 阿里巴巴(中国)有限公司 资源调度方法、相关装置和介质
CN114610497A (zh) * 2022-03-21 2022-06-10 中国电信股份有限公司 容器调度方法、集群系统、装置、电子设备及存储介质
CN115794317A (zh) * 2023-02-06 2023-03-14 天翼云科技有限公司 一种基于虚拟机的处理方法、装置、设备及介质
CN116302363A (zh) * 2023-05-16 2023-06-23 苏州浪潮智能科技有限公司 一种虚拟机创建方法、系统、计算机设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130073730A1 (en) * 2011-09-20 2013-03-21 International Business Machines Corporation Virtual machine placement within a server farm
CN104270409A (zh) * 2014-09-04 2015-01-07 国云科技股份有限公司 一种云平台中高效利用集中存储的方法
CN106095337A (zh) * 2016-06-07 2016-11-09 国云科技股份有限公司 一种基于san网络存储的云盘快速共享方法
CN106302075A (zh) * 2015-06-29 2017-01-04 联想(北京)有限公司 一种创建逻辑卷的方法及装置
US20170286144A1 (en) * 2016-03-31 2017-10-05 International Business Machines Corporation Software-defined storage cluster unified frontend
CN112181595A (zh) * 2020-10-10 2021-01-05 济南浪潮数据技术有限公司 虚拟机的numa节点绑定方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130073730A1 (en) * 2011-09-20 2013-03-21 International Business Machines Corporation Virtual machine placement within a server farm
CN104270409A (zh) * 2014-09-04 2015-01-07 国云科技股份有限公司 一种云平台中高效利用集中存储的方法
CN106302075A (zh) * 2015-06-29 2017-01-04 联想(北京)有限公司 一种创建逻辑卷的方法及装置
US20170286144A1 (en) * 2016-03-31 2017-10-05 International Business Machines Corporation Software-defined storage cluster unified frontend
CN106095337A (zh) * 2016-06-07 2016-11-09 国云科技股份有限公司 一种基于san网络存储的云盘快速共享方法
CN112181595A (zh) * 2020-10-10 2021-01-05 济南浪潮数据技术有限公司 虚拟机的numa节点绑定方法、装置、设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LIU, M 等: "Optimizing Virtual Machine Consolidation Performance on NUMA Server Architecture for Cloud Workloads", 《ACM/IEEE 41ST ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA)》, 19 November 2014 (2014-11-19) *
刘胜娟;王博丞;闫燕勤;杜劝劝;: "云教学场景下文件共享系统的研究与设计", 教育现代化, no. 38, 17 September 2018 (2018-09-17) *
施继成;陈海波;臧斌宇;: "面向多处理器虚拟机的动态NUMA方法", 小型微型计算机系统, no. 04, 15 April 2015 (2015-04-15) *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114371911A (zh) * 2021-12-28 2022-04-19 天翼云科技有限公司 虚拟机调度方法、装置、电子设备和可读存储介质
CN114510321A (zh) * 2022-01-30 2022-05-17 阿里巴巴(中国)有限公司 资源调度方法、相关装置和介质
CN114610497A (zh) * 2022-03-21 2022-06-10 中国电信股份有限公司 容器调度方法、集群系统、装置、电子设备及存储介质
CN115794317A (zh) * 2023-02-06 2023-03-14 天翼云科技有限公司 一种基于虚拟机的处理方法、装置、设备及介质
CN116302363A (zh) * 2023-05-16 2023-06-23 苏州浪潮智能科技有限公司 一种虚拟机创建方法、系统、计算机设备及存储介质
CN116302363B (zh) * 2023-05-16 2023-08-04 苏州浪潮智能科技有限公司 一种虚拟机创建方法、系统、计算机设备及存储介质

Also Published As

Publication number Publication date
CN113760457B (zh) 2024-09-13

Similar Documents

Publication Publication Date Title
CN113760457B (zh) 一种虚拟机资源分配方法、装置、电子设备及存储介质
US9336147B2 (en) Cache and memory allocation for virtual machines
US9229878B2 (en) Memory page offloading in multi-node computer systems
US10990303B2 (en) Memory allocation method and apparatus
US11340945B2 (en) Memory congestion aware NUMA management
JP2010532527A (ja) 物理イメージと仮想イメージの統合的な提供
JP2012521611A (ja) 仮想マシン用非一様仮想メモリーアーキテクチャー
CN110750336B (zh) 一种OpenStack虚拟机内存热扩容方法
CN109960569B (zh) 一种虚拟化处理方法及装置
US20210096982A1 (en) Booting an application from multiple memories
CN107329798B (zh) 数据复制的方法、装置和虚拟化系统
CN116483740B (zh) 内存数据的迁移方法、装置、存储介质及电子装置
US10976934B2 (en) Prioritizing pages to transfer for memory sharing
Caldwell et al. Fluidmem: Memory as a service for the datacenter
US10228859B2 (en) Efficiency in active memory sharing
US9753670B2 (en) Prioritizing memory pages to copy for memory migration
CN112506660B (zh) 一种优化音视频编解码器内存的方法、装置及存储介质
US20230325239A1 (en) A system and method for memory allocation and management in non-uniform memory access architecture computing environments
JP2014157476A (ja) 計測装置及び計測方法
CN117950808A (zh) 一种虚拟机资源分配方法、装置及相关设备
CN117149401A (zh) 一种资源调度方法、装置及设备
CN111352703A (zh) 一种数据处理的方法及装置、电子设备、存储介质
CN115756742A (zh) 直通i/o虚拟化的性能优化设计方法、系统、介质及设备
CN118152136A (zh) 集群扩容存储分配方法、装置、设备、介质及程序产品
CN118159953A (zh) 提供动态随机存取存储器高速缓存作为每个应用进程的第二类型存储器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant