CN105493045A - 虚拟计算实例迁移 - Google Patents
虚拟计算实例迁移 Download PDFInfo
- Publication number
- CN105493045A CN105493045A CN201480048354.1A CN201480048354A CN105493045A CN 105493045 A CN105493045 A CN 105493045A CN 201480048354 A CN201480048354 A CN 201480048354A CN 105493045 A CN105493045 A CN 105493045A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- machine instance
- computer system
- physical host
- host computer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5044—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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 the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
客户提交偏好集合,所述偏好集合包括用于实例化虚拟机实例的硬件规范。所述虚拟机实例可以在与所述偏好集合不相符的物理主机计算机***中被实例化。所述虚拟计算机***服务可以被配置来评估所述可用的物理主机计算机***的所述规范,以确定所述可用的物理主机计算机***中的任一个是否与所述偏好集合相符。因此,所述虚拟计算机***服务还可以评估所述可用的物理主机计算机***,以确定可用的物理主机计算机***是否包括用于实例化所述现有虚拟机实例的可用的槽。如果所述一个或多个可用的物理主机计算机***具有可用的槽,那么所述虚拟计算机***服务可以将所述现有虚拟机实例迁移至可用的物理主机计算机***,以便实现所述客户请求。
Description
相关申请的交叉引用
本申请案要求2013年8月5日提交的共同未决的美国专利申请号13/959,550的优先权,所述申请的全部内容以引用的方式并入本文。
背景
虚拟计算机***已经得到发展并且继续发展以满足使用它们的组织的需求。例如,许多组织利用虚拟计算机***(除了其他原因之外)的目的是远程操作一个或多个虚拟服务器,包括用于网页应用的开发。虚拟计算机***经常根据粗略尺寸而被设定大小。例如,这些***可根据处理器内核的数目、附接的存储装置的类型和/或数量或其他因素而被设定大小。这允许计算资源服务提供商以有效的方式重新定制(repurpose)或细分(具体地用于容量管理的)物理***。尽管其许多优点,但是现代的虚拟计算机***服务经常缺乏用于当客户提交创建或迁移虚拟机实例的请求时,向客户提供已请求的硬件的功能性。
在一些实例中,一种类型的虚拟机实例可使用不同类型或代的硬件而实现。当将更新的硬件集成到一系列硬件装置中时,所述更新的硬件可包括较旧的硬件所缺乏的各种特征。例如,更新的硬件可包括在确定所述硬件是否适合在上述粗糙尺寸内时不使用的特征(例如,并入加密加速的芯片组)。因此,新的虚拟机实例的创建可包括这些更新的、可能有吸引力的特征。在此类环境中,客户可提供虚拟机实例,并且如果分配的物理主机不满足期望的硬件要求,那么就立即终止所述实例。客户可重复这个过程,直到在包括期望的硬件配置的物理主机上实现的实例被创建。这可导致不太理想的客户体验及其他不良后果。解决这些问题的一些方式,诸如通过购买和提供具有变化的配置的另外的服务器***以满足客户需要,可能出现大量附加成本和管理负担。
附图简述
将参照附图描述根据本公开的各个实施方案,在附图中:
图1示出可实现各个实施方案的环境的说明性示例;
图2示出可实现各个实施方案的环境的说明性示例;
图3示出可实现各个实施方案的环境的说明性示例;
图4示出可实现各个实施方案的环境的说明性示例;
图5示出根据至少一个实施方案的分配一个或多个虚拟机实例的说明性示例;
图6示出根据至少一个实施方案的将虚拟机实例从一个物理主机迁移至另一个物理主机的说明性示例;
图7示出根据至少一个实施方案的用于基于客户请求来分配虚拟机实例的过程的说明性示例;
图8示出根据至少一个实施方案的用于基于槽(slot)可用性来迁移虚拟机实例的过程的说明性示例;
图9示出根据至少一个实施方案的用于准备并迁移虚拟机实例的过程的说明性示例;
图10示出根据至少一个实施方案的用于处理针对将硬件分配给现有的虚拟机实例的请求的过程的说明性示例;并且
图11示出可实现各个实施方案的环境。
详述
在以下描述中,将描述各个实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供实施方案的透彻理解。然而,对本领域的技术人员也将是明显的是,没有具体细节的情况下也可以实践实施方案。此外,为了不使所描述的实施方案变得模糊,可能会省略或简化众所周知的特征。
本文所描述和所建议的技术涉及基于客户针对特定硬件配置的偏好而对虚拟机实例进行分配和迁移,以实例化和支持所述实例。在一个实施方案中,实体(例如,组织)可诸如通过对虚拟计算机***服务的适当地配置的应用编程接口(API)调用来与虚拟计算机***服务通信,以请求创建或迁移虚拟机实例。所述实体可以是操作各种服务(诸如数据存储服务、虚拟计算机***服务和/或数据库服务)的计算资源服务提供商的客户。客户可以各种方式表达硬件偏好,诸如通过请求创建或迁移虚拟机实例。已请求的硬件配置可在一个或多个物理主机中体现,所述一个或多个物理主机可由虚拟计算机***服务提供。物理主机可包括各种硬件组件。例如,物理主机可包括一个或多个处理器、一个或多个数据存储装置(例如,固态驱动器或磁盘驱动器)、随机存取存储器(RAM)和可能需要实例化和支持虚拟机实例的其他组件。在一些实施方案中,虚拟计算机***服务可将每个物理主机配置成包括许多槽,以实例化虚拟机实例。这些槽可用来通过对应于底层计算机***的各种硬件资源的分配而在虚拟机实例的使用寿命期间提供槽的保证平均性能。因此,当虚拟机实例在物理主机中被实例化时,所述实例可基于必须实例化和支持虚拟机实例的硬件规范而在一个或多个槽中被实例化。
在一些实施方案中,虚拟计算机***服务可从虚拟机实例的客户接收请求,所述请求可包括用以实例化所述实例的硬件规范的要求或偏好。因此,虚拟计算机***服务可确定具有已请求的硬件规范的物理主机是否可用于分配。如果具有已请求的硬件规范的物理主机可用,那么虚拟计算机***服务可将虚拟机实例分配给可用的物理主机。如果已请求的硬件不可用,那么虚拟计算机***服务可确定针对特定硬件的请求是由客户阐述的偏好或要求。如果具有已请求的硬件规范的物理主机不可用,并且所述客户请求就是针对用以支持和实例化虚拟机实例的某些硬件规范的偏好,那么虚拟计算机***服务可将所述实例分配给非符合(non-conforming)的物理主机。然而,如果具有已请求的硬件规范的物理主机不可用,并且所述请求是由客户阐述的固定要求,那么虚拟计算机***服务可制止将所述实例分配给非符合物理主机并且代替显示错误消息,所述错误消息例如可包括直到适当的物理主机可用的估算时间,和针对已请求的虚拟机实例客户可用的其他可用选项。
在一些实施方案中,虚拟计算机***服务可持久性地将客户硬件规范偏好存储在与虚拟机实例相关联的元数据中。当虚拟计算机***服务检测到在物理主机内的一个或多个槽已经变得可用时,虚拟计算机***服务可查询任何现有虚拟机实例的元数据,以确定客户是否已经请求将所述实例迁移至具有与包括于客户请求中的规范匹配的硬件规范的物理主机。如果与多个虚拟机实例相关联的元数据指示针对具有特定硬件规范的物理主机进行迁移的请求,并且现在可用的物理主机包括用于这些虚拟机实例的匹配的硬件规范,那么所述虚拟计算机***服务可应用一个或多个标准以确定可将哪个虚拟机实例迁移至物理主机。因此,虚拟计算机***服务可获得所选择的虚拟机实例的一个或多个快照,并且将所述快照传送给物理主机中的目标槽。随后,可将虚拟机实例暂停并且传送给物理主机中的目标槽。因此,可在具有在实例元数据中指定的已请求的硬件规范的物理主机中迁移和激活虚拟机实例。
在一些实施方案中,虚拟计算机***服务可接收针对用以支持现有实例的某些硬件规范的请求。如以上所指出,如果物理主机包括一个或多个可用槽,并且包括已请求的硬件规范,那么虚拟计算机***服务可使用与上文所述的过程相似的过程将现有实例分配给物理主机槽。然而,如果具有已请求的硬件规范的物理主机不可用,那么虚拟计算机***服务可评估所述请求以确定所述请求是偏好还是要求,如以上所指出。因此,如果所述请求仅是某一硬件规范集合的偏好,那么虚拟计算机***服务可能不迁移现有实例,直到具有已请求的硬件规范的物理主机中的一个或多个槽可用的时刻。另外,如果所述请求是客户要求集合,那么虚拟计算机***服务可显示错误消息并且等待针对迁移的任何新的客户请求。
以此方式,虚拟计算机***服务可将一个或多个虚拟机实例分配给满足客户硬件规范要求的物理主机。此外,本文所描述和建议的技术有利于另外的技术优势。例如,在一些实施方案中,因为虚拟计算机***服务可基于客户偏好或要求将现有的虚拟机实例迁移至物理主机,所以如果用来实例化所述实例的物理主机初始地不与客户硬件规范要求匹配,那么这就可消除创建和终止虚拟机实例的实践。另外地,在一个实施方案中,由于虚拟计算机***服务可基于客户硬件规范要求自动地将虚拟机实例迁移至不同的物理主机,因而客户可能不再需要连续地提交请求以将现有的虚拟机实例分配给具有已请求的硬件规范的物理主机。这进而可减少对用以支持客户请求的新硬件的需要,并且因此可减少任何新硬件组件的成本以及维护这些组件的相关联的成本。针对某些硬件规范的积压的客户请求还可向计算资源服务提供商提供有价值的信息。例如,所述积压可用来通知***容量规划和/或硬件购买决定。另外的用途也可由本文所述的各种技术实现。
图1示出可实践各个实施方案的环境100的说明性示例。在环境100中,计算资源服务提供商102可向计算资源服务提供商的客户提供各种计算资源服务。计算资源服务提供商102可以是代表一个或多个用户托管各种计算资源的组织。例如,计算资源服务提供商可操作用来托管各种计算硬件资源(诸如,硬件服务器、数据存储装置、网络装置及其他设备(诸如服务器机架、网络电缆以及类似物))的一个或多个设施。计算资源服务提供商102可利用其计算硬件资源操作一个或多个服务。此类服务可包括在减少或甚至消除客户对物理设备投资的需要的同时,使计算资源服务提供商的客户能够远程管理计算资源以支持客户的操作的服务。示例***包括但不限于各种数据存储服务(基于对象的数据存储服务、档案库数据存储服务、数据库服务以及类似物)、程序执行服务及其他服务。所述服务可被客户使用以支持多种多样的活动,诸如操作网站、操作支持组织的企业***、分布式计算和/或其他活动。
因此,如图1所示,环境100包括客户104。客户104可以是可利用由计算资源服务提供商102提供的一个或多个服务远程地管理计算资源的个体或组织,以支持他的或她的操作,诸如网页开发或数据库管理。客户104可通过客户计算装置向由计算***服务提供商102提供的虚拟计算机***服务提交一个或多个请求,以配置可用来支持客户需要的虚拟机实例。所述一个或多个请求可包括硬件规范要求或偏好,所述硬件规范要求或偏好可用来进一步支持包括于虚拟机实例中的操作***和/或应用。例如,如果客户104将要使用虚拟机实例来创建和测试资源密集的应用,那么客户104就可能需要非常大的处理功率和存储容量以支持这些应用。可替代地,如果客户104将利用虚拟机实例以用于进行字处理和电子表格操纵,那么广泛的资源可能就不需要。因此,虚拟计算机***服务可将虚拟机实例实例化到物理主机106上。
如以上所指出,物理主机106可包括多个硬件组件。例如,物理主机106可包括一个或多个处理器、若干RAM芯片组和被配置来持久性地存储和实例化虚拟机实例108的一个或多个存储装置(例如,固态驱动器或磁盘驱动器)。如结合图4进一步详细所示,每个物理主机106可被配置来包括用于实例化和支持一个或多个虚拟机实例108的一个或多个槽。这些槽用来将一组平均性能度量分配给在其中实例化的虚拟机实例108中的每一个。例如,取决于已请求类型的虚拟机实例108,虚拟计算机***服务可将一个或多个槽分配给虚拟机实例108。
在虚拟机实例108在物理主机106中的一个或多个槽中已经被实例化之后的任何点处,客户104可向虚拟计算机***服务提交请求,所述请求可包括针对应被用来实例化和支持虚拟机实例108的特定硬件规范的偏好或要求。因此,虚拟计算机***服务可确定***内可用的任何物理主机106是否包括可用的放置位置,所述可用的放置位置可用来提供已请求的规范。例如,可基于将一个或多个可用槽定位在包括所请求的特定硬件规范的物理主机中来识别放置位置。因此,如果物理主机106发现可用来实现所述请求,并且所述物理主机包括足够的槽以实例化虚拟机实例108,那么虚拟计算机***服务可将虚拟机实例108迁移至该物理主机106,并且释放先前用来实例化该实例的槽。然而,如果物理主机106不可用来实现所述请求,那么虚拟计算机***服务可能不迁移虚拟机实例108和/或可能显示错误消息。
图2示出可实践本公开的各种实施方案的环境200的说明性示例。在环境200中,计算资源服务提供商202可向客户204提供各种服务。客户204可以是可利用由计算资源服务提供商202提供的各种服务来远程产生、测试和维护一个或多个网页服务器或应用的组织。如图2所示,客户204可通过一个或多个通信网络206(诸如互联网)与计算资源服务提供商202进行通信。从客户204到计算资源服务提供商202的一些通信可致使计算资源服务提供商202根据本文所描述的各种技术或其变型进行操作。
如以上所指出,计算资源服务提供商202可向其客户提供各种计算资源服务。例如,在特定的说明性示例中,计算资源服务提供商202提供至少两种类型的服务。在这个示例中,由计算资源服务提供商提供的服务包括虚拟计算机***服务208、数据存储服务210和一个或多个其他服务212,尽管不是本公开的所有实施方案都将包括所有此类服务,但是除本文明确描述的服务之外或作为替代本文明确描述的服务,可提供另外的服务。
虚拟计算机***服务208可以是计算资源的集合,其被配置来代表计算资源服务提供商202的客户204将虚拟机实例实例化到虚拟计算机***上。计算资源服务提供商202的客户204可与虚拟计算机***服务208交互,以便提供和操作在由计算资源服务提供商202托管(例如,物理主机)并操作的物理计算装置上实例化的虚拟计算机***。虚拟计算机***可用于各种目的,诸如以操作为支持网站的服务器。用于虚拟计算机***的其他应用可以用来支持数据库应用、电子商务应用、业务应用和/或其他应用。
当客户204与虚拟计算机***服务208交互并且提供虚拟机实例时,客户204可获得对多种资源的访问。例如,取决于客户的需要,虚拟机实例可提供操作***和各种应用。如以上所指出,可在可由计算资源服务提供商202操作的物理主机上实例化虚拟机实例。因此,物理主机可能需要包括若干硬件组件,所述硬件组件可被配置来共同地用来提供操作和支持虚拟机实例所需的计算资源。因此,虚拟计算机***服务208可默认在包括用以支持特定实例所需的资源的物理主机上实例化虚拟机实例。
在一些实施方案中,客户204可请求将虚拟机实例在包括特定的硬件规范集合的物理主机中实例化。虽然所述硬件规范可默认不被虚拟计算机***服务208选择,但是客户204可能需要这些规范来支持其需要。如以上所指出,客户204可开发和测试需要广泛的资源操作的虚拟机实例上的软件。因此,由虚拟计算机***服务208提供的默认的硬件规范可能不适用于这些目的。如果客户204已经指定包括特定的硬件规范集合的物理主机应该被分配用于虚拟机实例,那么虚拟计算机***服务208可确定任何可用的物理主机当前是否包括这些规范。如果不存在具有在客户请求中指定的至少该特定的硬件规范集合的可用物理主机,并且客户硬件请求就是偏好,那么虚拟计算机***服务208可在包括用以实例化所述虚拟机实例并且保存在实例元数据中的最小硬件规范的物理主机中实例化虚拟机实例,一旦具有特定硬件组件的物理主机变得可用,可触发以识别虚拟机实例应迁移至具有特定硬件组件的物理主机的标志。然而,如果在用以创建新的虚拟机实例的所述请求中包括的硬件规范请求是要求,那么虚拟计算机***服务208可显示错误消息并且如果没有可满足硬件规范要求的物理主机可用,那么就拒绝所述请求。
另外地,在一些实施方案中,客户204可能够提交向包括支持客户204的需要可能所必须的特定的硬件规范集合的物理主机迁移现有虚拟机实例的请求。如果当前不存在具有提供用于所述请求的至少所述硬件规范的物理主机,那么虚拟计算机***服务208可使现有虚拟机实例保持在其被实例化的物理主机中,而无需将所述实例迁移至新的物理主机。另外地,如果所请求的硬件规范需要支持所述实例,那么虚拟计算机***服务208可显示错误消息并且授予客户204某些选项。例如,可给予客户204选项以重新配置尝试将虚拟机实例迁移至更紧密地匹配他的或她的要求的物理主机的请求。如果满足客户204硬件规范的物理主机可用,那么虚拟计算机***服务208可将虚拟机实例迁移至这个物理主机,因此实现所述请求。
如以上所指出,虚拟计算机***服务208可保存可包括标志的实例元数据,所述标志在被触发时,可指定客户已经选择使虚拟机实例迁移至在可用时具有某些硬件规范的物理主机。因此,在一些实施方案中,当一个或多个槽在物理主机中变得可用时,虚拟计算机***服务208可被配置来查询用于每个虚拟机实例的元数据。如果虚拟计算机***服务208识别被迁移至物理主机的一个或多个虚拟机实例,那么虚拟计算机***服务208可被配置来将一组标准应用到一个或多个虚拟机实例,以确定迁移哪个实例。例如,所述标准可包括在针对某些硬件规范的请求与现有查询之间的持续时间。因此,虚拟计算机***服务208可进行将所选择的虚拟机实例迁移至具有已请求的硬件规范的物理主机并且重新设置用于该实例的元数据。
数据存储服务210可包括计算资源的集合,其共同地操作来存储用于客户204的数据。可将在数据存储服务210中存储的数据组织到数据对象中。也许除了对大小进行某些限制之外,数据对象可具有任意大小。因此,数据存储服务210可存储具有大小不一的众多数据对象。数据存储服务210可操作为将数据对象与数据对象的标识符相关联的键值存储区,所述数据对象的标识符可由客户204使用,以检索或执行与由数据存储服务210存储的数据对象有关的其他操作。对数据存储服务的访问可以是通过适当地已配置的应用编程接口(API)调用。
计算资源服务提供商202另外地可基于其客户204的需要来维护一个或多个其他服务212。例如,计算资源服务提供商202可维护用于其客户204的数据库服务。数据库服务可以是计算资源的集合,其共同地操作以运行用于一个或多个客户204的一个或多个数据库。计算资源服务提供商202的客户204可通过利用对数据库服务的适当地已配置的API调用来操作并管理来自数据库服务的数据库。这进而可允许客户204维护并潜在地缩放数据库中的操作。其他服务包括但不限于对象级数据存储服务、对象级档案库数据存储服务、管理其他服务的服务和/或其他服务。
如以上所指出,虚拟计算机***服务可由一个或多个客户使用以提供用于各种用途的虚拟机实例。虚拟机实例可容许客户访问操作***和多种应用,所述操作***和多种应用可使客户能够执行某些功能(例如,维持一个或多个数据库,存储客户端信息,开发网页应用等)。因此,图3示出根据至少一个实施方案的包括虚拟计算机***服务302的各种组件的环境300的说明性示例。虚拟计算机***服务302可向客户提供客户接口304,所述客户接口304可使客户能够访问虚拟计算机***服务302。客户可通过一个或多个通信网络(诸如互联网)利用客户接口304。客户接口304可包括某些安全保护以确保客户有授权访问虚拟计算机***服务302。例如,为了访问虚拟计算机***服务302,客户在使用客户接口304时可能需要提供用户名和对应的密码或密钥。另外地,提交给客户接口304的请求(例如,API调用)可能需要使用密钥产生的电子签名,以使得电子签名可由虚拟计算机***服务302(诸如由授权***(未示出))验证。
一旦客户通过客户接口304已经获得对虚拟计算机***服务302的访问,虚拟计算机***服务302就可允许客户通过客户接口304与管理子***306交互。例如,管理子***306可使客户能够远程提供虚拟机实例。客户可使用客户接口304和管理子***306产生包括适于客户需要的操作***和多种应用的虚拟机实例。可将所述操作***和各种应用以机器图像308的形式维持在数据存储装置中。虚拟计算机***服务302可基于如在管理子***306中指定的特定的客户偏好来维持多种机器图像308。当客户提交针对通过管理子***306提供虚拟机实例的请求时,虚拟计算机***服务302可识别客户已经请求的所述机器图像,并且分配所需的资源(例如,操作所述机器图像的组件需要的处理器和随机存取存储器(RAM)),以处理所述机器图像。可在可充当用于所述实例的物理主机312的一个或多个物理存储装置(例如,一个或多个服务器或硬盘驱动器)上实例化所述机器图像。
作为对自动分配用以处理所述机器图像所需资源的替代方案,客户可利用客户接口304和管理子***306请求特定的资源集合以处理和支持所述机器图像。例如,如果客户使用虚拟机实例创建、测试和管理资源密集的软件或网页应用,那么客户可能需要除仅处理所述机器图像需要的资源之外的另外的资源。因此,管理子***306可处理包括另外的硬件规范以识别物理主机312的请求,所述物理主机312包括实例化虚拟机实例并且满足客户请求需要的资源。如以上所指出,客户可指定针对这些硬件规范的请求是用于创建实例的偏好或要求。在前一种情况下,如果管理子***306不能识别具有实现客户请求所需的资源的物理主机312,那么管理子***306可被配置来在具有处理所述机器图像需要的资源的物理主机306中实例化虚拟机实例。因此,管理子***306可被配置来触发与虚拟机实例相关联的元数据标志,以使得当具有已请求的硬件规范的物理主机312变得可用时,管理子***306可将虚拟机实例迁移至这个物理主机。在后一种情况下(例如,在针对某一硬件规范集合的请求是要求的情况下),管理子***306可被配置来将可执行指令传输至客户接口304,所述指令在被客户接口304执行时,如果没有具有已请求的硬件规范的物理主机312可用,那么就致使客户接口304显示错误消息。此外,管理子***306可以不在物理主机312中的任一个中实例化虚拟机实例。
如以上所指出,如果虚拟机实例已经在不满足某一硬件规范集合的客户偏好的物理主机312中实例化,那么管理子***306可被配置来触发与虚拟机实例相关联的元数据标志。尽管对客户接口304进行适当地已配置的API调用,但是客户可触发在虚拟机实例内的元数据标志,以指定虚拟机实例是否应被迁移至包括支持所述实例需要的资源的物理主机312。另外地,如果管理子***306不能立即满足客户偏好以在具有已请求的硬件规范的物理主机312中实例化虚拟计算实例,那么就可触发元数据标志。因此,虚拟计算机***服务302可维持用来管理信息的一个或多个元数据服务310,所述信息确定是否应将在物理主机312中实例化的虚拟机实例迁移至可具有满足客户请求所需的资源的不同的物理主机312。如关于图8更加详细地所述,管理子***306可被配置来查询元数据服务310,以确定现有虚拟机实例中的哪个包括针对迁移至物理主机312中的新近可用的槽的客户请求。
如以上所指出,每个物理主机可包括可用来实例化虚拟机实例的多个槽。因此,图4是根据实施方案的环境400的说明性示例,所述环境400包括在管理子***与可包括一个或多个槽的多个物理主机之间的交互。在环境400中,客户402通过提交一个或多个请求(诸如,通过对虚拟计算机***服务的适当地已配置的API调用、通过一个或多个通信网络(诸如互联网404))与虚拟计算机***服务406交互。如以上所指出,客户402可利用由虚拟计算机***服务406提供的客户接口和管理子***408来产生包括适于客户需要的操作***和多种应用的实例。
如以上所指出,管理子***408可与一个或多个物理主机410交互,以通过取决于客户402的请求而将机器图像安装到一个或多个物理主机410中来实例化虚拟机实例。每个物理主机410可包括实例化虚拟机实例需要的资源集合。然而,基于包括于物理主机410中的硬件组件,每个物理主机410可包括不同的资源集合。例如,每个物理主机410可包括实例化一个或多个虚拟机实例需要的不同的处理芯片组、存储装置(例如,固态驱动器或磁盘驱动器)或RAM。因此,某些虚拟机实例可在一些物理主机410中但不是在其他中实例化。
每个物理主机410可包括用于分配虚拟机实例的一个或多个槽412。每个槽412可表示对来自用于执行支持虚拟机实例的一个或多个操作的物理主机410的资源集合的分配。例如,槽可表示物理主机410的一半的处理容量。当客户402请求创建虚拟机实例时,客户402可能够指定虚拟机实例应该有多大。因此,由于大的实例可能需要另外的资源来实例化和支持为虚拟机实例的一部分的机器图像(例如,操作***和相关联的应用),因而虚拟机实例越大,实例可在物理主机410中消耗的槽412越多。如果物理主机410包括更少的计算资源(例如,使用较旧的技术,诸如过时的或废弃的处理器和/或存储装置),那么物理主机410可能仅包括小数目的槽412以用于分配虚拟机实例。可替代地,更新的物理主机410(具有更大的计算资源)可能够支持另外的槽412并且因此接纳另外的虚拟机实例。
因此,当客户402将创建虚拟机实例的请求提交给虚拟计算机***服务406时,管理子***408可被配置来确定哪个物理主机410包括所需的资源以实例化实例。另外地,管理子***408可确定在这些物理主机410中的哪个物理主机410包括用于分配的所需槽412。因此,管理子***408可将虚拟机实例实例化到具有支持所述实例所需的资源和槽412的物理主机410中。
如以上所指出,客户402可指定针对资源集合的偏好或要求,所述资源集合在创建虚拟机实例之后应该被分配给虚拟机实例。在这个实例中,管理子***408可被配置来确定任何现有的物理主机410是否包括已请求的资源,并且如果包括,那么就确定物理主机410是否包括实现所述偏好或要求所需的槽412。如果所述请求包括针对资源集合的偏好,并且没有物理主机410可用来实现所述偏好,那么管理子***408可在具有足够槽412的物理主机410中分配虚拟机实例,以实例化所述实例并且提供支持所述实例所需的最小资源。因此,如果在较晚时候足够数目的槽412在包括实现所述偏好所需的资源的物理主机410中变得可用,那么管理子***可被配置来将所述实例迁移至这个物理主机410。然而,如果所述请求包括已请求的资源集合以实例化和支持虚拟机实例,那么如果没有物理主机410可用来实现所述要求或如果没有槽412在可能够实现所述要求的物理主机410中可用,管理子***可被配置来产生错误消息。
图5是根据至少一个实施方案的环境500的说明性示例,在所述环境500中可实例化和分配一个或多个虚拟机实例。如以上所指出,虚拟计算机***服务可维持一个或多个物理主机502,所述一个或多个物理主机502可包括多种资源,所述多种资源可用来实例化和支持任何虚拟机实例。如上文结合图4所述,每个物理主机502可包括一个或多个槽504,所述一个或多个槽504可对应于包括于物理主机502中的资源的一部分。例如,每个槽504可表示由可被平均分摊给该槽504的物理主机502提供的处理功率的一部分。
当客户诸如通过对虚拟计算机***服务的适当地已配置的API调用将请求提交给虚拟计算机***服务以提供虚拟机实例506时,管理子***可处理所述请求并且将虚拟机实例506分配给物理主机502。如以上所指出,管理子***可将虚拟机实例506分配给包括实例化和支持虚拟机实例506所需的资源的物理主机502。因此,物理主机502可能需要具有可用的一个或多个槽504以实例化虚拟机实例506。
如图5所示,取决于支持实例506所需的或所请求的资源,可将虚拟机实例506分配给一个或多个槽504。因此,可将每个虚拟机实例506分配给许多槽504,其可不同于物理主机502中的任何其他虚拟机实例506。例如,在环境500中,物理主机502可包括五个槽504,所述槽504可用来分配多个实例506。管理子***可将一个或多个实例506分配给槽504,如图5所示。因此,在这个说明性示例中的物理主机502可包括可被分配给多于两个槽504的更大的实例506、可被分配给一个完整槽504和另一个槽504的一部分的中等大小的实例、以及可被分配给槽504的一小部分的更小的实例。因此,可将虚拟机实例506分配给在物理主机502中可用的任意数目的槽504或槽504的一小部分。
如以上所指出,管理子***可被配置来基于当所述实例被创建或在所述实例已经被分配之后做出较晚请求时指定的客户偏好而将来自一个物理主机的实例迁移至另一个。因此,图6是根据至少一个实施方案的环境600的说明性示例,在所述环境600中可将实例从一个物理主机迁移至另一个物理主机。在环境600中,第一物理主机602可包括一个或多个实例,所述一个或多个实例包括第一实例608,所述第一实例608可被分配给第一物理主机602中的一个或多个槽。在第一物理主机602中初始实例化第一实例608之后的较晚时候,可被配置来管理和控制物理主机的管理子***可接收将第一实例608迁移至第二物理主机604的请求。
如果客户现在偏向于或需要另外的资源来支持第一实例608,那么客户可请求将第一实例608从第一物理主机602迁移至第二物理主机604。因此,第二物理主机604可包括多于第一物理主机602的一个或多个改进的组件,诸如高级处理器芯片组606。该高级处理器芯片组606可向第二物理主机604提供可能对客户有吸引力的大量另外的资源。当在整个的公开内容中高级处理器芯片组606的使用被用于说明性目的时,本公开的范围并不限于仅使处理器升级。例如,第二物理主机604可包括其他改进的组件,诸如可提供用于实例化实例的更大数据存储容量的一个或多个存储装置。
如果管理子***识别具有可用资源以满足客户硬件偏好或要求的物理主机,那么管理子***可进行将第一实例608从第一物理主机602迁移至第二物理主机604。第二物理主机604可包括许多空槽和已占用的槽,其可具有在其中实例化的一个或多个实例。如结合图9将更加详细地所述,管理子***可获得第一实例608的快照,并且将该快照传送给第二物理主机604中的所述一个或多个空槽。因此,第一实例608可被暂停并传送至其可能被激活以供使用的第二物理主机604。客户现可能够利用高级处理器芯片组606和在第二物理主机604中已请求的任何其他硬件组件。
如以上所指出,客户可提交产生虚拟机实例以及针对用以支持所述实例的资源集合的偏好或要求的请求。因此,图7是根据至少一个实施方案的用于基于客户可任选地指定的硬件请求来分配虚拟机实例的过程700的说明性示例。应指出,可处理提供虚拟机实例的请求,而不管所述请求是否包括可任选地指定的硬件请求。在过程700中,虚拟计算机***服务可包括管理子***,所述管理子***可被配置来从客户接收702针对产生具有应被分配给所述实例的资源集合的虚拟机实例的请求。基于客户的需要,针对该资源集合的所述可任选地指定的硬件请求可以是偏好或要求。可替代地,所述请求可包括可通过在与所述偏好集合不相符的物理主机中实例化虚拟机实例来实现所述请求的指示。客户可通过对所述服务的一个或多个适当地已配置的API调用来提交这些请求。另外地,如果所述请求包括指示,那么可通过对所述服务的单独的API调用来提交所述指示。
因此,管理子***可应用一个或多个处理算法来确定如何处理所接收的请求。例如,一旦管理子***已经从客户接收到所述一个或多个请求,那么管理子***就可被配置来使用算法来确定704任何物理主机计算机***是否可用来实例化虚拟机实例。管理子***可被配置来使用算法来在虚拟计算机***服务内查询物理主机计算机***,以识别满足针对虚拟机实例的客户偏好或要求的任何潜在的物理主机计算机***。随后,管理子***可被配置来使用算法来评估任何潜在的物理主机计算机***是否包括足够的空槽,以实例化虚拟机实例。
管理子***可被配置来在该评估中添加包括基于针对某些硬件资源的偏好的虚拟机实例的任何物理主机和包括无论如何都不具有偏好生成的虚拟机实例的物理主机。例如,如果针对具有某一资源集合的虚拟机实例的请求是偏好,那么该请求可被给予优于没有任何硬件偏好的情况下创建的任何现有实例化实例的优先级。另外地,在另一个实例中,如果请求是要求集合,那么该请求可被给予优于在没有任何硬件偏好的情况下创建的任何现有实例化实例或在仅具有硬件偏好(例如,不具有要求集合)的情况下创建的实例的更大的优先级。因此,即使所述主机可包括现有实例化实例,管理子***也可确定某些物理主机可用来实现所述请求。
如果一个或多个物理主机计算机***包括用以满足客户偏好或要求的资源并且这些物理主机计算机***另外地包括足够的空槽以实例化虚拟机实例,那么管理子***可将虚拟机实例分配706给物理主机计算机***中的空槽。如果存在多于一个的物理主机计算机***,那么管理子***可被配置来应用算法,以便对在可用的物理主机计算机***内的可用槽进行排序。例如,基于每个物理主机计算机***的硬件规范和对在槽中实例化的实例可用的资源,管理子***可使用所述算法来产生在可用的物理主机计算机***内的可用槽的排序。因此,包括一个或多个可用槽并且精确地与在所述请求中提供的硬件规范匹配的物理主机计算机***可产生包括于其中的槽的更高排序,从而导致将虚拟机实例实例化到该物理主机计算机***内的槽中。然而,如果没有槽或物理主机计算机***可用以接纳客户偏好或要求,那么管理子***可被配置来确定708针对特定的资源集合的请求是偏好还是要求。如果客户请求包括针对用以支持虚拟机实例的资源集合的要求,那么管理子***可被配置来将可执行指令传输至客户接口,所述指令在由所述客户接口执行时,致使所述客户接口显示710错误消息。该错误消息可包括关于资源不可用的信息。另外地,所述错误消息可邀请客户在较晚些时候提交请求。因此,管理子***可再一次从客户接收702另一个请求并且重复上文所述的过程。
如以上所指出,管理子***可被配置来确定请求具有优于物理主机中的现有实例化的虚拟机实例的更大的优先级。在这个实例中,管理子***可将现有的实例迁移至不同的、可用的物理主机,以便实例化已请求的虚拟机实例。例如,管理子***可被配置来迁移来自物理主机的不包括硬件偏好或要求的现有实例,以便将遵从于硬件偏好的实例分配706给新近可用的物理主机槽。类似地,如果所述请求包括针对特定硬件的要求集合,那么管理子***可迁移不包括硬件偏好的任何现有实例,之后任何现有实例仅基于偏好(如果需要的话)而在主机上实例化。因此,包括针对某一硬件的要求集合的请求可优先于不包括要求集合的物理主机中的任何现有实例。
如果针对用以支持虚拟机实例的特定的资源集合的客户请求仅是可任选指定的硬件偏好,那么管理子***可被配置来将所述实例分配712给物理主机计算机***中的一个或多个非符合的槽。物理主机计算机***可包括实例化所述实例所需的最小资源,以使得客户可仍然利用虚拟机实例来达到他的或她的目的。在一个实施方案中,管理子***可被配置来更新与虚拟机实例相关联的元数据,以一旦具有已请求的规范的物理主机计算机***变得可用,识别所述实例应被迁移至具有已请求的规范的物理主机计算机***。因此,一旦理想的物理主机计算机***变得可用,就可自动地迁移所述虚拟机实例。
如以上所指出,管理子***可被配置来管理由虚拟计算机***服务提供的一个或多个物理主机计算机***。作为该功能的一部分,管理子***可另外地被配置来管理包括于物理主机计算机***中的每一个中的底层的一个或多个槽。因此,图8是根据至少一个实施方案的用于基于槽可用性来迁移虚拟机实例的过程800的说明性示例。管理子***可被配置来连续地查询物理主机计算机***,以确定任何物理主机计算机***是否包括可用来分配虚拟机实例的任何空槽。因此,过程800可包括检测802一个或多个槽在物理主机计算机***上是否可用。
如果管理子***检测到在物理主机计算机***中的一个或多个槽变得可用,那么管理子***可被配置来查询804元数据服务以识别客户已经请求将其迁移至具有优选的资源集合的物理主机计算机***的任何现有虚拟机实例。如以上所指出,如果客户提交创建虚拟机实例和将特定的资源集合分配给所述实例的请求,那么如果具有特定的资源集合的物理主机计算机***当前不可用的话管理子***可触发与实例相关联的元数据标志。因此,管理子***可搜索包括该元数据标志的实例,并且试图将所述实例与可用的物理主机计算机***槽匹配。
在一些实例中,物理主机计算机***槽可用性仅可支持一个虚拟机实例。因此,管理子***仅可能够将一个虚拟机实例从一个物理主机计算机***迁移至另一个。因此,过程800可包括确定806多于一个当前虚拟机实例是否已经被标记以用于迁移至可用的物理主机计算机***槽。如果存在多于一个当前虚拟机实例已经被标记以用于迁移,那么对管理子***来说可能需要应用808一组标准,以便选择用于迁移的虚拟机实例。例如,每个虚拟机实例在被创建时可根据不同的实例特性加以排序。例如,可基于已请求的资源(例如,处理功率和速度、存储容量、RAM分配等)来对虚拟机实例进行排序。另外地,可基于深奥的标准(诸如客户使用的虚拟计算机***服务的体积)来对虚拟机实例进行排序。因此,已经创建和使用更多虚拟机实例的客户可被奖励具有更高排序的任何新创建的实例。应注意,提供上文提供的实例以用于说明性目的,并且可用来对虚拟机实例进行排序的任何变型或标准被认为在本公开的范围内。
一旦管理子***已经选择虚拟机实例,那么管理子***可被配置来执行810一个或多个动作以使用于迁移的所选择的虚拟机实例做好准备。如结合图9更加详细地所述,管理子***可被配置来在迁移之前获得所选择的虚拟机实例的快照,以捕获其当前状态。所述快照随后可被传送至可用的目标槽,以使得物理主机计算机***可能够使所述实例从最近状态重新开始并且使由迁移所产生的影响最小化。
所述快照一被传送至新的物理主机计算机***,管理子***就可将一个或多个可执行指令传输给实例化虚拟机实例所在的物理主机计算机***,以便使所述实例暂停。一旦虚拟机实例已经被暂停并且在所述实例内没有进一步的操作发生,管理子***就可将虚拟机实例迁移812至新的物理主机计算机***槽并且将其激活以供客户重新使用。由于虚拟机实例的迁移可能留下物理主机计算机***上的新打开的槽,因而管理子***可再一次检测802该可用性并且查询804元数据服务以定位用于迁移的任何其他实例。另外地,管理子***可常规地检查物理主机计算机***以诸如上文所述或在客户已经请求删除虚拟机实例的实例中检测802槽可用性。
如以上所指出,如果客户在创建虚拟机实例之前或之后已经提交请求,以便将资源集合分配至所述实例,那么管理子***可被配置来迁移虚拟机实例。因此,图9是根据至少一个实施方案的用于准备并迁移虚拟机实例的过程900的说明性示例。在过程900中,管理子***可被配置来识别902需要迁移的实例。这可以许多种方式发生。例如,如图8所示,管理子***可通过基于一组标准从多个实例中选择一个实例来识别用于迁移的虚拟机实例。所述多个实例可包括具有相关联元数据标志的一个或多个实例,从而将这些实例识别为遵从于针对另外的主机资源的客户请求。可替代地,客户可提交迁移现有虚拟机实例的请求,如果资源当前可用,那么所述请求就可被立即实现。
一旦管理子***已经识别到需要迁移的虚拟机实例,那么管理子***可被配置来评估904被分配给虚拟机实例的资源。如以上所指出,可在物理主机计算机***中实例化虚拟机实例。物理主机计算机***可包括多个硬件组件。例如,物理主机计算机***可包括一个或多个处理器、若干RAM芯片组和被配置来持久性地存储和实例化虚拟机实例的一个或多个存储装置(例如,固态驱动器或磁盘驱动器)。每个物理主机计算机***可被配置来包括用于实例化一个或多个虚拟机实例的一个或多个槽。这些槽用来将一组平均性能度量分配给在其中实例化的虚拟机实例中的每一个。因此,管理子***可被配置来确定当前实例化所述虚拟机实例所在的物理主机计算机***的当前的硬件规范,和被分配给所述实例的槽的数目。
一旦管理子***已经识别需要迁移的虚拟机实例和用以迁移所述实例的所需资源,管理子***就可被配置来识别906物理主机计算机***中的用于分配虚拟机实例的一个或多个目标槽。如图4所示,每个物理主机计算机***可具有不同的硬件规范,以及因此变化的计算能力。如果物理主机计算机***包括较旧的或过时的硬件,那么物理主机计算机***可包括更少的用于实例化资源密集的虚拟机实例的槽。可替代地,物理主机计算机***包括更新的技术,以使得其可提供更大的处理功率和存储容量,物理主机计算机***可包括更多的槽以供分配。另外地,槽大小可能在整个物理主机计算机***上不均匀。例如,如果槽表示被分配给实例的资源的百分比,那么在一个物理主机计算机***中的槽可表示具有比在不同物理主机计算机***中的槽更大量的资源。因此,管理子***可被配置来检查目标槽,以确定有多少目标槽可能需要用于分配虚拟机实例。
为了以最小影响和中断迁移现有虚拟机实例,管理子***可被配置来获得908虚拟机实例的快照。快照可包括虚拟机实例在给定时间处的当前操作状态,包括识别用于重新开始执行的入口点信息。因此,虚拟机实例的快照的创建可在客户利用所述实例的情况下提供最小的干扰。虚拟计算机***服务当前可实现用于定期地产生虚拟机实例中的每一个的快照的一个或多个策略,以便防止由***故障所产生的数据或计算损失。可替代地,可在客户或管理子***发出命令之后创建快照。在产生初始快照之后,后续快照仅可包括在初始快照之后产生的另外的计算和数据,从而减少所产生的数据的量。因此,管理子***被配置来执行命令以获得实例的快照或指代数据存储区以获得虚拟机实例的快照。
一旦管理子***已经获得与待被迁移的虚拟机实例有关的所述一个或多个快照,管理子***就可被配置来将所述一个或多个快照传送910至目标槽。如以上所指出,管理子***就可被配置来确定在迁移之后虚拟机实例在物理主机计算机***中可占用多少槽或槽的多大部分。因此,管理子***可被配置来将所述一个或多个快照传送至为被迁移的虚拟机实例保留的槽。
管理子***可被配置来使在物理主机计算机***中操作的虚拟机实例暂停912,以便继续迁移过程。在这时间期间,管理子***可防止客户在虚拟机实例内执行任何另外的读或写操作。另外地,管理子***可被配置来传输由客户接口执行的一个或多个命令,所述命令将致使客户接口向客户显示详细描绘由暂停虚拟机实例所产生的停机时间的程度的通知。这种有益的通知可允许客户准备用于迁移的任何数据或针对停机的持续时间而制定应变计划。在一个实施方案中,管理子***可被配置来重新启动虚拟机实例来代替暂停912虚拟机实例,以使得在迁移之后,虚拟机实例可在第二物理主机计算机***中被重新起动。换言之,重新启动过程可包括关闭虚拟机实例并且在另一个计算机***上重新起动虚拟机实例。可替代地,管理子***可被配置来在完成迁移过程之前,等待来自客户的虚拟机实例的选择性的关闭。
在虚拟机实例已经被暂停之后,管理子***现可进行最后确定914在新的物理主机计算机***上的一个或多个目标槽处的虚拟机实例。这可包括在将先前的快照传送至目标槽之后并且在暂停虚拟机实例之前,传送可由虚拟计算机***服务拍摄的任何另外的快照。另外地,管理子***可被配置来使用在目标槽上可用的快照来恢复在这些目标槽上的虚拟机实例。一旦虚拟机实例在新的物理主机计算机***上被恢复,管理子***就可进行将旧的虚拟机实例从先前的物理主机计算机***拆离并且将其删除,因此使在先前的物理主机计算机***上的物理主机计算机***槽变得可用。
一旦管理子***最后确定目标槽处的实例,管理子***就可激活916在新的物理主机计算机***中的目标槽上的虚拟机实例。因此,管理子***可被配置来传输一个或多个可执行指令,所述指令在由客户接口执行时,可致使客户接口通知客户虚拟机实例现在可供使用。因此,根据客户的需要,客户可利用客户接口和管理子***来重新开始他的或她的与虚拟机实例的交互。
如以上所指出,客户可利用由虚拟计算机***服务提供的客户接口和管理子***来请求某些硬件规范支持虚拟机实例。因此,图10是根据至少一个实施方案的用于处理针对将硬件分配给现有的虚拟机实例的请求的过程1000的说明性示例。诸如上文所述的管理子***可被配置来执行过程1000,所述过程1000可包括接收1002针对相对于现有的虚拟机实例的硬件分配的请求。客户可使用客户接口来提交该请求,以对所述服务进行一个或多个适当地已配置的API调用。因此,所述请求可由管理子***处理以确定清晰度。
一旦管理子***已经接收到所述请求,管理子***就可确定1004现有的虚拟机实例是否当前在包括已请求的硬件的物理主机计算机***中被实例化。如果虚拟机实例当前在包括已请求的硬件的物理主机计算机***中被实例化,那么管理子***就可将一个或多个命令传输至客户接口,所述命令在由客户接口执行时,致使客户接口显示1006成功消息。所述成功消息可包括通知给客户的关于虚拟机实例当前已经被分配给具有已请求的硬件规范的物理主机计算机***或仅仅所述请求被成功地实现的有益的通知。
如果虚拟机实例并未被分配给具有已请求的硬件规范的物理主机计算机***,那么管理子***可被配置来另外地确定1008是否存在当前可用以实现所述请求的具有已请求的硬件规范的物理主机计算机***。如以上所指出,每个物理主机计算机***可包括可用来实例化虚拟机实例的一个或多个槽。每个槽可用来将一组平均性能度量分配给在其中实例化的虚拟机实例中的每一个。因此,管理子***可被配置来评估具有可用槽的任何物理主机计算机***以确定物理主机计算机***是否包括已请求的硬件规范和包括实例化和支持虚拟机实例所需的槽。
如果包括已请求的硬件规范的物理主机计算机***可用,那么管理子***可将虚拟机实例分配1010给物理主机计算机***中的所述一个或多个槽。如图9所示,管理子***可被配置来获得现有虚拟机实例的一个或多个快照,并且将这些快照传送给物理主机计算机***中的可用的槽。随后,管理子***可暂停虚拟机实例并且使虚拟机实例在新的物理主机计算机***上做好准备以供使用。管理子***可被配置来将虚拟机实例从先前的物理主机计算机***删除并且激活在新的物理主机计算机***上的虚拟机实例。一旦虚拟机实例做好准备以供使用,管理子***就可被配置来将一个或多个命令传输至客户接口,所述命令在由客户接口执行时,致使客户接口显示1006迁移已经成功的消息。另外地,所述消息可包括可通知客户虚拟机实例现已做好准备以供使用的有益的通知。
管理子***就可被配置来如果没有物理主机计算机***当前可用以实现所述请求,那么确定1012客户请求是偏好还是要求。如以上结合图7所指出,如果客户请求是针对具有某些硬件规范的物理主机计算机***的偏好,那么可在包括用以实例化虚拟机实例所需的至少最少硬件规范的物理主机计算机***中实例化虚拟机实例。另外地,管理子***可被配置来修改与虚拟机实例相关联的元数据标志,以使得如果具有已请求的硬件规范的物理主机计算机***变得可用,那么就可考虑迁移虚拟机实例。因此,以类似的方式,如果客户提交向包括某些硬件规范的物理主机计算机***迁移现有虚拟机实例的请求,那么管理子***就可被配置来触发与虚拟机实例相关联的元数据标志,以使得如果已请求的物理主机计算机***变得可用,那么就考虑迁移虚拟机实例。
然而,如果客户请求不是偏好而是要求,那么管理子***就可被配置来将一个或多个可执行指令传输至客户接口,所述指令在由所述客户接口执行时,致使所述客户接口显示1014错误消息。所述错误消息例如可包括描述缺乏具有已请求的硬件规范的物理主机计算机***的可用性和对客户可用的可替代选项的一个或多个有益的通知。因此,管理子***可被配置来允许客户修改他的或她的针对具有某些硬件规范的物理主机计算机***的请求并且提交所述请求。因此,管理子***可再次接收1002针对将现有实例迁移至具有某些硬件规范的物理主机计算机***的已修改的请求。
本公开的实施方案可鉴于以下条款来描述:
1.一种用于迁移虚拟机实例的计算机实施的方法,其包括:
在虚拟计算机***服务的一个或多个计算机***的控制下,所述一个或多个计算机***被配置有可执行指令,
从客户接收偏好集合,所述偏好集合包括用于实例化虚拟机实例的一个或多个硬件规范;
在第一物理主机计算机***中实例化所述虚拟机实例,所述第一物理主机计算机***包括与所述偏好集合不相符的硬件;
检测在第二物理主机计算机***内的可用容量,所述第二物理主机计算机***包括与所述偏好集合相符的硬件;以及
部分地由于已经检测到在所述第二物理主机计算机***内的所述可用容量,将所述虚拟机实例从所述第一物理主机计算机***迁移至所述第二物理主机计算机***
2.如条款1所述的计算机实施的方法,其中所述偏好集合与提供虚拟机实例的请求同时被接收。
3.如条款2所述的计算机实施的方法,其中提供虚拟机实例的所述请求包括通过使用与所述偏好集合不相符的硬件来使所述虚拟机实例实例化一定量时间而得以实现的指示。
4.如前述条款中任一项所述的计算机实施的方法,其中所述方法还包括:
检测所述虚拟机实例的选择性的关闭;以及
将所述虚拟机实例从所述第一物理主机计算机***迁移至所述第二物理主机计算机***包括在所述第二物理主机计算机***上重新起动所述虚拟机实例以将所述虚拟机实例从所述选择性关闭恢复。
5.如前述条款中任一项所述的计算机实施的方法,其中所述偏好集合是将现有虚拟机实例从所述第一物理主机计算机***迁移至所述第二物理主机计算机***的请求的一部分。
6.如前述条款中任一项所述的计算机实施的方法,其还包括至少部分地由于在与所述偏好集合相符的物理主机计算机***的集合中的不可用容量而拒绝迁移所述现有虚拟机实例的所述请求。
7.如前述条款中任一项所述的计算机实施的方法,其中迁移包括在检测到所述第二物理主机计算机***的可用容量之后,重新启动所述虚拟机实例,以使得所述虚拟机实例在所述第二物理主机计算机***上重新起动。
8.一种用于迁移虚拟机实例的计算机实施的方法,其包括:
在被配置有可执行指令的一个或多个计算机***的控制下,
在第一计算机***中实例化所述虚拟机实例,所述第一计算机***包括一个或多个组件,所述一个或多个组件与针对用于实例化虚拟机实例的一个或多个硬件规范的偏好不相符;
检测在与所述偏好相符的第二主机计算机***内的条件;以及
至少部分地由于已经检测到在所述第二主机计算机***内的所述条件,将所述虚拟机实例从所述第一计算机***迁移至所述第二主机计算机***。
9.如条款8所述的计算机实施的方法,其中所述条件至少部分地基于在用于实例化所述虚拟机实例的所述第二主机计算机***内的容量的可用性。
10.如条款8或9所述的计算机实施的方法,其中所述偏好通过接口被接收,可以通过所述接口提交针对实例化虚拟机实例的一个或多个请求。
11.如条款8至10中任一项所述的计算机实施的方法,其中所述偏好包括针对至少部分地基于包括所述一个或多个硬件规范的主机计算机***而迁移所述虚拟机实例的要求。
12.如条款8至11中任一项所述的计算机实施的方法,其中在无需重新启动所述虚拟机实例的情况下,执行迁移所述虚拟机实例。
13.如条款8至12中任一项所述的计算机实施的方法,其中在所述第一计算机***中实例化所述虚拟机实例被执行以实现提供所述虚拟机实例的请求,所述请求包括所述偏好。
14.一种计算机***,其包括:
接口,可以通过所述接口提交针对实例化来自多个虚拟机实例类型的虚拟机实例的一个或多个请求,所述多个虚拟机实例类型中的一个或多个能够与可任选地指定的硬件偏好一起被请求;
一个或多个主机计算机***,其包括共同地被配置来实例化虚拟机实例的硬件组件;以及
管理子***,其被配置来处理通过所述接口接收的请求,其中:
在来自所述一个或多个主机计算机***的第一主机计算机***中实例化所述虚拟机实例,所述第一计算机***包括一个或多个组件,所述一个或多个组件与针对用于实例化所述虚拟机实例的一个或多个硬件规范的所述可任选地指定的硬件偏好不相符;以及
将所述虚拟机实例从所述第一主机计算机***迁移至与所述可任选地指定的硬件偏好相符的第二主机计算机***。
15.如条款14所述的计算机***,其中所述虚拟机实例至少部分地基于在所述第二主机计算机***中的一个或多个槽的可用性而得到迁移,所述一个或多个槽包括被分配给虚拟机实例的容量。
16.如条款14或15所述的计算机***,其中所述管理子***还被配置来至少部分地基于所述可任选地指定的硬件偏好而将现有虚拟机实例从所述第二主机计算机***迁移至非符合的主机计算机***。
17.如条款14至16中任一项所述的计算机***,其中至少部分地基于对在所述一个或多个主机计算机***内的可用的放置位置集合进行排序来将所述虚拟机实例迁移至所述第二主机计算机***,所述对在所述一个或多个主机计算机***内的可用的放置位置集合进行排序至少部分地基于所述可用的放置位置是否满足所述可任选地指定的硬件偏好。
18.如条款14至17中任一项所述的计算机***,其中由于在满足所述可任选地指定的硬件偏好的主机计算机***的集合中缺乏用于所述虚拟机实例的容量,因而所述虚拟机实例在与所述可任选地指定的硬件偏好不相符的所述第一主机计算机***内被实例化。
19.如条款14至18中任一项所述的计算机***,其中在无需重新启动所述虚拟机实例的情况下,将所述虚拟机实例从所述第一主机计算机***迁移至所述第二主机计算机***。
20.一种或多种计算机可读存储介质,其具有共同地存储在其中的指令,所述指令在由计算机***的一个或多个处理器执行时,致使所述计算机***实现偏好的集合,所述偏好的集合包括用于通过致使所述计算机***至少执行以下动作来实例化虚拟机实例的一个或多个硬件规范:
使用不与所述一个或多个硬件规范相符的第一主机计算机***实现所述虚拟机实例一定量时间;以及
将所述虚拟机实例从所述第一主机计算机***迁移至与所述一个或多个硬件规范不相符的第二主机计算机***。
21.如条款20所述的一种或多种计算机可读存储介质,其中迁移包括至少部分地基于对用于所述虚拟机实例的可用槽进行排序来选择所述第二主机计算机***,所述对用于所述虚拟机实例的可用槽进行排序至少部分地基于用于所述可用槽的底层硬件规范。
22.如条款20或21所述的一种或多种计算机可读存储介质,其中所述偏好集合在提供所述虚拟机实例的请求中被接收。
23.如条款20至22中任一项所述的一种或多种计算机可读存储介质,其中由于提供另一个虚拟计算机的请求指定对用于虚拟计算机***实例化的容量不可用的一个或多个硬件规范,所述指令还致使所述计算机***拒绝所述请求。
24.如条款20至23中任一项所述的一种或多种计算机可读存储介质,其中:
所述指令还致使所述计算机***检测所述虚拟机实例的选择性关闭;以及
使迁移所述虚拟机实例发生,以使得所述虚拟机实例在所述第二主机计算机***上重新起动。
25.如条款20至24中任一项所述的一种或多种计算机可读存储介质,其中所述指令还致使所述虚拟计算机***将所述虚拟计算机***从所述第一主机计算机***重新启动到所述第二主机计算机***。
图11示出用于实现根据各个实施方案的各方面的示例性环境1100的各方面。如将了解,尽管出于解释目的使用基于网页的环境,但是可视情况使用不同环境来实现各个实施方案。环境包括电子客户端装置1102,电子客户端装置1102可包括可操作来在适当网络1104上发送和接收请求、消息或信息并且将信息传送回装置用户的任何适当装置。此类客户端装置的实例包括个人计算机、手机、手持消息接发装置、笔记本计算机、平板计算机、机顶盒、个人数据助理、嵌入计算机***、电子书阅读器等。网络可包括任何适当网络,包括内部网、互联网、蜂窝网、局域网或任何其他此类网络或上述网络的组合。此类***所用的组件可以至少部分地取决于所选网络和/或环境的类型。用于通过此类网络通信的协议和组件是众所周知的,因而本文不再详细论述。网络上的通信可通过有线或无线连接及其组合来实现。在这个实例中,网络包括互联网,因为环境包括用于接收请求并且响应于此而提供内容的网页服务器1106,然而对于其他网络来说,可使用服务类似目的替代装置,如本领域技术人员所明白的。
所示出的环境包括至少一个应用服务器1108和数据存储区1110。应当理解,可以存在可以链接起来或以其他方式来配置的若干应用服务器、层或其他元件、过程或组件,这些应用服务器、层或其它元件、过程或组件可交互来执行如从适合的数据存储区获取数据的任务。如本文所使用的服务器可以各种方式实现,诸如硬件装置或虚拟计算机***。在一些上下文中,服务器可以指代在计算机***上执行的编程模块。如本文所使用的,术语“数据存储区”指代能够存储、访问和检索数据的任何装置或装置组合,所述装置或装置组合可包括任何标准、分布式或集群式环境中的任何组合和任何数目的数据服务器、数据库、数据存储装置和数据存储介质。应用服务器可包括任何适当硬件和软件,所述硬件和软件视执行客户端装置的一个或多个应用的各方面的需要而与数据存储区集成、处置应用的一些(甚至大多数)数据访问和业务逻辑。应用服务器可提供与数据存储区协作的访问控制服务,并且能够生成将要传送到用户的内容、诸如文本、图片、音频和/或视频,在这个示例中,所述内容可以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)或另一种适当结构化语言的形式由网页服务器向用户提供。所有请求和响应的处置以及客户端装置1102与应用服务器1108之间的内容递送可由网页服务器来处置。应当理解,网页服务器和应用服务器不是必要的,且仅仅是示例性组件,因为本文所论述的结构化代码可在如本文其他地方所论述的任何适当装置或主机上执行。此外,除非上下文中另外清楚地指出,否则本文描述为由单个装置执行的操作可以由可形成分布式***的多个装置共同地执行。
数据存储区1110可包括若干单独的数据表、数据库或其他数据存储机构和介质,用来存储与本公开的特定方面相关的数据。例如,所示出的数据存储区可包括用于存储生产数据1112和用户信息1116的机构,生产数据1112和用户信息1116可用于提供用于生产侧的内容。数据存储区还被示出为包括用于存储日志数据1114的机构,所述日志数据1114可用于报告、分析或其他此类目的。应当理解,可能存在可能需要存储在数据存储区中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可视情况存储在上文所列机构中的任何机构中或存储在数据存储区1110中的另外机构中。数据存储区1110可通过与它关联的逻辑来操作,以便从应用服务器1108接收指令,并且响应于此而获取、更新或以其他方式处理数据。在一个示例中,用户可以通过由用户操作的装置针对某种类型的项目提交搜索请求。在此状况下,数据存储区可能访问用户信息来验证用户的身份,并且可访问目录详细信息以获取有关所述类型的项目的信息。随后,可将信息诸如以网页上的结果列表的形式返回给用户,用户能够经由用户装置1102上的浏览器来查看所述网页。可在浏览器的专用页面或窗口中查看到感兴趣的特定项目的信息。然而,应该指出,本公开的实施方案不一定限于网页的上下文,但一般而言,可以是通常更适用于处理请求,其中所述请求不一定是针对内容的请求。
每个服务器通常将包括提供用于所述服务器的一般管理和操作的可执行程序指令的操作***,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),当由服务器的处理器执行时,所述指令允许服务器实行其期望的功能。操作***的适合实现方式和服务器的一般功能是众所周知的或可商购的,并且易于由本领域普通技术人员实现,尤其是根据本文中的公开来实现。
在一个实施方案中,环境是利用通过通信链路、使用一个或多个计算机网络或直接连接来互连的若干计算机***和组件的分布式计算环境。然而,本领域普通技术人员应理解,这种***可在具有比图11所示的组件更少或更多数量组件的***中同样顺利地操作。因此,图11中的***1100的描绘本质上应视为说明性的,并且不限制本公开的范围。
各个实施方案可进一步在广泛范围的操作环境中实现,在一些情况下,所述环境可包括一个或多个用户计算机、计算装置或可用于操作多个应用中的任一个的处理装置。用户或客户端装置可包括多个通用个人计算机中的任何一个,诸如运行标准操作***的台式计算机、膝上计算机或平板计算机,以及运行移动软件并且能够支持多个网络连接协议和消息传递协议的蜂窝装置、无线装置和手持式装置。此类***还可包括多个工作站,所述工作站运行各种可商购得的操作***和用于如开发和数据库管理等目的的其他已知应用中的任一个。这些装置还可包括其他电子装置,诸如虚拟终端、瘦客户端、游戏***和能够通过网络通信的其他装置。
本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来使用各种各样可商购得的协议中的任一种支持通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、在开放***互连(“OSI”)模型的各个层级中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件***(“NFS”)、公共互联网文件***(“CIFS”)以及AppleTalk。网络例如可以是例如局域网、广域网、虚拟专用网、互联网、内部网、外联网、公共交换电话网、红外网络、无线网络以及上述网络的任何组合。
在利用网页服务器的实施方案中,网页服务器可以运行各种各样服务器或中间层应用中的任一种,包括超文本传输协议(“HTTP”)服务器、FTP服务器、公共网关接口(“CGI”)服务器、数据服务器、Java服务器和业务应用服务器。服务器还能够响应来自用户装置的请求而执行程序或脚本,诸如通过执行可以实施为以任何编程语言(诸如C、C#或C++)或任何脚本语言(诸如Perl、Python或TCL)以及其组合写成的一个或多个脚本或程序的一个或多个网页应用。所述服务器还可以包括数据库服务器,包括但不限于可商购自 和的那些。
环境可包括如上文所论述的各种各样数据存储区以及其他存储器和存储介质。这些可驻留在各种各样位置,诸如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或远离网络上的计算机中的任何或所有计算机。在实施方案的特定集中,信息可驻留在本领域技术人员熟悉的存储区域网(“SAN”)中。类似地,用于执行属于计算机、服务器或其他网络装置的功能的任何必要的文件可视情况本地或远程存储。在***包括计算机化装置的情况下,每个这种装置可包括可经由总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。此类***还可包括一个或多个存储装置,诸如硬盘驱动器、光存储装置和诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)的固态存储装置、以及可移动媒体装置、存储卡、闪存卡等。
此类装置还可包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外线通信装置等)和工作存储器,如上文所论述。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,计算机可读存储介质表示远程、本地、固定和/或可移动存储装置以及用于暂时和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。***和各种装置通常还将包括位于至少一个工作存储器装置内的多个软件应用、模块、服务或其他元件,包括操作***和应用程序,诸如客户端应用或网页浏览器。应当了解,替代实施方案可具有与上述实施方案不同的众多变型。例如,也可使用定制硬件,和/或特定元件可以在硬件、软件(包括可移植软件,诸如小程序)或两者中实现。此外,可以采用与诸如网络输入/输出装置的其他计算装置的连接。
用于含有代码或部分代码的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术所实现的易失性和非易失性、可移动和不可移动的介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、闪存或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所需信息且可由***装置访问的任何其他介质。基于本文所提供的公开内容和教义,本技术领域普通技术人员将了解实现各个实施方案的其他方式和/或方法。
因此,应在说明性意义而不是限制性意义上理解本说明书和附图。然而,将明显的是:在不脱离如在权利要求书中阐述的本发明的更宽广精神和范围的情况下,可以对其做出各种修改和改变。
其他变体也在本公开的精神内。因此,尽管所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中详细描述所示的其特定实施方案。然而,应当了解,并不旨在将本发明限制于所公开的一种或多种具体形式,相反地,旨在涵盖落在如所附权利要求书限定的本发明的精神和范围内的所有修改、替代构造和等效物。
在描述所公开实施方案的上下文中(尤其是在以下权利要求书的上下文中),术语“一个(a,an)”和“所述”以及类似指称对象的使用应解释为涵盖单数和复数两者,除非在本文另外地指示或明显地与上下文矛盾。术语“包含”、“具有”、“包括”和“含有”应解释为开放式术语(即,意味着“包括但不限于”),除非另外地注解。当术语“连接的”非经修改并且指代物理连接时,应解释为部分地或全部地包含在内、附接至或结合在一起,即使存在某个介入物。除非本文另外指明,否则本文中值范围的列举仅仅意图用作个别地表示属于所述范围的各单独值的速记方法,并且犹如本文个别描述地那样将各单独值并入到本说明书中。除非本文另外指明或与上下文矛盾,否则术语“集”(例如,“项目集”)或“子集”解释为包括一个或多个成员的非空集合。此外,除非本文另外指明或与上下文矛盾,否则术语对应集的“子集”不一定指对应集的真子集,但子集和对应集可以相等。
除非本文另外特别指明或明显地与上下文矛盾,否则连接性语言,诸如“A、B和C中的至少一个”形式的或“A、B和C中的至少一个”的短语另外与如一般情况下使用的上下文一起理解来表示,一项目、项等,可以是A或B或C、或A和B和C的集合的任何非空子集。例如,在具有上文连接性短语中所使用的三个成员的集合的说明性示例中,“A、B和C中的至少一个”和“A、B和C中的至少一个”指代以下集合中的任意一个:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,此类连接性语言一般并非意在暗示某些实施方案需要A中的至少一个、B中的至少一个以及C中的至少一个每个存在。
可按任何合适的顺序来执行本文所述的过程的操作,除非本文另外指明或明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机***的控制下实行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)实施、由硬件或其组合来实施。代码可以例如包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。
本文所提供的任何以及所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,并且除非另外要求,否则不会对本发明的范围施加限制。本说明书中的语言不应解释为将任何非要求的要素指示为实践本发明所必需。
本文中描述了本公开的优选实施方案,包括发明人已知用于执行本发明的最佳模式。阅读上述说明后那些优选实施方案的变体对于本领域的普通技术人员可以变得明显。发明人希望技术人员视情况采用此类变型,并且发明人意图以不同于如本文所特别描述的方式来实践本公开的实施方案。因此,经适用的法律许可,本公开的范围包括在此附加的权利要求中叙述的主题的所有改良形式和等价物。此外,除非本文另外指示或明显地与上下文矛盾,否则本公开的范围涵盖其所有可能变型中的上述元素的任何组合。
本文所引用的所有参考文献、包括出版物、专利申请和专利据此以引用方式并入,其程度等同于每个参考文献单独地且具体地被表示为以引用方式并入本文并且以其全文在本文得以陈述。
Claims (15)
1.一种用于迁移虚拟机实例的计算机实施的方法,其包括:
在被配置有可执行指令的一个或多个计算机***的控制下,
在第一计算机***中实例化所述虚拟机实例,所述第一计算机***包括一个或多个组件,所述一个或多个组件与针对用于实例化虚拟机实例的一个或多个硬件规范的偏好不相符;
检测在与所述偏好相符的第二主机计算机***内的条件;以及
至少部分地由于已经检测到在所述第二主机计算机***内的所述条件,将所述虚拟机实例从所述第一计算机***迁移至所述第二主机计算机***。
2.如权利要求1所述的计算机实施的方法,其中所述条件至少部分地基于在用于实例化所述虚拟机实例的所述第二主机计算机***内的容量的可用性。
3.如权利要求1所述的计算机实施的方法,其中所述偏好通过接口被接收,可以通过所述接口提交针对实例化虚拟机实例的一个或多个请求。
4.如权利要求1所述的计算机实施的方法,其中所述偏好包括针对至少部分地基于包括所述一个或多个硬件规范的主机计算机***而迁移所述虚拟机实例的要求。
5.如权利要求1所述的计算机实施的方法,其中在无需重新启动所述虚拟机实例的情况下,执行迁移所述虚拟机实例。
6.如权利要求1所述的计算机实施的方法,其中在所述第一计算机***中实例化所述虚拟机实例被执行以实现提供所述虚拟机实例的请求,所述请求包括所述偏好。
7.如权利要求1所述的计算机实施的方法,其还包括:
接收针对所述虚拟机实例的请求,所述请求包括所述偏好是任选的指示;以及
在所述第一计算机***中实例化所述虚拟机实例。
8.一种计算机***,其包括:
接口,可以通过所述接口提交针对实例化来自多个虚拟机实例类型的虚拟机实例的一个或多个请求,所述多个虚拟机实例类型中的一个或多个能够与可任选地指定的硬件偏好一起被请求;
一个或多个主机计算机***,其包括共同地被配置来实例化虚拟机实例的硬件组件;以及
管理子***,其被配置来处理通过所述接口接收的请求,其中:
在来自所述一个或多个主机计算机***的第一主机计算机***中实例化所述虚拟机实例,所述第一计算机***包括一个或多个组件,所述一个或多个组件与针对用于实例化所述虚拟机实例的一个或多个硬件规范的所述可任选地指定的硬件偏好不相符;以及
将所述虚拟机实例从所述第一主机计算机***迁移至与所述可任选地指定的硬件偏好相符的第二主机计算机***。
9.如权利要求8所述的计算机***,其中所述虚拟机实例至少部分地基于在所述第二主机计算机***中的一个或多个槽的可用性而得到迁移,所述一个或多个槽包括被分配给虚拟机实例的容量。
10.如权利要求8所述的计算机***,其中所述管理子***还被配置来至少部分地基于所述可任选地指定的硬件偏好而将现有虚拟机实例从所述第二主机计算机***迁移至非符合的主机计算机***。
11.如权利要求8所述的计算机***,其中至少部分地基于对在所述一个或多个主机计算机***内的可用的放置位置集合进行排序来将所述虚拟机实例迁移至所述第二主机计算机***,所述对在所述一个或多个主机计算机***内的可用的放置位置集合进行排序至少部分地基于所述可用的放置位置是否满足所述可任选地指定的硬件偏好。
12.如权利要求8所述的计算机***,其中由于在满足所述可任选地指定的硬件偏好的主机计算机***的集合中缺乏用于所述虚拟机实例的容量,所述虚拟机实例在与所述可任选地指定的硬件偏好不相符的所述第一主机计算机***内被实例化。
13.如权利要求8所述的计算机***,其中在无需重新启动所述虚拟机实例的情况下,将所述虚拟机实例从所述第一主机计算机***迁移至所述第二主机计算机***。
14.如权利要求8所述的计算机***,其中由于提供另一个虚拟机实例的请求需要不可用的一个或多个组件,因而所述管理子***还被配置来拒绝所述请求。
15.如权利要求8所述的计算机***,其中:
在重新启动所述虚拟机实例期间使迁移所述虚拟机实例发生。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/959,550 | 2013-08-05 | ||
US13/959,550 US9870268B2 (en) | 2013-08-05 | 2013-08-05 | Virtual computing instance migration |
PCT/US2014/049476 WO2015020909A2 (en) | 2013-08-05 | 2014-08-01 | Virtual computing instance migration |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105493045A true CN105493045A (zh) | 2016-04-13 |
Family
ID=52428919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480048354.1A Pending CN105493045A (zh) | 2013-08-05 | 2014-08-01 | 虚拟计算实例迁移 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9870268B2 (zh) |
EP (1) | EP3030966B1 (zh) |
JP (1) | JP6258494B2 (zh) |
CN (1) | CN105493045A (zh) |
CA (1) | CA2919839C (zh) |
SG (1) | SG11201600694WA (zh) |
WO (1) | WO2015020909A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110383246A (zh) * | 2016-09-30 | 2019-10-25 | 亚马逊技术有限公司 | 虚拟机控制可编程硬件的单独子集 |
CN113939803A (zh) * | 2019-06-03 | 2022-01-14 | 亚马逊技术股份有限公司 | 用于专用主机的管理计算资源放置即服务 |
US11704459B2 (en) | 2016-09-29 | 2023-07-18 | Amazon Technologies, Inc. | Logic repository service |
US11863406B2 (en) | 2016-11-17 | 2024-01-02 | Amazon Technologies, Inc. | Networked programmable logic service provider |
US11956220B2 (en) | 2016-09-29 | 2024-04-09 | Amazon Technologies, Inc. | Logic repository service using encrypted configuration data |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150066860A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for utilizing virtual machine instance information from a database for software defined cloud recovery |
US20150067678A1 (en) * | 2013-08-27 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for isolating virtual machine instances in the real time event stream from a tenant data center |
US20150067679A1 (en) * | 2013-08-28 | 2015-03-05 | Connectloud, Inc. | Method and apparatus for software defined cloud workflow recovery |
US9876730B1 (en) * | 2013-08-30 | 2018-01-23 | Amazon Technologies, Inc. | Virtualized instance selection |
US9110699B2 (en) * | 2013-09-19 | 2015-08-18 | International Business Machines Corporation | Determining optimal methods for creating virtual machines |
US9817683B2 (en) * | 2014-01-10 | 2017-11-14 | Dell Products, Lp | Optimized remediation policy in a virtualized environment |
KR102193012B1 (ko) * | 2014-02-04 | 2020-12-18 | 삼성전자주식회사 | 분산 처리 시스템 및 이의 동작 방법 |
US9705778B2 (en) * | 2014-03-06 | 2017-07-11 | International Business Machines Corporation | Deploying operators of a streaming application based on physical location attributes of a virtual machine |
US10476809B1 (en) * | 2014-03-12 | 2019-11-12 | Amazon Technologies, Inc. | Moving virtual machines using migration profiles |
US9535735B2 (en) * | 2014-06-09 | 2017-01-03 | International Business Machines Corporation | Adaptive virtual machine request approver |
US9647889B1 (en) | 2014-11-12 | 2017-05-09 | Amazon Technologies, Inc. | Standby instances for auto-scaling groups |
US10411960B1 (en) * | 2014-11-12 | 2019-09-10 | Amazon Technologies, Inc. | Detaching instances from auto-scaling group |
US9329907B1 (en) * | 2014-12-18 | 2016-05-03 | International Business Machines Corporation | Automated exploitation of virtual machine resource modifications |
JP6378847B2 (ja) * | 2015-02-03 | 2018-08-22 | 華為技術有限公司Huawei Technologies Co.,Ltd. | ネットワーク・ファイル・システムにおいてi/o要求を処理するための方法及び装置 |
EP3269088B1 (en) * | 2015-03-13 | 2022-05-18 | Koninklijke KPN N.V. | Method, computer program, network function control system, service data and record carrier, for controlling provisioning of a service in a network |
WO2016154785A1 (zh) * | 2015-03-27 | 2016-10-06 | 华为技术有限公司 | 一种云平台、运行应用的方法及接入网单元 |
CN111404992B (zh) * | 2015-06-12 | 2023-06-27 | 微软技术许可有限责任公司 | 承租人控制的云更新 |
US10970110B1 (en) * | 2015-06-25 | 2021-04-06 | Amazon Technologies, Inc. | Managed orchestration of virtual machine instance migration |
US10228969B1 (en) * | 2015-06-25 | 2019-03-12 | Amazon Technologies, Inc. | Optimistic locking in virtual machine instance migration |
US20170093966A1 (en) * | 2015-09-28 | 2017-03-30 | International Business Machines Corporation | Managing a shared pool of configurable computing resources having an arrangement of a set of dynamically-assigned resources |
US9678857B1 (en) * | 2015-11-30 | 2017-06-13 | International Business Machines Corporation | Listing optimal machine instances |
US10412191B1 (en) * | 2016-03-30 | 2019-09-10 | Amazon Technologies, Inc. | Hardware validation |
US10152357B1 (en) * | 2016-05-02 | 2018-12-11 | EMC IP Holding Company LLC | Monitoring application workloads scheduled on heterogeneous elements of information technology infrastructure |
WO2018014933A1 (en) * | 2016-07-18 | 2018-01-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Allocating vnfc instances with anti affinity rule to hosts |
US11362936B2 (en) * | 2016-07-19 | 2022-06-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Datapath provision in software defined networks |
US10833969B2 (en) * | 2016-07-22 | 2020-11-10 | Intel Corporation | Methods and apparatus for composite node malleability for disaggregated architectures |
US10346191B2 (en) * | 2016-12-02 | 2019-07-09 | Wmware, Inc. | System and method for managing size of clusters in a computing environment |
US11080041B1 (en) * | 2017-03-30 | 2021-08-03 | Amazon Technologies, Inc. | Operating system management for virtual workspaces |
WO2019060663A1 (en) | 2017-09-21 | 2019-03-28 | Oracle International Corporation | SYSTEMS AND METHODS FOR UPDATING MULTI-LEVEL APPLICATION BATTERIES IN A CLOUD ENVIRONMENT |
US10673716B1 (en) | 2017-10-31 | 2020-06-02 | Amazon Technologies, Inc. | Graph-based generation of dependency-adherent execution plans for data center migrations |
US10601924B2 (en) * | 2017-11-06 | 2020-03-24 | Abb Schweiz Ag | Method for remote support of electric drive apparatus |
US10684894B2 (en) * | 2017-11-10 | 2020-06-16 | Amazon Technologies, Inc. | Capacity management in provider networks using dynamic host device instance model reconfigurations |
US10990485B2 (en) * | 2018-02-09 | 2021-04-27 | Acronis International Gmbh | System and method for fast disaster recovery |
US11194608B2 (en) | 2018-05-22 | 2021-12-07 | Vmware, Inc. | Virtual infrastructure platform mobility |
US11074134B2 (en) * | 2018-08-23 | 2021-07-27 | International Business Machines Corporation | Space management for snapshots of execution images |
US11436524B2 (en) * | 2018-09-28 | 2022-09-06 | Amazon Technologies, Inc. | Hosting machine learning models |
US11562288B2 (en) | 2018-09-28 | 2023-01-24 | Amazon Technologies, Inc. | Pre-warming scheme to load machine learning models |
US11086686B2 (en) * | 2018-09-28 | 2021-08-10 | International Business Machines Corporation | Dynamic logical partition provisioning |
US10860363B1 (en) * | 2019-03-14 | 2020-12-08 | Amazon Technologies, Inc. | Managing virtual machine hibernation state incompatibility with underlying host configurations |
US11438151B2 (en) * | 2019-04-03 | 2022-09-06 | Cisco Technology, Inc. | Enriching local cryptoprocessor queries with sdn augmented information |
US10901773B2 (en) | 2019-04-11 | 2021-01-26 | Red Hat, Inc. | Sharing devices between virtual machines in view of power state information |
US11385972B2 (en) * | 2019-06-26 | 2022-07-12 | Vmware, Inc. | Virtual-machine-specific failover protection |
US11461109B1 (en) * | 2019-11-20 | 2022-10-04 | Amazon Technologies, Inc. | Quick restart using virtualized resource migration |
US11249790B1 (en) * | 2020-03-11 | 2022-02-15 | Amazon Technologies, Inc. | Scheduling usage of oversubscribed computing resources |
US10958523B1 (en) | 2020-07-28 | 2021-03-23 | Bank Of America Corporation | Consistent deployment of monitoring configurations on multiple computing systems |
US11188437B1 (en) | 2020-07-30 | 2021-11-30 | Bank Of America Corporation | Remote deployment of monitoring agents on computing systems |
US11609831B2 (en) * | 2021-02-19 | 2023-03-21 | Nutanix, Inc. | Virtual machine configuration update technique in a disaster recovery environment |
US20240192965A1 (en) * | 2022-12-13 | 2024-06-13 | Ati Technologies Ulc | Continuity of service for virtualized device after resumption from hibernation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567072A (zh) * | 2010-12-20 | 2012-07-11 | ***通信集团公司 | 一种资源分配方法、装置及*** |
CN102934087A (zh) * | 2010-05-20 | 2013-02-13 | 国际商业机器公司 | 当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334228B2 (en) * | 2001-07-27 | 2008-02-19 | International Business Machines Corporation | Runtime-resource management |
US7392302B2 (en) | 2002-02-21 | 2008-06-24 | Bea Systems, Inc. | Systems and methods for automated service migration |
US7313793B2 (en) * | 2002-07-11 | 2007-12-25 | Microsoft Corporation | Method for forking or migrating a virtual machine |
US9329905B2 (en) | 2004-10-15 | 2016-05-03 | Emc Corporation | Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine |
JP2008276320A (ja) | 2007-04-25 | 2008-11-13 | Nec Corp | 仮想システム制御方法およびコンピュータシステム |
US8806480B2 (en) | 2007-06-29 | 2014-08-12 | Microsoft Corporation | Virtual machine smart migration |
JP5256744B2 (ja) | 2008-01-16 | 2013-08-07 | 日本電気株式会社 | 資源割当てシステム、資源割当て方法及びプログラム |
US9842004B2 (en) * | 2008-08-22 | 2017-12-12 | Red Hat, Inc. | Adjusting resource usage for cloud-based networks |
US8266618B2 (en) * | 2008-11-21 | 2012-09-11 | International Business Machines Corporation | Graphics hardware resource usage in a fully virtualized computing environment |
KR101489466B1 (ko) | 2008-12-17 | 2015-02-03 | 삼성전자 주식회사 | 프로세스 마이그레이션을 관리하는 장치 및 방법 |
US8321862B2 (en) | 2009-03-20 | 2012-11-27 | Oracle America, Inc. | System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy |
US9329886B2 (en) | 2010-12-10 | 2016-05-03 | Amazon Technologies, Inc. | Virtual machine morphing for heterogeneous migration environments |
US8943564B2 (en) | 2011-07-21 | 2015-01-27 | International Business Machines Corporation | Virtual computer and service |
US9858125B2 (en) * | 2011-09-20 | 2018-01-02 | Infosys Limited | System and method for optimizing migration of virtual machines among physical machines |
US8756601B2 (en) | 2011-09-23 | 2014-06-17 | Qualcomm Incorporated | Memory coherency acceleration via virtual machine migration |
US8832239B2 (en) | 2011-09-26 | 2014-09-09 | International Business Machines Corporation | System, method and program product for optimizing virtual machine placement and configuration |
US9104461B2 (en) * | 2012-06-15 | 2015-08-11 | Oracle International Corporation | Hypervisor-based management and migration of services executing within virtual environments based on service dependencies and hardware requirements |
-
2013
- 2013-08-05 US US13/959,550 patent/US9870268B2/en active Active
-
2014
- 2014-08-01 WO PCT/US2014/049476 patent/WO2015020909A2/en active Application Filing
- 2014-08-01 EP EP14834051.6A patent/EP3030966B1/en active Active
- 2014-08-01 JP JP2016533347A patent/JP6258494B2/ja active Active
- 2014-08-01 CN CN201480048354.1A patent/CN105493045A/zh active Pending
- 2014-08-01 CA CA2919839A patent/CA2919839C/en active Active
- 2014-08-01 SG SG11201600694WA patent/SG11201600694WA/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102934087A (zh) * | 2010-05-20 | 2013-02-13 | 国际商业机器公司 | 当侦测到退化网络链路操作时在网络服务器之间迁移虚拟机 |
CN102567072A (zh) * | 2010-12-20 | 2012-07-11 | ***通信集团公司 | 一种资源分配方法、装置及*** |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704459B2 (en) | 2016-09-29 | 2023-07-18 | Amazon Technologies, Inc. | Logic repository service |
US11956220B2 (en) | 2016-09-29 | 2024-04-09 | Amazon Technologies, Inc. | Logic repository service using encrypted configuration data |
CN110383246A (zh) * | 2016-09-30 | 2019-10-25 | 亚马逊技术有限公司 | 虚拟机控制可编程硬件的单独子集 |
US11863406B2 (en) | 2016-11-17 | 2024-01-02 | Amazon Technologies, Inc. | Networked programmable logic service provider |
CN113939803A (zh) * | 2019-06-03 | 2022-01-14 | 亚马逊技术股份有限公司 | 用于专用主机的管理计算资源放置即服务 |
CN113939803B (zh) * | 2019-06-03 | 2023-01-13 | 亚马逊技术股份有限公司 | 用于专用主机的管理计算资源放置即服务 |
Also Published As
Publication number | Publication date |
---|---|
WO2015020909A2 (en) | 2015-02-12 |
US9870268B2 (en) | 2018-01-16 |
US20150040127A1 (en) | 2015-02-05 |
EP3030966A2 (en) | 2016-06-15 |
EP3030966A4 (en) | 2018-05-02 |
WO2015020909A3 (en) | 2015-11-05 |
CA2919839A1 (en) | 2015-02-12 |
EP3030966B1 (en) | 2020-10-14 |
JP6258494B2 (ja) | 2018-01-10 |
SG11201600694WA (en) | 2016-02-26 |
CA2919839C (en) | 2022-04-12 |
JP2016527648A (ja) | 2016-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105493045A (zh) | 虚拟计算实例迁移 | |
US11032140B2 (en) | Using a template to update a stack of resources | |
RU2628902C2 (ru) | Механизм координации для выбора облака | |
US8533261B2 (en) | Extensible and programmable multi-tenant service architecture | |
US10564960B2 (en) | Elastic application framework for deploying software | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
US8838679B2 (en) | Providing state service for online application users | |
US8738645B1 (en) | Parallel processing framework | |
US10164896B2 (en) | Cloud-based content management system | |
US9800659B2 (en) | Enterprise peer-to-peer storage and method of managing peer network storage | |
US20090234880A1 (en) | Remote storage and management of binary object data | |
CN103198090A (zh) | 用于优化虚拟桌面环境中的存储分配的方法和*** | |
CN103582885A (zh) | 基于网络的数字数据仓库的管理 | |
CN104995598A (zh) | 用于访问控制的自由形式元数据的用途 | |
US20210232420A1 (en) | Restoring the state of paused virtual machine environments with external attached volumes | |
CN110023901A (zh) | 用于更新基于云的多层应用栈的***和方法 | |
US20200278975A1 (en) | Searching data on a synchronization data stream | |
US11726961B2 (en) | Dynamically updating distributed content objects | |
US11882154B2 (en) | Template representation of security resources | |
KR101638689B1 (ko) | 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템 | |
US9858355B1 (en) | Search engine optimization based upon most popular search history | |
CN114996577A (zh) | 服务管理方法、装置、设备、存储介质和程序产品 | |
CN117519964B (zh) | 数据库资源管理方法和***、电子设备及存储介质 | |
US9727378B2 (en) | Persistent unenrollment for devices under management | |
WO2023078003A1 (en) | Optimizing cloud query execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160413 |