虚拟机映像写租赁的制作方法

文档序号:6534227阅读:147来源:国知局
虚拟机映像写租赁的制作方法
【专利摘要】一种包括多个宿主的系统,多个宿主各自具有物理资源、系统管理程序和宿主代理,宿主代理使得虚拟机在系统管理程序之上操作以便从物理资源中抽象出来。宿主结构审阅实例化或升级虚拟机的请求,标识要从其实例化虚拟机的对应虚拟机映像以便履行该请求,以及确定要被实例化的虚拟机在虚拟机映像上是否具有有效租赁。如果请求者不具有有效租赁,则该请求被阻塞。如果请求者的确具有有效租赁,则宿主结构促进从虚拟机映像的对虚拟机的实例化。这阻止或消除了相同虚拟机映像的多个实例同时写入虚拟机映像的几率。
【专利说明】虚拟机映像写租赁
[0001]背景
[0002]对计算系统的虚拟化已经使得能够实现对计算系统的灵活且方便的设置和维护。计算系统通过使得虚拟机位于该虚拟机所服务的客户端计算系统远程地操作来被虚拟化。虚拟机模拟完全可操作的计算系统的逻辑,包括操作系统、其各个应用以及对应的设置,并且该虚拟机通过位于远程的客户端计算系统与用户进行接口。例如,虚拟机接收来自远程客户端的客户端输入,并将所得到的桌面图像信息提供回客户端。客户端不操作对应的操作系统,而是仅仅接收用户输入,并使用由虚拟机提供的所得到的桌面映像来呈现桌面。
[0003]虚拟机在宿主计算系统(在本领域中也被称为虚拟化【技术领域】中的“宿主”或“节点”)上操作。宿主通常操作许多其它虚拟机。虚拟机使用的硬件常常位于宿主上,包括处理资源、存储、网络、存储器等等。每一虚拟机通过经由系统管理程序与可用硬件对接来维持对隔离计算系统的正确仿真。此外,虚拟化软件可以将来自虚拟机的输入/输出(I/O)调用重定向到远程存储服务,从而使远程存储服务提供的存储资源虚拟化。
[0004]简要概述
[0005]本文描述的至少一个实施例涉及一种包括多个宿主的系统,每一宿主具有物理资源、系统管理程序和宿主代理,宿主代理使得虚拟机在系统管理程序之上操作以便从物理资源中抽象出来。此外,宿主结构审阅实例化虚拟机的请求,标识要从其实例化虚拟机的对应虚拟机映像以便履行该请求,以及确定要被实例化的虚拟机在虚拟机映像上是否具有有效租赁。在一些实施例中,宿主结构例如可以管理系统中所有资源的供应和生存期管理。如果请求者不具有有效租赁,则该请求被阻塞。如果请求者的确具有有效租赁,则宿主结构促进从虚拟机映像的对虚拟机的实例化。这阻止或消除了同时向虚拟机映像写入相同虚拟机映像的多个实例的几率。例如,这可能在虚拟机跨宿主迁移期间在自动服务恢复或虚拟机资源配置改变期间发生。这还可能在宿主结构原本要经历对结构控制器或备份状态恢复的状态丢失的情况下发生。
[0006]本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

【专利附图】

【附图说明】
[0007]为了描述能够获得上述和其它优点和特征的方式,各实施例的更具体的描述将通过参考各附图来呈现。可以理解,这些附图只描绘了示例实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释各实施例,在附图中:
[0008]图1示出在其中在此描述的一些实施例可被使用的计算系统;
[0009]图2示出了其中多级平台能够访问和处理虚拟机映像的虚拟机操作平台;
[0010]图3示出了包括与可用于实例化和操作虚拟机的系统交互的多个客户端的环境;
[0011]图4示出了一种用于使宿主结构阻止或降低存在向虚拟机映像写入的相同虚拟机的多个实例的几率的方法的流程图;
[0012]图5示出了一种用于使宿主结构促进从虚拟机映像的对虚拟机实例化的方法的流程图;
[0013]图6示出了一种用于使系统迁移虚拟机的方法的流程图;以及
[0014]图7示出了一种在接收到虚拟机请求的时间与实例化该虚拟机的时间之间由平台中的多级中的每一级执行的方法的流程图。

【具体实施方式】
[0015]根据本文描述的实施例,一种系统多个宿主,每一宿主具有物理资源、系统管理程序和宿主代理,宿主代理使得虚拟机在系统管理程序之上操作以便从物理资源中抽象出来。此外,宿主结构审阅实例化(或升级)虚拟机的请求,标识要从中实例化(或升级)虚拟机的对应虚拟机映像以便履行该请求,以及确定要被实例化(或升级)的虚拟机在虚拟机映像上是否具有有效租赁。在本说明书和权利要求书中,“租赁”被广泛地定义为保证对与该租赁相对应的资源的排他访问的任何机制。例如,租赁可以是互斥、锁定或租赁。如果请求者不具有有效租赁,则该请求被阻塞。换言之,如果请求者不是与该机制保证排他访问的实体相同的实体,则请求被阻塞。如果请求者的确具有有效租赁,则宿主结构代理促进从虚拟机映像的对虚拟机的实例化或升级。另外地或替换地,该系统可包括多个组件系统。在该情形中,该系统以在一个时间至多组件系统之一可以写入虚拟机映像的方式来实施。这阻止或消除了同时向虚拟机映像写入相同虚拟机映像的多个实例的几率。首先,将参考图1来描述关于计算系统的一些引导性讨论。随后,该系统的各实施例将参考图2到7来描述。
[0016]计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能含有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
[0017]如图1所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性、或两者的某种组合。术语“存储器”在此也可用来指诸如物理存储介质等非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如此处所使用的那样,术语“模块”或“组件”可以指在计算系统上执行的软件对象或例程。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
[0018]在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可被存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。
[0019]这里描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。这里描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
[0020]计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
[0021]“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
[0022]此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
[0023]计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
[0024]本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
[0025]图2示出了其中多级平台能够访问和处理虚拟机映像的虚拟机操作平台200。在这一具体示例中,在平台中存在示出的三级210、220和230,每一级在虚拟机映像205上执行某种处理。处理211、221和231分别表示由平台级210、220和230中的每一者在虚拟机映像205上执行的处理。省略号240表示在平台中可能存在其它数目的级,从可能像二那么少至可枚举的许多,而不背离本文描述的原理。级210、220和230中的每一级可以表示模块、组件、或甚至整个计算系统、甚至是分布式计算系统。此外,级210、220和230中的每一级可以执行自动恢复,自动恢复使用租赁操纵以确保虚拟机映像205的完整性。
[0026]该处理通过具有对要被实例化的虚拟机的请求201的平台200来开始。例如,用户可能请求具有特定参数的虚拟机,诸如存储器大小、CPU核数目、操作系统、硬盘空间、网络带宽等。
[0027]第一级210标识能够被用来使具有指定参数的虚拟机加速自旋的对应虚拟机映像。第一级210接着执行参考图7描述的方法700。具体地,第一级210获得虚拟机映像上的写租赁(动作701)以便该租赁被第一级210拥有,使用处理211在虚拟机映像上执行处理(动作702),并且随后将具有秘钥的租赁传递给下一级(动作703)。
[0028]关于写租赁的一个值得注意的事是其是排他性的,因为写租赁对于给定虚拟机映像在一个时间仅能具有一位所有者,并且仅租赁的所有者能够写入虚拟机映像。这阻止平台200中的多个级在任何给定时间能够写入虚拟机映像205,从而阻止对虚拟机映像205的破坏。
[0029]第二级220同样地执行方法700,除了代替获得租赁(动作701),第二级220转而改变租赁以便该租赁被第二级220所有。这一租赁改变过程可以通过取得至第一级210提供的先前租赁的句柄并且使用秘钥来获得新的租赁或者第一级210不在是其所有者的旧租赁的翻新形式来执行。第二级220在虚拟机映像上执行处理221 (动作702),并且随后将带有秘钥的租赁传递给下一级(动作703)。
[0030]第三级230也执行方法700,除了再一次代替获得租赁(动作701),第三级230转而改变租赁以便该租赁被第三级230所有。第三级230在虚拟机映像205上执行处理231 (动作702),并且随后将带有秘钥的租赁传递给下一级(动作703)。这继续直到从虚拟机映像205的虚拟机实例化完成202。当在宿主上不再需要对应于虚拟机映像的虚拟机时,也可发生逆过程。当存在对虚拟机删除的请求时,较低级230将租赁返回到先前级220的租赁。这一序列继续,直到虚拟机映像所有权回到顾客。
[0031]图3示出了包括与系统302交互的多个客户端301的环境300。系统302包括图2的多级平台200的具体示例,其中管理服务313表示第一级210,宿主结构310表示第二级210,而宿主31IA表不第二级。
[0032]在环境200中,多个客户端301使用门户314与系统302交互。例如,客户端301可能正在请求虚拟机在系统302中加速自旋以供给各个客户端使用或者供其他客户端使用。例如,用户可能请求虚拟机个人地使用,或者可能管理员可能请求一个或多个虚拟机加速自旋以供由一个或多个其他用户使用。客户端301可以各自如上针对图1的计算系统100所述地被结构化。
[0033]在图3中,仅存在所示四个客户端,包括客户端301A、301B、301C和301D。然而,如由省略号301E所表示的,本文描述的原理不受到系统302所服务的客户端数目的限制,并且正被服务的客户端集合可能频繁地或甚至连续地改变。在一个实施例中,系统302是云计算环境,在该情形中,被服务的客户端数目可能是相当大量的,并且系统302可能是分布式的甚至可能是全球分布式的。
[0034]在该描述和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的普遍、方便的、按需网络访问的模型。可配置计算资源的共享池可经由虚拟化而被快速地供应,并可利用低管理努力或服务提供商交互来释放,并随后相应被缩放。云计算模型可由各种特性(如按需自服务、广泛网络访问、资源池、快速灵活性、测量的服务等)、服务模型(如软件即服务(“SaaS”)、平台即服务(“PaaS”)、基础结构即服务(“IaaS”))以及部署模型(如私有云、社区云、公共云、混合云等)组成。在该描述和权利要求书中,“云计算环境”是其中采用了云计算的环境。
[0035]系统302还包括宿主结构310 (或服务结构)和若干宿主311。宿主表示能够运行多个虚拟机的物理机。宿主结构做出关于要在哪个宿主上运行虚拟机的总体决策并且抽象出该宿主的身份以便在宿主结构310的级别以上的组件(包括客户端)不必知晓宿主311或者虚拟机在其上运行的具体宿主。宿主结构310可以例如管理系统302中所有资源的供应和生存期管理。虚拟机甚至可以从一个宿主迁移到另一宿主而服务结构以上的组件或客户端不知晓该迁移。宿主结构310可以监视宿主311的性能,跟踪跨宿主的分配和资源使用,并且充当对其他服务(诸如存储服务312)的网关。
[0036]在所示实施例中,宿主311被示为包括三个宿主311A、311B和311C。然而,省略号311D表示宿主结构312可与任何数目的宿主对接。宿主311A被抽象地示为仅大于宿主311B和311C,以便宿主的典型内容中的一些内容可以被清楚地示出,尽管出于简化的目的,宿主311B和311C的内容未被示出。
[0037]宿主31IA被示为包括物理资源321。此类物理资源321包括例如非易失性存储,诸如固态存储、机制存储等。物理资源321还可包括存储器、具有特定带宽的网络接口卡、
处理核等。
[0038]系统管理程序322驻留在物理资源321之上并且在系统管理程序322从虚拟机321中抽象出物理资源321的意义上服务于多个虚拟机324。取而代之,虚拟机324可各自与系统管理程序322对接,并且系统管理程序322使得对于虚拟机表现为就像是虚拟机正与物理资源对接一样。这一概念化允许系统管理程序向虚拟机提供所有的虚拟资源,此类虚拟资源由系统管理程序之下的物理资源支持,但对于虚拟机而言表现为独立的资源。系统管理程序还确保虚拟机操作之间的隔离,以使得一个虚拟机不会篡改另一虚拟机使用的资源。每一宿主还具有宿主代理323,宿主代理323与宿主结构310对接并且执行特定于宿主的其他操作,诸如宿主性能监视和报告、虚拟机实例化等。
[0039]在宿主311A的所示示例中,存在示出的两个虚拟机324,虚拟机324A和宿主324B。然而,省略号324C表示可以存在在系统管理程序322之上操作的任何数目的虚拟机324。仅有的限制实际上在于系统管理程序和底层物理资源支持各个虚拟机的期望性能的能力。如果例如太多的虚拟机被添加到单个宿主机,则性能可能恶化。宿主结构310被设计成避免这一情形,并且甚至将虚拟机从一个宿主迁移到另一宿主以执行负载平衡,执行从硬件或软件故障中的自动化服务恢复,以容纳资源要求改变和/或保护作为整体的宿主的性能。
[0040]在操作期间,虚拟机模拟完全可操作的计算系统,包括至少一个操作系统并且也许还包括一个或多个其他应用。虚拟机生成桌面图像或其他表示桌面的当前状态的呈现指令,并接着将该图像或指令传送到客户端以供桌面的呈现。随着用户与客户端处的桌面进行交互,用户输入从客户端被传送到虚拟机。虚拟机处理用户输入,并且如果合适,则改变桌面状态。如果桌面状态中这样的改变将导致在所呈现的桌面中的改变,则虚拟机更改图像或呈现指令(如果合适的话),并将经更改的图像或呈现的指令传送到客户端计算系统以供合适的呈现。从用户的角度而言,就好像客户端计算系统本身执行桌面处理。
[0041]存储服务312包括虚拟机映像331。在所示示例中,虚拟机映像311包括虚拟机映像331A和331B,尽管省略号331C表示可以在存储服务312中存在任何数目的虚拟机映像。虚拟机映像定义虚拟机的初始状态,包括虚拟机的操作系统版本。在专门化的虚拟机映像中,虚拟机映像专用于虚拟机的单个实例,并且可操作的虚拟机实例可直接从虚拟机映像加速自旋。在该情形中,虚拟机可以直接写入虚拟机映像。
[0042]存储服务312可以提供有用的功能以便改善可靠性并且降低存储的等待时间。例如,存储服务312可以将存储中的一些数据复制到不同位置以降低等待时间并且可能地抵抗灾难。存储服务312还为每个虚拟机映像提供排他的写租赁。虚拟机映像可以是可供来自不同组织的多个客户端使用的预先构造的虚拟机映像,或者可以是由顾客提供的顾客专用的虚拟机映像。
[0043]图4示出用于使宿主结构阻止或降低存在在虚拟机映像上操作(具体为写入)的相同虚拟机的多个实例的几率的方法400的流程图。宿主结构310审阅从虚拟机映像实例化(或升级)虚拟机的请求(动作401)。宿主结构310还验证该请求是有效请求(动作402)。随后确定要被实例化(或升级)的虚拟机在虚拟机映像上是否具有有效租赁(决策框 403)。
[0044]如果虚拟机的确具有有效租赁(决策框403中的是),则宿主结构310促进从所选宿主上的虚拟机映像的对虚拟机的实例化或升级(动作405)。例如,可能在宿主结构310与所选宿主31IA上的宿主代理323之间存在某些交互,这些交互使得宿主代理从虚拟机映像实例化虚拟机。作为示例,宿主结构310可以创建描述虚拟机的配置文件并且将该配置文件提供给所选宿主。宿主结构310可以发出命令以创建如配置文件中所述的虚拟机。宿王结构310可以发出命令以启动所创建的虚拟机。
[0045]如果虚拟机不具有有效租赁(决策框403中的否),则虚拟机被阻塞从虚拟机映像进行实例化或升级(动作404)。例如,宿主结构可以放弃发出使得所选宿主从虚拟机实例化虚拟机的任何命令。通过坚持要被实例化的任何虚拟机拥有对虚拟机映像的租赁,这阻止了这样的情形,其中可能存在同时在相同虚拟机映像上操作的多个虚拟机,从而导致对虚拟机映像的破坏。例如,这可能在跨宿主的虚拟机迁移期间在自动服务恢复或虚拟机资源配置改变期间发生。这还可能在宿主机构原本要经历结构控制器或备份状态恢复的状态丢失的情况下发生。
[0046]现在将描述示例系统302的操作。客户端301与门户314交互以便传达要实例化(或升级)虚拟机以供特定用户使用的请求。门户314通过将请求传达给管理服务313来作出响应。作为图2的第一级210的示例的管理服务313通过标识要使用用户提供的参数从其创建虚拟机的对应虚拟机映像来作出响应。管理服务313随后获取所选虚拟机映像上的租赁(动作701)以便该租赁由管理服务313所有,并且仅管理服务313可以写入所选虚拟机映像。管理服务313随后在虚拟机映像上执行任何进一步的处理(动作702),并且随后将租赁和秘钥传递给平台中的下一级(动作703),该下一级是图3中的宿主结构310。由于宿主结构310直接与存储服务312通信,并且存储服务312为任何给定虚拟机映像提供排他写锁定,获得、翻新或重新获得租赁的任何实体通过图3的实施例中的宿主结构310来对此作出请求。
[0047]宿主结构310随后继续操作。图5示出了用于使宿主结构促进从虚拟机映像的对虚拟机的实例化的方法500的流程图。一些动作由宿主结构执行,如在图5的左侧栏标题“结构”下所表示的。方法500的其他动作由宿主执行,如中在图5的中间列标题“宿主”下所表示的。其他动作由虚拟机本身执行,如在图5的右侧列中的标题“虚拟机”下所表示的。
[0048]宿主结构310确定要从虚拟机映像实例化(或升级)的虚拟机(动作501)。这一确定可以基于从管理服务312收到租赁和秘钥以及收到指定要被创建的虚拟机的参数的其他信息来作出。
[0049]作为响应,宿主结构标识要在其上实例化虚拟机的宿主311之一(在后文中称为“所选宿主”)(动作502)。在该示例中,假定所选宿主是宿主311A。宿主结构310随后改变对虚拟机映像的写租赁(动作502),以使得宿主结构310获得对写租赁的所有权并且成为能够写入所选虚拟机映像的仅有实体。被改变的租赁可以导致仅对宿主结构可知的新租赁标识符。宿主结构310在虚拟机映像上执行任何其他处理(动作702),并且随后将对虚拟机映像的租赁和秘钥传递给所选宿主(动作504)(也是动作703)。
[0050]在一个实施例中,所选宿主31IA随后响应于从宿主结构310接收租赁和秘钥来改变租赁(动作511)(也称为动作701),以使得仅所选宿主代理有能力写入所选虚拟机映像。如已经提及的,所选宿主311A可以使用宿主结构310的服务以便完成这一租赁翻新。然而在一替换实施例中,宿主31IA不改变租赁。相反,宿主31IA使用从宿主结构310传递的租赁。在该情形中,响应于任何宿主失败,宿主结构310将改变租赁(当宿主结构310恢复对租赁的所有权时这可能发生)。
[0051]之后,宿主结构310使得所选宿主从虚拟机映像实例化和执行虚拟机(动作505)。所选宿主随后将翻新的租赁与虚拟机相关联(动作512),以使得被实例化的虚拟机是即便在所选宿主上能够写入从其创建虚拟机的所选虚拟机映像的仅有的实体。注意到,即便向宿主结构310的另一实例发送要创建虚拟机的相同请求,其他宿主结构控制器将不能够实例化虚拟机,因为其他宿主结构实例不拥有对对应虚拟机映像的写租赁。从而,本文描述的原理提供了对租赁的可靠使用以及宿主结构的部署与宿主结构控制器实例数目之间的独立性。
[0052]之后,只要虚拟机对虚拟机映像执行写操作(决策框521中的是),则写操作被截取(动作522),可能由宿主311A上存在的或系统管理程序322中的写驱动器截取。驱动器分派带有改变的租赁的写操作(动作523),以使得写操作在存储服务313中的虚拟机映像上执行(动作524)。
[0053]宿主结构的功能之一在于检测虚拟机从一个宿主到另一宿主的迁移何时发生。图6示出了用于使系统迁移虚拟机的方法600的流程图。首先,宿主结构310检测到虚拟机应当从所选宿主迁移到宿主中的另一宿主(动作601)。如果要发生迁移,则宿主结构310促进迁移。存在为何宿主结构可以决定要发生迁移的任何数目的原因。
[0054]第一个示例原因是宿主结构接收到显式的迁移命令。例如,高级管理员可发出这样的命令以测试迁移能力,或者出于法律或领土原因要移动虚拟机,或者由于宿主之一要被关闭。对于这样的迁移命令的另一原因将会是促进在宿主上表示的虚拟机群集的碎片整理。
[0055]作为另一示例,宿主结构可以响应于接收到针对虚拟机的改变的资源规范(在本文也被称为改变的资源要求)来确定应当发生迁移;并且借此确定改变的资源规范保证了迁移。例如,如果虚拟机规范从2个处理器核改变为16个处理器核,则在当前宿主上可能没有足够的能力来允许所请求的更大的物理资源,从而保证至具有这些能力的宿主的迁移。
[0056]作为第三示例,宿主结构可以响应于检测到所选宿主的降低的性能来确定虚拟机要从所选宿主迁移至另一宿主。
[0057]作为第四示例,可能宿主结构响应于执行负载平衡来确定虚拟机应当从所选宿主迁移至另一宿主。
[0058]作为其他示例,迁移可以在自动化服务恢复期间发生,或者在宿主结构控制器丢失其状态并且从备份获得恢复的情况下发生。结构控制器状态可以使用本文描述的原理来具有与最近状态不同的虚拟机配置和位置,并且租赁机制阻止这一差别破坏虚拟机。
[0059]迁移还可能发生以执行备份恢复。在此情形中,宿主结构将针对给定虚拟机的租赁翻新至租赁LI并且在宿主A中实例化虚拟机。随后,宿主结构将虚拟机迁移至宿主B并且将租赁翻新至L2。接着,宿主结构失败并且丢失其状态以及最近的租赁L2。结构从备份中获得恢复并且试图在宿主A上实例化虚拟机,由于该虚拟机正以租赁L2在宿主B上运行,因此这将失败。在结构失败的情形中,这保护VM映像不被用一些较旧的状态被重新写入。
[0060]在任何情形中,响应于确定虚拟机应当从所选宿主迁移,宿主结构310将对虚拟机映像的租赁返回到如从由所选宿主拥有的管理服务313传递的原始形式(动作602),并且再次改变对虚拟机映像的租赁以便该租赁被宿主结构所有(动作603)。租赁的返回和改变(动作602和603)可能甚至是自动执行的。宿主结构310接着标识要在其上实例化虚拟机的宿主311中的另一宿主,下一所选宿主(动作604)。例如,可能宿主结构310选择虚拟机324A要从宿主311A迁移到宿主311B。处理随后从在下一宿主上实例化虚拟机继续至图5的动作504。
[0061]相应地,本文描述的原理允许以虚拟机的多个实例不同时在虚拟机映像上操作的方式的对虚拟机的有效管理。因而,阻止了虚拟机映像破坏,或至少降低了风险。
[0062]本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。
【权利要求】
1.一种系统,包括: 多个宿主,每一宿主具有1)物理资源,2)系统管理程序,以及3)宿主代理,所述宿主代理使得多个虚拟机在所述系统管理程序之上操作以便从物理资源中抽象出来;以及 宿主结构,被配置成1)审阅要从虚拟机映像实例化或升级虚拟机的请求,2)确定要被实例化的虚拟机在所述虚拟机映像上是否具有有效租赁,以及3A)如果请求者不具有有效租赁,则阻塞所述虚拟机从所述虚拟机映像进行实例化或升级,以及3B)如果请求者的确具有有效租赁,则促进从所述虚拟机映像的对所述虚拟机的实例化或升级。
2.如权利要求1所述的系统,其特征在于,所述系统包括多个组件系统,所述组间系统在对要被实例化或升级的虚拟机的请求与完成实例化或升级之间在所述虚拟机映像上工作。
3.如权利要求2所述的系统,其特征在于,所述系统实施排他写租赁,其中至多组件系统之一在给定时间能够拥有所述排他写租赁,并且其中组件系统中的任一个必须对排他写租赁具有所有权以便写入所述虚拟机映像。
4.一种系统,包括: 多个宿主,每一宿主具有1)物理资源,2)系统管理程序,以及3)宿主代理,所述宿主代理使得多个虚拟机在所述系统管理程序之上操作以便从物理资源中抽象出来;以及宿主结构,其被配置成执行以下操作: 确定要从虚拟机映像实例化或升级虚拟机; 获得对所述虚拟机映像的写租赁的所有权; 标识要被实例化或升级的虚拟机在其上的多个宿主之一;以及 将对所述虚拟机映像的租赁和秘钥传递给所选宿主。
5.如权利要求4所述的系统,其特征在于,所选宿主被配置成: 响应于从所述宿主结构接收到租赁和秘钥使得所述租赁被改变。
6.如权利要求5所述的系统,其特征在于,所选宿主使用所述宿主结构来使得所述租赁被改变。
7.如权利要求4所述的系统,其特征在于,所述宿主结构被进一步配置成使得所选宿主从所述虚拟机映像实例化和执行所述虚拟机。
8.如权利要求7所述的系统,其特征在于,所选宿主将改变的租赁与所述虚拟机相关联,以使得当所述虚拟机对所述虚拟机映像执行写操作时,所述写操作被截取并且用改变的租赁被指派,从而在所述虚拟机映像上执行写操作。
9.如权利要求4所述的系统,其特征在于,所述宿主结构被进一步配置成检测所述虚拟机是否应当从所选宿主迁移到所述多个宿主中的另一宿主。
10.如权利要求9所述的系统,其特征在于,所述宿主结构响应于接收到显式迁移命令来确定应当将所述虚拟机从所选宿主迁移到另一宿主。
【文档编号】G06F9/445GK104350466SQ201380030253
【公开日】2015年2月11日 申请日期:2013年5月30日 优先权日:2012年6月7日
【发明者】M·库托年科, C·M·桑德斯, K·拉曼, P·A·杜尔诺夫, S·塞伊德, A·J·爱德华兹 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1