CN115398400A - 针对虚拟机的资源分配 - Google Patents

针对虚拟机的资源分配 Download PDF

Info

Publication number
CN115398400A
CN115398400A CN202180026793.2A CN202180026793A CN115398400A CN 115398400 A CN115398400 A CN 115398400A CN 202180026793 A CN202180026793 A CN 202180026793A CN 115398400 A CN115398400 A CN 115398400A
Authority
CN
China
Prior art keywords
resource
pool
resource units
units
types
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
CN202180026793.2A
Other languages
English (en)
Inventor
R·N·N·科诺
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN115398400A publication Critical patent/CN115398400A/zh
Pending legal-status Critical Current

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/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/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
    • 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
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/5072Grid computing
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种***和方法,包括接收创建虚拟机的请求,该虚拟机与多个资源类型中的每个资源类型的请求数目的资源单元相关联,针对多个资源类型中的每个资源类型,确定可用资源单元的池,针对多个资源类型中的每个资源类型,从该资源类型的可用资源单元的池中随机选择请求数目的资源单元,以及向虚拟机分配多个资源类型中的每个资源类型的所选择的资源单元。

Description

针对虚拟机的资源分配
背景技术
传统的计算机服务器包括用于计算的物理资源(例如,一个或多个中央处理单元(CPU))、数据存储(例如,一个或多个随机存取存储器(RAM)模块和一个或多个磁盘驱动器)、以及其他服务器功能。如本领域已知的,这些物理资源或物理设备可以分配给一个或多个逻辑服务器或虚拟机。虚拟机通常使用分配给其的物理资源来执行操作***和应用,而不依赖可以呈现在服务器上的其他物理资源。
服务器执行虚拟机监控器或管理程序,以管理其中执行的任何虚拟机。管理程序加载虚拟机的操作***,并向每个虚拟机分配CPU资源、RAM、和磁盘存储空间。然后,每个虚拟机与管理程序交互以利用其分配到的资源。
通常根据先进先出协议来向虚拟机分配物理资源。这样的协议可能导致给定资源类型的物理资源的不均匀使用。此外,传统的资源分配不能有效地解释单独物理资源随时间的劣化。需要用于向虚拟机分配物理资源的改进***。
附图说明
图1是根据一些实施例的包括物理资源并且执行管理程序的计算机服务器的框图。
图2是根据一些实施例的包括物理资源并且执行管理程序和虚拟机的计算机服务器的框图。
图3是根据一些实施例的向虚拟机分配物理资源类型的资源单元的过程的流程图。
图4是根据一些实施例的包括物理资源并且执行管理程序和两个虚拟机的计算机服务器的框图。
图5是根据一些实施例的包括物理资源并且执行管理程序和两个虚拟机的计算机服务器的框图。
图6是根据一些实施例的包括物理资源并且执行管理程序和虚拟机的计算机服务器的框图。
图7是根据一些实施例的包括物理资源并且执行管理程序和两个虚拟机的计算机服务器的框图。
图8是根据一些实施例的向虚拟机分配物理资源类型的资源单元的过程的流程图。
图9图示了根据一些实施例的向相应虚拟机分配多个计算机服务器的物理资源的架构。
图10图出了根据一些实施例的向相应虚拟机分配多个计算机服务器的物理资源的云服务架构。
图11是根据一些实施例的用于向相应虚拟机分配多个计算机服务器的物理资源的计算机服务器的框图。
具体实施方式
提供以下描述以使得本领域的任何人能够制造和使用所描述的实施例。然而,对于本领域人员来说,各种修改仍将是明显的。
一些实施例采用对要被分配给虚拟机的物理资源的伪随机选择。例如,可以接收请求以在包括八个处理器内核的服务器中创建包括三个处理器内核的虚拟机。作为响应,实施例可以伪随机地选择八个处理器内核中的三个处理器内核以用于分配给虚拟机。由于八个处理器内核中的每个处理器内核与基本相等的被选择的可能性相关联,因此每个内核在操作过程中可能被选择基本相等的次数。在一些情况下,特别是在为每个创建的虚拟机优化资源分配并且每个创建的虚拟机的生命周期相当一致的情况下,八个处理器内核中的每个处理器内核都会经历基本相等的破损量。如下面将描述的,实施例不限于处理器内核。
可以基于破损来确定资源从中被伪随机地选择的资源的池。例如,一些实施例可以跟踪与每个资源相关联的使用信息。如果使用信息指示资源接近或超出可以假定其可靠运行的生命周期的终点,则该资源不被包括在资源从中被随机选择的资源的池中。例如,如果先前示例的八个处理器内核中的一个处理器内核由于其相关联的使用信息而被认为是不适当的,则从剩余的七个处理器内核中随机选择三个请求的处理器内核。
在处理器内核资源类型的情况下,使用信息可以包括计算的数目和/或强度,并且在磁盘或RAM资源类型的情况下可以包括读/写的数目。在一些实施例中,使用信息包括特定资源被分配到的虚拟机的总正常运行时间。在针对每个创建的虚拟机优化资源分配的情况下,总正常运行时间可以是针对资源破损的特别有效的代理。此外,用于部署虚拟机的现有场景可能已经包括用于监控总正常运行时间度量的机制。
图1是根据一些实施例的计算机服务器100的框图,该计算机服务器100包括物理资源110和执行管理程序120。实施例不限于计算机服务器100或者对其的前述描述。
计算机服务器100可以包括已知或成为已知的任何类型的服务器硬件。计算机服务器100的组件可以位于同一物理机架内或者位于多个独立物理单元内,这些多个独立物理单元位于本地或彼此远离。这样的多个独立物理单元可以被“条带化”,以便作为单个逻辑单片单元。计算机服务器100可以包括执行本文中归于计算机服务器100的功能以及将由计算机服务器100执行的任何其他功能所需的其他硬件和软件。
物理资源110包括处理(即,计算)资源112、RAM存储114、和磁盘存储116。这些资源中的每个资源在本文中将被称为资源类型。实施例不限于前述资源类型。
计算机服务器100的资源110运行以执行管理程序120的程序代码。如上所述,管理程序120可以向在计算机服务器100内执行的虚拟机分配资源110,实例化虚拟机,执行每个虚拟机的客户操作***,以及允许虚拟机访问向其分配的资源110。
管理程序120可以包括本机管理程序或托管管理程序。本机管理程序直接在主机***硬件上运行,而不在底层操作***上执行。因此,本机管理程序直接访问主机***的物理资源。托管管理程序被安装在主机***的底层操作***上。因此,托管管理程序向底层操作***发出请求以访问主机***的物理资源。
管理程序120向在服务器100内创建的每个虚拟机分配每个资源类型的子集。每个资源类型的可单独分配的子集在本文中将被称为资源单元。例如,如果管理程序120能够将处理资源112的单独处理器内核分配给在服务器100内执行的虚拟机,则每个处理器内核被认为是独特的资源单元。RAM资源114的每个双列直插式存储器模块(DIMM)可以被认为是单个资源单元,和/或RAM资源114的每个千兆字节存储可以被认为是单个资源单元,取决于管理程序120的能力,计算机服务器100和RAM设计直接寻址并且分配这些独特的子集。固定磁盘116可以类似地由资源单元组成,这些资源单元由独特的驱动器、盘片、扇区、或任何其他适当的子集来定义。
资源110的每个资源类型与相应的元数据113、115、和117相关联。元数据113、115、和117可以仅表示资源110的、可以分配给虚拟机的资源单元,而资源110的其他资源单元可以被具体指定用于实现计算机服务器110的其他操作(例如,管理程序120的执行)。
针对相应资源类型的每个资源单元,元数据113、115、和117的元数据标识资源单元的标识符、资源单元当前所关联的虚拟机的标识符、以及使用信息。使用信息可以包括破损程度的任何适当的指示符,诸如但不限于执行操作的总数目、使用的预期生命周期操作的百分比、总使用时间、以及经过的预期生命周期使用的百分比。计算机服务器100可以跟踪、更新、和存储元数据113、115、和117,但实施例不限于此。
图1还图示了接收创建虚拟机的请求130。可以从任何客户端或控制***接收请求130,下面将讨论其具体示例。除了其他细节之外,请求130可以针对若干资源类型中的每个资源类型指定要分配给虚拟机的资源单元的数目。例如,请求130可以包括创建对其分配2Gb的RAM、一个处理器内核、和512Gb的固定磁盘空间的虚拟机的指令。
根据一些实施例,管理程序120接收请求130并且遵循该请求130实例化虚拟机。为了这样做,管理程序120可以首先确定请求中针对每个指定资源类型的资源的池。上述示例请求请求处理器内核、RAM、和固定磁盘资源类型的资源单元。因此,可以基于与资源类型相关联的元数据113、115、和117来确定每个指定资源类型的资源的池。
由图1的元数据113、115、和117表示的资源单元均未被指派给任何虚拟机。并且,由元数据113、115、和117表示的资源单元均未与任何使用或破损相关联。因此,管理程序120可以确定这些资源单元中的每个资源单元都可用于包含在其相应资源类型的资源单元的池中。
然后,针对每个资源类型的请求数目的资源单元从该资源类型的可用资源单元的池中被随机选择。应当理解,在实践中可能无法实现真正的随机行为,并且如本文所使用的术语随机旨在涵盖伪随机选择和基本上模拟真正随机行为的任何其他选择技术。
根据一些实施例,针对给定资源类型的资源单元的随机选择包括向针对给定资源类型的资源单元的可用池应用随机算法,以生成请求数目的资源单元的随机集合。针对随机选择的任何适当***可以在一些实施例中被采用。
接下来,管理程序120向虚拟机分配每个资源类型的所选择的资源单元。图2图示了根据一些实施例的在响应于请求130的分配之后的元数据113、115、和117。如图所示,一个处理器内核C1、两个RAM DIMM,R1和R4(每个1Gb)、以及两个固定磁盘,D0和D4(每个256Gb)已分配到虚拟机VM1。如本领域已知的,管理程序120然后可以根据分配给它的资源单元实例化VM1 140。
图3包括根据一些实施例的向虚拟机分配物理资源类型的资源单元的过程300的流程图。在一些实施例中,处理单元(例如,一个或多个处理器、处理内核、处理器线程)主机服务器执行管理程序的软件程序代码以执行过程300。在其他实施例中,过程300由云服务提供商和/或分布式资源管理器执行。过程300和本文提及的所有其他过程可以体现在处理器可执行程序代码中,该处理器可执行程序代码从一个或多个非暂时性计算机可读介质中读取,诸如易失性或非易失性随机存取存储器、固定磁盘驱动器、DVD-ROM、闪存驱动器、和磁带,然后以压缩、未编译、和/或加密的格式存储。因此实施例不限于硬件和软件的任何具体组合。
初始地,在S310,接收创建虚拟机的请求。所请求的虚拟机与多个资源类型中的每个资源类型的请求数目的资源单元相关联。该请求可以从意图使用虚拟机的客户端***被接收、从用于向一个或多个客户端***提供虚拟机的资源管理器被接收、或者从任何其他适当的实体被接收。
在S320,可用资源单元的池针对请求的每个资源类型而被确定。可用资源单元的池可以包括可以由主机平台上的虚拟机使用的所有资源单元,不包括当前分配给虚拟机的那些资源单元。
图4图示了在图2的描绘之后的短时间内,在S310在服务器100处接收到请求150的示例。假设请求150请求资源100的每个资源类型的一个资源单元。此时,元数据113、115、和117示出了图2的分配,并且还示出与每个分配的资源单元相关联的使用信息。在S320,针对包括当前未分配给虚拟机(即,VM1)的每个资源单元的每个资源类型确定资源的池。特别地,针对处理器内核资源类型的池包括处理器内核C0、C2、C3、和C4,针对RAM存储资源类型的池包括RAM DIMM R0、R2、R3,针对固定磁盘资源类型的池包括固定磁盘D1、D2、D3。
然后在S330针对资源类型中的每个资源类型的请求数目的资源单元从该资源类型的可用资源单元的池中被随机选择。根据本示例,处理器内核资源单元C4是从包括处理器内核C0、C2、C3的池中选择的,针对RAM存储资源单元R3的池是从包括RAM DIMM R0、R2、R3的池中选择的,并且固定磁盘资源单元D2是从包括固定磁盘D1、D2、D3的池中选择的。
接下来,并且如图4的元数据中所反映的,在S340,资源类型中的每个资源类型的所选择的资源单元被分配给所请求的虚拟机。图4根据分配给VM2 160的资源单元进一步图示了对应的VM2 160的实例化。
图5图示了在执行虚拟机VM1 140和VM2 160一段时间之后的服务器100。元数据113、115、和117已经被更新以反映与每个虚拟机相关联的资源单元的使用。元数据113、115、和117可以基于由管理程序120、由服务器100的底层操作***、和/或由任何其他监控机制收集的使用信息来更新。如图所示,与虚拟机VM1140的处理器内核和RAM资源单元相关联的使用百分比(例如,总推荐操作生命周期的消耗百分比)为90%或更高,指示这些资源单元可能将达到它们推荐寿命的终点。图5中反映的使用仅用于示例目的,并且预期会随着时间,由许多虚拟机的实例化、操作、和解除分配引起,而不仅仅是示例中的两个虚拟机。
现在将假设管理程序例如响应于终止VM1 140的指令而终止虚拟机VM1 140。图6示出了服务器100,其中VM1 140不再执行。图6的元数据113、115、和117因此指示没有与VM1140相关联的资源110的资源单元。因此,原来与VM1 140相关联的资源单元可以被认为可供用于向另一虚拟机分配。
继续本示例,图7示出了在接收到创建另一虚拟机的请求170之后的服务器100。如上所述,管理程序120可以通过确定针对每个所请求的资源类型的资源的池来响应请求170。针对给定资源类型的池可以包括该资源类型的、当前未分配给虚拟机并且与小于阈值的使用百分比相关联的每个资源单元。阈值可以对于不同的资源类型并且/或者以任何其他适当的方式是不同的。
在下面的描述中,将假设每个资源类型的阈值为85%。相应地,针对处理器内核资源类型而确定的池包括处理器内核C0、C2、C3,针对RAM存储资源类型的池包括RAM DIMMR0、R2,针对固定磁盘资源类型的池包括固定磁盘D0、D1、D3、D4。
然后在S330,针对每个资源类型的请求数目的资源单元从该资源类型的可用资源单元的池中被随机选择。根据本示例,处理器内核资源单元C2、从包括处理器内核C0、C2、C3的池中被选择,RAM存储资源单元R0、R2从包括RAM DIMM R0、R2、R3的池中被选择,并且固定磁盘资源单元D0、D3、D4从包括固定磁盘D0、D1、D3、D4的池中被选择。
接下来,并且如图7中的元数据所反映的,资源类型中的每个资源类型的所选择的资源单元被分配给所请求的虚拟机。图7还图示了根据分配给VM3 180的资源单元实例化对应的VM3 180。
图8包括关于图7所描述的并且根据一些实施例的用于向虚拟机分配物理资源类型的资源单元的过程800的流程图。
如上面关于S310所描述的,在S810接收创建虚拟机的请求。所请求的虚拟机与多个资源类型中的每个资源类型的请求数目的资源单元相关联。在S820,针对该请求的每个资源类型确定可用资源单元的池。可用资源单元的池可以包括可以由在主机平台上执行的虚拟机使用的所有资源单元,不包括当前分配给虚拟机的那些资源单元。
在S830,从在S820确定的每个资源单元的池中确定破损资源单元。破损资源单元可以基于与每个资源单元相关联的使用信息来确定。与资源单元相关联的使用信息可以包括计算的数目、计算的强度、设备温度、操作时间、资源单元被分配到的虚拟机的总操作时间、和/或任何其他适当的度量。参考图7示例,资源单元C1、资源单元R1、和资源单元R4在S830被确定为破损,因此在S840从它们相应的可用资源单元的池中被移除。
然后在S850从资源类型的可用资源单元的池中随机选择针对每个资源类型的请求数目的资源单元。在S860,每个资源类型的所选择的资源单元被分配给所请求的虚拟机。再次参考图7,在S860,处理器内核资源单元C2、处理器内核资源单元C3、RAM存储资源单元R0、RAM存储资源单元R2、和固定盘资源单元D0、固定盘资源单元D3、固定盘资源单元D4被分配给所请求的虚拟机。
图9图示了一种架构,在该架构中,服务器900执行资源管理器910以如上所述向虚拟机分配资源单元。客户端***920向服务器900发送创建虚拟机的请求925。客户端***920和服务器900可以各自包括任何独立或分布式计算***。
服务器900可以向主机服务器940、950、960发送请求925,主机服务器然后可以如上所述执行它们相应的管理程序944、954、964,以向虚拟机分配资源单元并且实例化该虚拟机。优先化/负载平衡算法可以被采用来确定主机服务器940、950、960中要将虚拟机在其中实例化的主机服务器。
在一些实施例中,资源管理器910维护与主机服务器940、950、960的资源942、952、962中的每个资源单元相关联的元数据,诸如元数据113、115、117。相应地,资源管理器910可以被执行以标识主机服务器940、950、960中的主机服务器,来确定针对每个资源类型的所标识的主机服务器的可用资源单元的池,并且如本文所述的从该池中随机选择资源单元。资源管理器910然后可以指令与所标识的主机服务器相关联的管理程序以向虚拟机分配所选择的资源单元并且实例化该虚拟机。
图10图示了根据一些实施例用于向资源管理器提供使用信息的架构。图10的架构可以实现为基于云的资源的部署。基于云的资源是托管和可管理的项目,其可以经由网络协议栈供外部设备使用。基于云的资源可以包括但不限于服务器、虚拟机、存储帐户、网站应用、数据库、虚拟网络、软件、分析、和智能化。客户通常只为使用的资源付费,这可以降低运营成本,同时提供规模以应对增加的需求。
客户端***1015、1016、和1017中的每一个可以包括用于与服务器1000的资源管理器1010通信的任何***。在一些实施例中,客户端***1015、1016、和1017中的每一个都可以包括桌面计算***并且可以由客户操作以访问由资源管理器1010提供的界面,以创建、更新、和删除基于云的资源。在一些实施例中,客户与托管服务器1000的组织建立订阅,并且由客户管理的基于云的资源与该订阅相关联。
这些基于云的资源可以由客户、客户的客户、或任何适当的实体访问。例如,客户可以定义虚拟机的计算和存储资源以提供可公开访问的在线商店。在另一示例中,实例化的虚拟机执行客户的后台功能。
根据一些实施例,响应于接收到的创建虚拟机的请求,资源管理器1010如上所述操作。特别地,资源管理器1010从服务器1020、1022、1024中的一个服务器确定针对每个资源类型的资源单元的池,可能不包括破损资源单元。然后满足该请求的资源单元从相应的池被随机选择,并被分配给虚拟机,然后该虚拟机被实例化。
图10还图示了执行使用监控器1032的使用服务器1030。托管实体可以操作使用监控器1032以监控虚拟机和/或服务器1020、1022、1024的组成资源单元的使用。使用监控器1032可以跟踪每个资源单元和/或虚拟机正在被使用的总时间,以及在各种状态下花费的时间(例如,加速(turbo)状态、空闲状态)。因此,如图所示,使用监控器可以向资源管理器1010发送总使用时间1040。资源管理器1010可以使用总使用时间1040来维护与可以被使用的服务器1020、1022、1024的每个资源单元相关联的使用元数据。
使用监控器1032还可以向托管实体的报告***1050发送总使用时间1040。通常,报告***1050可以操作以生成使用报告1055。使用报告1055可以包括与给定订阅相关联的资源的列表。报告1055还可以将每个实例化的虚拟机(以及客户订阅的任何其他基于云的资源)与总使用时间和基于总使用时间计算的成本(例如,=每小时成本×以小时为单位的总使用时间)相关联。
图11是根据一些实施例的装置1100的框图。装置1100可以包括通用计算装置,并且可以执行程序代码以执行本文描述的任何功能。在一些实施例中,装置1100可以包括服务器1000的实现。根据一些实施例,装置1100可以包括其他未示出的元件。
装置1100包括处理单元1110,处理单元110可操作地耦合到通信设备1120、数据存储设备1130、一个或多个输入设备1140、一个或多个输出设备1150、以及存储器1160。通信接口1120可以促进与网络的通信,并且最终如上所述促进与客户端***的通信。(多个)输入设备1140可以包括例如键盘、小型键盘、鼠标或其他定点设备、麦克风、旋钮或开关、红外(IR)端口、扩展坞、和/或触摸屏。(多个)输入设备1140可以用于例如将信息输入装置1100。(多个)输出设备1150可以包括例如显示器和扬声器。
数据存储设备1130可以包括任何合适的持久性存储设备,包括以下组合:磁存储设备(例如,磁带、硬盘驱动器、和闪存)、光存储设备、只读存储器(ROM)设备等,而存储器1160可以包括随机存取存储器(RAM)、存储类存储器(SCM)、或任何其他快速存取存储器。数据存储设备1130可以使用分布式存储***实现。
资源管理器1132可以包括程序代码,该程序代码可由处理单元1110执行以使装置1100执行本文描述的任何一个或多个过程。实施例不限于由单个装置执行这些过程。例如,本文归属于资源管理器、管理程序、使用监控器、和报告服务器的过程可以由分布式计算***的一个或多个节点执行。
资源单元元数据1134可以将由资源管理器1132管理的每个资源单元与该资源单元被分配到的虚拟机(如果有的话)相关联。使用数据1136可以将使用信息(诸如使用小时)与资源单元相关联,并且用于确定如本文所述的资源单元的池。数据存储设备1130还可以存储用于提供附加功能和/或对于装置1100的操作所必需的数据和其他程序代码,诸如设备驱动器、操作***文件等。
本文描述的每个功能组件可以在计算机硬件(集成和/或离散电路组件)中、在程序代码中、和/或在执行本领域已知的此类程序代码的一个或多个计算***中实现。这种计算***可以包括一个或多个处理单元,处理单元执行存储在存储器***中的处理器可执行程序代码。
上面所描述的示图表示用于描述根据一些实施例的过程的逻辑架构,并且实际实现可以包括以其他方式布置的更多或不同的组件。其他拓扑可以结合其他实施例使用。此外,本文描述的每个组件或每个设备可以由任何数目的设备来实现,这些设备经由任何数目的其他公共和/或专用网络进行通信。两个或更多个此类计算设备可以彼此远离,并且可以经由任何已知方式的(多个)网络和/或专用连接来彼此通信。每个组件或设备可以包括任何数目的适合于提供本文描述的功能以及任何其他功能的硬件和/或软件元件。
本文描述的实施例仅用于说明的目的。本领域人员将认识到可以利用上面描述的实施例的修改和变更来实践其他实施例。

Claims (14)

1.一种***,包括:
存储器,存储有处理器可执行过程步骤;
处理单元,用以执行所述处理器可执行处理步骤以:
接收创建虚拟机的请求,所述虚拟机与多个资源类型中的每个资源类型的请求数目的资源单元相关联;
针对所述多个资源类型中的每个资源类型,确定可用资源单元的池;
针对所述多个资源类型中的每个资源类型,从所述资源类型的可用资源单元的所述池中,随机选择所述请求数目的资源单元;以及
向所述虚拟机分配所述多个资源类型中的每个资源类型的所选择的所述资源单元。
2.根据权利要求1所述的***,其中针对所述多个资源类型中的每个资源类型确定可用资源单元的所述池包括:
针对所述多个资源类型中的每个资源类型,确定现有和未分配资源单元的池;
确定每个所确定的现有和未分配资源单元的池的破损资源单元;以及
从每个所确定的现有和未分配资源单元的池中移除所述破损资源单元。
3.根据权利要求2所述的***,其中针对所述多个资源类型中的每个资源类型确定所述破损资源单元是基于与所述多个资源类型中的每个资源类型的现有和未分配资源单元的所述池中的每个资源单元相关联的使用信息。
4.根据权利要求3所述的***,其中与资源类型的资源单元相关联的所述使用信息包括以下至少一项:所述资源单元先前被分配到的一个或多个虚拟机的总操作时间、计算强度和温度。
5.根据权利要求1所述的***,其中可用资源单元的所述池与第一计算机服务器相关联,并且所述处理单元执行所述处理器可执行处理步骤以:
接收创建第二虚拟机的第二请求,所述第二虚拟机与所述多个资源类型中的每个资源类型的第二请求数目的资源单元相关联;
针对所述多个资源类型中的每个资源类型,确定与第二计算机服务器相关联的可用资源单元的第二池;
针对所述多个资源类型中的每个资源类型,从所述资源类型的可用资源单元的所述第二池中,随机选择所述第二请求数目的资源单元;以及
向所述第二虚拟机分配所述多个资源类型中的每个资源类型的所选择的所述第二请求数目的资源单元,
其中向所述虚拟机分配所述多个资源类型中的每个资源类型的所选择的所述资源单元包括向所述第一计算机服务器的第一管理程序发送指令,以及
其中向所述第二虚拟机分配所述多个资源类型中的每个资源类型的所选择的所述第二请求数目的资源单元包括向所述第二计算机服务器的第二管理程序发送第二指令。
6.根据权利要求5所述的***,其中针对所述多个资源类型中的每个资源类型确定可用资源单元的所述池包括针对所述多个资源类型中的每个资源类型确定现有和未分配资源单元的池,确定每个所确定的现有和未分配资源单元的池的破损资源单元,以及从每个所确定的现有和未分配资源单元的池中移除所述破损资源单元,以及
其中针对所述多个资源类型中的每个所述资源类型确定可用资源单元的所述第二池包括针对所述多个资源类型中的每个资源类型确定现有和未分配资源单元的第二池,确定每个所确定的现有和未分配资源单元的第二池的第二破损资源单元,以及从每个所确定的现有和未分配资源单元的第二池中移除所述第二破损资源单元。
7.根据权利要求6所述的***,其中针对所述多个资源类型中的每个资源类型确定所述破损资源单元和所述第二破损资源单元是基于以下至少一项:所述破损资源单元和所述第二破损资源单元先前被分配到的一个或多个虚拟机的总操作时间、计算强度和温度。
8.一种计算机实现的方法,包括:
接收创建虚拟机的请求,所述虚拟机与多个资源类型中的每个资源类型的请求数目的资源单元相关联;
针对所述多个资源类型中的每个资源类型,确定计算机服务器的资源单元的池;
针对所述多个资源类型中的每个资源类型,从所述资源类型的资源单元的所述池中,随机选择所述请求数目的资源单元;以及
基于所述多个资源类型中的每个资源类型的所选择的所述资源单元,在所述计算机服务器上实例化虚拟机。
9.根据权利要求8所述的方法,其中针对所述多个资源类型中的每个资源类型确定资源单元的所述池包括:
针对所述多个资源类型中的每个资源类型,确定所述计算机服务器的现有和未分配资源单元的池;
确定每个所确定的现有和未分配资源单元的池的破损资源单元;以及
从每个所确定的现有和未分配资源单元的池中移除所述破损资源单元。
10.根据权利要求9所述的方法,其中针对所述多个资源类型中的每个资源类型确定所述破损资源单元是基于与所述多个资源类型中的每个资源类型的现有和未分配资源单元的所述池中的每个资源单元相关联的使用信息。
11.根据权利要求10所述的方法,其中与资源类型的资源单元相关联的所述使用信息包括以下至少一项:所述资源单元先前被分配到的一个或多个虚拟机的总操作时间、计算强度和温度。
12.根据权利要求8所述的方法,还包括:
接收创建第二虚拟机的第二请求,所述第二虚拟机与所述多个资源类型中的每个资源类型的第二请求数目的资源单元相关联;
针对所述多个资源类型中的每个资源类型,确定第二计算机服务器的资源单元的第二池;
针对所述多个资源类型中的每个资源类型,从所述资源类型的资源单元的所述第二池中随机选择所述第二请求数目的资源单元;以及
基于所述多个资源类型中的每个资源类型的所选择的所述第二所述资源单元,在所述第二计算机服务器上实例化第二虚拟机,
其中所述虚拟机的实例化包括向所述计算机服务器的第一管理程序发送指令,以及
其中所述第二虚拟机的实例化包括向所述第二计算机服务器的第二管理程序发送第二指令。
13.根据权利要求12所述的方法,其中针对所述多个资源类型中的每个资源类型确定资源单元的所述池包括针对所述多个资源类型中的每个资源类型确定现有和未分配资源单元的池,确定每个所确定的现有和未分配资源单元的池的破损资源单元,以及从每个所确定的现有和未分配资源单元的池中移除所述破损资源单元;以及
其中针对所述多个资源类型中的每个资源类型确定资源单元的所述第二池包括针对所述多个资源类型中的每个资源类型确定现有和未分配资源单元的第二池,确定每个所确定的现有和未分配资源单元的第二池的第二破损资源单元,以及从每个所确定的现有和未分配资源单元的第二池中移除所述第二破损资源单元。
14.根据权利要求13所述的方法,其中针对所述多个资源类型中的每个资源类型确定所述破损资源单元和所述第二破损资源单元是基于以下至少一项:所述破损资源单元和所述第二破损资源单元先前被分配到的一个或多个虚拟机的总操作时间、计算强度和温度。
CN202180026793.2A 2020-04-01 2021-02-09 针对虚拟机的资源分配 Pending CN115398400A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/837,688 2020-04-01
US16/837,688 US11507431B2 (en) 2020-04-01 2020-04-01 Resource allocation for virtual machines
PCT/US2021/017154 WO2021201986A1 (en) 2020-04-01 2021-02-09 Resource allocation for virtual machines

Publications (1)

Publication Number Publication Date
CN115398400A true CN115398400A (zh) 2022-11-25

Family

ID=74853760

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180026793.2A Pending CN115398400A (zh) 2020-04-01 2021-02-09 针对虚拟机的资源分配

Country Status (4)

Country Link
US (1) US11507431B2 (zh)
EP (1) EP4127927A1 (zh)
CN (1) CN115398400A (zh)
WO (1) WO2021201986A1 (zh)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429449B2 (en) 2010-03-01 2013-04-23 International Business Machines Corporation Optimized placement of virtual machines in a network environment
US8695079B1 (en) * 2010-09-29 2014-04-08 Amazon Technologies, Inc. Allocating shared resources
US9141410B2 (en) * 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
US9026630B2 (en) 2011-06-14 2015-05-05 Vmware, Inc. Managing resources in a distributed system using dynamic clusters
DE102012217202B4 (de) 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US9569275B2 (en) * 2012-05-14 2017-02-14 International Business Machines Corporation Allocation and reservation of virtualization-based resources
US9450876B1 (en) 2013-03-13 2016-09-20 Amazon Technologies, Inc. Wear leveling and management in an electronic environment
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US20150154048A1 (en) 2013-12-04 2015-06-04 International Business Machines Corporation Managing workload to provide more uniform wear among components within a computer cluster
US9727725B2 (en) * 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9886324B2 (en) * 2016-01-13 2018-02-06 International Business Machines Corporation Managing asset placement using a set of wear leveling data
US11502972B2 (en) * 2016-08-28 2022-11-15 Vmware, Inc. Capacity optimization in an automated resource-exchange system
CN108628753B (zh) 2017-03-24 2021-02-23 华为技术有限公司 内存空间管理方法和装置
CN109885377B (zh) 2018-11-23 2023-04-28 ***股份有限公司 统一资源调度协调器及其创建虚拟机和/或容器的方法、统一资源调度***

Also Published As

Publication number Publication date
EP4127927A1 (en) 2023-02-08
US20210311802A1 (en) 2021-10-07
US11507431B2 (en) 2022-11-22
WO2021201986A1 (en) 2021-10-07

Similar Documents

Publication Publication Date Title
US10659318B2 (en) Methods and apparatus related to management of unit-based virtual resources within a data center environment
US11297130B2 (en) Cluster resource management in distributed computing systems
US9336031B2 (en) Managing allocation of hardware resources in a virtualized environment
US9027017B2 (en) Methods and apparatus for movement of virtual resources within a data center environment
US10146591B2 (en) Systems and methods for provisioning in a virtual desktop infrastructure
US10152340B2 (en) Configuring cache for I/O operations of virtual machines
US9946567B2 (en) Policy based virtual resource allocation and allocation adjustment
US9823941B2 (en) Optimized placement of virtual machines on physical hosts based on user configured placement policies
US11924117B2 (en) Automated local scaling of compute instances
US20140373010A1 (en) Intelligent resource management for virtual machines
US8539192B2 (en) Execution of dataflow jobs
US10411977B2 (en) Visualization of workload distribution on server resources
US11307802B2 (en) NVMe queue management multi-tier storage systems
US20160232026A1 (en) Selecting a host for a virtual machine using a hardware multithreading parameter
US10425352B2 (en) Policy driven storage hardware allocation
US20210089226A1 (en) Adaptive wear leveling for drive arrays
US10223164B2 (en) Execution of critical tasks based on the number of available processing entities
US11513861B2 (en) Queue management in solid state memory
US11080092B1 (en) Correlated volume placement in a distributed block storage service
US10956228B2 (en) Task management using a virtual node
US20200264926A1 (en) Reducing cloud application execution latency
CN115398400A (zh) 针对虚拟机的资源分配
US11983570B2 (en) Conditionally deploying a reusable group of containers for a job based on available system resources
US11048554B1 (en) Correlated volume placement in a distributed block storage service
US11886926B1 (en) Migrating workloads between computing platforms according to resource utilization

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