CN104508634B - 虚拟机的动态资源分配 - Google Patents

虚拟机的动态资源分配 Download PDF

Info

Publication number
CN104508634B
CN104508634B CN201380039803.1A CN201380039803A CN104508634B CN 104508634 B CN104508634 B CN 104508634B CN 201380039803 A CN201380039803 A CN 201380039803A CN 104508634 B CN104508634 B CN 104508634B
Authority
CN
China
Prior art keywords
resource
virtual machine
priority
threshold
executed
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.)
Active
Application number
CN201380039803.1A
Other languages
English (en)
Other versions
CN104508634A (zh
Inventor
B·Y·陈
V·M·阿布拉哈姆
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.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies General IP Singapore Pte 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 Avago Technologies General IP Singapore Pte Ltd filed Critical Avago Technologies General IP Singapore Pte Ltd
Publication of CN104508634A publication Critical patent/CN104508634A/zh
Application granted granted Critical
Publication of CN104508634B publication Critical patent/CN104508634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

某些实施例使得能够在虚拟机(VM)操作的同时修改分派或分配给操作的VM的资源,而不必停止、重新开始或重新启动VM。所述修改可对应于增加或减小分派给VM的资源的数量。以此方式,在VM操作的同时,在创建VM时分派给VM的资源不是静态的并且可以替代地被动态地改变,而不必停止、重新启动或重新开始VM。在一些实施例中,可响应于诸如故障切换或转换事件等事件,根据或响应于由用户签署的服务水平协议(SLA)执行分配给为用户(例如,顾客)提供的一个或多个VM的资源的改变。

Description

虚拟机的动态资源分配
相关申请的交叉引用
本申请要求标题为“DYNAMIC RESOURCE ALLOCATION FOR VIRTUAL MACHINE”的于2012年6月29日提交的第61/666,227号美国临时申请和标题为“DYNAMIC RESOURCEALLOCATION FOR VIRTUAL MACHINES”的于2013年3月12日提交的第13/796,136号美国非临时申请的权益,第13/796,136号美国非临时申请要求第61/666,227号美国临时申请的优先权。61/666,227和13/796,136申请的全部内容为了所有目的而通过引用合并于此。
背景技术
本公开内容一般地涉及虚拟化,并且更具体地讲,涉及用于在虚拟机(VM)操作的同时动态地改变分配给VM的资源的技术。
与虚拟化技术的进步关联的具有多个处理器或有着多个核的处理器的系统和装置的增加已导致虚拟机(VM)的使用的迅速增长。包括多个单核或多核CPU甚至具有有着多个核的单个CPU的系统或装置现在可以并行地支持和执行多个分离的VM。每个VM被分配其自己的资源,诸如计算资源和存储器资源。将要被分配给VM的资源在创建或启动VM之前被预先定义,并且在创建VM时被映射到VM。一旦已创建了VM,则映射到VM的资源无法在VM操作的同时(即,在不必停止、重新开始或重新启动VM的情况下)被修改。
因此,分配给VM的资源在VM的操作期间是静态的。这种静态配置不允许提供多个VM的系统适应于VM的改变的需求。这种限制在利用可被分配给VM的一组有限的资源运行多个VM的系统中尤其成为问题。
发明内容
本发明的某些实施例使得能够在虚拟机(VM)操作的同时动态地改变分派或分配给VM的资源,而不必停止、重新启动或重新开始VM。
在一个实施例中,分派或分配给操作的VM的资源可以在VM操作的同时被修改并且不必停止、重新启动或重新开始VM。所述修改可对应于增加分派给VM的资源的数量。例如,这可包括将以前在创建VM时未分派给VM的新的资源分派给VM。所述增加还可对应于将分配给VM的资源的数量从第一水平增加至更高的第二水平。例如,增加分配给VM的存储器的量。所述修改还可对应于减小分派给VM的资源的数量。例如,以前分配给VM的资源可在VM操作的同时被从VM去除或解除分配。作为另一例子,分配给VM的资源的数量可从第一水平减小至更小的第二水平。例如,减小分配给VM的存储器的量。
在某些实施例中,可在多个VM操作的同时在多个VM之间动态地分配资源并且不必停止、重新开始或重新启动多个VM。例如,分配给第一操作VM的一定数量的资源可被从第一操作VM去除或解除分配并且随后被分配给第二操作VM。可在第一VM和第二VM操作的同时执行解除分配操作和分配操作并且不必停止、重新启动或重新开始第一VM和第二VM。
各种资源可在VM操作的同时被动态地分配给VM或从VM解除分配。资源的例子非限制性地包括处理资源、存储器资源、输入/输出资源(例如,端口)、网络资源(例如,带宽)、非易失性存储器资源(例如,盘贮存器、SSD)等。例如,网络装置可执行一个或多个VM,所述一个或多个VM包括这样的VM,该VM具有分派给该VM的第一数量的处理单元。第一数量的处理单元中的处理单元可以是CPU、CPU核或CPU核的一部分。这种分配给VM的第一数量的处理单元可在VM执行的同时被动态地改变并且不必停止、重新启动或重置VM。所述改变可包括:将另外的处理单元分配给VM和/或减少分派给VM的处理单元的数量。
在某些实施例中,可根据或响应于由用户签署的服务水平协议(SLA)执行为用户(例如,顾客)提供的对一个或多个VM的资源分配改变。例如,顾客的SLA信息可被用来确定将要为顾客提供的一个或多个VM和将要被分派给VM的资源。分配给VM的资源随后可动态地改变以便满足或符合在SLA中达成的协议。SLA的改变还可自动地触发VM的资源分配的动态改变。
在某些实施例中,装置可执行第一虚拟机和第二虚拟机。第一虚拟机可被分配第一数量的资源并且第二虚拟机可被分配第二数量的资源,其中第二数量不同于第一数量。响应于事件(例如,故障切换事件),装置可动态地将分配给第一虚拟机的资源的量从第一数量改变为第二数量并且将分配给第二虚拟机的资源的数量从第二数量改变为第一数量。可在不停止第一虚拟机或第二虚拟机的情况下执行分配给第一虚拟机和第二虚拟机的资源的数量的改变。
资源可以具有各种类型,诸如处理资源(例如,由装置提供的处理单元)、系统存储器资源、非易失性存储器资源、输入/输出(I/O)资源、装置的端口、带宽资源等。
在某些实施例中,第一虚拟机和第二虚拟机可各自执行被配置为监测虚拟机的资源使用的程序。这些程序可将虚拟机的资源使用信息传送给由装置执行的第三虚拟机(例如,管理虚拟机)。在一些实施例中,由管理虚拟机执行的程序可基于接收到的资源使用信息导致执行分配给第一虚拟机和第二虚拟机的资源的改变。
在某些实施例中,由第三虚拟机执行的一个或多个程序可导致执行将分配给第一个虚拟机的资源的数量从第一数量改变为第二数量并且将分配给第二虚拟机的资源的数量从第二数量改变为第一数量。
在某些实施例中,第一虚拟机可由装置使用该装置的第一组处理单元来执行。第一虚拟机可在第一模式下操作,其中与第一模式对应的一组功能被由第一虚拟机执行的一个或多个程序执行。在第一模式下操作的同时,第一虚拟机可被分配第一数量的资源。该装置还可使用该装置的第二组处理单元执行第二虚拟机。在第一虚拟机在第一模式下操作的同时,第二虚拟机可在第二模式下操作,其中所述一组功能不被第二虚拟机执行。事件(例如,故障切换)可使得装置使第二虚拟机在第一模式下操作,其中与第一模式对应的一组功能被由第二虚拟机执行的一个或多个程序执行。另外,该装置可使第一虚拟机在第二模式下操作,其中所述一组功能不被在第二模式下的第一虚拟机执行。当第二虚拟机在第一模式下操作时,该装置可自动地将分配给第二虚拟机的资源的数量从第二数量改变为第一数量。在一些实施例中,当发生事件时,分配给在第二模式下操作的第一虚拟机的资源的数量可被从第一数量改变为当第二虚拟机在第二模式下操作时分配给第二虚拟机的数量。
在某些实施例中,装置可存储与服务水平协议(SLA)有关的信息。装置可执行虚拟机,并且可基于SLA信息动态地改变分配给虚拟机的资源。
附图说明
图1是可包括本发明的实施例的计算装置的简化方框图;
图2描述示出根据本发明的实施例的当启动VM时执行的处理的简化流程图;
图3描述示出根据本发明的另一实施例的当启动VM时执行的处理的简化流程图;
图4描述示出根据本发明的实施例的在监测阶段执行的处理的简化流程图;
图5描述示出根据本发明的实施例的为了动态地从VM解除分配一定数量的资源而执行的处理的简化流程图;
图6描述示出根据本发明的实施例的为了动态地将一定数量的资源分配给VM而执行的处理的简化流程图;
图7描述示出根据本发明的实施例的用于动态地从VM释放资源并且使其可被分配给VM的基于优先级的技术的简化流程图;
图8显示根据本发明的实施例的主动VM和被动VM之间的自动动态资源分配的例子;
图9显示根据本发明的实施例的与SLA对应的VM可分布在多个联网系统上的联网环境的例子;和
图10提供可包括本发明的实施例的网络装置的例子。
当参照下面的说明书、权利要求和附图时,前述内容以及其它特征和实施例将会变得更加清楚。
具体实施方式
在下面的描述中,为了解释的目的,阐述具体细节以便提供对本发明的实施例的透彻理解。然而,将会清楚的是,可在没有这些具体细节的情况下实施各种实施例。附图和描述不旨在是限制性的。
本发明的某些实施例使得能够在虚拟机(VM)操作的同时动态地修改或改变分派或分配给VM的资源,而不必停止、重新开始或重新启动VM。一个或多个资源可在VM操作的同时被动态地添加到(分派或分配给)VM或者从VM去除(解除分配),而不必重新启动、重新开始或停止资源分配正在改变的VM。动态地改变VM的资源分配意味着:一定数量的资源可被分配给已经执行或已经被启动的VM或从已经执行或已经被启动的VM解除分配,而不必停止、重新开始或重新启动该VM。可被动态地分配给VM或从VM解除分配的资源可被称为动态资源。
在一个实施例中,动态资源分配修改可对应于增加分派给VM的资源的数量。例如,这可包括将以前未分派给VM的新的资源分派给VM。所述增加还可对应于将分配给VM的资源的数量从第一水平增加至更高的第二水平。例如,增加分配给VM的存储器的量。所述修改还可对应于减小分派给VM的资源的数量。例如,以前分配给VM的资源可在VM操作的同时被从VM去除或解除分配。作为另一例子,分配给VM的资源的数量可从第一水平减小至更小的第二水平。例如,减小分配给VM的存储器的量。以这种方式,在VM操作的同时,分派给VM的资源不是静态的并且可以替代地被动态地改变,而不必停止、重新启动或重新开始VM。
在某些实施例中,可在多个VM之间动态地分配资源。例如,分配给第一操作VM的一定数量的资源可被从第一操作VM去除或解除分配并且随后被分配给第二操作VM。可在第一VM和第二VM操作的同时执行解除分配操作和分配操作并且不必停止、重新启动或重新开始第一VM和第二VM。
在VM之间执行资源的动态改变的能力可被能够支持多个VM的任何系统或装置使用。能够支持多个VM的系统非限制性地包括:单CPU核系统,其中该核的一部分被分配给第一VM并且另一部分被分配给第二VM;多核CPU系统,其中第一组一个或多个核被分配给第一VM并且第二组一个或多个核被分配给第二VM;多处理器系统,其中第一组一个或多个处理器被分配给第一VM并且第二组一个或多个处理器被分配给第二VM;及其各种组合。
各种资源可在VM操作的同时被动态地分配给VM或从VM解除分配。例子非限制性地包括:
(1)处理资源-分派给VM的处理单元的数量可以在VM操作的同时改变(例如,增加或减少)。处理单元可对应于CPU核、CPU或处理器、或CPU核的一部分。
(2)存储器资源-分派给VM的系统存储器(例如,RAM)的量可以在VM操作的同时改变(例如,增加或减少)。
(3)网络资源,诸如带宽资源、端口等。
(4)非易失性存储器或存储资源,诸如贮存器、固态驱动器(SSD)等。
(5)I/O资源(例如,I2C、PCIe、PLB等。)
图1是可包括本发明的实施例的计算装置100的简化方框图。如图所示,装置100包括经由互连件/总线110耦合到系统存储器104、输入/输出(I/O)装置106和其它硬件资源108的多个物理处理器(P1至PN)102。互连件110可包括一个或多个互连件或总线。图1中描述的装置100仅是例子,并且不是旨在不适当地限制如权利要求中记载的本发明的实施例的范围。本领域普通技术人员将会意识到许多变化、替代物和变型。装置100可被实现为各种不同形式。例如,在一个实施例中,装置100可被实现为网络装置,诸如由加利福尼亚州的圣何塞的Brocade Communications Systems,Inc.提供的交换机或路由器。
在图1中描述的实施例中,装置100包括多个处理器102。每个处理器可以是单核或多核处理器。例如,如图所示,处理器P1和PN是多核处理器,每个多核处理器包括两个核C1和C2。然而,这不旨在是限制性的。在某些实施例中,装置100可仅包括单个多核处理器。在其它实施例中,装置100可包括多个处理器,所述多个处理器中的一个或多个可以是多核处理器。在其它实施例中,装置100可包括多个单核处理器。多核处理器的例子包括但不限于由Freescale Semiconductor,Inc.提供的各种多核处理器(诸如,由Freescale提供的QorIQ和PowerQUICC系列的处理器)和其它处理器。由装置100提供的核和处理器代表了可被分配给由装置100执行的VM的处理资源。核和处理器可被称为装置100的处理单元。
存储器104代表可用于由装置100执行的VM的系统存储器资源。与由处理器102执行的运行时处理有关的信息可被存储在存储器104中。存储器104可以是RAM(例如,SDRRAM、DDR RAM)并且有时被称为装置或系统的主存储器。I/O装置106可非限制性地包括各种装置,诸如以太网装置、PCIe装置、eLBC装置和其它装置。硬件资源108可非限制性地包括硬件装置,诸如FPGA、ASIC、其它商业芯片等。硬件资源可以是能够由任何VM单独拥有或在一组VM之间共享的任何硬件装置。不支持本地虚拟化的硬件装置(例如,芯片的一部分可被分配给不同VM的SR-IOV)由一个VM单独拥有或在管理程序内被虚拟化。
装置100可被配置为使用装置100的一个或多个处理单元同时执行多个VM。装置100因此用作VM的主机。由使得能够实现虚拟化的软件程序来促进VM的创建和管理。这种程序的例子是在装置100的系统存储器104中执行的管理程序118。管理程序118可在通电或装置停止、重新启动或重新开始时由装置100加载。管理程序118被配置为启动一个或多个VM并且在启动时将资源分配给VM。可由管理程序118在VM之间分割可用资源(例如,装置100的处理资源、存储器资源和硬件资源)。根据本发明的某些实施例,管理程序118还在VM操作的同时促进分派给VM的一个或多个资源的动态修改并且不必停止、重新启动或重新开始VM。
多个VM 112(例如,图1中示出的VM1、VMN、pVM、mVM)可由装置100同时执行。每个VM通常具有其自己的操作系统,该操作系统通常被称为客户操作系统(或GOS)116。当创建VM时,由管理程序118加载VM的GOS。由一个VM执行的GOS可与另一VM的GOS相同或不同。GOS的例子非限制性地包括不同版本的Linux OS、Windows OS、联网操作系统(NOS)等。例如,在一种情况下,VM1可执行LinuxV1,mVM可执行LinuxV2,VM2可执行一个版本的Windows OS等。以这种方式,多个操作系统可在装置100上同时运行。
每个VM可独立于其它VM而操作。特定VM可能甚至不知道在装置100上与该特定VM并行地操作的其它VM的存在。因此,每个虚拟机可以作为独立的虚拟系统来操作。
在一个实施例中,为了促进VM的动态修改,管理程序118被配置为创建管理VM(mVM)114,该管理VM(mVM)114用于执行用于促进分配给一个或多个VM的一个或多个资源的动态修改的代码、指令和程序。可由mVM 114执行使得能够在VM操作时促进分配给VM的资源的动态改变而不必停止、重新启动或重新开始VM的一个或多个程序。例如,如图1中所示,在一个实施例中,资源管理器程序122可由mVM 114执行。资源管理器122可被配置为确定将要被启动的VM(例如,VM1、VM2等)的数量和针对每个VM将要在创建或启动VM时分配给VM的资源的数量,并且将其传送给管理程序118。然后,管理程序118被配置为基于从资源管理器122接收到的信息创建或启动VM并且在创建时将资源分配给VM。在替代实施例中,资源管理器122的功能可被由mVM 114执行的多个程序执行。
在某些实施例中,识别将要被启动的VM和将要在启动时分配给VM的资源的信息可由资源配置信息126和装置配置信息128预先定义并且指定。在一个实施例中,装置配置信息可被存储在文件(例如,装置配置文件或DCF)中,并且可识别可被由装置100执行的一个或多个VM使用的装置。资源配置信息126也可被存储在文件(例如,资源配置文件或RCF)中,并且可识别将要被启动的VM和将要在启动时分配给每个VM的资源。在RCF中指定的用于VM的预定义的资源可包括处理资源、系统存储器资源、非易失性存储器资源、联网资源、带宽资源、I/O资源等。例如,RCF可指定将要在创建时分派给VM的系统存储器104的量。在一个实施例中,资源管理器122被配置为访问资源配置信息126,确定将要被创建的VM和将要被分配给VM的资源,并且将该信息传送给管理程序118。然后,管理程序118按照从资源管理器122接收到的信息创建指定的VM并且在创建时将资源分配给VM。在一个实施例中,mVM 114自身和将要被分配给mVM 114的资源可由资源配置信息126指定。
管理程序118被配置为利用由资源配置信息126指定的一组预定义的资源启动每个VM。随后,VM可使用在启动时分配给VM的资源在它的分配的系统存储器的一部分内执行。可在分配给VM的系统存储器空间内执行由VM执行的GOS和其它软件组件。可由VM执行的软件组件的类型可非限制性地包括应用、过程、线程、操作系统(包括操作系统的组件,诸如操作系统内核模块)、装置驱动器、管理程序等。可在分配给VM的系统存储器内加载和执行与这些组件对应的软件代码。另外,可在分配给VM的系统存储器空间中加载和存储由VM的各种执行组件使用的数据。
每个VM可被分配一个或多个处理资源。在某些实施例中,可按照由装置(诸如,装置100)提供的一个或多个处理单元来度量处理资源。在一个实施例中,处理单元可对应于处理器、处理器核或处理器核的一部分。一个或多个处理单元可被分配给VM。根据本发明的实施例,装置100可提供可在由装置100执行的VM之间共享的有限数量的处理单元。可以支持多个VM(例如,图1中描述的VM)的配置的例子非限制性地包括:处理器P1的核C1可被分配给VM1,处理器P1的核C2和处理器P2的核C1可被分配给mVM,处理器P3可被分配给VM2,处理器P4的核C1的60%可被分派给VM3并且P4的核C1的40%可被分派给VM4等。
当创建VM时,其它资源(包括I/O装置106、联网资源和其它硬件资源108)的一部分也可被分配给VM。
未分配并且可使用的资源可被汇聚到资源池120中。例如,可在资源池120中表示未被分派或分配给任何VM的资源。因此,资源池120代表可根据需要分配给VM的资源。
一旦VM已被管理程序118启动,则资源管理器122被配置为监测多个操作的VM的资源分配和资源使用,并且在需要时启动分配给VM的资源的动态改变。各种不同条件可被监测以确定将要在何时执行改变。在一个实施例中,为了促进VM的监测,可由每个操作的VM执行被称为“监测代理”(也被称为SLA代理)的特殊程序(或多个程序)。例如,如图1中所示,由VM执行监测代理124。在某些实施例中,VM的监测代理124被配置为监测VM的资源使用并且将该信息传送给资源管理器122。由VM执行的监测代理124可按照定期可编程间隔和/或在发生某些事件时将VM的资源使用信息传送给资源管理器122。可使用推模型或拉模型将资源使用信息从监测代理124传送给资源管理器122。
资源管理器122可从由VM执行的监测代理124接收一个或多个VM的资源使用信息。基于这种接收到的信息并且还基于各种系统条件,资源管理器122被配置为确定将要在何时执行VM的资源的分配的改变。当要执行改变时,资源管理器122可确定将要针对其执行改变的VM、其分配将要被改变的特定资源、和资源的分配将要被改变的数量。例如,资源管理器122可基于从VM1的监测代理124接收到的信息确定VM1的存储器分配将要被从它的当前分配增加至更高的分配。
在确定VM的资源的分配将要被改变时,资源管理器122可随后将信号发送给管理程序118以执行改变。在一个实施例中,作为该处理的一部分,资源管理器122可向管理程序118发送识别其分配将要被改变的VM、其分配将要被改变的资源和分配将要被改变的数量的信息。管理程序118随后执行为动态地调整识别的VM的分配所需的处理而不必停止、重新开始或重新启动该特定VM。以这种方式,协同工作的监测代理124、资源管理器122和管理程序118使得能够执行分配给VM的资源的动态改变,全都不必停止、重新启动或重新开始VM。
如上所述,在某些实施例中,将要由装置100启动的VM和将要在启动VM时分派给每个VM的资源可由资源配置文件(RCF)和装置配置文件(DCF)预先定义并且指定。RCF可由装置100的用户或由系统管理员创建。在一个实施例中,RCF可包括识别阈值的信息(例如,规则)以及指示将要在何时执行改变的条件和将要执行的改变的类型。在一些实施例中,由mVM 114(诸如,资源管理器122)执行的程序被配置为监测装置100,基于RCF中的信息确定将要在何时执行改变和将要执行的改变的类型。不支持本地虚拟化的硬件装置(例如,芯片的一部分可被分配给不同VM的SR-IOV)由一个VM单独拥有或在管理程序内被虚拟化。对于由DCF识别的完全分配给VM的装置,管理程序118可在启动VM时将该装置映射到该VM。
可被存储在样本RCF中的信息的非限制性例子在以下被示出在表A中。
表A:资源配置文件
表A中描述的RCF包括多个列。第一列“VM”识别将要被启动的VM。例如,如以上所示,将要被启动的VM包括mVM、VM1(“1”)、VM2(“2”)和VM3(“3”)。第二列“资源”识别分配给VM的资源。在表A中,为每个VM指定的资源包括CPU核(即,处理资源)、存储器、网络带宽、网络端口和非易失性存储器。
“基础”列识别将要在启动VM时分派给VM的资源的基础数量。对于每个资源,该列识别VM所需的资源的最小数量或基础数量。不允许VM的资源下降至低于它们的对应的最小水平或基础水平。如果不可获得用于特定VM的一组基础资源,则可能无法创建该VM。仅当可获得由用于特定VM的一组基础资源指定的足够系统资源时,才可启动该VM。例如,按照表A,将要在启动VM1时分配给VM1的基础存储器资源是2GB。
“最大”列识别可被分配给VM的资源的最大数量(即,允许VM拥有或消耗的具体资源的最大数量)。当针对特定资源为VM设置了这种参数时,VM不被分配超过该最大数量的特定资源。例如,按照表A,允许分派给VM1的最大存储器资源是3GB。
表A中的“分配”列识别当额外数量的资源可被动态地分配给VM时的条件(例如,阈值)。在某些实施例中,当VM的资源的资源利用率在RCF中指定的时间量期间处于或超过分配阈值时,尝试为VM分配额外数量的资源。可从可用资源池120分配额外资源,或者额外资源的一部分可被动态地从其它一个或多个VM解除分配并且随后被分配给该VM。在某些实施例中,资源管理器122监测VM的这个阈值,并且基于从VM的监测代理接收到的使用信息确定分配给VM的资源的数量将要在何时动态地增加。例如,表A指示:VM1的CPU核的“分配”值是“90%/60秒”。这意味着:如果分配给VM1的CPU资源在60秒的时间段上处于或超过90%的利用率,则额外的CPU资源可被分派或分配给VM1
表A中的“释放”列识别当分配给VM的资源可被从VM释放或解除分配并且返回到系统资源池时的条件(例如,阈值)。在某些实施例中,当VM的资源的资源利用率在RCF中指定的时间量期间处于或下降至低于释放阈值时,尝试从该VM解除分配资源的一部分。解除分配并且未使用的资源被返回到可用资源池120。在某些实施例中,资源管理器122监测VM的这个阈值,并且基于从VM的监测代理接收到的使用信息确定分配给VM的资源的数量何时可以减少。例如,表A指示:VM1的CPU核的“释放”值是“30%/60秒”。这意味着:如果分配给VM1的CPU资源在60秒的时间段上处于或低于30%利用率,则一些CPU资源可被动态地从VM1去除或解除分配。
表A中的“优先级”列指定VM的优先级值。VM的优先级值可被用来分配和解除分配用于VM的一个或多个资源。如上所述,资源可被动态地从可用资源池120分配给VM。在某些实施例中,如果资源将要被分配给特定优先级的VM并且在可用资源池120中不可获得需要数量的资源,则资源管理器122可检查优先级比该特定优先级低的VM,以查看需要数量的资源是否可以被从一个或多个这些VM解除分配并且随后被分配给具有该特定优先级的VM。在一个实施例中,执行检查以查看较低优先级的VM是否已被分配超过它们的基础配置的额外资源。如果较低优先级的VM已被分配超过它们的基础配置的额外资源,则资源管理器122可回收所述额外资源并且使其可被可用资源池120获得以分配给较高优先级的VM。在某些实施例中,较高优先级的VM在较低优先级的VM之前被分配资源。在一些实施例中,在相同优先级的VM内,可在先到先服务的基础上分配资源。在某些实施例中,可分派代表最低优先级的“可回收”级的优先级。mVM可关闭被标记为“可回收”的VM并且回收该VM的所有资源。
在表A中描述的实施例中,在按照VM的基础上指定优先级。例如,mVM的优先级为高,VM1的优先级为中,VM2的优先级为低,等等。在某些实施例中,可在按照VM和资源的基础上指定优先级。在表B中描述在按照VM和资源的基础上指定优先级的RCF的例子。
表B:资源配置文件(另一实施例)
如表B中所示,对于VM1,优先级针对CPU资源为高,针对存储器资源、网络带宽资源和网络端口为中,并且针对非易失性存储器资源为低。以类似方式,对于VM3,优先级针对CPU资源、存储器资源和网络端口为高,针对网络带宽资源为中,并且针对非易失性存储器资源为低。
在一些实施例中,由装置100执行的VM可包括特殊策略VM(pVM),该特殊策略VM可被管理程序118启动以执行诸如在联网装置上执行策略管理功能的策略管理器136的程序。可基于策略信息132执行策略管理。在替代实施例中,策略管理器136可以位于与执行各种VM的系统分离的服务器上。策略信息132也可被存储在这个分离的服务器上。以下提供进一步的细节。
图2描述示出根据本发明的实施例的当启动VM时执行的处理的简化流程图200。图2中描述的处理可以以由一个或多个处理单元(例如,处理器、核、核的某一部分)执行的软件(例如,代码、指令、程序)、硬件或其组合来实现。在某些实施例中,软件可被存储在非暂态计算机可读存储装置或介质上。图2中描述的一系列特定处理步骤不旨在是限制性的。
在202,管理程序118确定mVM将要被启动并且确定将要被分配给mVM的资源。在某些实施例中,管理程序118可从资源配置文件(诸如,以上在表A中描述的文件)确定这种信息。作为202的一部分,管理程序118可确定将要被分配给mVM的资源的基础数量。例如,对于在表A中描述的资源配置文件,管理程序118可确定mVM被分配1个CPU核、1GB的系统存储器、2GB/秒的网络带宽、20个网络端口和5GB的非易失性存储器(例如,盘贮存器)。
在204,管理程序118利用在204中确定的资源启动mVM。在一个实施例中,如果不可获得为启动mVM所需的基础资源,则可能无法启动mVM并且可报告错误状况。在某些实施例中,mVM可以与pVM同步以获得最新资源分配并且相应地更新RCF。pVM可基于它从监测代理接收到的实时输入来动态地改变与之通信的所有mVM的RCF。
在206,在mVM中执行促进并且使得能够实现VM的动态修改的一个或多个程序。例如,在一个实施例中,可在mVM中启动并且执行资源管理器122。
在208,资源管理器122随后确定将要被启动的各个VM。在某些实施例中,资源管理器122可从资源配置文件确定这种信息。例如,从表A中描述的RCF,资源管理器122可确定三个VM(1或VM1、2或VM2、和3或VM3)将要被启动。
在210,对于在208中确定的每个VM,资源管理器122可确定将要在启动时分派给VM的资源。在某些实施例中,资源管理器122可从RCF确定这种信息。例如,从表A中描述的RCF,资源管理器122可确定:
·对于VM1,将要在启动时分配给VM的基础资源包括2个CPU核、2GB的系统存储器、5GB/秒的网络带宽、100个网络端口和10GB的非易失性存储器(例如,盘贮存器);
·对于VM2,将要在启动时分配给VM的基础资源包括2个CPU核、4GB的系统存储器、5GB/秒的网络带宽、250个网络端口和10GB的非易失性存储器;和
·对于VM3,将要在启动时分配给VM的基础资源包括2个CPU核、4GB的系统存储器、5GB/秒的网络带宽、250个网络端口和10GB的非易失性存储器。
在212,由资源管理器122在208和210中确定的信息被传送给管理程序118。在214,基于在212中从资源管理器122接收到的信息,管理程序118利用在212中确定的分配给VM的资源启动在208中确定的每个VM。在一个实施例中,如果针对特定VM不可获得基础数量的资源,则不启动该VM并且可报告错误状况。以这种方式,当VM开始或启动(即,开始操作)时,一组预先配置的基础资源可被分配给每个VM。
在216,新启动的VM可启动和执行促进并且使得能够实现分配给VM的资源的动态修改的一个程序或一组程序。例如,VM可启动和执行监测代理,该监测代理被配置为监测由VM使用的资源并且将该信息传送给资源管理器122。
在218,系统进入监测阶段。在这个阶段,监测各种VM对资源的使用。例如,由VM执行的监测代理可监测由VM使用的资源并且将这种信息传送给在mVM中执行的资源管理器122。监测代理可按照定期可编程间隔和/或在发生某些事件时将资源使用信息传送给资源管理器122。推模型或拉模型可被用于该传送。在监测阶段,由mVM执行的资源管理器122被配置为从各种监测代理接收信息,并且基于接收到的信息确定是否将要执行一个或多个VM的资源分配修改。资源管理器122还可监测可触发VM的资源分配修改的其它系统状况或信号。如果将要执行这种修改,则资源管理器122可将该信息传送给管理程序118,并且管理程序118随后使该修改动态地发生而不必停止、重新启动或重新开始VM。
可在监测阶监测各种不同资源。例如,在某些实施例中,对VM的监测可非限制性地包括监测VM的CPU利用率、存储器利用率、网络带宽利用率、非易失性存储器(例如,盘贮存器)利用率等。在一个实施例中,可为VM定义具体利用率参数。例如,CPU利用率可被定义为(路线更新)/秒。定制公式可被用来基于定制度量计算CPU利用率。可在VM的资源监测配置文件(RMCF)中定义利用率度量。在某些实施例中,RMCF是将专用度量转换成实现它们所需的资源的映射公式。例如,可以以每秒服务的页来测量web服务器。为了服务100,000页/秒可能需要可获得的一组具体资源。例如,2个CPU核、4GB存储器、4个网络端口等。在一些实施例中,在操作时,mVM可定期地轮询每个VM以确定每个VM的资源利用率。
图3描述示出根据本发明的另一实施例的当启动VM时执行的处理的简化流程图300。图3中描述的处理可以以由一个或多个处理单元(例如,处理器、核、核的某一部分)执行的软件(例如,代码、指令、程序)、硬件或其组合来实现。在某些实施例中,软件可被存储在非暂态计算机可读存储装置或介质上。图3中描述的一系列特定处理步骤不旨在是限制性的。
在302,管理程序118确定将要被启动的所有VM。在某些实施例中,管理程序118可从RCF确定这种信息。例如,从表A中描述的RCF,管理程序118可确定将要被启动的VM包括mVM、VM1、VM2和VM3
在304,对于在302中确定的每个VM,管理程序118确定将要在启动VM时分配给VM的资源。在某些实施例中,管理程序118可从RCF确定这种信息。例如,从表A中描述的RCF,管理程序118可确定将要在启动时分配给VM的基础资源是:
·对于mVM,将要在启动时分配给VM的基础资源包括1个CPU核、1GB的系统存储器、2GB/秒的网络带宽、20个网络端口和5GB的非易失性存储器;
·对于VM1,将要在启动时分配给VM的基础资源包括2个CPU核、2GB的系统存储器、5GB/秒的网络带宽、100个网络端口和10GB的非易失性存储器;
·对于VM2,将要在启动时分配给VM的基础资源包括2个CPU核、4GB的系统存储器、5GB/秒的网络带宽、250个网络端口和10GB的非易失性存储器;和
·对于VM3,将要在启动时分配给VM的基础资源包括2个CPU核、4GB的系统存储器、5GB/秒的网络带宽、250个网络端口和10GB的非易失性存储器。
在306,管理程序118利用在306中确定的分配给VM的资源启动在302中确定的每个VM。在一个实施例中,如果针对特定VM不可获得基础数量的资源,则不启动该VM并且可报告错误状况。
在308,在mVM中执行促进并且使得能够实现VM的动态修改的一个或多个程序。例如,在一个实施例中,可在mVM中启动并且执行资源管理器122。
在310,除mVM之外的VM可启动和执行促进并且使得能够实现分配给VM的资源的动态修改的一个程序或一组程序。例如,VM可启动和执行监测代理,该监测代理被配置为监测由VM使用的资源并且将该信息传送给资源管理器122。
在312,系统进入如以上参照图2中的218所述的监测阶段。
图4描述示出根据本发明的实施例的在监测阶段执行的处理的简化流程图400。图4中描述的处理可以以由一个或多个处理单元(例如,处理器、核、核的某一部分)执行的软件(例如,代码、指令、程序)、硬件或其组合来实现。在某些实施例中,软件可被存储在非暂态计算机可读存储装置或介质上。图4中描述的一系列特定处理步骤不旨在是限制性的。
在402,检测保证VM的资源分配的改变的状况的发生。在一个实施例中,由mVM 114执行的资源管理器122可被配置为检测当将要修改VM的资源分配时的状况。例如,在一些实例中,资源管理器122可从VM的监测代理接收信息,并且基于接收到的信息和RCF中的信息确定将要执行VM的资源分配的改变。
例如,资源管理器122可从由VM执行的监测代理接收由VM使用的资源(或多个资源)的资源利用率信息。资源管理器122可将这种信息与在RCF中针对VM的该资源指定的“分配”和“释放”信息进行比较。如果VM的该资源的资源利用率处于或超过在RCF中针对该VM的该资源指定的分配阈值,则资源管理器122可将此识别为保证分配给该VM的资源的数量的改变(在这种情况下,保证分配给该VM的资源的数量的增加)的状况。例如,表A中描述的资源配置文件指示:VM1的CPU核的“分配”值为“90%/60秒”。这意味着:如果分配给VM1的CPU资源在60秒的时间段上处于或超过90%利用率,则额外CPU资源需要被分派或分配给VM1
作为另一例子,如果资源管理器122接收到这样的信息,即VM的资源的资源利用率处于或低于在RCF中针对该VM的该资源指定的释放阈值,则资源管理器122可将此识别为保证分配给该VM的资源的数量的改变(在这种情况下,保证分配给该VM的资源的数量的减小)的状况。以这种方式,基于从一个或多个监测代理接收到的信息并且基于RCF中的信息,资源管理器122可确定是否存在需要VM的资源分配的改变的状况。
资源管理器122还可监测其它状况,所述其它状况可使得分配给VM的资源的数量被动态地改变而不必停止、重新开始或重新启动VM。在一些实施例中,可根据或响应于由用户签署的服务水平协议(SLA)来改变分配给为用户(例如,顾客)提供的一个或多个VM的资源。由用户签署的SLA通常识别用于管理向用户允诺的服务水平的条款。在最终顾客和通信使能器(诸如,网络载体、因特网服务提供商(ISP)等)之间的通信行业中,SLA是非常常见的。例如,一个或多个SLA通常被包括在用户和服务提供商之间签署的服务合同中。这种SLA可设置各种条款,诸如针对由服务提供商提供的服务由用户经历的最大停机时间、提供服务所花费的最大时间、提供给用户的服务的质量、故障之间的平均时间、吞吐量、各种数据速率或任何其它可测量准则。因此,SLA可指定可用性、可维修性、性能、操作或由服务提供商向用户允诺的服务的其它属性的水平。在许多情况下,用户和服务提供商之间的服务合同还指定在不满足SLA中指定的条款的情况下对服务提供商施加的惩罚。因此,不符合SLA通常导致服务提供商的惩罚费用或损失。与SLA有关的信息可被存储为SLA信息130。在一个实施例中,SLA信息130可被存储在由mVM 114执行的程序可访问的数据库中。监测代理124也可访问SLA信息130。
在某些实施例中,可根据或响应于SLA信息130执行分配给一个或多个VM的资源的改变。例如,新的SLA协议可使得分配给受SLA影响的VM的资源被修改。顾客的SLA信息可被用来确定将要为顾客提供的一个或多个VM和将要被分派给VM的资源。与SLA对应的VM的性能可随后被监测,并且VM的资源可被动态地改变以便确保性能符合SLA条款。
已有SLA协议的改变可使得分配给与SLA对应的VM的资源被修改。在这种实例中,资源管理器122可被配置为监测SLA信息130的任何这种改变,并且合适地触发一个或多个VM的资源分配的改变以符合SLA条款。以下在使用情况部分中提供进一步的细节。
作为另一例子,资源管理器122可监测故障切换事件,并且在检测到这种事件时执行分配给主动VM和被动VM的资源的合适的改变。以下在使用情况部分中提供进一步的细节。
返回参照图4,在404,确定资源分配将要响应于在404中检测到的状况而被改变的VM。例如,如果资源管理器122基于接收到的资源使用信息并且基于表A中描述的RCF确定分配给VM1的CPU资源在60秒的时间段上处于或超过90%利用率,则VM1在404中被识别为资源分配将要被改变(在这种情况下,增加)的VM。
在406中,对于在404中确定的VM,确定分配将要被改变的资源和VM的资源的分配将要被改变的数量。例如,对于表A中描述的RCF,在确定分配给VM1的CPU资源在60秒的时间段上处于或超过90%利用率时,可在406中确定:响应于这种状况,额外的CPU核将要被分配给VM1。作为另一例子,对于表A中描述的RCF,在确定分配给VM1的CPU资源在60秒的时间段上处于或低于30%利用率时,可在406中确定:响应于这种状况,CPU核可以被从VM1解除分配。
在408,确定资源分配的改变是VM的资源分配的增加还是VM的资源分配的减小。如果它是减小,则处理继续至410,而如果它是增加,则处理继续至416。
在410,确定将资源的分配减小在406中确定的数量是否将会违反针对VM的该资源指定的基础限制阈值。如前所述,可在RCF中指定VM的资源的基础限制。基础阈值指示VM所需的一组最小或基础资源。不允许VM的资源的数量下降至低于这个最小或基础水平。例如,表A中示出的RCF指示:VM1的CPU核的基础限制为2个CPU核。因此,如果在406中确定CPU核将要被从VM1解除分配,则在410中检查这种解除分配是否将会使得分配给VM1的CPU核下降至低于2个CPU核的基础限制。
如果在410中确定将资源的分配减小在406中确定的数量违反针对VM的该资源指定的基础限制阈值,则不允许资源解除分配。在某些实施例中,指示无法执行资源解除分配的消息可被输出给用户,因为这种解除分配将会使得该VM的资源分配下降至低于基础限制。
如果在410中确定将资源的分配减小在406中确定的数量不违反针对VM的该资源指定的基础限制阈值,则在412执行处理以从在404中确定的VM解除分配在406中确定的资源的数量。实时地执行资源解除分配,而不必停止、重新开始或重新启动受影响的VM。一旦资源已被解除分配,按照420,继续执行监测阶段。作为412的一部分,解除分配的数量的资源可被返回到可用资源池120。以下参照图5提供与在412中执行的处理有关的进一步细节。
在416,确定将资源的分配增加在406中确定的数量是否将会违反针对VM的该资源指定的最大限制阈值。如前所述,可在RCF中指定VM的资源的最大限制。例如,表A中的“最大”列识别可被分配给VM的资源的最大数量。例如,按照表A中示出的RCF,VM1的CPU核的最大限制为4个CPU核。因此,如果在406中确定CPU核将要被分配给VM1,则在416中检查这种分配是否将会使得分配给VM1的CPU核增加至超过4个CPU核的最大限制。
如果在416中确定将资源的分配增加在406中确定的数量违反针对VM的该资源指定的最大限制阈值,则按照414,不允许资源分配。在某些实施例中,指示无法执行资源分配的消息可被输出给用户,因为这种分配将会使得该VM的资源分配增加至超过允许的VM的最大限制。
如果在416中确定将资源的分配增加在406中确定的数量不违反针对VM的该资源指定的最大限制阈值,则在418执行处理以针对在404中确定的VM将在406中确定的资源的分配增加在406中确定的数量。实时地执行资源分配,而不必停止、重新开始或重新启动受影响的VM。一旦资源已被分配,按照420,继续执行监测阶段。以下参照图6提供与在418中执行的处理有关的进一步细节。
尽管图4中描述的实施例和附图描述讨论了一定数量的单个资源如何可被分配给单个VM或从单个VM解除分配,但这不旨在是限制性的。在402中检测到的状况可导致一个或多个VM的一个或多个资源的资源分配的动态改变。可针对每个VM和每个资源执行以上在图4中示出和描述的处理。
图5描述示出根据本发明的实施例的为了动态地从VM解除分配一定数量的资源而执行的处理的简化流程图500。图5中描述的处理可以以由一个或多个处理单元(例如,处理器、核、核的某一部分)执行的软件(例如,代码、指令、程序)、硬件或其组合来实现。在某些实施例中,软件可被存储在非暂态计算机可读存储装置或介质上。图5中描述的一系列特定处理步骤不旨在是限制性的。
在502,由mVM执行的资源管理器122(或替代地,由mVM执行的一个或多个程序)可向管理程序118发送请求以从特定VM解除分配特定数量的特定资源。在504,管理程序118向在502中识别的VM的客户操作系统(GOS)通知:将在502中识别的资源解除分配在502中识别的数量即将发生。在某些实施例中,GOS可支持热插拔API(例如,高级配置和电源接口(ACPI)),并且可使用该API来接收通知。GOS可接收资源的API去除通知。
在506,在从管理程序118接收到通知时,GOS可执行处理以便能够从VM解除分配请求数量的资源。例如,GOS可执行清理操作以释放将要被解除分配的数量的资源。例如,如果资源是CPU核,则作为506的一部分,GOS可执行把由将要被解除分配的CPU核执行的所有过程和线程移至分配给VM的另一CPU核的处理。如果将要被解除分配的资源是系统存储器的一部分,则作为506的一部分,GOS可将存储在系统存储器的该部分中的任何数据或过程移至分配给VM的系统存储器的另一部分。如果将要被解除分配的资源是非易失性存储器(例如,盘贮存器),则作为506的一部分,GOS可将存储在将要被解除分配的非易失性存储器的该部分中的任何数据移至分配给VM的非易失性存储器的另一部分。如果将要被解除分配的资源是网络端口,则作为506的一部分,GOS可执行这样的操作:使该端口脱机以使得它不被使用并且可被解除分配。当去除网络端口时,由端口使用的任何网络路线可被重新路由至其它剩余端口。然后,可以使网络端口脱机。如果将要被解除分配的资源是网络带宽,则作为506的一部分,GOS可在某些实施例中,VM的网络带宽取决于用于处理它的对应的CPU和存储器资源。在一个实施例中,可以通过减少(减少带宽)或增加(增加带宽)CPU和存储器资源来改变网络带宽。当资源改变需要修改硬件装置配置时,mVM或其它指定的“监督者(supervisor)”VM可执行硬件的改变。可实现这一点以提供保护从而防止普通VM错误配置硬件,普通VM错误配置硬件将会影响系统上的所有VM。
在已在506中执行必要的清理之后,在508,GOS向管理程序118发送现在将要安全地从VM解除分配请求数量的资源的信号。在510,管理程序118随后通过从VM解除映射将要被解除分配的数量的资源来执行解除分配并且管理硬件装置。
在512,已被解除分配的数量的资源可被放置在可用资源池中并且可分配给某一其它VM。
以上述方式,由与管理程序协作的mVM(诸如,资源管理器122)执行的程序可执行与VM的资源的解除分配有关的处理。实时地动态地执行资源分配的这些改变,而不必停止、重新启动或重新开始VM。这促进了各种资源消耗者之间的有限资源的更好利用。
图6描述示出根据本发明的实施例的为了动态地将一定数量的资源分配给VM而执行的处理的简化流程图600。图6中描述的处理可以以由一个或多个处理单元(例如,处理器、核、核的某一部分)执行的软件(例如,代码、指令、程序)、硬件或其组合来实现。在某些实施例中,软件可被存储在非暂态计算机可读存储装置或介质上。图6中描述的一系列特定处理步骤不旨在是限制性的。
在602,检查是否可完全从可用资源池获得将要被分配给VM的数量的资源。该检查可被由mVM(诸如,资源管理器122)执行的程序执行。如果在602中确定可完全从可用资源池获得将要被分配给VM的数量的资源,则处理前进至610,否则前进至604。
在604中,对于无法从可用资源池获得的将要被分配的数量的资源,尝试从可由该装置执行的其它VM释放所述数量的资源。各种不同技术可被用来从其它VM释放资源。释放的资源可被放置在可用资源池中。以下在图7中示出并且描述这样的一种技术。然而,这个技术不旨在是限制性的。也可使用各种其它技术。
在606,执行检查以查看可从可用资源池获得的资源的数量加上从其它VM释放的资源的数量是否满足将要被分配的资源的数量。如果足够,则处理前进至610,否则按照608不执行分配,因为不存在可用于完成分配的足够资源。可在608中输出错误消息,该错误消息指示无法执行资源分配的改变。
在610中,资源管理器122向管理程序118发送用于将来自可用池的一定数量的资源映射到将要被分配资源的VM的请求。在612中,管理程序118将所述一定数量的资源映射到VM。在614,管理程序118可向正被分配资源的VM的GOS通知:所述一定数量的资源已被映射到VM并且可由VM使用。在某些实施例中,支持热插拔事件API(例如,ACPI)的GOS可使用API接收通知:映射的资源可由VM使用。在616,GOS可执行处理以便使得VM能够使用新映射的资源。在某些实施例中,如果在上述处理期间发生错误状况,诸如如果VM无法实现该请求,则VM可被重新启动,并且可启动故障切换或某一其它校正动作。
在某些实施例中,一些限制可被施加到由VM使用新映射的资源部分的方式。例如,在一些实施例中,根据需要,VM可被限制以这种方式使用新映射的资源,即不允许资源被从VM解除映射并且可用于可用资源池。例如,在一个实施例中,如果新分配的资源是系统存储器,则该存储器不可被用作外部直接存储器存取(DMA)装置的目标或用于存储固定内核对象,因为这样操作会妨碍存储器被安全地从VM去除。因此,在618,GOS可监测VM对新分配的资源的使用并且限制使用该资源的方式。
在某些实施例中,GOS处理资源映射/解除映射。如果由于某种原因,资源无法被正确地映射/解除映射,则校正动作可包括关闭和重新启动VM。
如上所述,由与管理程序协作的mVM(诸如,资源管理器122)执行的程序、VM的GOS和由VM执行的监测代理可执行与VM的资源的分配有关的处理。动态地执行资源分配的这些改变,而不必停止、重新启动或重新开始正被分配资源的VM。另外,如果可用资源池不具有足够数量的将要被分配的资源,则尝试从其它VM释放需要数量的资源。从其它VM释放的资源被添加到可用资源池以分配给该VM。也可执行其它VM的资源的释放,而不必停止、重新启动或重新开始这些其它VM。以这种方式,实时地执行分配和解除分配而不会严重地影响任何VM,同时使得能够实现VM之间的有限资源的更好利用。
如上所述,各种不同技术可被用来从其它VM释放资源并且使这些资源可用于将要被分配资源的VM。图7描述示出根据本发明的实施例的用于动态地从VM释放资源并且使其可被分配给VM的基于优先级的技术的简化流程图700。图7中描述的处理可以以由一个或多个处理单元(例如,处理器、核、核的某一部分)执行的软件(例如,代码、指令、程序)、硬件或其组合来实现。在某些实施例中,软件可被存储在非暂态计算机可读存储装置或介质上。图7中描述的一系列特定处理步骤不旨在是限制性的。
在701,确定需要被释放并且可用于分配的需要数量的资源。在某些实施例中,需要数量是需要被分配给VM的资源数量减去可用资源池中可用的资源的数量。例如,如果3GB的系统存储器将要被分配给VM并且仅可从可用资源池获得1GB,则需要释放或解除分配、并且可用于重新分配的存储器的需要数量是(3-1)=2GB。
在702,确定将要被分配资源的VM的优先级。在一个实施例中,可在RCF中提供VM的优先级信息。例如,表A中描述的RCF包括指定VMS的优先级的“优先级”列。例如,按照表A,VM1的优先级为高,VM2的优先级为中,等等。
在704,确定优先级比在702中确定的优先级低的VM的列表。在706,基于优先级来排序在704中确定的VM的列表。
在708,变量可被初始化以用于进一步的处理。例如,“VMP”变量可被用来代表来自正被处理的排序列表的VM。VMP可被初始化为排序列表中的最低优先级VM的VM。另一变量“Aggregate(合计)”被设置为零。
按照710、712、714、716和722,开始于列表中的最低优先级VM,对排序列表中的VM进行迭代,以针对每个VM确定可以从该VM释放的资源的数量。继续这种迭代,直至可以释放将要被分配的需要数量的资源并且该资源可用于分配。因此,在710,开始于排序列表中的最低优先级VM,确定可以从VMP释放的资源的数量。在执行这种确定的同时,可考虑VMP的资源的基础限制以确保在资源的释放之后仍然分配给VMP的资源的总量不会下降至低于该VMP的基础限制。
在712,将在710中确定的可以释放的资源的数量与Aggregate变量相加。以这种方式,Aggregate变量记录可以从VM的排序列表中的各种VM释放的资源的总量的统计。
在714,检查Aggregate是否大于或等于需要的数量。如果Aggregate大于或等于需要的数量,则在720,从VM释放或解除分配在710中针对来自该列表的各个VM的各个迭代确定的数量的资源。在一个实施例中,可根据以上在图5中示出和描述的处理来执行一个或多个VM的资源的解除分配。解除分配的资源可被归还给可用资源池。处理随后可返回到图6中的606并且随后继续至610。
如果在714中确定Aggregate仍然小于需要的数量,则在716执行检查以查看在706中产生的VM的排序列表中是否存在尚未根据710和712处理的任何VM。如果存在至少一个这样的VM,则在722,VMP变量被设置为具有最低优先级的VM的排序列表中的下一个未处理的VM。处理随后使用新的VMP继续至710。
如果在716中确定排序列表中的所有VM已被处理,则这意味着:不再存在可用于释放资源的VM。由于Aggregate仍然小于需要的数量,所以这意味着:列表中的VM无法满足需要的数量。因此,在718,可传送这样的指示:无法通过从VM的列表中的VM释放资源来满足需要数量的资源。在这种情况下,处理可继续至606(在图6中),其中确定可从可用资源池获得的资源的数量加上从其它VM释放的资源的数量仍然小于将要被分配的资源的数量。随后可按照608不执行资源分配。
在某些实施例中,在702、704、706、708、710、712、714、716、718和716中描述的处理可被由mVM(诸如,由资源管理器122)执行的一个或多个程序执行。720中的处理可由资源管理器122结合管理程序118来执行。
在某些实施例中,“可回收”级的优先级可被分派给一个或多个VM,代表最低优先级。mVM可以关闭被标记为“可回收”的VM并且回收该VM的所有资源,以及使该资源可分配给其它较高优先级的VM。
以上在图7中示出和描述的处理假设:在按照VM的基础上分派优先级。然而,如以上参照表B所述,可在按照VM和资源的基础上指定优先级。在这种实施例中,在702中,该处理可针对将要被分配的资源确定按照VM和资源的优先级。在704中,确定按照VM和资源(正被分配的资源)的优先级比在702中确定的按照VM和资源的优先级低的VM的列表。这个VM的列表随后被处理,并且它们的针对正被分配的资源的按照VM和资源的优先级被用于该处理。
如上所述,分配给VM的资源可被动态地改变(例如,增加或减小)而不必停止、重新启动或重新开始VM。资源可包括各种类型的资源,包括但不限于处理资源、系统存储器资源、网络资源(诸如,网络带宽资源和端口)、非易失性存储器资源、输入/输出(I/O)资源等。
处理资源
装置或系统可提供代表装置或系统的处理资源的一个或多个处理单元。这些处理单元可以是一个或多个处理器、一个或多个CPU核、核的某个部分及其组合。例如,在包括一个或多个多核CPU的系统或装置中,基本处理单元可以是CPU核并且一个或多个CPU核可被分配给每个VM。这些一个或多个处理单元可被动态地添加到VM或从VM去除。在一个实施例中,当由mVM指示时,管理程序118将一个或多个核映射到VM并且通知VM的GOS。GOS随后将会使额外的核联机并且使其可被VM使用。
在某些实施例中,为了安全地从VM去除一个或多个核,向底层的GOS通知即将发生的核去除。对于将要被去除的核,GOS将在该核上运行的所有过程移至VM中的其它核并且使指定的核脱机。管理程序118随后可从VM去除或解除分配该核并且将它放置在可用资源池中。在一些实施例中,如果在使核脱机时发生错误,则该核可能无法从GOS去除并且VM可被标记为故障。例如,随后,可由被mVM执行的程序(诸如,资源管理器122)开始一个或多个校正动作。这些动作可包括例如停止和重新启动故障VM。
系统存储器(例如,RAM)
在一些实施例中,存储器(通常被称为系统存储器或RAM)可被动态地添加到VM和/或从VM去除。在一个实施例中,按照固定大小块添加和/或去除存储器。可从由VM的底层的GOS支持的大小确定存储器块的大小。在一个实施例中,为了将存储器添加到VM,由mVM执行的程序(诸如,资源管理器122)可请求管理程序118将一个或多个存储器块映射到VM。管理程序118随后通知底层的GOS:可使用额外的存储器。
已被分配存储器的VM的GOS可监测如何使用所述额外的动态存储器。在一个实施例中,该存储器不应该被用作外部DMA装置的目标或用于存储固定内核对象,因为这样操作会妨碍动态存储器被安全地去除。
在一些实施例中,为了从VM去除动态存储器,管理程序118向GOS通知即将发生的存储器去除。GOS随后将存储在即将发生的存储器中的所有数据移至其它存储器区域或将该存储器与盘交换。一旦完成,存储器随后可脱机并且管理程序118可将存储器返回给可用资源池。
在一些实例中,GOS可能在重新定位数据结构的时候达到存储器溢出的状况。在这种情况下,GOS继续执行存储器溢出过程的正常操作以恢复足够的自由存储器从而完成重新定位。没有预期从VM去除动态存储器的请求会失败。如果发生错误,则VM可能发生故障并且它可被由mVM执行的一个或多个程序(诸如,资源管理器122)停止和重新启动。
网络资源
各种网络资源可被动态地分配给VM或从VM解除分配,诸如VM可被允许消耗的带宽的量、由VM单独拥有的外部网络端口的数量等。
(1)网络带宽
每个VM可具有它自己的一组进入速度限制参数。这组参数可被用来控制由VM接收的通信的速度。由mVM执行的程序可调整速度限制参数以增加或减小由每个VM接收的数据通信的数量。不同类型的流可具有不同的速度限制参数。对于每个VM,可存在一组输出通信整形参数。这组参数控制由VM发送的通信的速度。由mVM执行的一个或多个程序可调整通信整形参数以增加或减小VM的发送数据速度。
(2)端口
在虚拟化环境中,每个VM需要访问它自己的一组数据端口。由mVM(诸如,资源管理器122)执行的程序可以使得外部端口能够被添加到每个VM和/或从每个VM去除。在一些实施例中,为了允许VM直接配置和管理外部端口上的流,资源管理器122可配置转发硬件以将数据端口映射到由VM拥有的控制接口。
非易失性存储器
在某些实施例中,单个非易失性存储器(例如,存储装置)可由系统上的多个VM共享。在这种情况下,管理程序118可提供对所述单个非易失性存储器的虚拟化访问。VM可经由管理程序118使用虚拟存储装置驱动器来执行磁盘I/O。每个VM可具有它自己的私有盘分区。为了允许动态调整盘分区的尺寸,管理程序118可将存储装置分割成等尺寸逻辑块。对于支持动态盘分区改变的VM,VM的底层的GOS可支持逻辑卷管理器(LVM)或等同技术。
在一些实施例中,由mVM(诸如,资源管理器122)执行的一个或多个程序可动态地增加分配给VM的存储空间的数量。管理程序118可通过在未分配逻辑块中进行映射来增加VM的逻辑分区尺寸。向VM的GOS通知额外的存储器,并且VM的GOS可以使用LVM来扩展它的盘分区尺寸。
在一些实施例中,安全地从VM去除存储空间可能需要管理员去除不需要的文件,以在没有数据丢失的情况下允许完整逻辑块被解除分配。
I/O资源
在某个实施例中,虚拟化驱动器可被实现在管理程序118中以允许VM之间的装置的共享。由mVM执行的资源管理器122可指示管理程序118在VM之间动态地移动装置。底层的GOS可支持装置类型的热插拔。不支持本地虚拟化的硬件装置(例如,芯片的一部分可被分配给不同VM的SR-IOV)由一个VM单独拥有或在管理程序内被虚拟化。
示例性使用情况
(1)根据灵活方式的地址系统可扩展性
当前,如果要增加系统的可扩展性要求,则实现这一点的唯一机制是针对该系统建立或添加更强大的硬件(HW)。在可以执行多个VM的系统或装置中,每个VM可以用作单独的虚拟系统。以这种方式,物理装置可以提供多个虚拟系统,每个虚拟系统具有它自己的一组分配的资源。实现虚拟系统的资源的动态分配和解除分配使得分派给虚拟系统的资源能够被动态地改变以满足可扩展性要求,而不必将更多硬件添加到该系统。因此,动态地将资源分配给VM的能力在解决系统可扩展性问题方面打开了新的方式,而不必每次建立或添加新的硬件。
例如,基础系统可具有“n”数量的核,其中“m”个核(其中“m”小于“n”)可被分配给用作虚拟系统的VM。这个虚拟系统可被证明扩展为网络中的“x”数量的装置。如果以后该用户需要系统可扩展性超过“x”,则可通过动态地将额外的可用核分配给VM来执行这个升级。新分配的核被动态地热插拔至VM。
(2)虚拟路由器(VR)
VM可运行执行路由器或交换机的功能的程序。以这种方式,每个VM可用作个体虚拟路由器(VR)或交换装置。由于装置或系统可以并行地执行多个VM,所以几个这种VR可以并行地在系统上共存,共享系统的资源。VR可被提供给不同顾客(或租户)。例如,第一VR可被提供给第一租户,而第二VR可被提供给第二租户。以这种方式,提供多个VR的单个系统或装置可以为多个租户和多个应用提供服务。
由VR执行的处理的量可以随着时间而变化。例如,VR可能通常不是非常活跃,因为大多数路由相关操作可直接由被定制为执行路由功能的路由硬件来处理。在这个阶段,VR可仅需要一组最小或基础资源。然而,存在这样的时候:VR会变得非常繁忙并且由于所述一组基础资源而结束于资源限制或缺乏。具有动态地将额外的资源分配给VR的能力允许它在需要时进行扩展以满足大量需求。以这种方式,当出现需要时,额外的资源可在出现VR对资源的需要时被动态地分配给VR。
在执行多个VR的系统中,针对VR动态地分配和解除分配资源的能力使得能够在基于需要的基础上分配资源。另外,由于系统中的总资源通常是固定的,所以将资源从不是那么活跃的VR解除分配给繁忙的VR的能力使得资源能够在VR之间被高效地使用和共享。这提供显著的竞争优势,因为可以由相同硬件来服务更多VR。另外,VR在需求的高峰期间更容易做出响应。在某些实施例中,VR还可以根据个体SLA而被分派不同资源水平。此外,也不需要预先将所有资源分配(或静态地将资源分配)给VR,因为系统可以动态地适应于需要。
(3)虚拟高可用性(HA)
现代网络架构努力提供这样的解决方案:路由或转发功能不被网络或网络装置故障中断。增加系统的可用性(被称为高可用性)的一个技术是通过提供冗余。例如,网络装置可包括两个处理器,其中一个处理器被配置为在“主动”模式下操作并且另一处理器被配置为在“被动”(或待机)模式下操作。在主动模式下操作的处理器(被称为主动处理器)通常被配置为执行一组全部的联网功能,而在被动模式下操作的处理器(被称为被动处理器)被配置为不执行一组全部的联网功能,或仅执行由主动处理器执行的功能的小子集。当例如由于主动处理器中的错误而可能发生使主动处理器重新启动或发生故障的事件(被称为故障切换事件)时,被动处理器作为主动处理器进行接管并且开始执行在主动模式下执行的功能。以这种方式,由主动处理器执行的联网功能不会由于故障切换而被中断。以前的主动处理器变为被动处理器。
主动被动模型可被实现在执行多个VM的系统中,由此提供虚拟高可用性。由系统执行的第一VM可被配置为处于主动模式并且运行执行在主动模式下执行的功能的程序。由同一系统执行的第二VM可被配置为在被动模式下操作,其中第二“被动”VM不执行由主动VM执行的功能,或者替代地,第二“被动”VM可仅执行由主动VM执行的功能的小子集(即,被动VM不执行由主动VM执行的一些功能)。因此,当在主动模式下操作时,主动VM可运行执行在主动模式下执行的功能的一个或多个程序。被动VM不执行主动模式功能,或者被动VM可仅执行主动模式功能的小子集(即,被动VM不执行由主动VM执行的一些功能)。
由于主动VM执行比被动VM更多的功能,所以主动VM需要比被动VM更多的资源。在没有动态地分配或解除分配资源的能力的情况下,当创建VM时,资源必须被静态地分派给主动VM和被动VM。这种静态分配导致大量的资源浪费。例如,由于任何VM可在主动模式下操作,所以两个VM都必须被静态地分派足够的资源以支持主动模式处理。然而,作为静态分配的结果,当在被动模式下操作时,分配给被动VM的资源未被充分使用。在静态配置中,主动VM无法使用被动VM未充分使用的被动VM的空闲资源。
在本发明的某些实施例中,在VM之间动态地分配和解除分配资源的能力可被用来自动地增加分配给主动VM的资源的数量以及自动地从被动VM解除分配一定数量的资源。在一个实施例中,从被动VM解除分配的所述一定数量的资源可被分配给主动VM。
在一个这种实施例中,用户可简单地指定用于主动VM的资源的数量和用于被动VM的资源的数量。例如,用户可指定:系统中的75%的资源(例如,75%的处理资源和系统存储器资源等)将要被分配给主动VM并且25%的资源将要被分配给被动VM。在一个实施例中,可在RCF中指定这些数量。当启动VM时,这些指定数量的资源随后被分配给VM。例如,当启动第一VM时,作为主动VM操作的第一VM可被分配75%的资源。作为被动VM操作的第二VM可被分配25%的资源。稍后,当故障切换事件发生时,第二VM可变为主动VM并且第一VM可变为被动VM。在这种情况下,由mVM(诸如,资源管理器122)执行的一个或多个程序可被配置为自动地从第一VM(第一VM现在是被动VM)解除分配资源并且将额外的资源分配给第二VM(第二VM现在是主动VM),从而在故障切换的末尾,第二VM(现在是主动VM)具有分配给它的75%的资源并且第一VM(现在是被动VM)具有分配给它的25%的资源。以这种方式,分配给主动VM的资源跟随主动的VM,并且同样地,分配给被动VM的资源跟随被动的VM。mVM位于主动的VM上,即位于主动VM上。在故障切换期间,mVM自动地切换至新的主动VM。
图8显示根据本发明的实施例的主动VM和被动VM之间的自动动态资源分配的例子。如图8中所示,VM 802可被启动作为主动VM,并且在启动VM 802时被管理程序118分配3个CPU核、2GB系统存储器和3GB的非易失性存储器。VM 804可被启动作为被动VM,并且在启动VM 804时被管理程序118分配1个CPU核、1GB系统存储器和1GB的非易失性存储器。
指定将要被分配给主动VM和被动VM的资源的信息可被存储在管理程序118(或资源管理器122)可访问的位置。例如,该信息可被存储在RCF中。在一个实施例中,管理程序118可被配置为访问这种信息,以及启动VM 802作为主动VM并且向它分配针对主动VM指定的资源,以及启动VM 804作为被动VM并且向它分配针对被动VM指定的资源。
在另一实施例中,由mVM执行的资源管理器122可被配置为读取主动VM和被动VM资源分配信息。资源管理器122可随后将这种信息传送给管理程序118,管理程序118随后被配置为启动VM并且在启动时分配指定的资源。
在启动之后的某个点,可能发生故障切换事件。故障切换事件可以是自愿的(例如,由系统管理员引起)或非自愿的(例如,由系统中的错误引起)。作为故障切换的结果,以前是被动VM的VM 804现在可变为主动VM,并且以前是主动VM的VM 802可变为被动VM,如图8中所示。在故障切换时,VM 802和804的资源分配可被自动地改变,从而新的主动VM 804获得针对主动VM指定的分配资源,并且新的被动VM 802获得针对被动VM指定的资源。例如,如图8中所示,额外的资源被分配给主动VM 804,从而主动VM 804具有3个CPU核、2GB系统存储器和3GB的非易失性存储器。资源被从VM 802解除分配,从而VM 802具有1个CPU核、1GB系统存储器和1GB的非易失性存储器。
在一些实施例中,这些改变可由与管理程序118协同工作的资源管理器122自动地执行。在故障切换时,资源管理器可确定作为主动VM的VM和作为被动VM的VM,并且确定将要被分配给每个VM的资源的数量。资源管理器122可随后将该信息传送给管理程序118,管理程序118可将一个或多个资源(通过解除分配资源)从以前的主动VM 802移至新的主动VM804(通过将解除分配的资源分配给主动VM)。在实施例中,对资源(例如,CPU资源和存储器资源)的热插拔支持可由Linux GOS提供。
以这种方式,应该被分配给主动VM的资源被分派给或跟随在主动模式下操作的VM。类似地,应该被分配给被动VM的资源跟随在被动模式下操作的VM。自动地改变分配给主动VM和被动VM的资源的这种能力提供几个益处。它使得能够以与非高可用性系统相同的成本实现虚拟高可用性。这使得系统提供商能够以最小的额外成本提供优于竞争者的可靠性和可用性。
使用资源的动态重新分配的虚拟高可用性可被部署在各种不同系统上,包括但不限于单个多核CPU系统(例如,比萨盒(pizza box)系统)、具有有着一个或多个核的多个CPU的系统、基于底盘的系统等。例如,在包括一个或多个线卡和一个或多个管理卡的基于底盘的网络装置中,可在线卡级或在管理处理器级提供使用动态资源分配的虚拟高可用性。
(4)动态FlexNOS平台
FlexNOS通常被配置为允许第三方开发者建立将会在系统硬件(诸如,由加利福利亚州的圣何塞的Brocade Communications Systems,Inc.提供的硬件)上运行的定制应用。FlexNOS特别适合在VM内运行,因为它帮助隔离第三方应用与系统的其余部分。动态地将资源分配给FlexNOS VM的能力提供几个益处。它使得更多的FlexNOS VM能够由相同的底层硬件来服务。由于可以在按需的基础上执行资源分配,所以它使得FlexNOS VM能够在需求的高峰期间更容易做出响应,并且不需要向FlexNOS VM过度提供资源。另外,不同资源水平的SLA可被分派给FlexNOS VM。
(5)SLA管理
如以上所指示,由用户签署的服务水平协议(SLA)通常识别用于管理向用户允诺的服务水平的条款。SLA可包括与可用性、可维修性、性能、操作或由服务提供商向用户提供的服务的其它属性的水平有关的条款。基于SLA的条款,顾客被多次收费。例如,较高的收费可与允诺比允诺较低服务水平的SLA更高的服务水平的SLA相关联。由于顾客必须为由SLA允诺的服务的水平付费,所以SLA也通常指定在不满足在SLA中指定的条款的情况下对服务提供商施加的惩罚(例如,惩罚费用)。因此,对于服务提供商来说,符合SLA非常重要。
SLA条款可识别服务相关准则和与该准则关联的可测量阈值或范围。准则的例子非限制性地包括:
针对服务由用户经历的停机时间、提供服务所花费的时间、提供给用户的服务的质量、故障之间的平均时间、吞吐量、各种数据速率或任何其它可测量准则。准则可与各种参数有关,诸如可用性、可维修性、性能、操作或由服务提供商提供的服务的其它属性的水平。阈值或范围可与每个准则关联,并且可指示针对该准则的服务的预期或允诺水平。如果针对准则的服务的可测量水平下降至超过与准则关联的阈值或下降至与准则关联的范围以外,则提供的服务可被视为不符合或违反该准则的SLA。
由服务提供商提供并且可被SLA覆盖的服务可映射到由一个或多个VM执行的处理。这些VM可由一个装置或系统执行或者可分布在多个装置或系统上。SLA的条款可确定将要被使用的VM的数量和将要被分配给VM的资源以提供符合SLA的服务。例如,在一个实施例中,资源管理器122可被配置为在启动VM时将SLA中的条款映射为VM的数量和将要被分配给VM的资源。
参照图1,在某些实施例中,SLA信息130可存储一个或多个SLA的信息。资源管理器122可使用这种信息针对每个SLA确定将要针对SLA启动的VM的数量和将要在启动时被分配给VM的资源。如以上在图2中示出以及描述的,VM随后可由资源管理器122结合管理程序118来启动。
针对SLA启动的VM随后可被由VM执行的监测代理124监测。单独地或协同地操作的一个或多个监测代理可在SLA中提供的条款的上下文中监测一个或多个VM的操作。在一个实施例中,监测代理可被配置为监测VM(或一组VM)以确定所述VM(或所述一组VM)的操作是否符合SLA条款,并且将相关信息传送给资源管理器122。因此,资源管理器122可定期地从由与SLA信息对应的VM执行的监测代理124接收与由VM使用的资源有关的信息。
基于从监测代理接收到的信息,资源管理器122可确定分配给一个或多个VM的资源是否将要被动态地增加或减小从而保持符合SLA。在某些实施例中,资源管理器122可被配置为基于从监测代理124接收到的信息来检测SLA的一个或多个条款是否被违反或者处于被违反的危险中。资源管理器122随后可采取校正动作。这些校正动作可包括:使一个或多个VM的资源分配被动态地改变,从而由VM提供的服务符合SLA。可如以上参照图3、4、5、6和7所述地执行VM的资源分配的改变,并且实时地执行VM的资源分配的改变而不必停止、重置或重新启动VM。例如,如果资源管理器122确定服务质量降低并且处于下降至低于SLA允诺的阈值的危险中,则资源管理器122可使管理程序118增加分配给一个或多个SLA相关VM的处理资源以提高服务质量。
SLA的条款还可随着时间而改变或被修改。这些改变可被反映在图1中的SLA信息130中。资源管理器122(或由mVM 114执行的其它程序)可被配置为监测SLA信息130的任何这种改变,并且采取合适的动作。这些动作可非限制性地包括:改变用于提供SLA相关服务的VM的数量、改变一个或多个SLA相关VM的资源分配等。因此,动态地改变一个或多个VM的资源分配的能力使得系统能够动态地适应于SLA信息,并且确保提供的总体服务满足SLA条款。
受SLA影响的VM可由一个系统执行,或者可由经由网络以可通信方式彼此耦合的多个系统或装置执行。网络的例子包括因特网、局域网、企业网络等。对于在单个系统或装置内本地地执行的VM,VM的监测和管理(包括动态地改变VM的资源分配)可在某些实施例中被由在系统或装置上执行的本地mVM 114(诸如,资源管理器122)执行的一个或多个程序来处理。资源管理器122可使用SLA信息130和从由VM执行的监测代理接收到的信息来执行这些监测和管理活动。当将要执行VM的资源分配的改变时,或者如果将要启动新的VM,则资源管理器122可将信号发送给管理程序118,管理程序118可随后按照图2-7中描述的方法及其相应描述来执行分配/解除分配操作或启动新的VM。
在某些实施例中,可配置指定SLA的信息将要被如何映射为VM和分配给VM的资源的策略。这些策略可被存储在策略信息132中,并且被资源管理器122用来执行监测和管理活动。在一个实施例中,给定SLA的信息,策略可指定SLA信息将要被如何映射到将要针对SLA启动的VM并且映射到将要被分配给VM的资源。策略信息还可指定当VM的资源分配将要被动态地改变时的状况。例如,SLA可能声明web服务器必须处理100,000页/秒。如果监测代理观测到仅90,000页/秒并且配置的资源被完全使用(例如,CPU处于100%),则它可以请求更多CPU核以实现SLA。
与SLA对应的VM还可分布在网络上,并且被多个系统或装置执行。例如,当顾客的SLA覆盖提供给顾客的几个服务(包括但不限于联网服务、应用服务、存储服务等)时,可存在这样的情况。例如,SLA可应用于顾客的应用服务器、数据库和web服务器。可使用多个VM在不同的系统或装置上执行这些服务器和数据库。图9显示根据本发明的实施例的与SLA对应的VM可分布在多个联网系统上的这种联网环境900的例子。对于图9中描述的实施例,顾客可能已与服务提供商签署了用于数据库服务、应用服务和web服务器服务的SLA。这些服务可由多个系统提供。如图9中所示,数据库服务916可由系统902提供,web服务器服务922可由系统904提供,并且应用服务器服务可由系统906提供。系统902、904和906可经由网络908以可通信方式彼此耦合。网络908可具有各种类型,包括但不限于因特网、局域网、企业网络、广域网等。网络908可使用有线或无线通信链路。
提供数据库服务的数据库916可由系统902提供。可使用由系统902执行的一个或多个VM 918来实现数据库服务。本地管理程序910可促进系统902上的VM的创建和管理。mVM920还可在本地由系统902执行,以运行使得能够执行分配给VM 918的资源的动态改变的一个或多个程序(例如,资源管理器)。
提供web服务器服务的一个或多个web服务器922可由系统904提供。可使用由系统904执行的一个或多个VM 924实现web服务器服务。本地管理程序912可促进系统904上的VM的创建和管理。mVM 926还可在本地由系统904执行,以运行使得能够执行分配给VM 924的资源的动态改变的一个或多个程序。
提供应用服务的一个或多个应用服务器928可由系统906提供。可使用由系统906执行的一个或多个VM 930实现应用服务。本地管理程序914可促进系统906上的VM的创建和管理。mVM 932还可在本地由系统906执行,以运行使得能够执行分配给VM 930的资源的动态改变的一个或多个程序。
对于系统的本地的VM,分配给VM的资源的动态改变可被由本地mVM结合本地管理程序执行的程序来处理。例如,对于系统902的本地的VM(诸如,VM 918),VM之间的资源的动态分配可被由mVM 920结合本地管理程序910执行的程序来处理。
在某些实施例中,提供策略管理器136以监测和协调由各种联网mVM执行的操作。策略管理器136可位于与执行SLA的各种VM的系统分离的服务器上,或者也可由执行SLA的VM的系统之一上的单独VM来执行。例如,返回参照图1,特殊策略VM(pVM)可由管理程序118启动,以运行执行策略管理功能的程序(诸如,策略管理器136)。
对于SLA,策略管理器136可被配置为监测和协调由与SLA对应的VM执行的操作,其中VM可分布在多个系统上。由pVM控制的所有mVM可被视为属于相同域。可以存在多个这种pVM,每个pVM控制它自己的域。策略管理器136被配置为监测和协调各种mVM。策略管理器136可动态地调整由mVM使用的策略以确保满足顾客SLA条款。这使得能够在多个系统上协调分配给VM的资源的动态改变。
在某些实施例中,策略管理器136可基于SLA的策略信息132执行协调活动。策略管理器136可将SLA信息映射到将要在多个系统上启动的一组VM和将要在启动时分配给VM的资源。策略管理器134随后可将这种信息传送给多个系统上的个体mVM,从而与每个mVM的本地的管理程序协作的该mVM可以利用合适的资源启动本地VM。策略管理器136随后可结合本地mVM来监测和管理VM,包括分配给VM的资源。以这种方式,策略管理器136通过协调由mVM执行的VM的资源的分配来帮助实现多个系统上的多个VM上的SLA要求。在某些实施例中,协调活动可包括移动系统上的全部VM以满足SLA要求。
通过提供处理系统或装置的本地的资源分配的mVM并且通过具有用于监测和协调多个系统上的资源分配的策略管理器,本发明的某些实施例提供对使用多层虚拟化提供的多层应用的SLA的支持。不需要静态地将资源分派给VM。替代地,动态地改变资源分配而不必重新开始、重新启动或停止VM的能力在VM如何分配和使用资源方面提供了巨大的灵活性,甚至在密集VM环境中也是如此。
因此,某些实施例可以提供一个或多个系统或装置上的VM上的多层SLA管理。在多层应用中为资源提供完整的动态可管理性。应用可以具有各种类型,包括但不限于联网应用和服务、虚拟化应用和服务、基于云的计算应用和服务等。针对资源的分配提供完整的端对端解决方案,这又导致提供的服务的更高的可用性。
(6)VM之间的动态资源分配
部分(5)在以上描述了一个或多个VM的资源分配如何可以在SLA的上下文中被动态地改变。然而,这不旨在是限制性的。也可在其它上下文中执行分配给VM的资源的动态改变。例如,在某些实施例中,可基于正在执行的VM的特性来执行动态资源分配改变。这种特性的例子是与VM关联的优先级。
如上所述,优先级可被分派给VM。在一个实施例中,可在RCF中指定在启动时分派给VM的优先级。例如,表A中描述的RCF指示各种VM的优先级(“高”、“中”、“低”)。在VM在启动之后执行的时候,VM的优先级也可随着时间而改变。
某些实施例使得能够基于与VM关联的优先级在VM之间执行动态资源分配。可在策略信息132中或在RCF中指定用于基于VM的优先级控制VM之间的资源分配的规则。对于在系统或装置上本地地执行的VM,在系统或装置上本地地执行的资源管理器122可基于关于RCF中的信息的策略信息132来确定VM之间的资源分配何时将会被改变。当要执行改变时,资源管理器122可将信号发送给本地管理程序。管理程序随后可执行改变。在分布级,策略管理器136可基于策略信息136监测和管理各种系统上的动态资源分配。
网络装置实施例
各种不同系统和装置可包括本发明的实施例。图10提供可包括本发明的实施例的网络装置的例子。图10描述可包括本发明的实施例的网络装置1000的简化方框图(例如,网络装置1000可对应于图1中描述的装置100)。在图10中描述的实施例中,网络装置1000包括:多个端口1012,用于接收和转发数据包;和多个卡,被配置为执行处理以促进将数据包转发到它们的预期目的地。所述多个卡可包括一个或多个线卡1004和管理卡1002。在一个实施例中,卡(有时也被称为刀片或模块)可被插入到网络装置1000的底盘上的多个槽中的一个槽中。这种模块化设计允许根据不同网络拓扑和切换要求而具有装置的各种槽中的卡的不同组合的灵活配置。图10中描述的网络装置1000的部件仅用于说明性目的,而非意图以任何方式限制本发明的范围。替代实施例可具有比图10中示出的部件多或比图10中示出的部件少的部件。
端口1012代表网络装置1000的I/O平面。网络装置1000被配置为使用端口1012接收和转发包。端口1012内的端口可根据网络装置1000使用该端口接收数据包还是发送数据包而被归类为输入端口或输出端口。由网络装置1000用来接收包的端口被称为输入端口。用于从网络装置1000传送或转发包的端口被称为输出端口。特定端口可既用作输入端口又可用作输出端口。端口可通过链路或接口连接到邻近的网络装置或网络。端口1012可能能够按照不同速度(包括1千兆比特/秒、10千兆比特/秒、100千兆比特/秒甚至更快速度)接收和/或发送不同类型的通信。在一些实施例中,网络装置1000的多个端口可在逻辑上被分组为一个或多个组(trunk)。
在经由输入端口接收数据包时,网络装置1000被配置为确定将要被用来从网络装置1000发送数据包的装置1000的输出端口,以促进将包传送到它的预期目的地。在网络装置1000内,包被从输入端口转发到确定的输出端口,然后使用输出端口从网络装置1000发送。在一个实施例中,从输入端口到输出端口的包的转发由一个或多个线卡1004执行。线卡1004代表网络装置1000的数据转发平面。每个线卡可包括一个或多个包处理器,所述一个或多个包处理器被编程为执行从输入端口到输出端口的数据包的转发。在一个实施例中,由线卡执行的处理可包括:从接收到的包中提取信息,使用提取的信息执行查询以确定包的输出端口从而包可被转发到它的预期目的地,以及将包转发到输出端口。提取的信息可包括例如接收到的包的头部。
管理卡1002被配置为执行网络装置1000的管理和控制功能,并且代表网络装置1000的管理平面。在一个实施例中,管理卡1002经由交换机结构1006以可通信方式耦合到线卡1004。管理卡1002可包括一个或多个物理处理器1008,处理器1008中的一个或多个可以是多核处理器。这些管理卡处理器可以是在存储在关联的存储器1010中的软件的控制下进行操作的通用多核微处理器,诸如由Intel、AMD、ARM、Freescale Semiconductor,Inc.等提供的通用多核微处理器。处理器可运行一个或多个VM。分配给这些VM的资源可被如上所述动态地改变。在一些实施例中,可提供多个管理卡以用于冗余以及增加可用性。
在一些实施例中,一个或多个线卡1004各自可包括一个或多个物理处理器1014,一些处理器1014可以是多核的。这些处理器可运行一个或多个VM。分配给这些VM的资源可被如上所述动态地改变。
图10中描述的实施例描述基于底盘的系统。然而,这不旨在是限制性的。本发明的某些实施例还可被实现在基于非底盘的网络装置中,基于非底盘的网络装置有时被称为“比萨盒”。这种网络装置可包括单个物理多核CPU或多个物理多核CPU。
执行分配给VM的资源的动态改变的能力显著提高有限资源的利用率。资源不再需要被静态地绑定到VM。替代地,资源可在基于需要的基础上被高效地分配给VM。以这种方式,分配给VM的资源可在VM的生命周期内被改变,而不必停止、重新开始或重新启动VM。
本发明的某些实施例促进各种VM之间的有限资源的改进的共享并且更好地使用可用资源。例如,在VM之间执行资源的动态改变的能力可被能够支持多个VM的任何系统或装置使用。
执行分配给VM的资源的动态改变的能力还在各种应用中扩展VM的使用。例如,如上所述,利用这种能力,VM可被更高效地用作虚拟路由器,以根据主动被动模型提供高可用性,确保满足SLA条款和条件,提供多层动态虚拟化等。通常,以上教导可被应用于使用VM的任何应用。不再需要静态地将资源分派给VM。
可以使用专用部件和/或可编程处理器和/或其它可编程装置的任何组合来实现上述各种实施例。各种实施例可被仅以硬件来实现,或仅以软件来实现,或使用其组合来实现。例如,软件可具有存储在计算机可读存储器中的指令、程序等形式,并且可被一个或多个处理单元执行,其中处理单元是处理器、处理器的核、或核的一部分。在某些实施例中,可以以软件来执行上述各种处理(包括图2-7中的流程图中描述的处理)而不需要改变已有装置硬件(例如,路由器硬件),由此增加该解决方案的经济可行性。由于某些发明实施例可以完全以软件来实现,所以它允许快速展示或转变以及较小的资本投资,这进一步增加该解决方案的经济可行性和吸引力。
这里描述的各种处理可以按照任何组合被实现在同一处理器或不同处理器上,每个处理器具有一个或多个核。因此,在部件或模块被描述为适于或被配置为执行某个操作的情况下,例如可通过以下方式实现这种配置:设计用于执行该操作的电子电路;对可编程电子电路(诸如,微处理器)进行编程以执行该操作;提供可由部件或模块(例如,一个或多个处理器)执行的软件或代码指令以执行该操作;或其任何组合。过程可使用各种技术(包括但不限于用于过程间通信的传统技术)通信,并且不同对的过程可使用不同技术,或者相同对的过程可在不同时间使用不同技术。另外,尽管上述实施例可参照特定硬件和软件部件,但本领域技术人员将会理解,也可使用硬件和/或软件部件的不同组合,并且描述为以硬件实现的特定操作也可以软件来实现,反之亦然。
各种实施例不限于某个特定数据处理环境内的操作,而是自由地在多个数据处理环境内操作。另外,虽然已使用一系列特定事务描述了实施例,但这不旨在是限制性的。
因此,虽然已描述了特定发明实施例,但这些不旨在是限制性的。各种变型和等同物落在下面的权利要求的范围内。

Claims (20)

1.一种装置,包括:
多个处理单元;和系统内存;
其中所述装置被配置为执行来自多个虚拟机的第一虚拟机、第二虚拟机和资源管理器虚拟机,第一虚拟机被分配第一数量的第一资源;
其中,资源管理器虚拟机被配置为:
接收指示由第一虚拟机对第一资源的使用的水平的信息;
访问第一虚拟机的第一资源的配置信息,配置信息包括第一虚拟机的第一资源的最大数量阈值、分配阈值和时间阈值、以及与第一虚拟机的第一资源相关联的优先级,第一虚拟机的第一资源的最大数量阈值小于所述装置上可用的第一资源的最大数量,分配阈值和时间阈值指示第一资源的使用的第一水平超出所述分配阈值至少达所述时间阈值导致对于为第一虚拟机分配附加数量的第一资源的请求,其中所述优先级是建立在每个虚拟机每个资源的基础上的,并具体到所述第一虚拟机的所述第一资源,且与所述第二虚拟机的第一资源的优先级有关;
确定由第一虚拟机对第一资源的使用的水平超出所述分配阈值的时间已达到所述时间阈值;
基于确定由第一虚拟机对第一资源的使用的水平超出所述分配阈值的时间已达到所述时间阈值,确定增加分配给第一虚拟机的第一资源的第一数量;
确定增加分配给第一虚拟机的第一资源的第一数量不违反所述最大数量阈值;以及
使用所述配置信息,确定第二虚拟机对于第一资源具有比第一虚拟机低的优先级;并且
其中,所述装置被配置为通过将第一资源的一部分从第二虚拟机分配给第一虚拟机来增加分配给第一虚拟机的第一资源的数量。
2.如权利要求1所述的装置,其中:
第一数量的第一资源包括第一数量的非易失性内存。
3.如权利要求1所述的装置,还包括多个端口,其中:
第一数量的第一资源包括来自所述多个端口的第一数量的端口。
4.如权利要求1所述的装置,其中:
第一数量的第一资源包括第一数量的带宽。
5.如权利要求1所述的装置,其中:
第一数量的第一资源包括第一数量的输入/输出I/O资源。
6.如权利要求1所述的装置,其中:
第一数量的第一资源是来自所述多个处理单元的第一数量的处理单元。
7.如权利要求1所述的装置,其中来自所述多个处理单元的处理单元是处理器、处理器核、或处理器核的一部分。
8.如权利要求1所述的装置,其中:
第一数量的第一资源是第一数量的系统内存。
9.如权利要求1所述的装置,其中在确定第二虚拟机对于第一资源具有比第一虚拟机低的优先级之前,资源管理器虚拟机还被配置为确定至少第一虚拟机的第一资源的数量增加的所述一部分在包括所述装置的可用资源的资源池中是不可用的。
10.如权利要求1所述的装置,其中在从第二虚拟机解除分配第一资源的所述一部分以分配给第一虚拟机之前,确定解除分配第一资源的所述一部分不会将第二虚拟机的第一资源的数量减少为低于预定阈值。
11.如权利要求1所述的装置,其中在将第一资源的所述一部分分配给第一虚拟机之前,从第二虚拟机解除分配第一资源的所述一部分。
12.如权利要求1所述的装置,其中确定第二虚拟机对于第一资源具有比第一虚拟机低的优先级包括将来自配置信息的与第一虚拟机的第一资源相关联的优先级和来自配置信息的与第二虚拟机的第一资源相关联的优先级进行比较。
13.如权利要求1所述的装置,其中确定第二虚拟机对于第一资源具有比第一虚拟机低的优先级包括将与第一虚拟机的第一资源相关联的优先级和与第二虚拟机的第一资源相关联的优先级进行比较,以及
其中与第一虚拟机和第二虚拟机中的至少一者的第一资源相关联的优先级基于顾客的服务水平协议。
14.如权利要求1所述的装置,还包括关闭第二虚拟机以将来自第二虚拟机的第一资源的所述一部分分配给第一虚拟机。
15.如权利要求1所述的装置,其中第一虚拟机还被分配第二数量的第二资源,并且其中所述资源管理器虚拟机还被配置为:
基于配置信息和第一虚拟机对资源的使用的水平,确定增加分配给第一虚拟机的第二资源的第二数量;
使用配置信息确定第二虚拟机对于第二资源具有比第一虚拟机高的或相等的优先级;
使用配置信息从所述多个虚拟机确定对于第二资源具有比第一虚拟机低的优先级的第三虚拟机;以及
其中所述装置还被配置为通过将第二资源的一部分从第三虚拟机分配给第一虚拟机来增加分配给第一虚拟机的第二资源的数量。
16.一种方法,包括:
由装置执行来自多个虚拟机的第一虚拟机,第一虚拟机被分配第一数量的资源;
由所述装置执行来自所述多个虚拟机的资源管理器虚拟机;
由资源管理器虚拟机接收指示由第一虚拟机对第一资源的使用的水平的信息;
访问第一虚拟机的第一资源的配置信息,配置信息包括第一虚拟机的第一资源的最大数量阈值、分配阈值和时间阈值、以及与第一虚拟机的第一资源相关联的优先级,第一虚拟机的第一资源的最大数量阈值小于所述装置上可用的第一资源的最大数量,分配阈值和时间阈值指示第一资源的使用的第一水平超出所述分配阈值至少达所述时间阈值导致对于为第一虚拟机分配附加数量的第一资源的请求,其中所述优先级是建立在每个虚拟机每个资源的基础上的,并具体到所述第一虚拟机的所述第一资源,且与所述第二虚拟机的第一资源的优先级有关;
确定由第一虚拟机对第一资源的使用的水平超出所述分配阈值的时间已达到所述时间阈值;
基于确定由第一虚拟机对第一资源的使用的水平超出所述分配阈值的时间已达到所述时间阈值,确定增加分配给第一虚拟机的第一资源的第一数量;
确定增加分配给第一虚拟机的第一资源的第一数量不违反所述最大数量阈值;以及
由所述装置通过将第一资源的一部分从第二虚拟机分配给第一虚拟机来增加分配给第一虚拟机的第一资源的数量。
17.如权利要求16所述的方法,其中所述装置的处理单元是处理器、处理器核、或处理器核的一部分。
18.如权利要求16所述的方法,其中所述第一资源是非易失性内存或输入/输出I/O资源。
19.如权利要求16所述的方法,其中:
第一数量的第一资源包括所述装置的第一数量的端口。
20.如权利要求16所述的方法,其中:
第一数量的第一资源包括第一数量的带宽。
CN201380039803.1A 2012-06-29 2013-06-21 虚拟机的动态资源分配 Active CN104508634B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261666227P 2012-06-29 2012-06-29
US61/666,227 2012-06-29
US13/796,136 US20140007097A1 (en) 2012-06-29 2013-03-12 Dynamic resource allocation for virtual machines
US13/796,136 2013-03-12
PCT/US2013/047105 WO2014004312A1 (en) 2012-06-29 2013-06-21 Dynamic resource allocation for virtual machines

Publications (2)

Publication Number Publication Date
CN104508634A CN104508634A (zh) 2015-04-08
CN104508634B true CN104508634B (zh) 2019-07-12

Family

ID=49779695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380039803.1A Active CN104508634B (zh) 2012-06-29 2013-06-21 虚拟机的动态资源分配

Country Status (4)

Country Link
US (1) US20140007097A1 (zh)
EP (1) EP2867772B1 (zh)
CN (1) CN104508634B (zh)
WO (1) WO2014004312A1 (zh)

Families Citing this family (270)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US9274851B2 (en) 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US8503289B2 (en) 2010-03-19 2013-08-06 Brocade Communications Systems, Inc. Synchronizing multicast information for linecards
US8826271B2 (en) 2010-04-28 2014-09-02 Cavium, Inc. Method and apparatus for a virtual system on chip
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
US8495418B2 (en) 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US9703647B2 (en) * 2011-12-30 2017-07-11 Veritas Technologies Llc Automated policy management in a virtual machine environment
US9858095B2 (en) * 2012-09-17 2018-01-02 International Business Machines Corporation Dynamic virtual machine resizing in a cloud computing infrastructure
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US9069621B2 (en) * 2012-10-19 2015-06-30 International Business Machines Corporation Submitting operations to a shared resource based on busy-to-success ratios
US9038068B2 (en) * 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment
US9548884B2 (en) * 2012-12-10 2017-01-17 Alcatel Lucent Method and apparatus for providing a unified resource view of multiple virtual machines
US20140181038A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to categorize unprotected virtual machines
US9223597B2 (en) 2012-12-21 2015-12-29 Commvault Systems, Inc. Archiving virtual machines in a data storage system
US9703584B2 (en) 2013-01-08 2017-07-11 Commvault Systems, Inc. Virtual server agent load balancing
US20140201162A1 (en) 2013-01-11 2014-07-17 Commvault Systems, Inc. Systems and methods to restore selected files from block-level backup for virtual machines
US9286110B2 (en) 2013-01-14 2016-03-15 Commvault Systems, Inc. Seamless virtual machine recall in a data storage system
US9141487B2 (en) * 2013-01-15 2015-09-22 Microsoft Technology Licensing, Llc Healing cloud services during upgrades
US10506026B1 (en) * 2013-03-13 2019-12-10 Amazon Technologies, Inc. Resource prestaging
US9699093B2 (en) * 2013-06-12 2017-07-04 Dell Products L.P. Migration of virtual machine based on proximity to peripheral device in NUMA environment
EP2816481A1 (en) 2013-06-19 2014-12-24 British Telecommunications public limited company Enforcing software compliance
EP2816468A1 (en) 2013-06-19 2014-12-24 British Telecommunications public limited company Evaluating software compliance
EP2816469A1 (en) * 2013-06-19 2014-12-24 British Telecommunications public limited company Application broker for multiple virtualised computing environments
US9602426B2 (en) * 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
US20150032954A1 (en) * 2013-07-24 2015-01-29 Netapp, Inc. Method and system for presenting and managing storage shares
US9864620B2 (en) 2013-07-30 2018-01-09 International Business Machines Corporation Bandwidth control in multi-tenant virtual networks
US9923837B2 (en) * 2013-08-29 2018-03-20 Ericsson Ab Method and system to allocate bandwidth based on task deadline in cloud computing networks
US20150074536A1 (en) 2013-09-12 2015-03-12 Commvault Systems, Inc. File manager integration with virtualization in an information management system, including user control and storage management of virtual machines
US10148523B1 (en) * 2013-09-16 2018-12-04 Amazon Technologies, Inc. Resetting computing resources in a service provider network
US10581687B2 (en) 2013-09-26 2020-03-03 Appformix Inc. Real-time cloud-infrastructure policy implementation and management
US10291472B2 (en) 2015-07-29 2019-05-14 AppFormix, Inc. Assessment of operational states of a computing environment
US20150113144A1 (en) * 2013-10-21 2015-04-23 Alcatel-Lucent Usa Inc. Virtual resource placement for cloud-based applications and solutions
US9183035B2 (en) * 2013-11-08 2015-11-10 International Business Machines Corporation Virtual machine migration with swap pages
CN104679591B (zh) * 2013-11-28 2018-05-25 国际商业机器公司 用于在云环境中进行资源分配的方法和装置
US9825908B2 (en) * 2013-12-11 2017-11-21 At&T Intellectual Property I, L.P. System and method to monitor and manage imperfect or compromised software
US9477571B2 (en) 2014-01-20 2016-10-25 International Business Machines Corporation Streaming operator with trigger
US9621313B2 (en) * 2014-01-23 2017-04-11 Futurewei Technologies, Inc. Hardware and software methodologies for dynamic resource allocation in virtualized flexible-grid optical networks
US10963304B1 (en) * 2014-02-10 2021-03-30 Google Llc Omega resource model: returned-resources
US9298492B2 (en) 2014-03-05 2016-03-29 Ca, Inc. System and method for modifying allocated resources
US9417902B1 (en) * 2014-03-24 2016-08-16 Amazon Technologies, Inc. Managing resource bursting
US10481932B2 (en) * 2014-03-31 2019-11-19 Vmware, Inc. Auto-scaling virtual switches
JP6289214B2 (ja) * 2014-03-31 2018-03-07 三菱プレシジョン株式会社 情報処理システム及びその方法
US9811427B2 (en) 2014-04-02 2017-11-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
CN104980297A (zh) * 2014-04-14 2015-10-14 中兴通讯股份有限公司 虚拟机资源的变更方法、装置及虚拟网络功能设备
WO2015180111A1 (zh) * 2014-05-29 2015-12-03 华为技术有限公司 一种管理系统资源的方法、装置及设备
US9384027B2 (en) 2014-06-06 2016-07-05 International Business Machines Corporation Selecting a host for a virtual machine using a hardware multithreading parameter
GB2541340B (en) * 2014-06-06 2017-07-19 Ibm Selecting a host for a virtual machine using a hardware multithreading parameter
US9400672B2 (en) * 2014-06-06 2016-07-26 International Business Machines Corporation Placement of virtual CPUS using a hardware multithreading parameter
US9304805B2 (en) 2014-06-06 2016-04-05 Interinational Business Machines Corporation Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors
EP2955631B1 (en) * 2014-06-09 2019-05-01 Nokia Solutions and Networks Oy Controlling of virtualized network functions for usage in communication network
US9535735B2 (en) * 2014-06-09 2017-01-03 International Business Machines Corporation Adaptive virtual machine request approver
WO2015197564A1 (en) * 2014-06-23 2015-12-30 Getclouder Ltd. Cloud hosting systems featuring scaling and load balancing with containers
US10097410B2 (en) 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US10382279B2 (en) * 2014-06-30 2019-08-13 Emc Corporation Dynamically composed compute nodes comprising disaggregated components
US9852138B2 (en) 2014-06-30 2017-12-26 EMC IP Holding Company LLC Content fabric for a distributed file system
US20160019317A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Volume or virtual machine level backup and generating placeholders for virtual machine files
EP2988214A1 (en) * 2014-08-20 2016-02-24 Alcatel Lucent Method for balancing a load, a system, an elasticity manager and a computer program product
US9680920B2 (en) 2014-09-08 2017-06-13 International Business Machines Corporation Anticipatory resource allocation/activation and lazy de-allocation/deactivation
US9405581B2 (en) 2014-09-08 2016-08-02 International Business Machines Corporation Resource allocation/de-allocation and activation/deactivation
US9710465B2 (en) 2014-09-22 2017-07-18 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US9417968B2 (en) 2014-09-22 2016-08-16 Commvault Systems, Inc. Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations
US9436555B2 (en) 2014-09-22 2016-09-06 Commvault Systems, Inc. Efficient live-mount of a backed up virtual machine in a storage management system
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US10048974B1 (en) 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
CN104331332B (zh) * 2014-11-04 2017-07-21 浪潮电子信息产业股份有限公司 一种基于sla的虚拟资源预分配方法
US10776209B2 (en) 2014-11-10 2020-09-15 Commvault Systems, Inc. Cross-platform virtual machine backup and replication
US9983936B2 (en) 2014-11-20 2018-05-29 Commvault Systems, Inc. Virtual machine change block tracking
US10171379B2 (en) * 2014-11-23 2019-01-01 International Business Machines Corporation Dynamic service level agreement (SLA) adjustment based upon application capabilities
US9413626B2 (en) * 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
US10228958B1 (en) * 2014-12-05 2019-03-12 Quest Software Inc. Systems and methods for archiving time-series data during high-demand intervals
CN105743808B (zh) * 2014-12-08 2017-09-19 华为技术有限公司 一种适配QoS的方法和装置
JP6495645B2 (ja) * 2014-12-19 2019-04-03 株式会社東芝 リソース制御装置、方法、及びプログラム
US9594592B2 (en) * 2015-01-12 2017-03-14 International Business Machines Corporation Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters
US9471775B1 (en) 2015-02-04 2016-10-18 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9727725B2 (en) 2015-02-04 2017-08-08 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US10425352B2 (en) * 2015-03-09 2019-09-24 International Business Machines Corporation Policy driven storage hardware allocation
US10972371B2 (en) 2015-03-27 2021-04-06 Intel Corporation Technologies for GPU assisted network traffic monitoring and analysis
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
CN104836850A (zh) * 2015-04-16 2015-08-12 华为技术有限公司 一种实例节点管理的方法及管理设备
US11113086B1 (en) * 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10387180B2 (en) * 2015-07-07 2019-08-20 International Business Machines Corporation Hypervisor controlled redundancy for I/O paths using virtualized I/O adapters
FR3038993B1 (fr) * 2015-07-15 2018-03-02 Rizze Systeme et procede automatique de regroupement de ressources physiques et virtuelles dans un noeud virtuel
US11403099B2 (en) * 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US9886299B2 (en) * 2015-07-28 2018-02-06 American Megatrends, Inc. System and method for dynamically allocating resources of virtual machines based on service-level agreements (SLA) and privilege levels of users
US10348574B2 (en) * 2015-08-17 2019-07-09 Vmware, Inc. Hardware management systems for disaggregated rack architectures in virtual server rack deployments
US9857871B2 (en) 2015-09-04 2018-01-02 Sony Interactive Entertainment Inc. Apparatus and method for dynamic graphics rendering based on saccade detection
CN106506186A (zh) * 2015-09-08 2017-03-15 中兴通讯股份有限公司 重建虚拟网络功能的方法和装置
CN106533723B (zh) * 2015-09-11 2020-10-23 南京中兴软件有限责任公司 虚拟资源调度方法、装置及系统
US9928108B1 (en) 2015-09-29 2018-03-27 Amazon Technologies, Inc. Metaevent handling for on-demand code execution environments
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US9658894B2 (en) 2015-10-15 2017-05-23 International Business Machines Corporation Automatically and dynamically reclaiming resources during virtual machine decommission
US10122793B2 (en) 2015-10-27 2018-11-06 International Business Machines Corporation On-demand workload management in cloud bursting
US10990926B2 (en) * 2015-10-29 2021-04-27 International Business Machines Corporation Management of resources in view of business goals
WO2017070954A1 (zh) * 2015-10-30 2017-05-04 华为技术有限公司 资源预留的方法及vnfm、vim、nfvo
EP3176990B1 (en) * 2015-12-01 2021-04-28 France Brevets Location based trusted computing nodes in a cloud computing architecture
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9811363B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9830175B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US9830449B1 (en) 2015-12-16 2017-11-28 Amazon Technologies, Inc. Execution locations for request-driven code
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US10372493B2 (en) 2015-12-22 2019-08-06 Intel Corporation Thread and/or virtual machine scheduling for cores with diverse capabilities
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
WO2017138967A1 (en) 2016-02-12 2017-08-17 Hewlett Packard Enterprise Development Lp Creating operating system volumes
CN107154951B (zh) * 2016-03-02 2020-10-02 南京中兴软件有限责任公司 一种虚拟化网络应用功能单元vnf伸缩管理方法及装置
US10592350B2 (en) 2016-03-09 2020-03-17 Commvault Systems, Inc. Virtual server cloud file system for virtual machine restore to cloud operations
US10007545B2 (en) * 2016-03-15 2018-06-26 International Business Machines Corporation Dynamic altering of SRIOV virtual function (VF) resources including DMA windows without bringing down the VF
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10275239B2 (en) 2016-03-30 2019-04-30 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10303488B2 (en) 2016-03-30 2019-05-28 Sony Interactive Entertainment Inc. Real-time adjustment of application-specific operating parameters for backwards compatibility
US10915333B2 (en) 2016-03-30 2021-02-09 Sony Interactive Entertainment Inc. Deriving application-specific operating parameters for backwards compatiblity
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US10401952B2 (en) 2016-03-31 2019-09-03 Sony Interactive Entertainment Inc. Reducing rendering computation and power consumption by detecting saccades and blinks
US10169846B2 (en) 2016-03-31 2019-01-01 Sony Interactive Entertainment Inc. Selective peripheral vision filtering in a foveated rendering system
US10192528B2 (en) 2016-03-31 2019-01-29 Sony Interactive Entertainment Inc. Real-time user adaptive foveated rendering
US10372205B2 (en) 2016-03-31 2019-08-06 Sony Interactive Entertainment Inc. Reducing rendering computation and power consumption by detecting saccades and blinks
CN105955824B (zh) * 2016-04-21 2019-07-19 华为技术有限公司 一种虚拟资源配置方法以及装置
US10235211B2 (en) * 2016-04-22 2019-03-19 Cavium, Llc Method and apparatus for dynamic virtual system on chip
GB2549773B (en) * 2016-04-28 2018-05-16 Metaswitch Networks Ltd Configuring host devices
US10152357B1 (en) * 2016-05-02 2018-12-11 EMC IP Holding Company LLC Monitoring application workloads scheduled on heterogeneous elements of information technology infrastructure
US10432722B2 (en) * 2016-05-06 2019-10-01 Microsoft Technology Licensing, Llc Cloud storage platform providing performance-based service level agreements
CN106020972A (zh) * 2016-05-10 2016-10-12 广东睿江云计算股份有限公司 云主机系统中的cpu调度方法及装置
CN108139982B (zh) 2016-05-31 2022-04-08 安华高科技股份有限公司 多信道输入/输出虚拟化
CN108139925B (zh) 2016-05-31 2022-06-03 安华高科技股份有限公司 虚拟机的高可用性
US9952896B2 (en) 2016-06-28 2018-04-24 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US9977691B2 (en) 2016-06-29 2018-05-22 Amazon Technologies, Inc. Adjusting variable limit on concurrent code executions based on communication between frontends
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10127068B2 (en) 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US10372470B2 (en) * 2016-07-27 2019-08-06 Hewlett Packard Enterprise Development Lp Copy of memory information from a guest transmit descriptor from a free pool and assigned an intermediate state to a tracking data structure
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10963311B2 (en) * 2016-09-30 2021-03-30 Salesforce.Com, Inc. Techniques and architectures for protection of efficiently allocated under-utilized resources
US10747630B2 (en) 2016-09-30 2020-08-18 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US11489731B2 (en) 2016-09-30 2022-11-01 Salesforce.Com, Inc. Techniques and architectures for efficient allocation of under-utilized resources
US10152251B2 (en) 2016-10-25 2018-12-11 Commvault Systems, Inc. Targeted backup of virtual machine
US10162528B2 (en) 2016-10-25 2018-12-25 Commvault Systems, Inc. Targeted snapshot based on virtual machine location
US10678758B2 (en) 2016-11-21 2020-06-09 Commvault Systems, Inc. Cross-platform virtual machine data and memory backup and replication
US11226887B1 (en) * 2016-12-06 2022-01-18 Amazon Technologies, Inc. User code deployment across compute resource partitions
US10574585B2 (en) 2017-01-07 2020-02-25 International Business Machines Corporation Resource usage management in a stream computing environment
CN108632049B (zh) * 2017-03-15 2020-08-25 华为机器有限公司 用于虚拟网络功能扩容的方法和装置
US10896100B2 (en) 2017-03-24 2021-01-19 Commvault Systems, Inc. Buffered virtual machine replication
EP3605965A4 (en) * 2017-03-29 2020-03-25 Nec Corporation VIRTUAL NETWORK SYSTEM, VIM, VIRTUAL NETWORK CONTROL METHOD, AND RECORDING MEDIUM
US10387073B2 (en) 2017-03-29 2019-08-20 Commvault Systems, Inc. External dynamic virtual machine synchronization
US11068314B2 (en) * 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US11323327B1 (en) 2017-04-19 2022-05-03 Juniper Networks, Inc. Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles
US10509682B2 (en) * 2017-05-24 2019-12-17 At&T Intellectual Property I, L.P. De-allocation elasticity application system
WO2019024994A1 (en) * 2017-08-02 2019-02-07 Huawei Technologies Co., Ltd. SYSTEM, METHOD AND COMPUTER PROGRAM FOR VIRTUAL MACHINE RESOURCE ALLOCATION
US10459769B2 (en) * 2017-08-04 2019-10-29 Unisys Corporation Elastic container management system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
CN111801654A (zh) * 2018-03-01 2020-10-20 谷歌有限责任公司 高可用性的多单租户服务
US10877928B2 (en) 2018-03-07 2020-12-29 Commvault Systems, Inc. Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations
CN108491275B (zh) * 2018-03-13 2022-12-13 Oppo广东移动通信有限公司 程序优化方法、装置、终端及存储介质
US11808903B2 (en) 2018-05-12 2023-11-07 Schlumberger Technology Corporation Seismic data interpretation system
CN108804225B (zh) * 2018-05-24 2021-01-01 新华三云计算技术有限公司 一种虚拟机负载调控方法和装置
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US10740224B2 (en) 2018-08-14 2020-08-11 International Business Machines Corporation Data processing system test suite management including dynamic resource reallocation and reconfiguration
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US10944581B2 (en) 2018-11-08 2021-03-09 International Business Machines Corporation Increasing processing capacity of processor cores during initial program load processing
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US10768971B2 (en) 2019-01-30 2020-09-08 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data
US10996974B2 (en) 2019-01-30 2021-05-04 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data
US10990434B2 (en) * 2019-02-05 2021-04-27 International Business Machines Corporation Increasing processing capacity of virtual machines for an abnormal event
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11366702B1 (en) * 2019-03-29 2022-06-21 United Services Automobile Association (Usaa) Dynamic allocation of resources
US11327767B2 (en) 2019-04-05 2022-05-10 International Business Machines Corporation Increasing resources for partition to compensate for input/output (I/O) recovery event
US10977072B2 (en) * 2019-04-25 2021-04-13 At&T Intellectual Property I, L.P. Dedicated distribution of computing resources in virtualized environments
US11442763B2 (en) 2019-04-26 2022-09-13 Dell Products L.P. Virtual machine deployment system using configurable communication couplings
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US12001866B2 (en) 2019-07-01 2024-06-04 Microsoft Technology Licensing, Llc Harvest virtual machine for utilizing cloud-computing resources
JP7259656B2 (ja) * 2019-09-04 2023-04-18 トヨタ自動車株式会社 車両の制御装置、車両の制御方法及び制御プログラム
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11467753B2 (en) 2020-02-14 2022-10-11 Commvault Systems, Inc. On-demand restore of virtual machine data
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11442768B2 (en) 2020-03-12 2022-09-13 Commvault Systems, Inc. Cross-hypervisor live recovery of virtual machines
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
US11748143B2 (en) 2020-05-15 2023-09-05 Commvault Systems, Inc. Live mount of virtual machines in a public cloud computing environment
US11611517B2 (en) 2020-05-29 2023-03-21 Equinix, Inc. Tenant-driven dynamic resource allocation for virtual network functions
US11392184B2 (en) 2020-09-25 2022-07-19 Microsoft Technology Licensing, Llc Disaggregated computer systems
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
CN114629914A (zh) * 2020-11-27 2022-06-14 中兴通讯股份有限公司 信息广播方法、装置、广播系统和存储介质
US11675625B2 (en) 2020-12-09 2023-06-13 Dell Products L.P. Thin provisioning of resources using SCPS and a bidding system
US11809911B2 (en) 2020-12-09 2023-11-07 Dell Products L.P. Resuming workload execution in composed information handling system
US11693703B2 (en) 2020-12-09 2023-07-04 Dell Products L.P. Monitoring resource utilization via intercepting bare metal communications between resources
US11928515B2 (en) 2020-12-09 2024-03-12 Dell Products L.P. System and method for managing resource allocations in composed systems
US11698821B2 (en) 2020-12-09 2023-07-11 Dell Products L.P. Composable information handling systems in an open network using access control managers
US20220179699A1 (en) * 2020-12-09 2022-06-09 Dell Products L.P. Method and system for composed information handling system reallocations based on priority
US11675665B2 (en) 2020-12-09 2023-06-13 Dell Products L.P. System and method for backup generation using composed systems
US11704159B2 (en) 2020-12-09 2023-07-18 Dell Products L.P. System and method for unified infrastructure architecture
US11934875B2 (en) 2020-12-09 2024-03-19 Dell Products L.P. Method and system for maintaining composed systems
US11853782B2 (en) 2020-12-09 2023-12-26 Dell Products L.P. Method and system for composing systems using resource sets
US11809912B2 (en) 2020-12-09 2023-11-07 Dell Products L.P. System and method for allocating resources to perform workloads
US11604595B2 (en) 2020-12-09 2023-03-14 Dell Products L.P. Data mirroring and data migration between storage volumes using system control processors
CN112598284B (zh) * 2020-12-24 2023-07-14 中国科学技术大学 一种用于养老系统的有限资源动态配给方法
US11675916B2 (en) 2021-01-28 2023-06-13 Dell Products L.P. Method and system for limiting data accessibility in composed systems
US11797341B2 (en) 2021-01-28 2023-10-24 Dell Products L.P. System and method for performing remediation action during operation analysis
US11768612B2 (en) 2021-01-28 2023-09-26 Dell Products L.P. System and method for distributed deduplication in a composed system
US11687280B2 (en) 2021-01-28 2023-06-27 Dell Products L.P. Method and system for efficient servicing of storage access requests
US11539635B2 (en) 2021-05-10 2022-12-27 Oracle International Corporation Using constraint programming to set resource allocation limitations for allocating resources to consumers
US11983151B2 (en) 2021-05-28 2024-05-14 Oracle International Corporation Resilience based database placement in clustered environment
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US12026557B2 (en) 2021-07-22 2024-07-02 Dell Products L.P. Method and system for a utilizing a proxy service to generate a composed information handling system
US12013768B2 (en) 2021-07-22 2024-06-18 Dell Products L.P. Method and system for automated healing of hardware resources in a composed information handling system
US11947697B2 (en) 2021-07-22 2024-04-02 Dell Products L.P. Method and system to place resources in a known state to be used in a composed information handling system
US12008412B2 (en) 2021-07-28 2024-06-11 Dell Products Resource selection for complex solutions
US11928506B2 (en) 2021-07-28 2024-03-12 Dell Products L.P. Managing composition service entities with complex networks
US11588750B1 (en) 2021-09-16 2023-02-21 International Business Machines Corporation Dynamic orchestration of disaggregated resources
US12099426B2 (en) 2021-10-27 2024-09-24 Oracle International Corporation Telemetry data filter for allocating storage resources
US11502971B1 (en) * 2021-11-15 2022-11-15 Oracle International Corporation Using multi-phase constraint programming to assign resource guarantees of consumers to hosts
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US11994963B2 (en) * 2022-01-18 2024-05-28 Oracle International Corporation Dynamic hierarchical placement of consolidated and pluggable databases in autonomous environments
US11799822B2 (en) * 2022-01-21 2023-10-24 Google Llc Proxyless network address translation with dynamic port allocation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101120317A (zh) * 2005-02-17 2008-02-06 英特尔公司 将存储器从一个虚拟机动态再分配到另一个的方法、装置和系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
JP2002041305A (ja) * 2000-07-26 2002-02-08 Hitachi Ltd 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム
US7529981B2 (en) * 2003-04-17 2009-05-05 International Business Machines Corporation System management infrastructure for corrective actions to servers with shared resources
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7793288B2 (en) * 2004-12-09 2010-09-07 International Business Machines Corporation Automatic resource management of a guest operating system using information in data set indicating minimum system requirement
US8677353B2 (en) * 2007-01-11 2014-03-18 Nec Corporation Provisioning a standby virtual machine based on the prediction of a provisioning request being generated
US8225134B2 (en) * 2007-04-06 2012-07-17 Cisco Technology, Inc. Logical partitioning of a physical device
US8326991B2 (en) * 2007-08-21 2012-12-04 International Business Machines Corporation Maintaining RFID information for virtual machines
US20090055831A1 (en) * 2007-08-24 2009-02-26 Bauman Ellen M Allocating Network Adapter Resources Among Logical Partitions
US7865762B2 (en) * 2007-12-04 2011-01-04 Intel Corporation Methods and apparatus for handling errors involving virtual machines
US8635308B2 (en) * 2008-02-26 2014-01-21 Sap Ag Performance optimization of business processes by stochastic environmental changes
KR100993331B1 (ko) * 2008-09-11 2010-11-09 한국전자통신연구원 사용자 일정관리장치 및 방법
JP5352848B2 (ja) * 2008-11-28 2013-11-27 株式会社日立製作所 仮想計算機の制御方法及び計算機装置
US8689017B2 (en) * 2009-03-12 2014-04-01 Cisco Technology, Inc. Server power manager and method for dynamically managing server power consumption
US8271644B2 (en) * 2009-06-18 2012-09-18 Dell Products, Lp System and method to manage information handling system resources in virtual machine infrastructure
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US8667496B2 (en) * 2011-01-04 2014-03-04 Host Dynamics Ltd. Methods and systems of managing resources allocated to guest virtual machines
US8635493B2 (en) * 2011-05-17 2014-01-21 Vmware, Inc. High availability system allowing conditionally reserved computing resource use and reclamation upon a failover
US9319931B2 (en) * 2011-08-25 2016-04-19 Lg Electronics Inc. Method of performing direct communication between terminals, method of supporting same, and apparatus for same
US20130067413A1 (en) * 2011-09-09 2013-03-14 International Business Machines Corporation Control of Information Technology Resource Behavior Using Visual Positioning
US20130263117A1 (en) * 2012-03-28 2013-10-03 International Business Machines Corporation Allocating resources to virtual machines via a weighted cost ratio

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101120317A (zh) * 2005-02-17 2008-02-06 英特尔公司 将存储器从一个虚拟机动态再分配到另一个的方法、装置和系统

Also Published As

Publication number Publication date
WO2014004312A1 (en) 2014-01-03
EP2867772B1 (en) 2018-12-26
EP2867772A1 (en) 2015-05-06
US20140007097A1 (en) 2014-01-02
CN104508634A (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN104508634B (zh) 虚拟机的动态资源分配
JP6219512B2 (ja) 仮想ハドゥープマネジャ
CN102866918B (zh) 面向分布式编程框架的资源管理系统
US12073242B2 (en) Microservice scheduling
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
US20170017511A1 (en) Method for memory management in virtual machines, and corresponding system and computer program product
US9207961B2 (en) Cloud defragmentation
US20180139100A1 (en) Storage-aware dynamic placement of virtual machines
US20160196157A1 (en) Information processing system, management device, and method of controlling information processing system
CN112805682A (zh) 具有成本效益的高可用性的多单租户服务
US20170010919A1 (en) Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
US10691495B2 (en) Virtual processor allocation with execution guarantee
US11169844B2 (en) Virtual machine migration to multiple destination nodes
EP4273704A2 (en) Techniques to support a holistic view of cache class of service for a processor cache
US9928092B1 (en) Resource management in a virtual machine cluster
US12026072B2 (en) Metering framework for improving resource utilization for a disaster recovery environment
Zhang et al. CloudGC: Recycling idle virtual machines in the cloud
US20180136958A1 (en) Storage-aware dynamic placement of virtual machines
CN105900066B (zh) 计算机以及基于管理程序的资源调度方法
US20140245300A1 (en) Dynamically Balanced Credit for Virtual Functions in Single Root Input/Output Virtualization
Liu A consolidation strategy supporting resources oversubscription in cloud computing
Singh et al. Energy efficient virtual machine placement technique using banker algorithm in cloud data centre
WO2016203647A1 (ja) 計算機及び処理のスケジューリング方法
JP2010211259A (ja) 仮想マシンシステム、情報処理装置、リソース管理方法、プログラム及び記録媒体
CN110018877A (zh) 按照亲和性原则快速实例化vnf的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Brocade Communications Systems, Inc.

Address before: American California

Applicant before: Brocade Comm Systems Inc

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20181102

Address after: Singapore Singapore

Applicant after: Annwa high tech Limited by Share Ltd

Address before: American California

Applicant before: Brocade Communications Systems, Inc.

GR01 Patent grant
GR01 Patent grant