管理更新以创建虚拟机复制品 背景
物理和虚拟机在它们的寿命中使其操作系统和应用程序通过安装补丁和更新而被周期性地升级。此类补丁和更新的示例包括但不限于服务包、热修补、用于安全问题的修补、以及用于软件的已安装版本中的隐错的修补。此类更新有时影响了在创建物理机器的虚拟机复制品期间需要替换的已定义集合中的文件。从而,标识影响已定义文件集合中的每一文件的更新以定位对应替换文件的正确版本可能是关键的。
一旦标识了相关的更新集合,即需要从更新储存库下载更新并检查这些更新以定位替换文件。需要将合适的替换文件复制到虚拟机复制品上。此类下载和替换过程需要在每一虚拟机复制品创建期间执行。
当前对替换问题的解决方案通常通过使用标识并下载相关更新的手动过程、并通过构建在复制品中寻找并替换受影响的文件的定制脚本来解决替换问题。此类过程需要试错法以及用户干预来随着用于操作系统和应用程序的新更新被发布来保持脚本是最新的。这可能是麻烦且重复的任务,因为可能频繁地发布新的更新。改变替换脚本通常施加了确保他们继续正确操作的额外测试负担。
概述
可采用现有的更新技术以在复制品创建之前自动标识安装在物理机器上的更新、定位来自更新服务器的更新包、并将其下载到执行该复制品创建的机器。此类更新技术的使用允许对影响需要替换的已定义文件集合的精确标识,并且因此可最小化需要下载的更新的数量。此外,可提取并高速缓存所需的替换文件集合以允许其在使用相同或不同物理或虚拟机作为源的后续复制品创建期间的重用。下载最小更新集合并高速缓存它们以供重用可消除更新的冗余下载并可导致较短的复制品创建时间。
附图简述
图1是用于创建虚拟机复制品的过程的流程图。
图2示出示例更新管理器系统。
图3是用于使用更新技术来确定是否需要在复制品创建期间替换安装在源机器上的更新或补丁的过程的流程图。
图4是用于将所提取的替换文件存储在高速缓存中以便在将来的复制品创建期间重用的过程的流程图。
图5是在其中可以实现各示例实施例和方面的示例计算环境的框图。
详细描述
图1是用于创建虚拟机复制品的过程10的流程图。虚拟机复制品可从“源”创建,“源”可以是物理机器、当前正在运行的虚拟机、或预先存在的映像(例如,不是当前正在运行的虚拟机或机器的备份)。
在12,可检查源以查明其硬件和软件简档。如此处所使用的,术语“简档”可表示一组硬件和/或软件特征。例如,可检查该源以确定安装在其上的操作系统的版本,以及安装在其上的任何系统或应用程序的版本。可检查该源以标识可能已安装的任何软件补丁或更新。可检查源硬件以确定该源具有多少存储器和处理能力(也被称为,“CPU”)、其具有多少网卡、其可连接到哪些网络、其具有的盘的数量、类型和大小等。
如果源是预先存在的映像,则该源可由数据存储介质上的文件而不是运行的机器来表示。因此,可检查虚拟机配置以查明硬件和软件简档。
如果该源是物理机器或当前正在运行的虚拟机,则可检查该物理机器来查明其硬件和软件简档。作为检查源的一部分,在12,可采用更新技术来检测当前可能被安装在正为其创建复制品的物理或虚拟机上的更新。如此处所使用的,术语“更新”包括软件补丁。术语“更新技术”指的是使用“更新管理器”来对特定“受管”软件组件进行版本控制。
图2示出示例更新管理器系统20。更新客户端21访问机器22,该机器22包括受管软件23,即,更新管理器20努力将其版本保持最新的软件。通常, 更新客户端21将在其上安装了受管软件23的机器22上驻留并运行。
更新服务器24跟踪任何数量的受管软件组件25的最新版本。更新服务器24通常远离受管软件23驻留在其上的机器22(即,客户机器)。更新服务器24和客户机器22通常经由诸如因特网等网络26来互连。此类更新服务器的示例可包括Windows更新服务器(WSUS)或微软系统管理服务器(SMS)。
图3示出作为检查源(图1中12处)的一部分的用于使用更新技术来检测更新的方法30。如图3所示,可采用更新客户端来检查源以确定该源包括特定受管组件的哪些版本。为了可“知晓”哪些组件是受管组件,该更新客户端可在31维护受管组件的列表。驻留在源上的软件组件中的任何一个或全部可以是受管组件。
在32,更新客户端可检查该源以确定该源当前包括每一受管组件的哪一版本。在33,更新客户端可存储(例如,在源机器上的存储器中)受管组件的列表和与每一受管组件相关联的版本。
在34,更新客户端可检查该源来确定是否将任何更新应用到了受管组件中的任何一个。如果是,在35,则更新客户端可存储与该更新和该更新被应用到的受管组件相关联的更新标识符(例如,版本号)。
因此,可采用更新客户端来检查该源以标识被安装在该源上的特定受管软件组件的最新版本,包括可被安装在该源上的任何更新(包括补丁)的最新版本。如下文将描述的,使用更新技术来标识当前被安装在源上的更新可减少需要被下载以使所捕捉的映像可引导的文件的数量。
现在再次参考图1来继续用于创建虚拟机复制品的过程的描述。在12检查了源之后,可“映像化”该源。如何将该源映像化可取决于该源本身是否是映像。“映像”可被认为是复制物理机器的内容(例如,硬件和软件简档)的一组文件。
如果在14确定了源是映像,则在22可通过读取形成该映像的一组文件,并转换任何此类文件的格式(如果有必要的话)以生成使用所需文件格式的一组文件,来映像化该源。
如果在14确定了源并非仅仅是映像,且因此该源或者是物理机器或者是当前正在运行的虚拟机,则在16可映像化该物理机器。在此情况下,在要映 像化的机器是正在运行的虚拟机的情况下,术语“要映像化的物理机器”可以指的是该虚拟机所仿真的物理机器。用于映像化物理机器的技术是公知的。此类技术的示例在2006年5月8日提交的美国专利申请号11/430,676中描述并要求保护,该申请的公开内容通过引用结合于此。
在18,可使得所捕捉的映像“可引导”。即,可使得在14或22捕捉的映像与由将用于“运行”复制品的虚拟服务器软件所仿真的配置兼容。
图4是用于使得所捕捉的映像可引导的示例过程40的流程图。在41,可从更新服务器将最小更新列表(在图1中的12标识出)下载到执行复制品创建过程的机器。更新技术可用于查询、定位、并下载更新列表。
可在42检查这些更新以提取用于需要被替换或添加的文件中的每一个的合适替换文件。这些文件随后可被用来执行替换并使得虚拟机复制品可操作。当然,应该理解,可替换现有文件,或可添加/安装新文件(例如,用于所仿真的设备的驱动程序)。在43,可将所提取的替换文件存储在执行复制品创建过程的机器上的高速缓存中以供在将来的复制品创建期间重用。这是往往确保每一更新仅被下载一次的优化。一旦将所有所需更新添加到了高速缓存中,即可在不需要任何下载的情况下处理将来的复制品创建。
再次参考图1,可在20创建并配置虚拟机。即,可在逻辑上组装由形成所捕捉的映像的文件集合所定义的硬盘来形成虚拟机。这些硬盘可在逻辑上彼此连接,且虚拟机可开始运行。因此,软件和操作系统更新技术可用于创建现有物理或虚拟机的虚拟机复制品的过程。
示例性计算装置
图5示出了在其中可实现各示例实施例和各方面的示例性计算环境。计算系统环境100只是合适计算环境的一个示例,并非旨在对使用范围或功能提出任何限制。也不应该将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
可以使用多种其它通用或专用计算系统环境或配置。适合与本发明一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、 可编程消费电子产品、网络PC、微型计算机、大型计算机、嵌入式系统、包括任何以上系统或设备的分布式计算环境等等。
可以使用诸如程序模块等可由计算机执行的计算机可执行指令。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。也可使用其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参考图5,示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。处理单元120可表示诸如多线程处理器上支持的多个逻辑处理单元。系统总线121可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。系统总线121也可被实现为点对点连接、交换光纤等通信设备。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介 质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。以上的任何组合也应包括在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,它通常储存在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图5示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图5示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器140,对可移动、非易失性磁盘151进行读写的磁盘驱动器152,以及对诸如CD ROM或其它光学介质等可移动、非易失性光盘156进行读写的光盘驱动器155。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。
以上讨论并在图5中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。在图5中,例如,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其他程序模块136和程序数据137相同,也可以与它们不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘162和定点设备161(通常指的是鼠标、跟踪球或触摸垫)向计算机20输入命令和信息。其它输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其他接口和总线结构,诸 如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其他类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。除监视器以外,计算机还可以包括其它外围输出设备,诸如扬声器197和打印机196,它们可以通过输出外围接口195连接。
计算机110可使用至一个或多个远程计算机,如远程计算机180的逻辑连接在联网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见的网络节点,并且通常包括以上相对于计算机110所描述的许多或所有元件,但在图5中仅示出了存储器存储设备181。图5中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其他装置。调制解调器172可以是内置或外置的,它可以经由用户输入接口160或其它适当的机制连接至系统总线121。在联网环境中,相对于计算机110所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图5示出远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。