将机器转换为虚拟机的制作方法

文档序号:6442347阅读:177来源:国知局
专利名称:将机器转换为虚拟机的制作方法
将机器转换为虚拟机本申请是申请日为2008年11月10日,申请号为200780016962. 4(国际申请号为 PCT/US2007/006021),名为“将机器转换为虚拟机”申请的分案申请。背景背景和相关技术存在多种在计算机化环境中分发不同类型的资源(软件、硬件、或其组合)的方式。例如,从软件的观点来看,企业可以在多个不同的计算机上安装操作系统(或应用程序)的多个副本,并由此在多个系统之中分发一个副本。共享硬件的常规方式包括在网络上建立计算机系统以使得多个不同的计算机系统能够出于各种存储或文件共享需求而访问另一个计算机的驱动器空间。然而,近来硬件能力(即,现有存储、存储器和处理能力)的发展意味着仅仅提供传统的存储和/或网络通信量管理功能往往未充分利用给定的物理机器。如此,现在从软件和硬件组合的观点来看,分发资源的另外的方法包括在单个物理机器上安装多个虚拟计算机系统。通常,虚拟机可以用在主机存储的指定部分上的特定操作系统的唯一实例,并用所分配的主存储器和处理能力部分来安装。因为这些和其它特征,虚拟机可以很容易地区别于其它虚拟机,且甚至区别于它们被安装在其上的主服务器。对网络上的其它用户来说,虚拟机仅仅作为诸如网络上的任何其它物理计算机系统等独立可寻址的计算机系统出现。随后可以将虚拟机用于各种目的,如用作网络上的另一服务器(例如,电子邮件或数据库服务器),出于软件或硬件测试目的而用作瘦客户机的主计算机系统等。除该功能之外,虚拟机还可以提供额外的好处——其能够相当容易且在某些情况下相当迅速地被安装和设置以及移除。例如,特定主计算机系统的管理员可以接收对虚拟机的请求,在该主计算机上手动地分配适当的资源,并随后安装所请求的虚拟机。在不再需要虚拟机时,管理员可以手动地选择关闭或甚至删除在主服务器处的虚拟机的一个或多个命令。由此,一个组织可能期望通过使一个或几个主服务器大略地主存几百个虚拟机来减少其物理机器(服务器,个人计算机等)的数量。可以理解,这种合并可以提供多个优点,尤其是如果该组织可以减少各种资源消耗和机器管理成本,包括电力节约、温度/冷却节约、 空间节约和由于减少的物理机器使用而可获得的其它节约。不幸的是,通过将所选数量的现有物理计算机系统转换为虚拟机来合并物理机器不是件简单的事。具体地,仅仅将物理驱动器的内容复制到主服务器的分区上通常不足以创建可使用的虚拟机。例如,在物理机器正在运行时执行物理机器的驱动器的基本复制可能造成文件状态的不一致性(即,数据不是“应用程序一致的”)。如此,正在访问物理机器上的数据的应用程序在稍后该数据被移动到虚拟机时,可能不能够使用该数据的副本。另外,仅仅将这样一个副本传输到主服务器可能导致系统注册表中的其它不一致性、或与各盘和网络驱动程序的不一致性、操作系统二进制代码的不一致性等。虽然存在一些用于规避这些困难的机制,但用于做到这些的传统机制通常涉及显著的停机时间和资源花费(从人力和软件两种观点来看)。
3
例如,一种转换物理机器的方法涉及在虚拟机主机处从无到有地创建虚拟机。具体地,管理员可以简单地将物理机器上的所有应用程序安装在新虚拟机中,将文件系统和应用程序数据转移到该虚拟机,并随后从无到有地和/或通过应用程序还原操作在虚拟机上重建任何其它工作负荷。当然,该方法从各种观点来看都是不合需要的,并可造成对组织的资源的浪费,尤其是试图将数百台物理机器转换成虚拟机时。用于转换物理机器的另一方法涉及使用相当复杂的基础结构组件,如自动化部署服务(“ADS”)和/或预安装可执行环境(“PXE”)等来创建物理机器组件的可传输副本。 通常,使用这一类型的基础结构的机制包括关闭物理机器,并用例如PXE来重新引导该物理机器。这允许管理员不用加载固有操作系统而启动物理机器,并且因此在复制过程期间禁止写文件。在复制物理驱动器内容之后,管理员随后可以将该内容传输到虚拟机主机。对于数十亿字节的数据,仅此即可花费一个或多个小时。在传输该数据后,管理员然后需要对所转移的数据执行多个相当复杂的改变来使所复制的内容可作为虚拟机来引导。至少部分地由于与使正被转换的物理机器离线并使数据可引导相关联的停机时间,在简单地从无到有地将物理机器重建为虚拟机太过困难时,通常使用该方法。因此,存在可被解决的与将物理机器转换为虚拟机相关联的众多问题。简要概述本发明的各实现用被配置为高效地将物理机器转换为虚拟机的系统、方法和计算机程序产品来解决本领域中的一个或多个问题。具体地,本发明的实现允许迅速复制、传输物理机器卷数据并使其如在虚拟机主机(或其它适当的计算机系统)等处可引导,而不必使物理机器离线。在一实现中,例如,可以使用一个或多个应用程序写入器(例如,经由卷阴影复制服务)在一个或多个物理机器卷保持在线的同时创建该一个或多个卷的应用程序(和/或文件系统)一致的快照。随后可以使用高效的传输手段(例如,块级复制)来将这些快照传输到主机服务器处的虚拟硬盘文件。随后可以在虚拟机主机处修改与所传输的快照数据相关联的操作信息(例如,引导数据、系统注册表和二进制代码等)从而使得所传输的快照卷可引导。例如,根据本发明的一实现的从物理机器的观点来看的将物理机器转换为虚拟机而不招致显著的停机时间的一种示例方法可以涉及标识物理机器的一个或多个卷的一个或多个硬件配置设置。该方法还可以涉及创建对应于该一个或多个物理机器卷的一个或多个一致的快照。另外,该方法可以涉及将该一个或多个快照发送给所挂载的虚拟硬盘文件。 此外,该方法可以涉及将该一个或多个一致的快照的引导记录发送到所挂载的虚拟硬盘文件。在这种情况下,引导记录可以形成该一个或多个一致的快照的可在虚拟机主机处修改 (或视需要从无到有地创建)的操作信息的一部分。另外,根据本发明的一实现的从虚拟机的观点来看的将物理机器转换为虚拟机的另一个示例方法可以涉及创建具有文件大小的虚拟硬盘文件。该方法还可以涉及在虚拟机主机处挂载该虚拟硬盘文件。在这种情况下,虚拟硬盘文件可以表现为操作系统可访问的物理盘。另外,该方法可以涉及接收对应于一个或多个物理机器卷的一个或多个一致的快照。此外,该方法可以涉及修改该一个或多个一致的快照的操作信息。如此,可以使该一个或多个一致的快照适合于虚拟机主机处的操作系统,如通过对引导记录、驱动程序、操作系统二进制代码、系统注册表、和/或配置首选项等的改变。还有,该方法可以涉及移除虚拟硬盘文件的挂载。虚拟硬盘文件因此不可以作为物理盘来访问,但可作为虚拟机来引导。提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。 该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。本发明的示例性实现的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对这些示例性实现的实践而获知。各个特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现和获得。这些和其它特征将从以下描述和所附权利要求书中变得更完全显而易见,或者可通过如下所述对这些示例性实现的实践而知。附图简述为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,附图中图IA示出根据本发明的一个实现的概略示意图,其中对一个或多个物理盘卷拍了一个或多个快照,且在虚拟机主机处创建了一个或多个虚拟硬盘文件;图IB示出图IA的概略示意图,其中使用高效传输机制将物理盘卷的一个或多个快照的数据传输到所创建的虚拟硬盘文件中;图IC示出根据本发明的一个实现的

图1A-1B的概略示意图,其中修改含有所传输的快照数据的虚拟硬盘文件以创建可引导的虚拟机;以及图2示出从物理机器和虚拟机主机的观点来看的用于将一个或多个机器转换为相应的一个或多个虚拟机的方法的流程图。详细描述本发明延及被配置为将物理机器高效地转换为虚拟机的系统、方法、以及计算机程序产品。具体地,本发明的实现允许迅速复制、传输物理机器卷数据并使其如在虚拟机主机(或其它适当的计算机系统)等处可引导,而不必使物理机器离线。在一实现中,例如, 可以使用一个或多个应用程序写入器(例如,经由卷阴影复制服务)在一个或多个物理机器卷保持在线的同时创建该一个或多个卷的应用程序(和/或文件系统)一致的快照。随后可以使用高效的传输手段(例如,块级复制)来将这些快照传输到主机服务器处的虚拟硬盘文件。随后可以在虚拟机主机处修改与所传输的快照数据相关联的操作信息(例如, 引导数据、系统注册表和二进制代码等)从而使得所传输的快照卷可引导。因此,本发明的实现可以提供诸如以可以避免物理机器停机的方式进行的相对快速、“一站式”物理到虚拟的机器转换等优点。此外,由于所转换的机器在虚拟机主机处是一致的,所以本发明的各个实现允许可靠的“一站式”物理到虚拟的机器转换。如从以下说明书和权利要求书中更全面地理解的,此类转化可以用任何数目的合适的组件和模块来实现。例如,本发明的各个实现可以包括使用卷阴影复制服务(“VSS”)中组件和机制来创建应用程序(和/或文件系统)一致的快照。这些组件可以创建在快照过程期间运行的一个或多个物理机器卷的一个或多个一致的快照(或时间点映像)。
另外,本发明的各个实现可以包括使用卷盘服务(“VDS”)和/或相关的组件。 一般而言,VDS(或相关的组件)包括用于在物理盘上创建和配置卷的平台。此外,本发明的各个实现包括使用“盘映像制作器(disk imager)”和在某些情况下,使用“映像挂载器 (image mounter) ”。通常,盘映像制作器包括被配置为在给定要复制的起始位置和字节(或字节块)数的情况下创建物理盘或卷的基于块(或字节块)的副本的组件和/或模块。相反,映像挂载器工具包括被配置为例如将虚拟硬盘文件作为输入并在文件系统中挂载该虚拟硬盘文件来将该文件展示为物理盘的一个或多个组件和/或模块。可以使该所展示的物理盘与任何其它物理盘一样可由操作系统来访问,包括在其卷中写入数据的能力。本发明的各个实现还包括使用虚拟机主机处的虚拟硬盘文件(“VHD”文件),其中该VHD文件包括一个物理盘和由一个或多个虚拟机(“VM”)管理(且内部可访问的)的一个或多个物理盘卷。虽然术语“虚拟机”、“虚拟机主机”和“VHD文件”被用在某些微软环境中,但可以理解,此处对微软组件(和/或WINDOWS SERVER组件)的引用仅是示例性的。具体地,在阅读该说明书和权利要求书之后可以理解,可在各种实现虚拟机或相关的这种实体的操作环境中找到和实现此处所描述的组件、模块和或机制。现参考图1A,该图示出在其中可以将物理机器105(例如,个人计算机、物理服务器等)转换为主存在虚拟机主机110处的虚拟机的示例性计算机化环境100的概略示意图。在一基本的层面上,将物理机器(例如,10 转换为虚拟机(例如,175,图1C)可以涉及拍一个或多个物理机器卷(例如,11 的快照,在虚拟机主机处创建虚拟机硬盘文件(例如,140),将快照传输到该VHD文件,并随后使VHD文件中的一个或多个所传输的快照卷可作为虚拟机(例如,175)来引导。因此,可以理解,存在可被实现来使转换高效地进行的多种不同的准备和后操作过程。例如,在至少一实现中,可以通过使用在物理机器105的物理盘上启动一个或多个卷(例如,卷115)的快照操作的转换模块130(即,其可包括机器105和/或主机110处的一个或多个模块)来启动转换过程。一般而言,转换模块130可以包括被配置为创建物理盘卷的一致的阴影副本的任何适当的写入器和请求器。例如,如前所述,可在卷阴影复制服务中提供这种写入器和请求器。因此,例如,转换模块130可以通过向在物理盘的一个或多个卷的每一个(例如,卷115)中的所有应用程序写入器发送信号以开始其数据的快照操作来开始转换过程。例如,如所示的,卷115至少包括卷数据125,以及引导记录120。在从转换模块130接收到该消息后,卷115上的每一应用程序写入器可以将其存储器内数据转储清除到物理盘,和/或冻结任何文件系统或卷日志。对于没有使用应用程序写入器的应用程序,转换模块130可以指示(例如,默认地,或通过用户或管理员的命令) 关闭该应用程序,并且由此确保在快照期间没有进行写入。由此,图IA示出转换模块130 随后可以创建卷115上的所有卷数据的单个、时间点快照(S卩,副本)。例如,图IA示出转换模块130已创建了卷115的快照117(即,“快照卷”),其中在这种情况下,快照117包括卷数据127和引导记录120。可以理解,在拍快照或执行快照(和复制)操作时可以执行多种优化,以确保数据以高效的方式来复制和传输。例如,转换模块130可以标识正在使用卷115的什么部分 (即,包括数据)和什么部分是空闲的。快照操作由此可以被配置为只复制卷或物理盘的所使用的部分,而非整个卷或整个物理盘。另外,快照操作还可以被配置为避开可能在虚拟化环境中不太有用(或根本没用)的特定文件。例如,具体地,快照操作还可被配置为标识诸如包括在卷差异区域、页文件、坏簇、 休眠文件等中的文件。由此可以在创建快照117或执行字节块传输时避开这些文件,并进一步降低需要传输到虚拟机主机110的数据量。可以理解,这些类型的文件和优化易于对其它类型的文件、所使用的或空闲空间计算等而在各种操作环境中变化。无论如何,并作为解释,主要由于在快照操作期间(和/或之后)时间的改变,所以快照117中的数据127通常不同于卷115上的原始数据125。例如,由于物理机器105在快照操作期间仍在运行,卷数据125可能继续改变,如如果用户继续进行对特定应用程序数据的写入。因此,卷数据127(即,“卷数据127”)表示卷115上的数据125的早期一致的时间点,其在本质上是转换模块130启动快照过程的时间点。然而,图IA还示出引导记录120在快照117上与其在卷115的运行中数据上相同。 即,可以理解,在快照过程期间,由于应用程序通常不能访问引导记录(例如,120),所以引导记录不可能改变。具体地,引导记录通常由操作系统来改变,并通常是在少有(如果不是没有)的基础上改变的。如此,图IA示出在这种情况下引导记录120与其在快照操作之前相同。在创建快照117之前、期间或不久之后,转换模块130还可以在虚拟机主机110处设置对应于物理机器150物理盘(未示出)的一个或多个虚拟硬盘(“VHD”)文件140。 例如,图IA示出转换模块130发送消息150来创建可写入的虚拟硬盘文件140。在一实现中,这还可以包括首先发送消息来创建特定固定大小的VHD文件(例如,140),并随后发送的单独的消息以使得该VHD文件可写。(转换模块130还可以发送消息来创建(可写的或其它)动态大小的VHD文件,其大小随添加数据而增长。)通常,每一 VHD文件都可被配置为对应于计算机系统的单个物理盘,且物理盘中的每一卷都可以同样地以新创建的VHD文件来表示。然而,在某些情况下,VHD文件可以表示单个卷,而非整个物理盘。尽管如此,在其中物理盘具有多个卷(虽然只示出单个卷115) 的物理盘示例中,新的VHD还可以包含对应于多个卷的数据。当然,在该点上有一些灵活性。例如,如果物理机器105的用户具有一个跨多个分区的卷(和/或作为镜像的卷等), 则该用户可以决定只将一个分区专用于目标虚拟硬盘文件中的快照数据。类似地,用户可以决定只向虚拟硬盘文件传输包括多个卷的物理盘的一个卷。因此,VHD文件的大小通常至少是与所传输的源(例如,物理盘、特定物理盘卷、物理盘中的数据等)数据可能需要的一样大的大小。如此,可以理解,在将现有虚拟机重复到更大的存储空间时,也可以使用此处的技术。例如,管理员在标识虚拟机的卷存储能力正在减少时,可以创建另外的更大的VHD文件,对虚拟机数据拍快照,并在本质上通过使用已描述的相同的过程将其快照数据传输(例如,复制)到该新的VHD文件来“重新虚拟化”虚拟机。由此,本发明的各个实现不但包括“物理到虚拟”的机器转换,还包括“虚拟到虚拟”的机器转换。具体地,且在某些情况下,本发明的各个实现还可以更一般地被称为将“机器”转换为“虚拟机”。即,“机器”可被理解为包括“物理”计算机系统(例如,具有相关联的硬件和操作系统的台式计算机)和“虚拟”计算机系统(例如,在虚拟机主机处作为唯一计算机系统安装的计算机系统)。
无论如何,在创建虚拟硬盘文件140之后,转换模块130将文件140作为物理盘来挂载,以便文件140可以通过例如网络通信接收快照117的数据。(可以理解,在此处描述的某些实现中,可能甚至不需要挂载。)因此,图IA还示出转换模块130发送消息155来挂载虚拟硬盘文件140。在附加或替换实现中,消息155可以包括在虚拟机主机110、正被转换的物理机器105、或其中在VHD文件140所挂载的机器和正被转换的物理机器(即,本情况中的10 之间存在网络连接的任何地方的任一个上挂载VHD文件140的指令。挂载文件140的一部分可以包括将该文件与诸如物理盘的设备ID等一个或多个设备标识符进行关联。例如,可以指示虚拟机主机Iio来挂载虚拟硬盘文件140以使其可通过如“\\. \device\Harddiskl45\(\设备\硬盘145\),,等驱动器路径来标识。具体地, 图IB示出VHD140可作为“盘驱动器145”来标识。类似地,转换模块130还可以标识每一快照(例如,117)的设备标识符(和/或例如,挂载点)。最终,转换模块130可以使用所标识的任何快照和任何对应的VHD文件的设备标识符来传输快照内容。通常,转换模块130可以使用任何数目的数据传输机制来传输快照117内容。例如,在一实现中,转换模块130可以将快照117在逐字节的基础上通过盘驱动器145传输到文件140。然而,在附加或替换实现中,转换模块130可以通过标识和传输“字节块”来将快照117传输到文件140。一般而言,字节块包括各个字节的(任何任意大小)的固定序列。 在至少一实现中,传输字节块而非各个字节可以显著地增加可通过网络传输快照117的速度。例如,通常可能要通过传统网络传输协议花几个小时传输到虚拟机主机110的几十亿字节的数据在某些情况下可用字节块传输机制只在几分钟内就传输完毕。无论如何, 图IB示出在这种情况下,转换模块130传输字节(或字节块)“1601”、“1602”等,并通过盘驱动器145将这些字节/字节块直接传输到可写虚拟硬盘文件140。如图IB所示,虚拟硬盘文件140可以具有所有的引导数据120,并在数据传输完成时将包括快照117中所捕获的其它卷数据127。尽管进行了该数据传输,但虚拟硬盘文件140在虚拟机主机110处可能不一定是可引导的,因为该引导数据和驱动程序在虚拟机主机110的上下文中是不可能有用的其原因之一是,虚拟机环境中(和/或虚拟机主机110中)存在的“虚拟硬件”可能不同于物理机器105的硬件。例如,物理机器105上的诸如内核和硬件抽象层(“HAL”)等组件可以基于例如双处理器系统。另外,虚拟机主机110可以向所主存的虚拟机仿真可能以其它方式不能在正被转换的源机器(例如,物理机器10 找到的不同的网卡驱动程序、处理器架构、 物理盘(例如,机器所附带的存储)、物理盘标识符、操作系统驱动程序、和盘驱动程序。在将物理盘卷从虚拟主机转换到虚拟机时,也可能存在这种不同。结果,所传输的引导数据120可能基于物理机器105处的不一定能应用于虚拟机主机110处的适当的虚拟化环境的操作系统特征。这些和其它原因意味着管理员可能需要取决于特定的操作环境而作出多个不同的修改。因此,转换模块130还可以将虚拟硬盘文件140修改为可在虚拟机主机处引导的。在某些情况下,这可以包括基于快照数据更新要创建的虚拟机的内核和HAL以及其它驱动程序和注册表设置的指令。因此,例如图IC示出转换模块130还向虚拟机主机110发送请求165和相对应的自变量来修改操作信息。(在某些情况下,这些对虚拟机的操作信息(例如,引导扇区和注册表信息)的修改甚至可以在物理机器处完成(在被传输到VHD文件中之前)。)在一实现中,这可以包括转换模块130检查卷快照117的引导记录,并基于虚拟机的新盘和卷配置用新的引导信息(例如,经修改的引导信息,或从无到有的新引导信息)替换先前所传输的引导数据120。在另一步骤中,转换模块130还可以检查所传输的卷快照117的注册表信息 (未示出),并基于虚拟机主机110处存在的新硬件和驱动程序以适于虚拟机110的方式更新所传输的注册表信息。这种更新还可以包括将诸如内核和HAL驱动程序等系统二进制代码从多处理器改为单处理器硬件配置。另外,这种更新可以包括添加对虚拟机主机110唯一的计算机和驱动器身份信息,添加对虚拟机主机110唯一的任何适当的盘或文件驱动程序,以及改变注册表信息以适应适当的网络驱动程序、存储驱动程序等。这种更新还可以包括用虚拟设备的驱动程序替换物理设备的驱动程序,在虚拟环境中没有对应的虚拟设备的情况下禁用硬件的驱动程序,以及在虚拟环境中没有对应的虚拟设备的情况下禁用依赖于设备的服务和应用程序。另外,转换模块130还可以创建预期虚拟机(例如,175)的这些和/或其它适当的配置值,以使所得虚拟机(例如,175)用与在原始物理机器105处相同的首选项(例如,存储器、CPU等)来操作。就此,虚拟机主机110的管理员还可以(或另选地)修改所得虚拟机的这些首选项。此外,管理员甚至可以从无到有地构建这一操作信息(即,配置值、首选项等)。在任一情况下,可以理解,多个实体可以进行任何数量的适当的配置改变以确保所得虚拟机是可引导的,并在虚拟机驻地(例如,虚拟机主机110)上正确地操作。在适当地修改/创建适当的引导记录(即,从120到123)、系统注册表信息、驱动程序信息、和/或其它配置或首选项信息之后,转换模块随后可以移除虚拟硬盘文件140的挂载(即,“卸载”),以使其不可再作为驱动器来访问。例如,图IC示出转换模块130向虚拟机主机110发送指示虚拟机主机110移除虚拟硬盘文件140的挂载的消息170。在移除该挂载后,虚拟硬盘文件140可被用作虚拟机175,其数据在本质上与起动快照操作的点处的卷115的数据相同。具体地,新虚拟机175所管理的卷中的数据从各适当的方面来看都是一致的(例如,应用程序一致、文件系统一致、和/或崩溃一致等)。结果,物理机器105的先前用户现在将能够引导虚拟机主机110处的虚拟机175,并能够像该用户使用物理机器105 —样(或比其更佳地)使用虚拟机(包括访问先前数据)。另外,可以理解VHD文件一般可以是可移植的。例如,最终用户可以在至少一实现中仅仅通过将与虚拟机175相关联的虚拟机文件 (例如,VHD文件等)传输到所需位置并执行任何必要的操作信息更新而将虚拟机175传输到任何所需的位置(即,另一虚拟机主机)。在另一实现中,甚至可以在物理机器105本身处创建一个或多个VHD文件(例如, 140),并随后将其发送/传输到适当的虚拟机主机(例如,110)。例如,物理机器105的用户可以在该物理机器处创建VHD文件(例如,140),并将关于物理机器处的感兴趣数据的快照内容传输到该VHD文件。如果需要,这至少是用户可以避免挂载该VHD文件(即,在虚拟机主机110处)的一种方法。在任一情况下,用户随后可以将该VHD文件和对应的快照内容发送/传输到适当的目的地(例如,虚拟机主机110),并改变目的地处对应的操作信息。 另选地,用户甚至可以在将VHD文件和快照内容发送到新目的地之前,在源(例如,物理机器105)处改变该VHD文件的操作信息和快照内容。在某些情况下,并非如此创建VHD“文件”,而是模块(例如,转换模块130)可被配置为从存储器将在物理机器105处创建的快照数据和VHD元数据流化为适于高效传输的部分(例如,字节块)。要被流化的数据还可以根据适当的VHD格式/内容规范以VHD格式来格式化。因此,在被传输到目的地(例如,虚拟机主机110)之后,该流随后作为VHD文件来保存,因为流化的数据是以VHD格式生成的。这是避免挂载VHD文件的另一方法。因此,图1A-1C示出多个概略示意图和可被用来根据本发明的各个实现来创建物理机器卷数据快照和从该数据创建新虚拟机的组件。除了上述内容之外,本发明的各实现还可以按照包括用于实现特定结果的一个或多个动作的方法的流程图来描述。例如,图2 示出从物理机器105和虚拟机主机110的观点来看的、用于将诸如物理机器或虚拟机等机器转换为不同的虚拟机的方法的流程图。以下将参考按照图IA到IC中的机制的组件来描述图2的方法。例如,图2示出从物理机器105的观点来看的、将物理机器转换为虚拟机主机处的虚拟机而不在一个或多个物理机器卷上招致显著的停机时间的方法可以包括标识物理机器的硬件配置的动作200。动作200包括标识机器的一个或多个卷的一个或多个硬件配置设置。例如,图IA示出可以在启动快照过程之前标识卷115上的硬件(和/或软件)配置设置的转换模块130。这可以包括标识当存在于物理机器105的卷115上时的引导记录120 和卷数据125,且还可以包括标识该数据是否被配置为用于多处理器环境、操作系统所支持的文件中的不兼容性、是否存在需要考虑的存储和网络驱动程序等。另外,图2示出从物理机器105的观点来看的方法可以包括创建一个或多个卷的快照的动作210。动作210包括创建对应于该一个或多个机器卷的一个或多个一致的快照。 例如,图IA示出转换模块130创建卷115的快照117,其包括与之前相同的引导记录120以及卷数据127。在至少一实现中,转换模块130可以在卷115上调用可用的涉及写入器的快照过程或仅仅关闭其中这些写入器不可用的应用程序(或其它写入过程)。结果,可以确保快照117中的数据对于快照过程之后的单个时间实例是一致的(例如,应用程序一致)。图2还示出从物理机器105的观点来看的方法可以包括将该快照发送到所挂载的虚拟盘文件的动作220。动作220包括将该一个或多个一致的快照发送到所挂载的虚拟硬盘文件。例如,转换模块130检索在物理机器105处所拍的每一快照的设备标识符,并进一步检索在虚拟机主机110处所挂载的每一虚拟硬盘文件的任何设备标识符。在检索到适当的设备标识符后,图IB示出转换模块130可以将快照117的卷数据127传输到虚拟硬盘文件140,如使用字节(或字节块)传输/复制机制。图2还示出从物理机器105的观点来看的方法可以包括将引导记录发送到所挂载的虚拟盘文件的动作230。动作230包括将一个或多个一致的快照的引导记录发送到所挂载的虚拟硬盘文件,以便可以在虚拟机主机处修改一个或多个一致的快照的引导记录。例如,图IB示出转换模块130还将引导数据120发送到虚拟硬盘文件140。图IC还示出转换模块130可以发送将引导记录120修改为记录123的消息165,以使引导记录123对于虚拟机主机110的操作环境是一致的。在一实现中,可以简单地从无到有地创建新虚拟机的新引导记录,而非只是发送和修改。除上述内容之外,图2示出从虚拟机主机110的观点来看的将机器(即物理机器或先前的虚拟机)转换为虚拟机主机处的虚拟机而不在一个或多个机器卷上招致显著的停机时间的方法可以包括创建虚拟硬盘文件的动作M0。动作240包括创建具有文件大小的虚拟硬盘文件。例如,图IA示出虚拟机主机110接收指示虚拟机主机110创建可写的虚拟硬盘文件的消息150,以及使该新的虚拟硬盘文件可写的指令。作为响应,虚拟机主机 110创建虚拟硬盘文件140并使其可写。如前所述,在此,虚拟硬盘文件大小可以是静态的或是动态的。例如,虚拟硬盘文件140可被设为100GB以容纳50GB的卷115数据。另选地, 转换模块130设置虚拟硬盘文件140随附加的数据传输而动态地增长。图2还示出从虚拟机主机110的观点来看的方法可以包括挂载虚拟硬盘文件的动作250。动作250包括在虚拟机主机处挂载虚拟硬盘文件,以使虚拟硬盘文件表现为可访问的物理盘。例如,图IA示出虚拟机主机110接收挂载虚拟硬盘文件140的请求155。在一实现中,可以指示虚拟机主机110将文件140和特定的设备标识符进行关联,并随后将该标识符挂载为物理设备。随后可以将虚拟硬盘文件140作为盘设备145来查看和访问。另外,从虚拟机主机110的观点来看的方法可以包括接收一个或多个快照的动作 2600动作沈0包括接收对应于一个或多个物理机器卷的一个或多个一致的快照的数据。例如,如图IB所示,虚拟机主机110通过使用任何适当的传输机制(S卩,在任何网络传输协议上逐字节或逐字节块等)接收卷数据127和引导数据120。此外,图2示出从虚拟机主机110的观点来看的方法可以包括修改引导记录的动作270。动作270包括修改一个或多个一致的快照的操作信息,以使该一个或多个一致的快照适于虚拟机主机处的操作系统。如图IC所示,例如,虚拟机主机110接收修改操作信息的消息165。例如,消息165可以包括标识适当的虚拟机主机110准则和以适当的方式将引导数据120改为引导数据123的一个或多个请求。消息165 (或另一消息-未示出)还可以包括改变注册表和/或操作首选项信息的一个或多个请求。操作特性的这些改变可以包括,例如,任何数量的硬件和操作系统配置(例如,任何数量的处理器、硬件驱动程序、盘驱动程序/标识符和存储驱动程序/标识符、网络驱动程序等)。可能需要考虑这些改变以确保虚拟机的新操作系统对于虚拟环境是兼容的并运行正常。操作特性的改变还可以包括各种注册表操纵,如驱动程序和其它硬件的用法、二进制代码中被替换和/或注册的驱动程序的身份、对内核和/HAL信息的更新等。操作特性的改变还可以包括虚拟机的各种配置首选项,如关于存储器和/或CPU要求的那些首选项。另外,图2示出从虚拟机主机110的观点来看的方法可以包括移除虚拟硬盘文件挂载的动作观0。动作280包括移除硬盘文件挂载,以使虚拟硬盘文件不可再作为物理盘来访问。例如,虚拟机主机110接收请求虚拟机主机110移除虚拟硬盘文件140挂载的消息 170。虚拟机主机110随后可以卸载虚拟硬盘文件,以使文件140不再作为本地或通过网络可访问的主机级盘驱动器。结果,虚拟盘文件140可作为包含对单个时间实例一致的数据的虚拟机175来引导,并准备好在虚拟机主机110处操作。具体地,且从最终用户的观点来看,出于所有虚拟的意图和目的,虚拟机175是在快照操作之前的物理机器105的本质上相同的形式(即,相同的数据或其数据子集)。因此,图1A-1C和图2提供用于将机器(例如,物理机器或先前的虚拟机)转换为虚拟机的多个组件和机制。具体地,这些附图和对应的文本描述如何至少在一方面实现本发明的各个实现而不必重新引导正在被转换的机器,和/或不必重新引导到ADS或PXE环境中。如此,上述组件和机制允许如以传统的盘和网络传输速度相当迅速地创建物理机器。如本文先前所提到的,可以对于各种各样的优化和各种各样的硬件和操作系统环境而改变或修改本发明的各个实现。例如,可以很容易地将本发明的各个实现应用于任何类型的机器到新的虚拟机的转换。例如,对于先前的虚拟机,用户可能期望为其各卷可能已经溢出的虚拟机创建更多的存储空间。由此,用户可以创建比先前虚拟机的先前的VHD文件大的一个或多个VHD文件,对先前虚拟机数据拍快照,并将虚拟机快照传输到这些较大的VHD文件。此外,除明确描述的那些之外,此处所描述的转换过程可被进一步分为多个独立的步骤。例如,如果用户拥有将卷映像传输到目标机器的方法,则该用户可以简单地调用修补操作来“虚拟化”该映像,或其它,以使该映像在目标机器处可引导。除上述之外,很容易可以理解,本发明的各个实现还可以被应用于各种盘配置中。 例如,其上安装机器卷115的物理盘可以是操作系统中的任何一个或多个基本的或动态的盘,且还可以具有各种分区和/或卷。尽管如此,此处所描述的过程、组件和机制可以如其在先前的机器(例如,物理机器或先前虚拟机)上一样应用于虚拟机中的这些变型。具体地,可以将与物理动态的或基本的盘相关联的特征传输到虚拟机主机,以使新的虚拟机如其之前一样用这些基本或动态的盘特性来运作。因此,可以广泛地应用此处所描述的各个组件、模块和机制以确保从先前机器到该先前机器的新近虚拟化的形式的无缝转换。本发明的各实施例可以包括含有各种计算机硬件的专用或通用计算机,这将在以下做出进一步讨论。本发明的范围内的各实施例也包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效技术方案的含义和范围内的所有改变应被权利要求书的范围涵盖。
权利要求
1.一种将机器转换为虚拟机主机处的虚拟机的方法,所述方法包括标识机器的一个或多个卷的一个或多个硬件配置设置;创建对应于所述机器一个或多个卷的一个或多个一致的快照;将所述一个或多个一致的快照发送到所挂载的虚拟硬盘文件;以及将所述一个或多个一致的快照的引导记录发送到所挂载的虚拟硬盘文件,使得所述一个或多个一致的快照的所述引导记录能够在所述虚拟机主机处被修改。
2.如权利要求1所述的方法,其特征在于,所述虚拟机主机被配置为一个或多个虚拟机的主机。
3.如权利要求1所述的方法,其特征在于,所述快照能够在所述虚拟机主机处被修改使得所述快照适合于在所述虚拟机处的操作系统。
4.如权利要求1所述的方法,其特征在于,创建对应于所述机器一个或多个卷的一个或多个一致的快照,包括在所述机器的所述一个或多个卷活动时创建对应于所述机器一个或多个卷的一个或多个一致的快照。
5.如权利要求1所述的方法,其特征在于,所述机器的所述一个或多个卷包括安装在动态物理盘上的多个机器卷。
全文摘要
本发明涉及将机器转换为虚拟机的方法。物理(或先前的虚拟)机器卷可在该物理机器正在运行时被转换为虚拟机主机处的虚拟机。在一实现中,在一个或多个卷正在运行时,可以使用卷阴影复制服务来创建该一个或多个物理机器卷的应用程序(和/或文件系统)一致的快照。快照数据随后被传输到虚拟机主机处所挂载的虚拟硬盘文件(动态的或固定的)。随后,与该虚拟硬盘文件和虚拟机中的操作系统相关联的操作信息(例如,引导记录、系统注册表、驱动程序、设备、配置首选项等)被适当地修改以确保对应的虚拟机在虚拟机主机处是可引导且可运行的。虚拟硬盘文件随后可被卸载,并被用作新的虚拟机。
文档编号G06F9/50GK102541658SQ20111043073
公开日2012年7月4日 申请日期2007年3月8日 优先权日2006年5月8日
发明者B·A·莱斯, K·梅拉, M·L·麦克尔, N·V·纳拉弗, V·拉曼, W·L·沙伊德尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1