使用三角形方法的虚拟机实例迁移与流程

文档序号:14943313发布日期:2018-07-13 21:40

本申请案出于所有目的通过引用并入有2015年6月29日提交的名称为“VIRTUAL MACHINE INSTANCE MIGRATION”的第14/754,497号美国专利申请案(代理人案卷号0097749-512US0)和2016年6月29日提交的名称为“PRESERVING STATE DURING VIRTUAL MACHINE INSTANCE MIGRATION”的第14/754,519号美国专利申请案(代理人案卷号0097749-514US0)的全部公开内容。



背景技术:

现代计算机系统常常实施为共同地在一个或多个主机计算机系统上操作的虚拟计算机系统的集合。虚拟计算机系统可利用主机计算机系统的资源,例如处理器、存储器、网络接口以及存储装置。当特定主机计算机系统的资源由于例如由客户端虚拟计算机系统过度使用而变得缺乏时,将虚拟计算机系统移动到不同的主机计算机系统以避免降低的系统性能、增加的系统中断或故障以及变差的用户体验可变得必要。虚拟计算机系统到不同主机计算机系统的迁移出于其它原因也可能是期望的,例如主机计算机系统的维护、主机计算机系统的硬件升级、用另一主机计算机系统替换所述主机计算机系统、主机计算机系统的故障以及其它原因。

针对将虚拟计算机系统移动或迁移到不同主机计算机系统的问题的一种方法是停止虚拟计算机系统,将虚拟计算机系统的存储器和/或系统状态复制到不同的主机计算机系统,且随后重启虚拟计算机系统。然而,在较大或复杂的虚拟计算机系统的情况下,此迁移过程可花费大量时间,且用户在该时间段期间与虚拟计算机系统交互的能力可被消除或至少被严格限制。另外,一些系统资源,例如附加存储和网络连接,可为易失性的,从而可能使得迁移后的虚拟计算机系统与原始虚拟计算机系统大大不同,进一步出现操作问题。

附图说明

将参考附图描述根据本公开的各种实施方案,其中:

图1说明根据实施方案的虚拟机实例迁移到新位置的示例环境;

图2说明根据实施方案的虚拟机实例的迁移得到管理的示例环境;

图3说明根据实施方案的用于确定在虚拟实例的迁移期间针对输入-输出请求的响应位置的示例过程;

图4说明根据实施方案的块级存储服务在虚拟机实例迁移之前提供对块存储装置的访问的示例环境;

图5说明根据实施方案的块级存储服务在虚拟机实例迁移的开始之后提供对块存储装置的访问的示例环境;

图6说明根据实施方案的块级存储服务在虚拟机实例迁移的关键阶段期间提供对块存储装置的访问的示例环境;

图7说明根据实施方案的块级存储服务在虚拟机实例迁移的完成之后提供对块存储装置的访问的示例环境;

图8说明根据实施方案的使用三角形方法来使用块存储装置执行虚拟机的虚拟机迁移的示例过程;

图9说明根据实施方案的与虚拟机实例迁移相关联的资源得到管理的示例环境;

图10说明根据实施方案的与虚拟机实例迁移相关联的资源得到管理的示例环境;以及

图11说明可实施各种实施方案的环境;

图12说明根据实施方案的与虚拟机实例相关联的块存储装置的状态信息在虚拟机迁移期间得到保持的示例环境;

图13说明根据实施方案的用于在虚拟实例的迁移期间转发状态信息的示例过程;

图14说明根据实施方案的块级存储服务在虚拟机实例迁移之前提供对块存储装置的访问的示例环境;

图15说明根据实施方案的块级存储服务在虚拟机实例迁移的开始之后提供对块存储装置的访问的示例环境;

图16说明根据实施方案的块级存储服务在虚拟机实例迁移的关键阶段期间提供对块存储装置的访问的示例环境;

图17说明根据实施方案的块级存储服务在虚拟机实例迁移的完成之后提供对块存储装置的访问的示例环境;

图18说明根据实施方案的使用三角形方法来使用块存储装置执行虚拟机的虚拟机迁移的示例过程。

具体实施方式

在以下描述中,将描述各种实施方案。出于说明的目的,阐述具体的配置和细节以便提供对实施方案的透彻理解。然而,所属领域的技术人员也将清楚,实施方案可在没有具体细节的情况下实践。此外,众所周知的特征可被省略或简化以免使正描述的实施方案混淆。

本文中描述并提出的技术包括用于在虚拟机实例从源主机计算机系统到目标主机计算机系统的迁移期间管理虚拟计算机系统(在本文中也被称为“虚拟机实例”)的资源的迁移和资源状态的方法、系统以及过程。本文中描述的方法、系统以及过程分阶段管理虚拟机实例资源的迁移,且经配置以减少关键迁移阶段(例如,在迁移中的对虚拟机实例的改变可不利地影响迁移的阶段)的长度和影响。在本文中描述的示例中,通过块级存储服务提供的对块存储装置的访问在虚拟机实例的迁移期间得到管理,使得虚拟机实例的状态和块存储装置的状态不受迁移影响。此类管理改进通过在关键迁移阶段期间管理对资源的访问并通过在迁移期间路由对输入-输出请求的响应使得保持状态来实现。

虚拟机迁移通常可分阶段进行。由于确定运行的虚拟机实例是从源主机计算机系统到合适的目标主机计算机系统的迁移的候选者,所以目标主机计算机系统可首先准备用于迁移。目标位置可至少部分基于运行的虚拟机实例的配置而从可能的候选位置的集合中选择。虚拟机的新实例随后可在目标上以与原始虚拟机实例相同的配置创建,且来自原始虚拟机实例的存储器和状态信息可复制到新虚拟机实例同时原始虚拟机实例继续运行。

在迁移的此阶段期间,与运行的虚拟机实例相关联的资源可被识别,且所述资源到目标位置的迁移可开始。在块存储装置的情况下,在此状态下关键的是开始管理块存储装置的状态。作为这样做为何重要的简单说明,考虑一种情况,其中在运行的虚拟机实例上的过程创建文件(第一输入-输出请求),将第一值写入到所述文件(第二输入-输出请求),将第二值写入到所述文件(第三输入-输出请求),读回所述值(第四输入-输出请求),且随后删除文件(第五输入-输出请求)。在迁移期间,不同的虚拟机实例可处于这五个输入-输出请求的不同阶段,且如果以不正确的次序接收这五个请求中的任何请求,那么可产生非常不同的结果。在病态示例中,文件可在第二请求之前被删除,从而产生错误。

使用本文中描述的技术,当迁移开始时,使用用于管理对块存储装置的访问的三角形方法。使用三角形方法,当从在源位置处的虚拟机实例接收到输入-输出请求时,对那些请求的响应被提供给在目标位置处的虚拟机实例。这维持状态并确保响应的正确排序。在关键迁移阶段期间,通过原始虚拟机实例对块存储装置进行的访问随后可被锁定(即,所有的输入-输出请求可被阻止以确保无另外的改变发生)。关键阶段的一个部分是“翻转”,其中不再使用源虚拟机实例且目标虚拟机变成有效虚拟机。在翻转期间,对原始虚拟机实例的存储器和/或状态的最终改变可传播到新虚拟机实例,使得两个虚拟机实例是相同的,包括任何阻止或待决的输入-输出请求。

如果翻转成功地完成且关键阶段成功地完成,那么新虚拟机实例随后将为可操作的,且通过原始虚拟机实例对块存储装置进行的访问将被终止(例如,通过将租用状态设定为“无效”)。新虚拟机实例随后可具有有效租用,伴有对块存储装置的完全和排他性访问。如果翻转未成功地完成且关键阶段未成功地完成,那么作为错误、取消或某一其它此类事件的结果,原始虚拟机实例将恢复对块存储装置的访问且请求响应将在适合的超时后再发送。

图1说明根据至少一个实施方案的虚拟机实例迁移到新位置的示例环境100。一个或多个虚拟机实例可在通过计算资源服务提供商102提供的主机计算机系统上操作。在图1中说明的示例中,第一虚拟机实例(原始VM实例114)在第一位置中运行(源位置110)。第一位置可为一个或多个主机计算机系统,所述主机计算机系统经配置以将共享硬件提供给虚拟计算机系统服务以用于一个或多个虚拟机实例的实例化。原始VM实例114可为与源位置110相关联的多个虚拟机实例中的一个。与源位置110相关联的多个虚拟机实例中的每一个可处于若干状态中的一个,所述状态例如运行、暂停、挂起(例如,暂停并存储到辅助存储装置)或某一其它状态。在图1中所说明的示例中,原始VM实例114在运行(即,在执行一个或多个操作)。源位置110中的原始VM实例114可在先前已由于先前迁移而从另一位置迁移到源位置110。

在原始VM实例114的操作的过程中,可确定将原始VM实例114从源位置110迁移到目标位置112。对迁移原始VM实例114的确定可由于在源位置110处的资源的可用性的改变(例如,缺少计算能力、缺少存储器或缺少网络带宽)而做出。还可做出对迁移原始VM实例114的确定以将原始VM实例114移动至在逻辑上更加靠近一个或多个计算资源服务提供商资源。对将原始VM实例114从源位置110迁移到目标位置112的确定还可通过针对例如减少与原始VM实例114相关联的一个或多个成本的客户请求做出。对将原始VM实例114从源位置110迁移到目标位置112的确定还可通过联合计算资源服务提供商操作的服务、过程或模块做出,所述计算资源服务提供商可经配置以确定更优位置形式的虚拟机实例。在图1中说明的示例中,目标位置112示出为在计算资源服务提供商102内。在实施方案中,源位置110、目标位置112或两者可在计算资源服务提供商102外部(例如,所述源位置、目标位置可通过客户和/或其它第三方环境提供)。

针对将原始VM实例114从源位置110迁移到目标位置112的请求可通过与计算资源服务提供商102一起操作的迁移管理器104接收。在实施方案中,迁移管理器104实施为服务,所述服务可为通过计算资源服务提供商102提供的多个服务中的一个。迁移管理器104在本文中还可被称为迁移管理器计算机系统,且在一些实施方案中,可实施为分布式计算机系统。

当将原始VM实例114从源位置110迁移到目标位置时,多个系统、服务、过程以及资源可与原始VM实例114通信。这些系统、服务、过程以及资源通常无法保证同时改变其行为,使得这些系统、服务、过程以及资源的通信从在源位置110处的原始VM实例114切换到在目标位置112处的新VM实例116。迁移管理器104可经配置以与多个系统、服务、过程以及资源中的每一个通信以便管理迁移。迁移管理器104可经配置以通过执行包括但不限于以下各项的动作来管理(或精心安排)迁移:确定迁移的恰当次序,管理迁移的工作流,向与迁移相关联的系统、服务、过程以及资源发出命令,确定迁移是否成功,开始和停止虚拟机实例,确定迁移是否已失败,确定迁移是否应取消,以及在错误发生时管理回滚。

在迁移期间,可仅使与迁移相关联的多个系统、服务、过程以及资源中的每一个清楚其迁移部分。迁移管理器104可例如分阶段地管理迁移,且可通过发出API请求、进行库调用、使用接口(例如,web接口)或通过一些其它方式来管理与迁移相关联的多个系统、服务、过程以及资源中的每一个的迁移。迁移的阶段(在本文中还被称为“迁移的当前状态”)可确定例如应用程序设计接口请求等请求是可被允许还是阻止,且还可用于确定迁移是否应被取消。

迁移管理器104还可管理每一阶段和/或每一迁移动作的超时,该每一迁移动作与和该迁移相关联的多个系统、服务、过程以及资源中的每一个相关联,所述超时还可用于确定迁移是否应被取消。例如,例如块级存储服务120等块级存储服务在迁移期间可从迁移管理器104接收API请求,以提供新VM实例116对块存储装置126的访问。作为此访问的部分,块级存储服务可需要同步原始VM实例114与新VM实例116之间的输入-输出(“I/O”)请求。迁移管理器104可建立此同步的超时值,使得例如如果块级存储服务不在合理的时间量中对API请求做出响应,那么迁移可被取消。

当针对将原始VM实例114从源位置110迁移到目标位置112的请求通过与计算资源服务提供商102一起操作的迁移管理器104接收时,一个或多个命令106可通过迁移管理器104响应于所述请求而产生。一个或多个命令106随后可被发送到与计算资源服务提供商102一起操作的系统管理器108。在实施方案中,系统管理器108实施为服务,所述服务可为通过计算资源服务提供商102提供的多个服务中的一个。

可响应于针对迁移的请求而从迁移管理器104发送到系统管理器108的一个或多个命令106可包括:针对配置目标位置以实例化新虚拟机实例的命令、针对在目标位置112处实例化新虚拟机实例的命令、针对将存储器和/或状态从原始VM实例114复制到新VM实例116的命令、针对去激活原始VM实例114的命令、针对激活新VM实例116的命令、针对锁定原始VM实例114或新VM实例116的命令、针对暂停原始VM实例114或新VM实例116的命令、针对取消暂停原始VM实例114或新VM实例116的命令、针对将存储器和/或状态信息从原始VM实例114转发到新VM实例116的命令、针对拆除原始VM实例114的命令、针对终止在源位置110与目标位置112之间的迁移的命令以及与原始VM实例114从源位置110到目标位置112的迁移118相关联的其它此类命令。

原始VM实例114可访问122由块级存储服务120提供的块存储装置126。块级存储服务120可由计算资源服务提供商102提供。原始VM实例114对块存储装置126的访问122可通过块级存储服务120使用租用来配置。在图1中说明的示例中,原始VM实例114对块存储装置126的访问122通过块级存储服务120使用有效租用128来配置,该有效租用128为暂时地提供对块存储装置126的访问以例如允许原始VM实例114发出输入-输出请求并接收对那些输入-输出请求的响应的租用。

新VM实例116还可访问124由块级存储服务120提供的块存储装置126。新VM实例116对块存储装置126的访问124可通过块级存储服务120使用租用来配置。在图1中说明的示例中,新VM实例116对块存储装置126的访问124通过块级存储服务120使用备用租用130(即,具有备用的状态的租用)来配置,所述备用租用130为暂时地提供对块存储装置126的部分访问以例如允许新VM实例116接收对通过例如原始VM实例114使用有效租用128(即,具有有效的状态的租用)产生的输入-输出请求的响应但不允许新VM实例116产生此类请求的租用。

如本文中所使用,一般来说,租用可为对访问例如块存储装置126等计算机系统资源的权利和许可的授予。租用可指定对计算机系统资源的访问(在本文中也被称为“访问策略”或“访问的策略”)。租用可通过服务(例如,块级存储服务120)或通过结合所述服务操作并在一个或多个计算机系统上实施的不同过程、模块、服务、应用或系统提供。块级存储服务120可实施为块级存储服务计算机系统,且可例如为在一个或多个计算机系统上和/或在一个或多个计算机系统环境中操作的分布式计算机系统。租用可指定访问的类型、与所述访问相关联的许可和/或凭证、所述访问的持续时间或与对资源的访问相关联的其它参数。例如,租用可为授予对资源在有限或设定的持续时间上的访问的暂时租用。此类暂时租用的示例为在移动网络上指配网络地址的租用。此类暂时租用通常必须在某一设定的时间段之后更新(手动或自动地)。

租用可通过例如块级存储服务120等服务提供以管理对资源(即,与服务相关联的块存储装置)的访问,并将所述访问提供给客户端,例如其它服务、虚拟机实例、用户(在本文中也称为“客户”)、过程、应用、模块、系统等。租用可通过服务授予客户端(例如,原始VM实例114或新VM实例116),且因此,客户端可在租用的持续时间上访问资源。在实施方案中,租用可为永久的,因为租用可在客户端的整个生命期间授予。

租用的使用还可允许服务通过例如以下操作来管理其自己的资源:使用当前发起的租用的数目和类型来确定系统是否被超额订阅或很有可能在未来被超额订阅。另外,通过按类型(在本文中称为“租用状态”或更简单地称为“状态”)对不同的租用分类,例如块级存储服务120等服务可管理与服务的资源相关联的功能性。

例如,提供给客户端VM实例的块存储装置的有效租用可允许完全访问以将输入-输出请求从客户端VM实例发送到块存储装置,且还可指示对那些请求的所有响应(来自块存储装置)被发送到客户端VM实例。相反地,无效租用为可仍存在但具有受限许可的租用。例如,提供给客户端VM实例的具有无效状态的块存储装置的租用可限制输入-输出请求从客户端VM实例到块存储装置的发送,且可防止对任何先前待决请求的任何响应被发送到客户端VM实例。其它租用状态可存在,包括但不限于,备用租用,所述备用租用可允许将输入-输出请求从客户端VM实例发送到块存储装置,但可指示对那些请求的所有响应(来自块存储装置)被发送到不同的VM实例。

图2说明如图1中所描述且根据至少一个实施方案的虚拟机实例的迁移得到管理的示例环境200。用户202可通过计算机系统客户端装置204连接206到一项或多项服务212。服务212可由计算资源服务提供商210提供。在一些实施方案中,计算资源服务提供商210可提供分布式、虚拟化和/或数据中心环境,在所述环境内,可执行一个或多个应用、过程、服务、虚拟机和/或其它此类计算机系统实体。在一些实施方案中,用户202可为个人,或可为在一个或多个远程计算机系统上运行的过程,或可为某一其它计算机系统实体、用户或过程。

针对连接到计算机系统实例的一个或多个命令可源自外部计算机系统和/或服务器,或可源自在远程网络位置上的实体、用户或过程,或可源自在计算资源服务提供商内的实体、用户或过程,或可源自计算机系统客户端装置204的用户,或可源于自动化过程的结果,或可源于这些和/或其它此类起始实体的组合的结果。在一些实施方案中,针对发起到计算资源服务提供商210的连接206的一个或多个命令可在没有用户202介入的情况下发送到服务212。针对发起到服务212的连接206的一个或多个命令可源自与针对连接到计算资源服务提供商210的一个或多个命令相同的起始,或可源自另一计算机系统和/或服务器,或可源自在相同或不同远程网络位置上的不同实体、用户或过程,或可源自在计算资源服务提供商内的不同实体、用户或过程,或可源自计算机系统客户端装置204的不同用户,或可源于这些和/或其它此类相同和/或不同实体的组合的结果。

用户202可请求经由一个或多个连接206,且在一些实施方案中经由一个或多个网络208和/或与其相关联的实体(例如连接到网络的服务器)直接地或间接地连接到计算资源服务提供商210。可请求访问服务212的计算机系统客户端装置204可包括能够经由网络与计算机系统连接的任何装置,包括至少服务器、膝上型计算机、例如智能手机或平板计算机等移动装置、其它智能装置(例如智能手表、智能电视机、机顶盒、视频游戏控制台以及其它此类网络启用的智能装置)、分布式计算机系统和其部件、例如客户计算机系统或虚拟机等抽象部件和/或其它类型的计算装置和/或部件。网络可包括例如局部网络、内部网络、例如因特网等公共网络、或例如在下文列出或描述的那些网络等其它网络。网络还可根据例如在下文列出或描述的那些协议等各种协议操作。

计算资源服务提供商210可提供对一个或多个主机的访问,以及提供对一个或多个虚拟机(VM)实例的访问,所述虚拟机实例可在所述计算资源服务提供商上操作。通过计算资源服务提供商210提供的服务212还可实施为VM实例和/或可利用一个或多个VM实例,所述VM实例可在主机上操作。例如,计算资源服务提供商210可将多种服务提供给用户202,且用户202可经由一接口(例如web服务接口或任何其它类型的接口)与计算资源服务提供商210通信。虽然图2中说明的示例环境示出针对计算资源服务提供商210的服务212的单一连接或接口,但服务中的每一个可具有其自己的接口,且通常,服务的子集可具有除单一接口外或作为单一接口的替代方案的对应的接口。

计算资源服务提供商210可将各种服务212提供给其用户或客户。通过计算资源服务提供商210提供的服务可包括但可不限于,虚拟计算机系统服务、块级数据存储服务、加密服务、按需数据存储服务、通知服务、验证服务、策略管理服务或其它服务。并非所有描述的实施方案都可包括所有这些服务,且可提供除明确描述的服务外或作为明确描述的服务的替代方案的另外的服务。如上文所描述,服务212中的每一个可包括一个或多个web服务接口,所述web服务接口使得用户202能够通过web服务请求将经适当配置的API请求提交到各种服务。另外,服务212中的每一个可包括一项或多项服务接口,所述服务接口使得服务能够彼此访问(例如,以使得由虚拟计算机系统服务提供的虚拟机实例能够将数据存储在按需数据存储服务中或从按需数据存储服务检索数据,和/或能够对由块级数据存储服务提供的一个或多个块级数据存储装置进行访问)。

在示例中,虚拟计算机系统服务可为计算资源的集合,所述计算资源经配置以代表例如用户202等客户实例化虚拟机实例。客户可(经由经适当配置且验证的API请求)与虚拟计算机系统服务交互以供应并操作虚拟机实例,所述虚拟机实例在通过计算资源服务提供商210托管和操作的物理计算装置上实例化。虚拟计算机系统服务还可经配置以开始虚拟机实例的迁移。虚拟机实例可用于各种目的,例如用作支持网站的服务器、操作商业应用或一般地用作客户的计算能力。虚拟机实例的其它应用可用以支持数据库应用、电子商务应用、商业应用和/或其它应用。

在另一示例中,例如块级存储服务218等块级数据存储服务可包括一个或多个计算资源,所述计算资源共同地操作以使用块存储装置220(和/或其虚拟化)来存储客户的数据。块级数据存储服务的块存储装置可例如操作地附接到通过本文中描述的虚拟计算机系统服务提供以用作计算机系统的逻辑单元(例如,虚拟驱动)的虚拟机实例。块存储装置可实现持久存储由对应虚拟机实例使用/产生的数据,其中虚拟计算机系统服务可仅为虚拟机实例提供短暂的数据存储。在图2中说明的示例中,块级存储服务218经配置以使用第一租用234提供对块存储装置220的访问(即,从原始VM实例216到块存储装置220),且还经配置以使用第二租用236提供对块存储装置220的访问(即,从新VM实例224到块存储装置220)。

在图2中说明的示例中,一项或多项服务212可实施为如上文所描述的一个或多个虚拟机实例,或可通过如上文所描述的一个或多个虚拟机实例支持。例如,一项或多项服务212可包括对用户202可见的原始VM实例216(即,经配置使得用户202可使用原始VM实例216和/或以其它方式与原始VM实例216交互)。原始VM实例216可在第一位置或源位置214处运行,如上文所描述。在接收到针对将原始VM实例216从源位置214迁移到目标位置222的命令后,迁移管理器可指导系统管理器(所述迁移管理器和系统管理器都如结合图1所描述)开始从源位置214到目标位置222的迁移,如上文所描述。迁移可通过在目标位置222处实例化新VM实例224并将存储器和/或状态从原始VM实例216复制到新VM实例224来完成。迁移还可通过将存储器和/或状态改变从原始VM实例216转发226到新VM实例224来完成。例如,如果在迁移期间,用户202在存储器已从原始VM实例216复制到新VM实例224之后更改在原始VM实例216上的所述存储器位置(例如,作为执行应用的结果),那么新存储器值可被转发到新VM实例224。存储器和/或状态改变的此转发226可用以在迁移期间保持新VM实例224与原始VM实例216同步。

如本文中描述,在清除之前的迁移的最后阶段为翻转228。在翻转228期间,原始VM实例216可将一些或全部改变锁定在外,使得用户202和/或与原始VM实例216相关联的其它过程可不更改或改变原始VM实例216。在翻转228期间,原始VM实例216与新VM实例224之间的任何其余差异随后可从原始VM实例216复制到新VM实例224。

如果翻转228成功,那么从服务212到原始VM实例216的连接230可由从服务212到新VM实例224的连接232替换,使得从用户的角度来看,返回的VM实例呈现为与迁移之前相同(因为例如新VM实例224可基本上与原始VM实例216相同)。如果翻转228成功,那么迁移可进入成功阶段(在本文中也被称为“迁移成功”阶段),其中另外的处理可响应于成功的迁移而进行。相反地,如果翻转不成功,那么从服务212到原始VM实例216的连接230可被保持,使得从用户的角度来看,返回的VM实例呈现为与尝试的迁移之前相同(因为VM实例尚未改变)。如果翻转228不成功,那么迁移可进入失败阶段(在本文中也被称为“迁移失败”阶段),其中另外的处理可响应于失败的迁移而进行。因此,不管迁移是否成功(例如,由于失败或取消),用户都可仍察觉到相同的系统状态,且可将原始VM实例216和新VM实例224视为相同的。

在实施方案中,迁移管理器可通过比较原始VM实例216的状态与新VM实例224的状态来确定翻转是否成功。原始VM实例216的状态可在原始VM实例216被锁定之后确定,且可由于可在原始VM实例216收敛时发生的改变而更新。新VM实例224的状态可在翻转已完成之后且在所有改变已从原始VM实例216转发到新VM实例224之后(例如,还在原始VM实例216收敛之后)确定。如果原始VM实例216的状态与新VM实例224的状态之间的差值在最小成功阈值之下(即,差值是微小的、无关紧要的或不重要的),那么翻转为成功的。相反地,如果原始VM实例216的状态与新VM实例224的状态之间的差值在最小成功阈值之上(即,差值是主要、重大的或重要的),那么翻转为失败。注意,当迁移被取消时或当请求被阻止时,所述差异可在最小成功阈值之上且翻转可为失败。

图3说明如图1中所描述的且根据至少一个实施方案的用于确定在虚拟实例的迁移期间针对输入-输出请求的响应位置的示例过程300。块级存储服务,例如结合图1描述的块级存储服务120,可执行图3中说明的过程。

块级存储服务可首先从在源位置处的虚拟机实例接收302输入-输出请求。输入-输出请求可与通过块级存储服务提供的块存储装置相关联,且可与块存储装置的租用(即,凭证的一个或多个集合和/或凭证的暂时集合)相关联,所述块存储装置可通过块级存储服务提供。如果确定虚拟机实例不在从源位置迁移304到目标位置(例如,从源计算装置到目的地计算装置)的过程中,那么可将响应发送到请求的发起者,所述发起者在此情况下为在源位置处的虚拟机实例。

如果确定虚拟机实例在从源位置迁移304到目标位置的过程中,那么接着可确定308迁移是否在关键阶段处,其中两个虚拟机实例应被锁定且所有变化被阻止或入队,直到关键阶段完成。如果不确定308迁移在关键阶段处,那么可将响应发送到在目标位置处的虚拟机实例310,以便保持迁移后的虚拟机的状态。相反地,如果确定308迁移在关键阶段处,那么块级存储服务可在继续之前等待关键阶段结束312。

在关键阶段结束314之后,可接着确定虚拟机实例的迁移是否成功316。如果是,那么在目标位置处的虚拟机实例为新有效虚拟机实例且可将响应发送到在目标位置处的虚拟机实例310。如果否,那么在源位置处的虚拟机实例仍为有效虚拟机实例。块级存储装置可首先清除迁移的任何部分318,且可将响应发送320到请求的发起者,所述发起者在此情况下为在源位置处的虚拟机实例。

图4说明如结合图1所描述且根据至少一个实施方案的块级存储服务在虚拟机实例迁移之前提供对块存储装置的访问的示例环境400。在迁移之前,原始VM实例406可在源位置404处运行,伴随有对通过块级存储服务408提供的块存储装置402的访问。经配置以提供原始VM实例406对块存储装置402的访问的租用410由块级存储服务408提供。在图4中说明的示例中,租用410为有效租用,且从原始VM实例406接收到的输入-输出请求具有产生并发送到在源位置404处的原始VM实例406的响应。如本文中描述,有效租用410可被暂时地提供给原始VM实例且可通过块级存储服务408管理。

图5说明如结合图1所描述且根据至少一个实施方案的块级存储服务在虚拟机实例迁移的开始之后提供对块存储装置的访问的示例环境500。在迁移的开始之后,原始VM实例506可在源位置504处运行,伴随有对通过块级存储服务508提供的块存储装置502的访问,如上文所描述。经配置以提供原始VM实例506对块存储装置502的访问的有效租用510由块级存储服务508提供,还如上文所描述。

由于迁移已开始,新VM实例514可在目标位置512中运行,伴随有对通过块级存储服务508提供的块存储装置502的访问,如上文所描述。新VM实例514对块存储装置502的访问可使用备用租用516提供。备用租用516可经配置以在迁移期间提供对块存储装置502的部分访问。例如,备用租用516可经配置使得新VM实例514可不产生针对块存储装置502的输入-输出请求,但可接收对其它VM实例(例如,原始VM实例506)产生的输入-输出请求的响应。有效租用510和备用租用516中的一个或两个可被暂时地提供给相应的VM实例且可通过块级存储服务508管理。在图5中说明的示例中,有效租用510经配置使得原始VM实例506可产生针对块存储装置502的输入-输出请求,且备用租用516经配置使得对针对块存储装置502的那些输入-输出请求的响应被提供给新VM实例514。

图6说明如结合图1所描述且根据至少一个实施方案的块级存储服务在虚拟机实例迁移的关键阶段期间提供对块存储装置的访问的示例环境600。当迁移到达关键阶段时,原始VM实例606可在源位置604处运行。从原始VM实例606到通过块级存储服务608提供的块存储装置602的租用可为无效租用610。无效租用610可经配置以防止原始VM实例606对块存储装置602的访问,因为在虚拟机实例迁移的关键阶段期间,来自原始VM实例的输入-输出请求可被阻止以避免同步问题,且对先前提交的输入-输出请求的响应也可被阻止以避免同步问题。在实施方案中,无效租用表示用于清除或其它此类管理目的的先前和/或到期租用,但所述租用不经配置以将任何输入-输出请求发送到VM实例或从VM实例接收任何输入-输出请求。

另外,由于迁移已到达关键阶段,新VM实例614可在目标位置612中运行,伴随有对通过块级存储服务608提供的块存储装置602的访问,如上文所描述。新VM实例614对块存储装置602的访问可使用如结合图5描述的备用租用提供,或可使用如图6中说明的有效租用616提供。结合图5描述的备用租用可经配置以在迁移的关键阶段期间提供对块存储装置602的部分访问,且有效租用616可经配置以在迁移的关键阶段期间提供对块存储装置602的完全访问。

例如,有效租用616可经配置使得新VM实例614可产生针对块存储装置602的输入-输出请求,且可接收对那些输入-输出请求的响应。所述响应还可已作为通过例如原始VM实例606产生的输入-输出请求的结果而产生,其中此类输入-输出请求在提供给原始VM实例606的租用变成无效租用610之前产生。如先前所描述,无效租用610和有效租用616中的一个或两个可被暂时地提供给相应的VM实例且可通过块级存储服务608管理。

图7说明如结合图1所描述且根据至少一个实施方案的块级存储服务在虚拟机实例迁移的完成之后提供对块存储装置的访问的示例环境700。在迁移之后,新VM实例706可在目标位置704处运行,伴随有对通过块级存储服务708提供的块存储装置702的访问。经配置以提供新VM实例706对块存储装置702的访问的租用710由块级存储服务708提供。在图7中说明的示例中,租用710为有效租用,且从新VM实例706接收到的输入-输出请求可具有产生并发送到在目标位置704处的新VM实例706的响应。如本文中描述,有效租用710可被暂时地提供给新VM实例706且可通过块级存储服务708管理。

图8说明如图1中所描述且根据至少一个实施方案的使用三角形方法来使用块存储装置执行虚拟机的虚拟机迁移的示例过程800。块级存储服务,例如结合图1描述的块级存储服务120,可执行图8中说明的过程。

块级存储服务(其可实施为在由计算资源服务提供商提供的一个或多个计算机系统上的服务和/或分布式服务)可将块存储装置的第一租用提供802给在源位置处运行的第一虚拟机实例,所述源位置例如通过计算资源服务提供商提供的计算装置。第一租用,即有效租用,可提供凭证的第一集合以允许虚拟机实例访问块存储装置。

在接收到虚拟机实例开始从源位置到目标位置(例如,通过计算资源服务提供商提供的不同计算装置)迁移的指示符804之后,块级存储服务可将块存储装置的第二租用提供806到在目标位置处运行的第二虚拟机实例,所述目标位置例如通过计算资源服务提供商提供的计算装置。第二租用,即备用租用,可提供凭证的第二集合以允许第二虚拟机实例访问块存储装置。备用租用可允许对块存储装置的仅部分访问。例如,在备用租用之下,虚拟机实例可仅接收对输入-输出请求的响应,但可不具有用以产生此类请求的凭证。

随着迁移的进行,块级存储服务可至少部分基于迁移进展指示符(在本文中也被称为“迁移的进展的指示符”)来更新第一租用的状态808,且还可至少部分基于迁移进展指示符来更新第二租用的状态810。例如,迁移进展指示符可指示迁移已到达关键阶段,且因此,第一租用和第二租用可变得无效和/或可进入备用状态。迁移进展指示符还可指示迁移已成功,且因此,第一租用可变得无效而第二租用变得有效。类似地,迁移进展指示符可指示迁移已失败,且因此,第一租用可变得有效而第二租用变得无效。如可预期,本文中描述的租用状态和迁移进展指示符仅为说明性示例,且由此,其它租用状态或迁移进展指示符可被认为在本公开的范围内。

最后,作为租用状态和/或迁移进展指示符改变的结果,块级存储服务可确定812响应的响应位置并可将响应发送814到响应位置。在一些实施方案中为多个位置的响应位置为应将对输入-输出请求的响应发送到的位置。例如,在迁移之前,响应位置可为源位置,因为在迁移之前发送的输入-输出请求应被发送到请求的发起者。相反地,在迁移期间,响应位置可为目标位置,因为在输入-输出请求被在源位置处的虚拟机实例发送时,响应应被发送到在目标位置处的虚拟机实例,使得块存储装置的一致状态得到维持。

图9说明如在图1中所描述且根据至少一个实施方案的与虚拟机实例迁移相关联的资源得到管理的示例环境900。示例环境900表示迁移的开始部分,例如本文中描述的迁移。用户可对通过在源位置904处的原始VM实例906支持的虚拟机抽象902进行访问。原始VM实例906可包括网络接口908和一个或多个存储装置910,例如本文中描述的块存储装置。在迁移期间,用户可对通过在源位置914处的原始VM实例916支持的虚拟机抽象912进行相同访问。原始VM实例916可仍包括网络接口918和一个或多个存储位置920,但网络接口918可由在目标位置926处的新VM实例928共享和/或可被复制为新网络接口924。另外,对一个或多个存储位置920的访问可通过块级存储服务使用一个或多个租用来管理。另外,一个或多个存储位置920可在原始VM实例916与新VM实例928之间共享。在迁移期间,存储器和/或状态信息可被从原始VM实例916复制并转发922到新VM实例928。

图10说明如在图1中所描述且根据至少一个实施方案的与虚拟机实例迁移相关联的资源得到管理的示例环境1000。示例环境1000表示迁移的第二部分,例如本文中描述的迁移。用户可对虚拟机抽象1002进行访问,但因为迁移即将完成,所以虚拟机抽象1002可通过在目标位置1018处的新VM实例1020支持。新VM实例1020可具有网络接口1022和对一个或多个存储位置1012的访问1024。对一个或多个存储位置1012的访问可通过块级存储服务使用一个或多个租用来管理。同时,在源位置1004处的原始VM实例1006可在用例如无效租用拆除的过程中。例如,到网络接口1008的连接1010可被终止,到一个或多个存储位置1012的连接1014可被去除或标记为无效,且从原始VM实例到新VM实例的包转发1016可在原始VM实例1006已收敛之后停止。

在成功的迁移之后,用户可对通过在目标位置1028处的新VM实例1030支持的虚拟机抽象1026进行访问。除了不同的位置,此新VM实例1030应呈现为与结合图9描述的原始VM实例906相同,伴随有网络接口1034和对一个或多个存储位置1032的访问。

图11说明根据各种实施方案的用于实施各方面的示例环境1100的各方面。如应了解,尽管出于说明的目的使用基于web的环境,但在适合时可使用不同的环境来实施各种实施方案。所述环境包括电子客户端装置1102,所述电子客户端装置可包括任何适合的装置,所述装置可用于经由适合的网络1104发送和/或接收请求、消息或信息,且在一些实施方案中,将信息传送回到装置的用户。此类客户端装置的示例包括个人计算机、手机、手持式消息传送装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络可包括任何适合的网络,包括内联网、因特网、蜂窝网络、局域网、卫星网络或任何其它此类网络和/或其组合。用于此系统的部件可至少部分取决于所选择的网络和/或环境的类型。用于经由此网络进行通信的协议和部件是众所周知的且将不在本文中详细论述。经由网络的通信可通过有线或无线连接和其组合实现。在此示例中,网络包括因特网,因为环境包括用于接收请求并响应于所述请求而提供内容的web服务器1106,但对于其它网络,可使用用于类似目的的替代装置,如所属领域的技术人员将清楚。

说明性环境包括至少一个应用服务器1108和数据存储区1110。应理解,可存在若干个应用服务器、层或其它元件、过程或部件,所述应用服务器、层或其它元件、过程或部件可被链接或以其它方式配置,所述应用服务器、层或其它元件、过程或部件可交互以执行任务,例如从适合的数据存储区获得数据。如本文中所使用,服务器可以各种方式实施,例如硬件装置或虚拟计算机系统。在一些上下文中,服务器可指代在计算机系统上执行的编程模块。如本文中所使用,除非另外陈述或通过上下文清楚,否则术语“数据存储区”是指能够存储、访问并检索数据的任何装置或装置的组合,所述装置或装置的组合可包括在任何标准、分布式、虚拟或群集的环境中的任何组合和任何数目的数据服务器、数据库、数据存储装置以及数据存储介质。应用服务器可包括任何适合的硬件、软件以及固件,所述硬件、软件以及固件用于按需要与数据存储区集成以执行客户端装置的一个或多个应用的方面、处理应用的数据访问和业务逻辑中的一些或全部。应用服务器可与数据存储区协作而提供访问控制服务,且能够产生包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供给用户的其它内容,所述内容可通过web服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、层叠样式表(“CSS”)或另一适合的客户端侧结构化语言的形式提供给用户。传送到客户端装置的内容可通过客户端装置处理从而以一个或多个形式提供内容,所述形式包括但不限于,用户可以听觉方式、以视觉方式和/或通过包括触摸、品尝和/或闻的其它感觉来感知的形式。所有请求和响应的处理、以及在客户端装置1102与应用服务器1108之间的内容的传递可通过web服务器使用以下各项来处理:PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML或在此示例中另一适合的服务器侧结构化语言。应理解,web和应用服务器不是必要的且仅为示例部件,因为本文中所论述的结构化代码可在任何适合的装置或如本文中在其它地方论述的主机上执行。另外,除非另外从上下文清楚,否则在本文中描述为通过单一装置执行的操作可通过多个装置共同地执行,所述多个装置可形成分布式和/或虚拟系统。

数据存储区1110可包括若干单独的数据表、数据库、数据文档、动态数据存储方案和/或其它数据存储机制,以及用于存储涉及本公开的特定方面的数据的介质。例如,所说明的数据存储区可包括用于存储生产数据1112和用户信息1116的机制,所述生产数据和用户信息可用于提供生产侧的内容。数据存储区还示出为包括用于存储日志数据1114的机制,所述日志数据可用于报告、分析或其它此类目的。应理解,可存在可需要被存储在数据存储区中的许多其它方面,例如页面图像信息和访问权利信息,所述其它方面可在适合时用以上列出的机制中的任何机制存储或用另外的机制存储在数据存储区1110中。数据存储区1110通过与其相关联的逻辑可用于从应用服务器1108接收指令,并响应于所述指令而获得、更新或以其它方式处理数据。应用服务器1108可响应于接收到的指令而提供静态、动态或静态和动态数据的组合。动态数据,例如在web日志(博客)、购物应用、新闻服务以及其它此类应用中使用的数据,可通过如本文中描述的服务器侧结构化语言产生,或可通过在应用服务器上操作或在应用服务器的控制下操作的内容管理系统(“CMS”)提供。在一个示例中,通过由用户操作的装置,用户可提交某一类型的项目的搜索请求。在此情况下,数据存储区可访问用户信息以验证用户的身份且可访问目录详细信息以获得关于所述类型的项目的信息。所述信息随后可被返回到用户,例如在用户能够经由用户装置1102上的浏览器浏览的网页上的结果列表中。所关注的特定项目的信息可在浏览器的专用页面或窗口浏览到。然而,应注意,本公开的实施方案未必限于网页的内容,而是可更一般地适用于一般地处理请求,其中请求未必是针对内容的请求。

每一服务器通常将包括操作系统,所述操作系统提供可执行程序指令以用于所述服务器的一般管理和操作,且所述服务器通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时允许服务器执行其既定功能。服务器的操作系统和一般功能性的合适的实现方式是已知的或可商购的,且由所属领域的技术人员特别鉴于本文中的公开内容容易地实施。

在一个实施方案中,环境为利用若干计算机系统和部件的分布式和/或虚拟计算环境,所述计算机系统和部件经由通信链路使用一个或多个计算机网络或直接连接来互连。然而,所属领域的技术人员应了解,此系统在具有比图11中所说明的部件更少或更多部件的系统中可同样良好地操作。因此,图11中的系统1100的描绘应被认为实质上为说明性的而非对本公开的范围的限制。

本文中描述并提出的技术包括,在虚拟机实例从源主机计算机系统到目标主机计算机系统的迁移期间,管理虚拟计算机系统(在本文中也被称为“虚拟机实例”)的资源迁移和资源状态的方法、系统以及过程。本文中描述的方法、系统以及过程基于迁移阶段来管理与虚拟机实例资源相关联的一个或多个状态的迁移,所述迁移阶段经配置以减少关键迁移阶段(例如,在迁移中的对虚拟机实例的改变可不利地影响迁移的阶段)的长度和影响。在本文中描述的示例中,对通过块级存储服务提供的块存储装置的访问在虚拟机实例的迁移期间得到管理,使得虚拟机实例的状态和块存储装置的状态不受迁移不利地影响。通过在关键迁移阶段期间管理对资源的访问并通过在迁移期间复制和/或维持状态信息使得保持此类状态,来实现此类管理改进。

虚拟机迁移可分阶段进行。由于确定运行的虚拟机实例很可能是从源主机计算机系统迁移到合适的目标主机计算机系统的候选者,所以目标主机计算机系统可首先准备用于迁移。目标位置可至少部分基于运行的虚拟机实例的配置而从可能的候选位置的集合选择。虚拟机的新实例随后可在目标上以与原始虚拟机实例相同的配置创建,且来自原始虚拟机实例的存储器和状态信息可复制到新虚拟机实例同时原始虚拟机实例继续运行。

在迁移的此阶段期间,与运行的虚拟机实例相关联的资源可被识别,且所述资源到目标位置的迁移可开始。在块存储装置的情况下,关键的是开始管理块存储装置的状态。作为说明,考虑一种情况,其中在运行的虚拟机上的过程收集使用度量,并使用那些使用度量来例如维持与例如装置的输入-输出带宽需要相关联的状态信息。如果每一分钟便收集和处理此类度量,且如果虚拟机迁移在该分钟期间进行,那么可能不正确地迁移状态信息移,因此引起装置的输入-输出带宽需要的不一致结果且可能引起资源分配的误差。

使用本文中描述的技术,当迁移开始时,使用用于管理块存储装置的状态的分阶段方法。使用此方法,当迁移开始时,初始或初步状态被从源位置复制到目标位置。随后在迁移的关键阶段期间,虚拟机实例被锁定且最后的状态被从源位置复制到目标位置,因此使状态的两个副本彼此一致。关键阶段的一个部分是“翻转”,其中不再使用源虚拟机实例且目标虚拟机变成有效虚拟机。如果翻转成功地完成且关键阶段成功地完成,那么新虚拟机实例随后将为可操作的,且通过原始虚拟机实例对块存储装置进行的访问将被终止(例如,通过将租用状态设定为“无效”)。新虚拟机实例随后可具有有效租用,伴有对块存储装置的完全和排他性访问且伴有与源位置的状态相同的状态。如果翻转未成功地完成且关键阶段未成功地完成,由于错误、取消或某一其它此类事件,那么原始虚拟机实例将恢复对块存储装置的访问且其所述原始虚拟机实例的状态将被恢复。

图12说明根据实施方案的与虚拟机实例相关联的块存储装置的状态信息在虚拟机迁移期间得到保持的示例环境1200。一个或多个虚拟机实例可在通过计算资源服务提供商1202提供的主机计算机系统上操作。在图12中说明的示例中,第一虚拟机实例(原始VM实例1214)在第一位置中运行(源位置1210)。第一位置可为一个或多个主机计算机系统,所述主机计算机系统经配置以将共享硬件提供给虚拟计算机系统服务以用于一个或多个虚拟机实例的实例化。原始VM实例1214可为与源位置1210相关联的多个虚拟机实例中的一个。与源位置1210相关联的多个虚拟机实例中的每一个可处于若干状态中的一个,所述状态例如运行、暂停、挂起(例如,暂停并存储到辅助存储装置)或某一其它状态。在图12中所说明的示例中,原始VM实例1214在运行(即,在执行一个或多个操作)。由于先前的迁移,源位置1210中的原始VM实例1214可已经从另一位置迁移到源位置1210。

在原始VM实例1214的操作的过程中,可确定将原始VM实例1214从源位置1210迁移到目标位置1212。对迁移原始VM实例1214的确定可由于在源位置1210处的资源的可用性的改变(例如,缺少计算能力、缺少存储器或缺少网络带宽)而做出。还可做出对迁移原始VM实例1214的确定以将原始VM实例1214移动至在逻辑上更加靠近一个或多个计算资源服务提供商资源。对将原始VM实例1214从源位置1210迁移到目标位置1212的确定还可通过针对例如减少与原始VM实例1214相关联的一个或多个成本的客户请求做出。对将原始VM实例1214从源位置1210迁移到目标位置1212的确定还可通过联合计算资源服务提供商操作的服务、过程或模块做出,所述计算资源服务提供商可经配置以确定更优位置形式的虚拟机实例。在图12中说明的示例中,目标位置1212示出为在计算资源服务提供商1202内。在实施方案中,源位置1210、目标位置1212或两者可在计算资源服务提供商1202外部(例如,所述源位置、目标位置可通过客户和/或其它第三方环境提供)。

由于确定将原始VM实例1214从源位置1210迁移到目标位置1212,针对开始迁移的命令1206可被产生并发送1208到块级存储服务1220。在图12中说明的示例中,针对开始迁移的命令1206通过与计算资源服务提供商1202一起操作的迁移管理器1204产生。在实施方案中,迁移管理器1204实施为服务,所述服务可为通过计算资源服务提供商1202提供的多个服务中的一个。迁移管理器1204在本文中还可被称为迁移管理器计算机系统,且在一些实施方案中,可实施为分布式计算机系统。

当将原始VM实例1214从源位置1210迁移到目标位置时,多个系统、服务、过程以及资源可与原始VM实例1214通信。这些系统、服务、过程以及资源通常无法保证同时改变其行为,使得这些系统、服务、过程以及资源的通信从在源位置1210处的原始VM实例1214切换到在目标位置1212处的新VM实例1216。迁移管理器1204可经配置以与多个系统、服务、过程以及资源中的每一个通信以便管理迁移。迁移管理器1204可经配置以通过执行包括但不限于以下各项的动作来管理(或精心安排)迁移:确定迁移的恰当次序,管理迁移的工作流,向与迁移相关联的系统、服务、过程以及资源发出命令,确定迁移是否成功,开始和停止虚拟机实例,确定迁移是否已失败,确定迁移是否应取消,以及在错误发生时管理回滚。

在迁移期间,可仅使与迁移相关联的多个系统、服务、过程以及资源中的每一个清楚其迁移部分。迁移管理器1204可例如分阶段地管理迁移,且可通过发出API请求、进行库调用、使用接口(例如,web接口)或通过一些其它方式来管理与迁移相关联的多个系统、服务、过程以及资源中的每一个的迁移。迁移的阶段(在本文中还被称为“迁移的当前状态”)可确定请求(例如应用程序设计接口请求)是可被允许还是阻止,且还可用于确定迁移是否应被取消。

迁移管理器1204还可管理每一阶段和/或每一迁移动作的超时,该每一迁移动作与和该迁移相关联的多个系统、服务、过程以及资源中的每一个相关联,所述超时还可用于确定迁移是否应被取消。例如,块级存储服务(例如块级存储服务1220)在迁移期间可从迁移管理器1204接收针对提供新VM实例1216对块存储装置1226的访问的API请求。作为此访问的部分,块级存储服务可需要同步原始VM实例1214与新VM实例1216之间的状态。迁移管理器1204可建立此同步的超时值,使得例如如果块级存储服务不在合理的时间量中对API请求做出响应,那么迁移可被取消。

除针对开始迁移的命令1206外,迁移管理器1204还可产生一个或多个其它命令,包括但不限于,针对配置目标位置以实例化新虚拟机实例的命令、针对在目标位置1212处实例化新虚拟机实例的命令、针对将存储器和/或状态从原始VM实例1214复制到新VM实例1216的命令、针对去激活原始VM实例1214的命令、针对激活新VM实例1216的命令、针对锁定原始VM实例1214或新VM实例1216的命令、针对暂停原始VM实例1214或新VM实例1216的命令、针对取消暂停原始VM实例1214或新VM实例1216的命令、针对将存储器和/或状态信息从原始VM实例1214转发到新VM实例1216的命令、针对拆除原始VM实例1214的命令、针对终止在源位置1210与目标位置1212之间的迁移的命令以及与原始VM实例1214从源位置1210到目标位置1212的迁移相关联的其它此类命令。

原始VM实例1214可访问1222由块级存储服务1220提供的块存储装置1226。块级存储服务1220可由计算资源服务提供商1202提供。原始VM实例1214对块存储装置1226的访问1222可通过块级存储服务1220使用租用来配置。在图12中说明的示例中,原始VM实例1214对块存储装置1226的访问1222通过块级存储服务1220使用有效租用1228来配置,所述租用为暂时地提供对块存储装置1226的访问以例如允许原始VM实例1214发出输入-输出请求并接收对那些输入-输出请求的响应的租用。

新VM实例1216还可访问1224由块级存储服务1220提供的块存储装置1226。新VM实例1216对块存储装置1226的访问1224可通过块级存储服务1220使用租用来配置。在图12中说明的示例中,新VM实例1216对块存储装置1226的访问1224通过块级存储服务1220使用备用租用1230(即,具有备用状态的租用)来配置,所述备用租用为这样一种租用,即暂时地提供对块存储装置1226的部分访问以例如允许新VM实例1216接收对通过例如原始VM实例1214使用有效租用1228(即,具有有效的状态的租用)产生的输入-输出请求的响应但不允许新VM实例1216产生此类请求。

在迁移期间,块级存储服务1220可将状态信息1232从源位置1210迁移1218到在目标位置1212处的状态信息1223。在源位置1210处的状态信息1232可存储在原始VM实例1214内和/或可与原始VM实例1214分开地存储在源位置1210处。在目标位置1212处的状态信息1234可存储在新VM实例1216内和/或可与新VM实例1216分开地存储在目标位置1212处。

块存储装置的状态信息可包括含有但不限于以下各项的状态信息:块存储装置的位置,所述块级存储服务可正托管块存储装置;以及与块存储装置相关联的一个或多个租用的存在。此类状态信息可与虚拟机实例存储在一起,可存储在源或目标位置处,或可存储在单独的位置中。块存储装置的状态信息还可包括面向客户的状态信息,例如,面向客户的性能度量,包括但不限于,每秒的输入-输出操作(“IOPS”)、带宽、读取的字节、写入的字节、每秒的读操作、每秒的写操作,和/或空闲时间。另外,块存储装置的状态信息可包括内部性能度量(即,未提供给用户或客户的度量),例如,装置健康测量结果、装置误差的时段和/或先前描述的度量中的任何度量。块存储装置的其它状态信息可包括与安全性过程(例如,加密密钥)有关的信息、策略、许可、性能节流参数(例如,指定可提供给虚拟机实例以对块存储装置进行访问的可用带宽的百分比的节流百分比)或其它此类状态信息。如可预期,本文中描述的块存储装置的状态信息的类型为说明性示例,且由此,块存储装置的其它类型的状态信息可被认为在本公开的范围内。

如本文中所使用,一般来说,租用可为对访问例如块存储装置1226等计算机系统资源的权利和许可的授予。租用可指定对计算机系统资源的访问(在本文中也被称为“访问策略”或“访问的策略”)。租用可通过服务(例如,块级存储服务1220)或通过结合所述服务操作并在一个或多个计算机系统上实施的不同过程、模块、服务、应用程序或系统提供。块级存储服务1220可实施为块级存储服务计算机系统,且可例如为在一个或多个计算机系统上和/或在一个或多个计算机系统环境中操作的分布式计算机系统。租用可指定访问的类型、与所述访问相关联的许可和/或凭证、所述访问的持续时间或与对资源的访问相关联的其它参数。例如,租用可为授予对资源在有限或设定的持续时间上的访问的暂时租用。此类暂时租用的示例为在移动网络上指配网络地址的租用。此类暂时租用通常必须在某一设定的时间段之后更新(手动或自动地)。

租用可通过例如块级存储服务1220等服务提供以管理对资源(即,与服务相关联的块存储装置)的访问,并将所述访问提供给客户端,例如其它服务、虚拟机实例、用户(在本文中也称为“客户”)、过程、应用、模块、系统等。租用可通过服务授予客户端(例如,原始VM实例1214或新VM实例1216),且因此,客户端可在租用的持续时间上访问资源。在实施方案中,租用可为永久的,因为租用可在客户端的整个生命期间授予。

租用的使用还可允许服务通过例如以下操作来管理其自己的资源:使用当前发起的租用的数目和类型来确定系统是否被超额订阅或很有可能在未来被超额订阅。另外,通过按类型(在本文中称为“租用状态”或更简单地称为“状态”)对不同的租用分类,例如块级存储服务1220等服务可管理与服务的资源相关联的功能性。

例如,提供给客户端VM实例的块存储装置的有效租用可允许完全访问以将输入-输出请求从客户端VM实例发送到块存储装置,且还可指示对那些请求的所有响应(来自块存储装置)被发送到客户端VM实例。相反地,无效租用为可仍存在但具有受限许可的租用。例如,提供给客户端VM实例的具有无效状态的块存储装置的租用可限制输入-输出请求从客户端VM实例到块存储装置的发送,且可防止对任何先前待决请求的任何响应被发送到客户端VM实例。其它租用状态可存在,包括但不限于,备用租用,所述备用租用可允许将输入-输出请求从客户端VM实例发送到块存储装置,但可指示对那些请求的所有响应(来自块存储装置)被发送到不同的VM实例。

图13说明如结合图12描述且根据至少一个实施方案的用于在虚拟实例的迁移期间转发状态信息的示例过程1300。块级存储服务,例如结合图12描述的块级存储服务1220,可执行图13中说明的过程。

块级存储服务可首先接收针对开始虚拟机实例从源位置迁移1302到目标位置的命令。块级存储服务随后可产生针对通过块级存储服务提供的块存储装置的与所述块存储装置相关联的备用租用(即,凭证的集合和/或凭证的暂时集合)1304,所述块存储装置可通过块级存储服务提供。块级存储服务随后可开始状态信息从源位置到目标位置的复制和/或转发1306。

如果确定1308在从源位置迁移到目标位置的过程中的虚拟机实例处于关键阶段,其中虚拟机实例都应被锁定1310且所有改变被阻止或入队直到关键阶段完成,那么块级存储服务随后可在证实目标位置中的装置可操作(在本文中也被称为仍处于“可用状态”)1314之前完成状态信息从源位置到目标位置的复制1312。目标租用随后可被设定为有效的1316。如果未确定1308迁移仍处于关键阶段,那么块级存储服务可继续状态信息从源位置到目标位置的复制和/或转发。相反地,如果确定1308迁移在关键阶段处,那么块级存储服务可在继续之前等待关键阶段结束1318。

在关键阶段结束1320之后,可接着确定虚拟机实例的迁移是否成功1322。如果是,那么在目标位置处的虚拟机实例为新有效虚拟机实例且目标可取消暂停,且迁移可完成1324。如果否,那么在源位置处的虚拟机实例仍为有效虚拟机实例。块级存储装置可替代地通过例如执行迁移的回滚来撤销迁移1326。

图14说明如结合图12所描述且根据至少一个实施方案的块级存储服务在虚拟机实例迁移之前提供对块存储装置的访问的示例环境1400。在迁移之前,原始VM实例1406可在源位置1404处运行,伴随有对通过块级存储服务1408提供的块存储装置1402的访问。经配置以提供原始VM实例1406对块存储装置1402的访问的租用1410由块级存储服务1408提供。在图14中说明的示例中,租用1410为有效租用,且从原始VM实例1406接收到的输入-输出请求具有产生并发送到在源位置1404处的原始VM实例1406的响应。如本文中描述,有效租用1410可被暂时地提供给原始VM实例且可通过块级存储服务1408管理。在迁移开始之前,块存储装置1402的状态1412可存在于源位置1404处,且可包括面向客户的状态和内部状态两者,如本文中所描述。

图15说明如结合图12所描述且根据至少一个实施方案的块级存储服务在虚拟机实例迁移的开始之后提供对块存储装置的访问的示例环境1500。在迁移的开始之后,原始VM实例1506可在源位置1504处运行,伴随有对通过块级存储服务1508提供的块存储装置1502的访问,如上文所描述。经配置以提供原始VM实例1506对块存储装置1502的访问的有效租用1510由块级存储服务1508提供,还如上文所描述。

由于迁移已开始,新VM实例1514可在目标位置1512中运行,伴随有对通过块级存储服务1508提供的块存储装置1502的访问,如上文所描述。新VM实例1514对块存储装置1502的访问可使用备用租用1516提供。备用租用1516可经配置以在迁移期间提供对块存储装置1502的部分访问。例如,备用租用1516可经配置使得新VM实例1514可不产生针对块存储装置1502的输入-输出请求,但可接收对通过其它VM实例(例如,原始VM实例1506)产生的输入-输出请求的响应。有效租用1510和备用租用1516中的一个或两个可被暂时地提供给相应的VM实例且可通过块级存储服务1508管理。在图15中说明的示例中,有效租用1510经配置使得原始VM实例1506可产生针对块存储装置1502的输入-输出请求,且备用租用1516经配置使得对针对块存储装置1502的那些输入-输出请求的响应被提供给新VM实例1514。当迁移开始时,在源位置1504处的块存储装置1502的状态1518的初始副本1520(在本文中也被称为“初步副本”)可被发送到目标位置1512,以开始使在目标位置1512处的块存储装置1502的状态1522与迁移之前的状态一致的过程。

图16说明如结合图12所描述且根据至少一个实施方案的块级存储服务在虚拟机实例迁移的关键阶段期间提供对块存储装置的访问的示例环境1600。当迁移到达关键阶段时,原始VM实例1606可在源位置1604处运行。从原始VM实例1606到通过块级存储服务1608提供的块存储装置1602的租用可为无效租用1610。无效租用1610可经配置以防止原始VM实例1606对块存储装置1602的访问,因为在虚拟机实例迁移的关键阶段期间,来自原始VM实例的输入-输出请求可被阻止以避免同步问题,且对先前提交的输入-输出请求的响应也可被阻止以避免同步问题。在实施方案中,无效租用表示用于清除或其它此类管理目的的先前和/或到期租用,但所述租用不经配置以将任何输入-输出请求发送到VM实例或从VM实例接收任何输入-输出请求。

另外,由于迁移已到达关键阶段,新VM实例1614可在目标位置1612中运行,伴随有对通过块级存储服务1608提供的块存储装置1602的访问,如上文所描述。新VM实例1614对块存储装置1602的访问可使用如结合图15描述的备用租用提供,或可使用如图66中说明的有效租用1616提供。结合图15描述的备用租用可经配置以在迁移的关键阶段期间提供对块存储装置1602的部分访问,且有效租用1616可经配置以在迁移的关键阶段期间提供对块存储装置1602的完全访问。

例如,有效租用1616可经配置使得新VM实例1614可产生针对块存储装置1602的输入-输出请求,且可接收对那些输入-输出请求的响应。所述响应还可已作为通过例如原始VM实例1606产生的输入-输出请求的结果而产生,其中此类输入-输出请求在提供给原始VM实例1606的租用变成无效租用1610之前产生。如先前所描述,无效租用1610和有效租用1616中的一个或两个可被暂时地提供给相应的VM实例且可通过块级存储服务1608管理。在迁移的关键阶段结束之前,在源位置1604处的块存储装置1602的状态1618的复制可以最后的副本结束1620,使得可使在目标位置1612处的块存储装置1602的状态1622一致。在源位置1604处的块存储装置1602的状态1618的复制可在对新VM实例的租用变成有效租用1616之前且在对原始VM实例的租用变成无效租用1610之前(即,在迁移的关键阶段结束之前)以最后的副本结束1620。

图17说明如结合图12所描述且根据至少一个实施方案的块级存储服务在虚拟机实例迁移的完成之后提供对块存储装置的访问的示例环境1700。在迁移之后,新VM实例1706可在目标位置1704处运行,伴随有对通过块级存储服务1708提供的块存储装置1702的访问。经配置以提供新VM实例1706对块存储装置1702的访问的租用1710由块级存储服务1708提供。在图17中说明的示例中,租用1710为有效租用,且从新VM实例1706接收到的输入-输出请求可具有产生并发送到在目标位置1704处的新VM实例1706的响应。如本文中描述,有效租用1710可被暂时地提供给新VM实例1706且可通过块级存储服务1708管理。当迁移完成时,可使在目标位置1704处的块存储装置的状态1712与在迁移之前的状态一致。

图18说明如图12中所描述且根据至少一个实施方案的使用三角形方法来使用块存储装置执行虚拟机的虚拟机迁移的示例过程1800。块级存储服务,例如结合图12描述的块级存储服务1220,可执行图18中说明的过程。

块级存储服务(其可实施为在由计算资源服务提供商提供的一个或多个计算机系统上服务和/或分布式服务)可将块存储装置的第一租用提供1802到在源位置处运行的第一虚拟机实例,所述源位置例如通过计算资源服务提供商提供的计算装置。第一租用,即有效租用,可提供凭证的第一集合以允许虚拟机实例访问块存储装置。

在接收到虚拟机实例开始从源位置迁移到目标位置(例如,通过计算资源服务提供商提供的不同计算装置)的指示符1804之后,块级存储服务可将块存储装置的第二租用提供1806到在目标位置处运行的第二虚拟机实例,所述目标位置例如通过计算资源服务提供商提供的计算装置。第二租用,即备用租用,可提供凭证的第二集合以允许第二虚拟机实例访问块存储装置。备用租用可允许对块存储装置的仅部分访问。例如,在备用租用之下,虚拟机实例可仅接收对输入-输出请求的响应,但可不具有用以产生此类请求的凭证。块级存储服务随后可将初步状态信息从源位置复制到目标位置1808。

块级存储装置可至少部分基于迁移进展指示符(在本文中也被称为“迁移的进展的指示符”)来更新第一租用的状态1810。当迁移到达关键状态且源的状态信息未快速变化时(例如,当源和/或目标为暂停时),块级存储服务可将状态信息的最后的集合从源位置复制1812到目标位置,使得当在目标位置中的虚拟机实例重新开始时,块存储装置的一致状态得到维持。当迁移完成时(即,当关键阶段完成时),块级存储服务可最后至少部分基于迁移进展指示符来更新第二租用的状态1814,使得例如第二租用变成有效租用。

例如,迁移进展指示符可指示迁移已到达关键阶段,且因此,第一租用和第二租用可变得无效和/或可进入备用状态。迁移进展指示符还可指示迁移已成功,且因此,第一租用可变得无效而第二租用变得有效。类似地,迁移进展指示符可指示迁移已失败,且因此,第一租用可变得有效而第二租用变得无效。如可预期,本文中描述的租用状态和迁移进展指示符仅为说明性示例,且由此,其它租用状态或迁移进展指示符可被认为在本公开的范围内。

另外,本公开的实施方案可鉴于以下条款来描述:

1.一种计算机实施的方法,所述方法包括:

在配置有可执行指令的块级存储服务计算机系统的控制下,

获得使虚拟机实例与块存储装置相关联的第一租用,所述块存储装置通过所述块级存储服务提供,所述第一租用指定所述虚拟机实例对所述块存储装置进行访问的第一策略并具有有效的第一状态;

接收所述虚拟机实例从源计算装置到目标计算装置的迁移的开始的指示符;

获得使所述目标计算装置中的虚拟机实例与所述块存储装置相关联的第二租用,所述第二租用指定所述虚拟机实例对所述块存储装置进行访问的第二策略,所述第二租用具有备用的第二状态;

将与所述块存储装置相关联的状态信息的第一集合从所述源计算装置复制到所述目标计算装置;

至少部分基于所述迁移的进展的指示符来更新所述第一状态;

将与所述块存储装置相关联的状态信息的第二集合从所述源计算装置复制到所述目标计算装置;以及

至少部分基于所述迁移的进展的指示符来将所述第二状态更新为有效的。

2.根据条款1所述的计算机实施的方法,其中:

所述状态信息的第一集合包括性能度量的集合的第一子集;

所述状态信息的第二集合包括所述性能度量的集合的第二子集;以及

所述性能度量的集合包括以下各项中的至少一个:每秒的输入-输出操作、所使用的带宽、读取的字节、写入的字节、空闲时间或节流百分比。

3.根据条款2所述的计算机实施的方法,其中所述性能度量的集合包括:

面向客户的性能度量的集合,其经配置以呈现给计算资源服务提供商的客户;以及

内部性能度量的集合,其可由所述计算资源服务提供商的服务用于至少确定所述块存储装置的健康测量结果。

4.根据条款3所述的计算机实施的方法,其中所述计算资源服务提供商的所述服务为所述块级存储服务。

5.一种系统,所述系统包括经配置以实施一项或多项服务的至少一个计算装置,其中所述一项或多项服务经配置以:

响应于虚拟机实例从第一位置到第二位置的迁移的开始,所述虚拟机实例具有使所述虚拟机实例与由块级存储服务提供的块存储装置相关联的第一租用,至少:

获得使所述第二位置中的所述虚拟机实例与所述块存储装置相关联的第二租用,所述第二租用指定所述虚拟机实例对所述块存储装置进行访问的第二策略;

将与所述块存储装置相关联的状态信息的第一集合从所述第一位置复制到所述第二位置;以及

将与所述块存储装置相关联的状态信息的第二集合从所述第一位置复制到所述第二位置,所述状态信息的第二集合包括对所述状态信息的第一集合的子集的一个或多个改变。

6.根据条款5所述的系统,其中:

所述第一租用指定对所述块存储装置进行访问的第一策略;以及

所述第二租用指定对所述块存储装置进行访问的第二策略。

7.根据条款5或6所述的系统,其中:

所述第一租用是有效租用;以及

所述第二租用是备用租用。

8.根据条款5-7中的任一项条款所述的系统,其中所述状态信息的第一集合包括所述块存储装置的性能度量的集合。

9.根据条款5-8中的任一项条款所述的系统,其中所述状态信息的第二集合包括节流百分比,所述节流百分比指定所述块存储装置可使用的可用带宽的百分比。

10.根据条款5-9中的任一项条款所述的系统,其中所述状态信息的第一集合包括与所述块存储装置相关联的加密信息。

11.根据条款5-10中的任一项条款所述的系统,其中所述状态信息的第一集合包括与通过所述虚拟机实例对所述块存储装置进行的访问相关联的策略的集合。

12.根据条款5-11中的任一项条款所述的系统,其中:

所述第一位置为计算装置;以及

所述第二位置为不同的计算装置。

13.一种上面存储有可执行指令的非暂时性计算机可读存储介质,所述指令在由计算机系统的一个或多个处理器执行时,使得所述计算机系统至少:

在虚拟机实例从第一位置到第二位置的迁移的第一阶段期间,将与块存储装置相关联的状态信息的第一集合从所述第一位置复制到所述第二位置,所述块存储装置被提供给所述虚拟机实例;

检测所述迁移的关键阶段;以及

复制与所述块存储装置相关联的状态信息的第二集合。

14.根据条款13所述的非暂时性计算机可读存储介质,其中所述状态信息的第二集合包括对所述状态信息的第一集合的子集的一个或多个改变。

15.根据条款13或14所述的非暂时性计算机可读存储介质,其中所述指令另外包括以下指令:该指令在由所述一个或多个处理器执行时,使得所述计算机系统至少检测所述迁移的完成并基于所述迁移的完成来确定所述迁移已失败。

16.根据条款15所述的非暂时性计算机可读存储介质,其中使得所述计算机系统确定所述迁移已失败的指令另外包括以下指令:该指令在由所述一个或多个处理器执行时,使得所述计算机系统至少部分基于所述状态信息的第一集合和所述状态信息的第二集合来更新来自所述第一位置的与所述块存储装置相关联的状态信息的第三集合。

17.根据条款13-16中的任一项条款所述的非暂时性计算机可读存储介质,其中所述虚拟机实例设置有:

凭证的第一集合,所述凭证的第一集合使在所述第一位置中运行的所述虚拟机实例与所述块存储装置相关联;以及

凭证的第二集合,所述凭证的第二集合使在所述第二位置中运行的所述虚拟机实例与块存储装置相关联。

18.根据条款17所述的非暂时性计算机可读存储介质,其中所述凭证的第一集合是凭证的暂时集合且所述凭证的第二集合是凭证的暂时集合。

19.根据条款17所述的非暂时性计算机可读存储介质,其中:

所述凭证的第一集合通过从与所述块存储装置相关联的块级存储服务获得的第一租用指定;以及

所述凭证的第二集合通过由与所述块存储装置相关联的所述块级存储服务响应于所述迁移而产生的第二租用指定。

20.根据条款19所述的非暂时性计算机可读存储介质,其中所述指令另外包括以下指令:该指令在由所述一个或多个处理器执行时,使得所述计算机系统在检测到所述迁移的关键阶段之后将所述第一租用设定为无效。

21.一种计算机实施的方法,所述方法包括:

在配置有可执行指令的块级存储服务计算机系统的控制下,

获得使虚拟机实例与块存储装置相关联的第一租用,所述块存储装置通过所述块级存储服务提供,所述第一租用指定所述虚拟机实例对所述块存储装置进行访问的第一策略,所述第一租用具有有效的第一状态;

接收所述虚拟机实例从源计算装置到目标计算装置的迁移的开始的指示符;

产生使所述目标计算装置中的所述虚拟机实例与所述块存储装置相关联的第二租用,所述第二租用指定所述虚拟机实例对所述块存储装置进行访问的第二策略,所述第二租用具有备用的第二状态;

至少部分基于所述迁移的进展的指示符来更新所述第一状态和所述第二状态;

从所述虚拟机实例接收对所述块存储装置寻址的输入-输出请求的集合;以及

提供对所述输入-输出请求的集合中的输入-输出请求的响应,所述响应至少指定将所述响应发送到的响应位置,所述响应位置至少部分基于所述第一状态是否有效来确定,所述响应位置从所述源计算装置和所述目标计算装置选择。

22.根据条款21所述的计算机实施的方法,其中所述第一状态由于所述迁移的进展的指示符到达关键阶段而改变为无效。

23.根据条款21或22所述的计算机实施的方法,其中所述第二状态由于所述第一状态为无效而改变为有效。

24.根据条款21-23中的任一项条款所述的计算机实施的方法,其中所述响应位置至少部分基于所述第二状态是否并非无效来另外确定。

25.一种系统,所述系统包括经配置以实施一项或多项服务的至少一个计算装置,其中所述一项或多项服务经配置以:

获得使虚拟机实例与块存储装置相关联的第一租用,所述块存储装置通过块级存储服务提供,所述第一租用指定所述虚拟机实例对所述块存储装置进行访问的第一策略;以及

响应于所述虚拟机实例从第一位置到第二位置的迁移的开始,至少:

产生使所述第二位置中的所述虚拟机实例与所述块存储装置相关联的第二租用,所述第二租用指定通过所述虚拟机实例对所述块存储装置进行访问的第二策略;

至少部分基于所述迁移的进展的指示符来确定所述第一租用的第一状态和所述第二租用的第二状态;以及

提供对所述块存储装置寻址的输入-输出请求的集合中的输入-输出请求的响应,输入-输出请求从所述虚拟机实例接收,所述响应指定响应位置的集合,所述响应位置的集合至少部分基于所述第一状态和所述第二状态。

26.根据条款25所述的系统,其中所述响应位置的集合中的响应位置从所述第一位置和所述第二位置选择。

27.根据条款26所述的系统,其中所述响应位置的集合在所述第一状态为有效时包括所述第一位置。

28.根据条款26所述的系统,其中所述响应位置的集合在所述第二状态为并非无效时包括所述第二位置。

29.根据条款25-28中的任一项条款所述的系统,其中所述响应被提供给所述响应位置的集合中的响应位置。

30.根据条款25-29中的任一项条款所述的系统,其中所述迁移的进展的指示符至少包括:迁移成功或迁移失败。

31.根据条款30所述的系统,其中:

所述第一状态在所述迁移的进展的指示符为迁移成功时改变为无效;以及

所述第二状态在所述迁移的进展的指示符为迁移成功时改变为有效。

32.根据条款30所述的系统,其中:

所述第一状态在所述迁移的进展的指示符为迁移失败时改变为有效;以及

所述第二状态在所述迁移的进展的指示符为迁移失败时改变为无效。

33.一种上面存储有可执行指令的非暂时性计算机可读存储介质,所述指令在由计算机系统的一个或多个处理器执行时,使得所述计算机系统至少:

开始虚拟机实例从第一位置到第二位置的迁移,所述虚拟机实例设置有使在所述第一位置中运行的所述虚拟机实例与块存储装置相关联的凭证的第一集合,所述虚拟机实例设置有使在所述第二位置中运行的所述虚拟机实例与块存储装置相关联的凭证的第二集合;以及

在所述迁移期间提供对所述块存储装置寻址并从所述虚拟机实例接收到的输入-输出请求的响应,所述响应指定一个或多个响应位置,所述一个或多个响应位置至少部分基于所述迁移的进展的指示符。

34.根据条款33所述的非暂时性计算机可读存储介质,其中所述凭证的第一集合和所述凭证的第二集合是具有通过所述计算机系统确定的持续时间的凭证的暂时集合。

35.根据条款33或34所述的非暂时性计算机可读存储介质,其中:

所述凭证的第一集合通过从与所述块存储装置相关联的块级存储服务获得的第一租用指定;以及

所述凭证的第二集合通过由与所述块存储装置相关联的所述块级存储服务响应于所述迁移而产生的第二租用指定。

36.根据条款33-35中的任一项条款所述的非暂时性计算机可读存储介质,其中:

所述第一位置为计算装置;以及

所述第二位置为不同的计算装置。

37.根据条款33-36中的任一项条款所述的非暂时性计算机可读存储介质,其中所述迁移的进展的指示符为以下各项中的至少一个:无迁移、迁移开始、关键阶段、迁移成功或迁移失败。

38.根据条款37所述的非暂时性计算机可读存储介质,其中所述一个或多个响应位置在所述进展的指示符为无迁移、迁移开始或迁移失败时包括所述第一位置。

39.根据条款37所述的非暂时性计算机可读存储介质,其中所述一个或多个响应位置在所述进展的指示符为迁移开始或迁移成功时包括所述第二位置。

40.根据条款37所述的非暂时性计算机可读存储介质,其中所述一个或多个响应位置在所述进展的指示符为关键阶段时包括所述第一位置和所述第二位置。

各种实施方案另外可在各种操作环境中实施,所述操作环境在一些情况下可包括一个或多个用户计算机、计算装置或处理装置,这些装置可用于操作多个应用中的任何应用。用户或客户端装置可包括多个通用个人计算机中的任何通用个人计算机,例如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件且能够支持多个联网和消息传送协议的蜂窝式、无线和手持式装置。此系统还可包括运行多种可商购的操作系统中的任何操作系统的多个工作站,以及用于例如开发和数据库管理的其它已知应用。这些装置还可包括其它电子装置,例如虚拟终端、瘦客户端、游戏系统和能够经由网络进行通信的其它装置。这些装置还可包括虚拟装置,例如虚拟机、管理程序和能够经由网络进行通信的其它虚拟装置。

本公开的各种实施方案利用所属领域的技术人员将熟悉的至少一个网络,所述网络用于使用多种可商购的协议中的任何协议来支持通信,所述协议例如传输控制协议/因特网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各层中操作的协议、文件传输协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、公共因特网文件系统(“CIFS”)以及AppleTalk。网络可为例如局域网、广域网、虚拟专用网、因特网、内联网、外联网、公共交换电话网、红外网络、无线网、卫星网络以及其任何组合。

在利用web服务器的实施方案中,web服务器可运行多个服务器或中间层应用中的任何服务器或中间层应用,包括超文本传输协议(“HTTP”)服务器、FTP服务器、公共网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器以及商业应用服务器。服务器还可能能够响应于来自用户装置的请求而执行程序或脚本,例如通过执行一个或多个web应用来进行,所述web应用可实施为用例如C、C#或C++等任何编程语言或例如Ruby、PHP、Perl、Python或TCL等任何脚本语言以及其组合编写的一个或多个脚本或程序。服务器还可包括数据库服务器,包括但不限于可商购自以及的那些服务器以及开源服务器,例如MySQL、Postgres、SQLite、MongoDB,以及能够存储、检索以及访问结构化或非结构化数据的任何其它服务器。数据库服务器可包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或这些和/或其它数据库服务器的组合。

所述环境可包括多种数据存储区和其它存储器和存储介质,如上文所论述。这些环境可驻留在多种位置中,例如驻留在计算机中的一个或多个本地(和/或驻留在所述计算机中的一个或多个中)或远离在整个网络上的计算机中的任何或全部计算机的存储介质上。在实施方案的特定集合中,信息可驻留在所属领域的技术人员所熟悉的存储区域网络(“SAN”)中。类似地,用于执行归因于计算机、服务器或其它网络装置的功能的任何必要文件可在适合时存储在本地和/或远程地存储。在系统包括计算机化的装置时,每一此装置可包括可经由总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)以及至少一个输出装置(例如,显示器装置、打印机或扬声器)。此系统还可包括一个或多个存储装置,例如磁盘驱动、光学存储装置以及固态存储装置,例如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移除介质装置、存储器卡、闪存卡等。

此类装置还可包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线的)、红外通信装置等)以及如上文所描述的工作存储器。计算机可读存储介质读取器可与计算机可读存储介质连接或经配置以接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移除的存储装置,以及用于暂时地和/或更永久地包括、存储、发送以及检索计算机可读信息的存储介质。系统和各种装置通常还将包括多个软件应用、模块、服务或位于至少一个工作存储器装置内的其它元件,包括操作系统和应用程序,例如客户端应用或web浏览器。应了解,替代的实施方案可具有与上文描述的实施方案之间存在众多变化。例如,还可使用自定义硬件和/或特定的元件还可在硬件、软件(包括便携式软件,例如小程序)或两者中实施。另外,可采用到例如网络输入/输出装置等其它计算装置的连接。

用于容纳代码或部分代码的存储介质和计算机可读介质可包括所属领域中已知或使用的任何适合的介质,包括存储介质和通信介质,例如但不限于,用任何方法或技术实施以用于存储和/或传输信息的易失性和非易失性、可移除和不可移除介质,所述信息例如计算机可读指令、数据结构、程序模块或其它数据,所述介质包括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中的至少一个各自存在。

除非在本文中另外指出或与上下文另外清楚地矛盾,本文中描述的过程的操作可以任何合适的次序执行。本文中描述的过程(或其变化和/或组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,且可实施为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、通过硬件或其组合实施。代码可存储在计算机可读存储介质上,例如,呈包括可通过一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读存储介质可为非暂时性的。

在本文中提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,且除非另外要求,否则不对本发明的范围造成限制。说明书中没有语言应被解释为将任何非要求的元素指示为本发明的实践所必需的。

本公开的实施方案在本文中描述,包括发明人已知的用于实施本发明的最佳模式。在阅读前述描述后,所属领域的技术人员可变得清楚那些实施方案的变化。发明人预期所属领域的技术人员在适当时采用此类变化,且发明人意图以与如本文中所具体描述不同的方式实践本公开的实施方案。因此,本公开的范围包括如适用法律所允许的在随附的权利要求书叙述的主题的所有修改和等效物。此外,除非在本文中另外指出或与上下文另外清楚地矛盾,否则以上描述元件在其可能变化中的任何组合被本公开的范围涵盖。

在本文中引用的所有参考文献,包括公开案、专利申请案以及专利特此通过同等程度的引用并入本文中,如同每一参考文献个别地且具体地指示为通过引用并入且以其全文在本文中阐述一样。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1