用于给虚拟映像打补丁的方法和系统的制作方法

文档序号:6497568阅读:278来源:国知局
用于给虚拟映像打补丁的方法和系统的制作方法
【专利摘要】本公开涉及用于给虚拟映像打补丁的方法和系统。一种用于给虚拟映像打补丁的改进方法包括步骤:通过在离线准备阶段期间注入对应的补丁逻辑以及将在下一次引导应用的补丁材料,修改将被打补丁的所选的休眠虚拟映像;下载引导介质(42)和以对应的部署数据创建用于所选的目标虚拟机(50)的临时盘(52);改变与所述目标虚拟机(50)相关联的所述临时盘(52)的主引导记录以便下一次在所述引导介质(42)上进行引导;和如果与将被打补丁的所述虚拟映像相关联的所述目标虚拟机(50)被引导,执行所述补丁逻辑以便安装所述补丁材料。
【专利说明】用于给虚拟映像打补丁的方法和系统
【技术领域】
[0001]本发明一般涉及虚拟化领域,并且具体地,涉及用于给虚拟映像(virtual image)打补丁的方法和用于给虚拟映像打补丁的系统。更具体地,本发明涉及用于给虚拟映像打补丁的数据处理程序和计算机程序产品。
【背景技术】
[0002]虽然虚拟化在资源使用优化方面带来了许多优点,但是它也引入了新的挑战。更加明显的问题与如何管理和维护数目增加的虚拟映像紧密相关。典型地,虚拟映像被抓取和存储在中心映像库内,并且通过版本控制和起源控制机制来维护。在不同的维护活动中,一个关键问题是如何将这些映像置于相同的补丁级别。通常被用于运行的虚拟或物理机器的安全政策也需要被应用于休眠的映像。操作系统补丁的部署越晚,一旦映像被实例化,病毒感染的风险越大。给休眠的映像应用补丁的最常见的方式是在需要部署改变时,在隔离的网络内通过标准的部署机制将它们一个接一个地实例化。该方法具有主要缺点,即,它是低效的,任一休眠的虚拟映像都被重新实例化以便部署新的补丁,即使不能确信它们今后将被使用也如此;并且即使休眠的虚拟映像在隔离的网络内被实例化,也不能保证没有病毒暴露。
[0003]研究集中于寻找公开了在离线状态下准备将被打补丁的休眠的虚拟映像并且当该虚拟映像在生产环境中被重新实例化时,在下一次引导处理期间给虚拟映像打补丁的方法或系统的现有技术。更特别地,研究致力于寻找公开下列特征的现有技术:
[0004]通过以将在下一次引导处理时应用的适当的补丁逻辑和材料(补丁软件模块、预操作系统环境)修改虚拟映像,在离线状态下准备将被打补丁的休眠的虚拟映像;以及
[0005]当与该虚拟映像相关联的虚拟机引导(重新实例化)时,在预操作系统环境上执行该补丁逻辑。这保证仅在实际需要时应用补丁。
[0006]在Le 等人的专利公开 US 7,823,145 B1、"UPDATING SOFTWARE ON DORMANTDISKS 〃中公开了一种用于扫描和更新休眠盘上的软件系统和方法。所公开的更新休眠盘而不需要引导该休眠盘的方法使用一种间接机制,其中该方法包括扫描休眠盘以便确定休眠盘的当前状态,确定更新是否可用,和使用该间接机制将更新应用于休眠盘的步骤。该间接机制包括用于在休眠盘上存储脚本的装置,其中该脚本配置为在休眠盘的引导之后更新文件。在该整个文档中,描述了给离线虚拟映像打补丁的传统方法,并且依赖仅仅出于打补丁的目的,在隔离的网络内重新实例化虚拟映像的构思。

【发明内容】

[0007]本发明所基于的技术问题是要提供一种用于给虚拟映像打补丁的方法和一种用于给虚拟映像打补丁的系统,其能够应用任意的改变,包括设备驱动修改,并且能够解决现有技术虚拟映像打补丁的上述低效、缺点和难点。
[0008]根据本发明,通过提供一种具有权利要求1的特征的用于给虚拟映像打补丁的方法、一种具有权利要求9的特征的用于给虚拟映像打补丁的系统、一种具有权利要求14的特征的用于给虚拟映像打补丁的数据处理程序以及一种具有权利要求15的特征的用于给虚拟映像打补丁的计算机程序产品来解决该问题。在从属权利要求中提出了本发明的有益实施例。
[0009]因此,在本发明的一个实施例中,一种用于给虚拟映像打补丁的方法包括步骤:通过在离线准备阶段期间注入对应的补丁逻辑以及将在下一次引导时应用的补丁材料,修改将被打补丁的所选的休眠虚拟映像;下载引导介质和以对应的部署数据创建用于所选的目标虚拟机的临时盘;改变与所述目标虚拟机相关联的所述临时盘的主引导记录以便下一次在所述引导介质上进行引导;和如果与将被打补丁的所述虚拟映像相关联的所述目标虚拟机被引导,执行所述补丁逻辑以便安装所述补丁材料。
[0010]在本发明的其它实施例中,补丁材料包括补丁软件模块(patch softwaremodule)和关于要用于给所选择的休眠虚拟映像打补丁的预操作系统环境的信息。
[0011]在本发明的其它实施例中,在引导与将被打补丁的所述虚拟映像相关联的所述目标虚拟机和控制所述打补丁处理期间,通过所述引导介质启动所述预操作系统环境。
[0012]在本发明的其它实施例中,在该预操作系统环境之上执行补丁软件模块。
[0013]在本发明的其它实施例中,所述预操作系统环境启动直接访问所述所选的虚拟映像并且根据所述补丁软件模块应用改变的代理。
[0014]在本发明的其它实施例中,在所述离线准备阶段期间选择所述打补丁方法。
[0015]在本发明的其它实施例中,如果所述所选的打补丁方法是下一次重新引导打补丁方法并且选择了利用打补丁的虚拟映像部署,仅在所述离线准备阶段期间选择和绑定将被打补丁的所述虚拟映像和将应用的所述补丁软件模块。
[0016]在本发明的其它实施例中,该引导介质是ISO映像。
[0017]在本发明的另一个实施例中,一种用于给虚拟映像打补丁的系统,包括:浏览器、具有保持至少一个虚拟映像的映像库的映像供给服务器以及虚拟化基础设施,所述虚拟化基础设施包括至少一个超级管理器,所述虚拟化基础设施运行至少一个虚拟机;其中所述浏览器用于从所述映像库选择将被打补丁的休眠虚拟映像,将被应用的补丁材料和目标虚拟机;其中通过在离线准备阶段期间注入对应的补丁逻辑和将在下一次引导时应用的所述补丁材料,修改将被打补丁的所述所选的休眠虚拟映像;其中所述映像供给服务器联系虚拟化基础设施的屏幕上显示(On Screen Display,OSD)工具以便下载引导介质和以对应的部署数据创建用于所述所选的目标虚拟机的临时盘;其中所述屏幕上显示(OSD)工具改变与所述目标虚拟机相关联的所述临时盘的主引导记录,以便下一次在所述引导介质上进行引导;和如果与将被打补丁的所述虚拟映像相关联的所述目标虚拟机被引导,执行所述补丁逻辑以便安装所述补丁材料。
[0018]在本发明的其它实施例中,所述补丁材料包括补丁软件模块和关于要用于给所述所选的休眠虚拟映像打补丁的预操作系统环境的信息。
[0019]在本发明的其它实施例中,屏幕上显示(OSD)工具启动在所述ISO映像上引导的所述目标虚拟机;其中所述目标虚拟机将所述预操作系统环境和所述屏幕上显示(OSD)工具从所述超级管理器下载到所述临时盘,安装将被打补丁的所述虚拟映像,下载和部署对应的文件。[0020]在本发明的其它实施例中,在所述预操作系统环境之上执行所述补丁软件模块。
[0021]在本发明的其它实施例中,所述预操作系统环境启动直接访问所述所选的虚拟映像并且根据所述补丁软件模块应用改变的代理。
[0022]在本发明的另一个实施例中,一种用于在数据处理系统内执行的数据处理程序包括用于当在所述数据处理系统上运行所述程序时执行用于给虚拟映像打补丁的方法的软件代码部分。
[0023]在本发明的另一个实施例中,一种存储在计算机可用介质上的计算机程序产品,包括计算机可读程序装置,用于在计算机上运行所述程序时使得所述计算机执行用于给虚拟映像打补丁的方法。
[0024]总而言之,本发明的实施例依赖仅仅离线地准备将被打补丁的休眠虚拟映像并且当所述虚拟映像在生产环境中被重新实例化时延迟实际打补丁的设想。这可通过修改虚拟映像,离线注入适当的补丁逻辑和包括补丁软件模块的材料以及将在下一次引导处理时应用的预操作系统环境来获得。本发明的关键方面是一旦引导了与虚拟映像相关联的虚拟机,在预操作系统环境,例如,Windows (微软公司的商标)的WinPE,以及Linux (Linux是 Linus Torvalds 的商标)的 Altiris Deployment Solution(Altiris 和 DeploymentSolution是Symantec公司的商标)的预引导操作系统之上执行所述补丁逻辑。这在网络仍然不可用时发生,以便防止任意病毒攻击。除解决安全问题之外,本发明的实施例保证仅当实际需要时才应用补丁,减少了传统方法的低效率。
[0025]虽然某些现有技术的解决方案描述了进行间接/延迟打补丁以在引导时准备将被打补丁的休眠虚拟映像的步骤,与现有技术的解决方案相比,本发明的实施例具有一种也带来了明显优点的显著差异。
[0026]虽然现有技术的机制修改休眠的虚拟映像以直接在虚拟映像本身内包括更新脚本,本发明的实施例不应用这些改变,仅仅修改主引导记录(MBR)以便迫使机器在装入的引导介质,例如,ISO文件(映像),上而不是在硬盘上引导。这意味着在引导时,包括在装入的引导介质内的预操作系统环境取得控制,该预操作系统环境将启动直接访问虚拟映像本身并且将改变应用于虚拟映像的代理。这暗示着可以应用任意改变,包括在现有技术的解决方案中不可能的设备驱动修改。因此,目标系统从中间引导介质,例如ISO盘,引导,并且补丁仅被应用在本地的目标虚拟机(VM)盘上。
[0027]本发明的上述以及附加目的、特征和优点将在下面的详细描述中变得明了。
【专利附图】

【附图说明】
[0028]如下面详细描述的,在附图中示出了本发明的优选实施例,其中:
[0029]图1是根据本发明的实施例的用于给虚拟映像打补丁的系统的示意方框图;和
[0030]图2是根据本发明的第一实施例的用于给虚拟映像打补丁的方法的示意流程图。
[0031]优选实施例的详细说明
[0032]图1示出了根据本发明的实施例的用于给虚拟映像打补丁的系统。
[0033]参考图1,本发明的示出的实施例采用用于给虚拟映像打补丁的系统1,包括浏览器10、具有保持至少一个虚拟映像的映像库30的映像供给服务器20以及虚拟化基础设施5,虚拟化基础设施5包括至少一个运行至少一个虚拟机50、60、70的超级管理器40。[0034]在示出的实施例中,超级管理器40被实现为,例如,VMware ESX超级管理器(VMware是VMware公司的商标)类型,其包括例如引导介质42、屏幕上显示(OSD)工具44、超级管理器(HYP)核心和Linux核心,并且映像供给服务器20被实现为用于映像的Tivoli供给管理器(TPMfImages)。即使提及了这些超级管理器和映像供给服务器类型,如果改变超级管理器和映像供给服务器类型,本发明的实施例可以工作而没有任何差异。
[0035]浏览器10用于从映像库30选择将要打补丁的休眠虚拟映像、要被应用的补丁材料和目标虚拟机50 ;其中在离线准备阶段期间,通过注入对应的补丁逻辑和将在下一次引导时被应用的补丁材料,修改所选择的要被打补丁的休眠虚拟映像。
[0036]映像供给服务器20联系虚拟化基础设施5的屏幕上显示(OSD)工具44,以便下载引导介质42和以对应的部署数据创建用于所选的目标虚拟机50的临时盘52。屏幕上显示(OSD)工具44改变与目标虚拟机50相关联的临时盘52的主引导记录(MBR)以便下一次在引导介质42上引导;并且如果与将被打补丁的所述虚拟映像相关联的目标虚拟机50被引导,执行补丁逻辑以便安装补丁材料。
[0037]所述补丁材料包括补丁软件模块和关于将用于给所选择的休眠虚拟映像打补丁的预操作系统环境56的信息。
[0038]换言之,在补丁准备阶段期间,操作员选择将被打补丁的虚拟映像,将要应用的软件模块包括所述补丁和打补丁方法,例如,立即、下一次重新引导或按预定时间进行。如果选择了 “下一次重新引导”和“利用打补丁的虚拟映像部署”,映像供给服务器20将所述软件模块绑定到将被部署的虚拟映像。
[0039]在虚拟映像和补丁部署阶段期间,操作员选择目标虚拟机50,并且触发部署活动。作为对所述触发处理的反应,映像供给服务器20联系在超级管理器40上运行的屏幕上显示(OSD)工具44。屏幕上显示(OSD)工具44下载,例如,网络引导ISO映像作为引导介质,并且以部署数据创建临时虚拟机(VM)盘52。屏幕上显示(OSD)工具44改变虚拟机(VM)盘52的主引导记录(MBR),以便在作为引导介质42的ISO文件(映像)上进行引导。屏幕上显示(OSD)工具44启动虚拟机(VM) 50。虚拟机(VM) 50在作为引导介质42的ISO文件(映像)上进行引导,并且从超级管理器40下载预操作系统56和屏幕上显示(OSD)工具54,并且将其装入RAM盘。然后安装虚拟映像,并且下载和部署所述文件。屏幕上显示(OSD)工具56运行代理以便准备操作系统(OS),注入设备驱动,并且安装补丁软件模块。因此,在预操作系统56之上执行补丁软件模块。
[0040]图2示出了根据本发明的实施例的用于给虚拟映像打补丁的方法。
[0041]参考图2,本发明的示出的实施例采用一种用于给虚拟映像打补丁的方法。在步骤S100,选择将被打补丁的休眠虚拟映像、要应用的补丁软件模块和打补丁方法。在步骤S200,如果〃下一次重新引导〃和〃利用打补丁的虚拟映像部署〃被选为打补丁方法,所述补丁软件模块被绑定到将被打补丁的休眠虚拟映像。
[0042]在步骤S300,在离线准备阶段期间,通过注入对应的补丁逻辑和将在下一次引导时被应用的补丁材料,修改将被打补丁的所选择的休眠虚拟映像。在步骤S400,下载引导介质42,并且以对应的部署数据创建用于所选的目标虚拟机50的临时盘52。在步骤S500,改变与目标虚拟机50相关联的临时盘52的主引导记录,以便下一次在引导介质42上进行引导。在步骤S600,如果与将被打补丁的虚拟映像相关联的目标虚拟机50被引导,执行补丁逻辑以便安装补丁材料。
[0043]所述补丁材料包括补丁软件模块和关于要用于给所选择的休眠虚拟映像打补丁的预操作系统环境56的信息。在与将被打补丁的虚拟映像相关联的目标虚拟机50的引导期间,通过引导介质42启动所述预操作系统系统环境56,并且取得对打补丁处理的控制,其中在所述预操作系统环境56之上执行所述补丁软件模块。如上所述,预操作系统环境56启动一个代理,该代理直接访问所选择的将被打补丁的虚拟映像,并且根据补丁软件模块应用改变。
[0044]本发明的实施例可被实现为完全的软件实施例,或包含硬件和软件元件两者的实施例。在一个优选实施例中,本发明被实现为软件,其包括但是不局限于固件、驻留软件、微
代码等等。
[0045]此外,本发明可以采取可从计算机可用或计算机可读的介质存取的计算机程序产品的形式,所述计算机可用或计算机可读的介质提供程序代码,以便由计算机或任意指令执行系统使用或与之结合使用。出于本说明的目的,计算机可用的或计算机可读的介质可以是可以包含、存储、通信、传播或传送用于或结合所述指令执行系统、装置或设备使用的程序的任意装置。
[0046]所述介质可以是电子的、磁的、光学的、电磁的、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机盘、随机访问存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前例子包括压缩盘只读存储器(CD-ROM)、压缩盘读/写(CD-R/W)和DVD。适用于存储和/或执行程序代码的数据处理系统包括直接或通过系统总线间接地耦连到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储器、和高速缓存存储器,其提供至少某种程序代码的临时存储,以便减少在执行期间必须从大容量存储器检索代码的次数。输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等等)可被直接或者通过介于其间的I/O控制器耦连到系统。
[0047]网络适配器也可被耦连到系统,以便使得所述数据处理系统能够通过介于其间的专用或公共网络耦连到其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是一些现有类型的网络适配器。
【权利要求】
1.一种用于给虚拟映像打补丁的方法,包括: 通过在离线准备阶段期间注入对应的补丁逻辑以及将在下一次引导时应用的补丁材料,修改将被打补丁的所选的休眠虚拟映像; 下载引导介质(42)和以对应的部署数据创建用于所选的目标虚拟机(50)的临时盘(52); 改变与所述目标虚拟机(50)相关联的所述临时盘(52)的主引导记录以便下一次在所述引导介质(42)上进行引导;和 如果与将被打补丁的所述虚拟映像相关联的所述目标虚拟机(50)被引导,执行所述补丁逻辑以便安装所述补丁材料。
2.如权利要求1所述的方法,其中所述补丁材料包括补丁软件模块和关于要用于给所述所选的休眠虚拟映像打补丁的预操作系统环境(56)的信息。
3.如权利要求2所述的方法,其中在引导与将被打补丁的所述虚拟映像相关联的所述目标虚拟机(50)和控制所述打补丁处理期间,通过所述引导介质(42)启动所述预操作系统环境(56)。
4.如权利要求3所述的方法,其中在所述预操作系统环境(56)之上执行所述补丁软件模块。
5.如权利要求3或4所述的方法,其中所述预操作系统环境(56)启动直接访问所述所选的虚拟映像并且根据所述补丁软件模块应用改变的代理。
6.如前面权利要求1到5之一所述的方法,其中在所述离线准备阶段期间选择所述打补丁方法。
7.如权利要求6所述的方法,其中如果所述所选的打补丁方法是下一次重新引导打补丁方法并且选择了利用打补丁的虚拟映像部署,仅在所述离线准备阶段期间选择和绑定将被打补丁的所述虚拟映像和将应用的所述补丁软件模块。
8.如前面权利要求1到7之一所述的方法,其中所述引导介质(42)是ISO映像。
9.一种用于给虚拟映像打补丁的系统,包括: 浏览器(10)、具有保持至少一个虚拟映像的映像库(30)的映像供给服务器(20)以及虚拟化基础设施(5),所述虚拟化基础设施(5)包括至少一个运行至少一个虚拟机(50、60、70)的超级管理器(40); 其中所述浏览器(10)用于从所述映像库(30)选择将被打补丁的休眠虚拟映像、将被应用的补丁材料和目标虚拟机(50); 其中通过在离线准备阶段期间注入对应的补丁逻辑和将在下一次引导时应用的所述补丁材料,修改将被打补丁的所述所选的休眠虚拟映像; 其中所述映像供给服务器(20)联系所述虚拟化基础设施(5)的OSD工具(44),以便下载引导介质(42)和以对应的部署数据创建用于所述所选的目标虚拟机(50)的临时盘(52); 其中所述OSD工具(44)改变与所述目标虚拟机(50)相关联的所述临时盘(52)的主引导记录,以便下一次 在所述引导介质(42)上进行引导;和 如果与将被打补丁的所述虚拟映像相关联的所述目标虚拟机(50)被引导,执行所述补丁逻辑以便安装所述补丁材料。
10.如权利要求9所述的系统,其中所述补丁材料包括补丁软件模块和关于要用于给所述所选的休眠虚拟映像打补丁的预操作系统环境(56)的信息。
11.如权利要求10所述的系统,其中所述OSD工具(44)启动在所述ISO映像上引导的所述目标虚拟机(50); 其中所述目标虚拟机(50)将所述预操作系统环境(56)和所述OSD工具(54)从所述超级管理器(40)下载到所述临时盘(52),安装将被打补丁的所述虚拟映像,下载和部署对应的文件。
12.如权利要求11所述的系统,其中在所述预操作系统环境(56)之上执行所述补丁软件模块。
13.如权利要求11或12所述的系统,其中所述预操作系统环境(56)启动直接访问所述所选的虚拟映像并且根据所述补丁软件模块应用改变的代理。
14.一种用于在数据处理系统内执行的数据处理程序,包括软件代码部分,用于在所述数据处理系统上运行所述程序时执行如前面权利要求1到8之一所述的用于创建虚拟装置的方法。
15.一种存储在计算机可用介质上的计算机程序产品,包括计算机可读程序装置,用于在计算机上运行所述程序时使得所述计算机执行如前面权利要求1到8之一所述的用于创建虚拟装置的方法。
【文档编号】G06F11/00GK103988181SQ201280060182
【公开日】2014年8月13日 申请日期:2012年12月4日 优先权日:2011年12月8日
【发明者】C·马里内利, J·方迪格尼耶, 伯纳多·帕斯托里尔利, 鲁伊吉·皮切蒂 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1