《创建虚拟资源包的方法和设备.pdf》由会员分享,可在线阅读,更多相关《创建虚拟资源包的方法和设备.pdf(24页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103970581 A (43)申请公布日 2014.08.06 C N 1 0 3 9 7 0 5 8 1 A (21)申请号 201310027488.2 (22)申请日 2013.01.24 G06F 9/455(2006.01) G06F 9/44(2006.01) (71)申请人国际商业机器公司 地址美国纽约阿芒克 (72)发明人王夕宁 黄彦军 唐威锋 柏越 (74)专利代理机构北京市柳沈律师事务所 11105 代理人黄小临 (54) 发明名称 创建虚拟资源包的方法和设备 (57) 摘要 本发明公开了一种创建虚拟资源包的方法和 设备。所述方法包括:捕捉与至少。
2、一个机器有关 的元数据,所述机器包括物理机和虚拟机中的至 少一个;基于所捕捉的元数据,生成描述所述至 少一个机器的配置约束的约束定义;将所述至少 一个机器的盘映像文件、所捕捉的元数据和所生 成的约束定义打包以生成虚拟资源包。通过所述 方法和设备,可以实现虚拟资源包的自动创建,减 少了用户的手动操作,使得不易出错。 (51)Int.Cl. 权利要求书2页 说明书16页 附图5页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书16页 附图5页 (10)申请公布号 CN 103970581 A CN 103970581 A 1/2页 2 1.一种创建虚拟资源包的方。
3、法,包括: 捕捉与至少一个机器有关的元数据,所述机器包括物理机和虚拟机中的至少一个; 基于所捕捉的元数据,生成描述所述至少一个机器的配置约束的约束定义; 将所述至少一个机器的盘映像文件、所捕捉的元数据和所生成的约束定义打包以生成 虚拟资源包。 2.如权利要求1所述的方法,其中,在至少一个机器是物理机的情况下,所述捕捉与至 少一个机器有关的元数据包括: 捕捉与物理机的操作系统有关的信息、以及与安装在物理机上的软件有关的信息中的 至少一个,作为所述元数据。 3.如权利要求1或2所述的方法,其中,在至少一个机器是虚拟机的情况下,所述捕捉 与至少一个机器有关的元数据包括: 捕捉与虚拟机的资源有关的信息。
4、、与虚拟机的操作系统有关的信息、以及与安装在虚 拟机上的软件有关的信息中的至少一个,作为所述元数据。 4.如权利要求2或3所述的方法,其中,与软件有关的信息包括软件的拓扑信息。 5.如权利要求1所述的方法,还包括:将所捕捉的与至少一个机器有关的元数据转换 为数据文件。 6.如权利要求5所述的方法,其中,所述基于所捕捉的元数据生成描述所述至少一个 机器的配置约束的约束定义包括: 将至少一个所述数据文件聚合为上下文模型文件;以及 基于该上下文模型文件生成描述所述至少一个机器的配置约束的约束定义。 7.如权利要求6所述的方法,其中,所述至少一个机器的配置约束包括所述至少一个 机器的操作系统的配置约束。
5、、软件的配置约束和触发动作约束中的至少一个。 8.一种创建虚拟资源包的设备,包括: 捕捉装置,被配置为捕捉与至少一个机器有关的元数据,所述机器包括物理机和虚拟 机中的至少一个; 生成装置,被配置为基于所捕捉的元数据,生成描述所述至少一个机器的配置约束的 约束定义;以及 打包装置,被配置为将所述至少一个机器的盘映像文件、所捕捉的元数据和所生成的 约束定义打包以生成虚拟资源包。 9.如权利要求8所述的设备,其中,所述捕捉装置包括物理机元数据捕捉单元,其被配 置为捕捉与物理机的操作系统有关的信息、以及与安装在物理机上的软件有关的信息中的 至少一个,作为所述元数据。 10.如权利要求8或9所述的设备,。
6、其中,所述捕捉装置包括虚拟机元数据捕捉单元,其 被配置为捕捉与虚拟机的资源有关的信息、与虚拟机的操作系统有关的信息、以及与安装 在虚拟机上的软件有关的信息中的至少一个,作为所述元数据。 11.如权利要求9或10所述的设备,其中,与软件有关的信息包括软件的拓扑信息。 12.如权利要求8所述的设备,其中,所述捕捉装置包括转换单元,其被配置为将所捕 捉的与至少一个机器有关的元数据转换为数据文件。 13.如权利要求12所述的设备,其中,所述生成装置包括: 权 利 要 求 书CN 103970581 A 2/2页 3 聚合单元,被配置为将至少一个所述数据文件聚合为上下文模型文件;以及 约束定义生成单元,。
7、被配置为基于该上下文模型文件生成描述所述至少一个机器的配 置约束的约束定义。 14.如权利要求13所述的设备,其中,所述至少一个机器的配置约束包括所述至少一 个机器的操作系统的配置约束、软件的配置约束和触发动作约束中的至少一个。 权 利 要 求 书CN 103970581 A 1/16页 4 创建虚拟资源包的方法和设备 技术领域 0001 本发明涉及虚拟化的领域,更具体地涉及一种创建虚拟资源包(例如开放虚拟化 格式(OVF)包)的方法和设备。 背景技术 0002 在计算机领域,已经广泛使用了虚拟化技术。通过这种技术,可以在物理机上模拟 具有完整的计算机系统功能的一个或多个虚拟机。每个虚拟机可以。
8、基于不同的虚拟化平 台,例如来自公司的虚拟化平台或来自微软公司的虚拟化平台等等。为了便于 虚拟机的开发和部署,提出了虚拟装置(virtual appliance)。虚拟装置是一种预先构建的 软件方案,其包括作为一个单元而被打包、维护、更新和管理的一个或多个虚拟机。 0003 为了将虚拟装置标准化,分布式管理任务组(DMTF)提出了开放虚拟化格式(OVF) 标准,该标准用于以开放、安全、可迁移、高效和可扩展的格式封装和分发虚拟装置(相应 地,在虚拟装置中的各个虚拟机上运行的软件),从而简化跨多种虚拟化平台的虚拟装置的 安装和部署。通过封装虚拟装置而创建的OVF包典型地包括:1个OVF描述符文件(。
9、.ovf), 即“OVF信封”,其描述虚拟装置的组成部分和各个组成部分的需求等;0到1个OVF清单文 件(.mf),其包含OVF包中各文件的SHA-1摘要,用于确保OVF包的完整性;0到1个OVF证 书文件(.cert),其用于通过对清单文件进行签名来对OVF包进行签名,以确保OVF包的真 实性;以及0到多个虚拟机的盘映像文件。 0004 传统上,创建OVF包的过程是手动执行的,其需要用户运行作为应用程序部署在 通用计算机上的OVF创建工具。这种手动过程需要专业知识并且易于出错。具体地,常常 需要由具有关于OVF和被迁移到虚拟机上的物理系统二者的专业知识的系统管理员来执 行OVF包的创建,然而。
10、,即便是这种有经验的系统管理员,在手动创建OVF包时,也可能会因 为意外地输入不正确的参数而导致OVF包存在缺陷,使得最终部署的虚拟机也可能出现问 题。 0005 为了减少手动操作,提出了一些OVF包创建方法,这些方法使用OVF包创建工具, 通过例如图形化的向导来引导用户进行OVF包的创建。尽管这些方法朝着OVF包的自动创 建迈出了一步,但是其仍然需要很多手动操作,因此仍然易于出错。此外,在创建OVF包时, 现有方法不能收集包括物理机和虚拟机的现有的运行时环境的拓扑信息,并且也难以在所 创建的OVF包中包含描述各个虚拟机的配置约束的内容。 发明内容 0006 鉴于以上问题而提出了本发明。本发明。
11、的目的是提供一种创建虚拟资源包的方法 和设备,其能够自动地创建虚拟资源包,例如OVF包,从而减少用户的手动操作,使得该创 建过程更加自动化,并且不易发生错误。 0007 根据本发明的一个方面,提供了一种创建虚拟资源包的方法,包括:捕捉与至少一 个机器有关的元数据,所述机器包括物理机和虚拟机中的至少一个;基于所捕捉的元数据, 说 明 书CN 103970581 A 2/16页 5 生成描述所述至少一个机器的配置约束的约束定义;将所述至少一个机器的盘映像文件、 所捕捉的元数据和所生成的约束定义打包以生成虚拟资源包。 0008 根据本发明的另一个方面,提供了一种创建虚拟资源包的设备,包括:捕捉装置,。
12、 被配置为捕捉与至少一个机器有关的元数据,所述机器包括物理机和虚拟机中的至少一 个;生成装置,被配置为基于所捕捉的元数据,生成描述所述至少一个机器的配置约束的约 束定义;以及打包装置,被配置为将所述至少一个机器的盘映像文件、所捕捉的元数据和所 生成的约束定义打包以生成虚拟资源包。 0009 根据本发明上述方面的方法和设备可以通过捕捉与物理机和/或虚拟机有关的 元数据,收集包括物理机和/或虚拟机的现有的运行时环境的拓扑信息。此外,通过基于所 收集的元数据自动地生成描述配置约束的约束定义,所述方法和设备可以容易地生成包含 配置约束的虚拟资源包,使得当根据该虚拟资源包部署虚拟机时,所部署的虚拟机自动。
13、满 足各种约束。而且,根据本发明上述方面的方法和设备可以实现虚拟资源包(例如OVF包) 的自动创建,减少了用户的手动操作,这不仅减轻了用户的负担,还不易出错。 附图说明 0010 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其 它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。 0011 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。 0012 图2是示出根据本发明实施例的创建虚拟资源包的方法的流程图。 0013 图3示出了通过API读取安装在虚拟机上的Windows操作系统的安全配置信息的。
14、 示例。 0014 图4示出了生成描述所述至少一个机器的配置约束的约束定义的操作的详细流 程图。 0015 图5是示出根据本发明实施例的创建虚拟资源包的设备的结构的框图。 0016 图6是示出图5所示的捕捉装置的结构的框图。 0017 图7是示出图5所示的生成装置的结构的框图。 具体实施方式 0018 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方 式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整地传达给本领域的技术人员。 0019 所属技术领域的技。
15、术人员知道,本发明可以实现为系统、方法或计算机程序产品。 因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括 固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模 块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质 中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。 说 明 书CN 103970581 A 3/16页 6 0020 可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计 算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限 于电。
16、、磁、光、电磁、红外线、或半导体的系统、设备或器件,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便 携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储 器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、 或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程 序的有形介质,该程序可以被指令执行系统、设备或者器件使用或者与其结合使用。 0021 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计。
17、算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但 不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、设备或者器件使用或者与其结合使用的程序。 0022 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限 于无线、电线、光缆、RF等等,或者上述的任意合适的组合。 0023 可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机 程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、Smalltalk、C+, 还包。
18、括常规的过程式程序设计语言诸如”C”语言或类似的程序设计语言。程序代码可以 完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部 分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在 涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或 广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提 供商来通过因特网连接)。 0024 下面将参照本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或 框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方 框的组合。
19、,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专 用计算机或其它可编程数据处理设备的处理器,从而生产出一种机器,这些计算机程序指 令通过计算机或其它可编程数据处理设备执行,产生了实现流程图和/或框图中的方框中 规定的功能/操作的设备。 0025 也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理设备 以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一 个包括实现流程图和/或框图中的方框中规定的功能/操作的指令设备(instruction means)的制造品(manufacture)。 0026 也可以把计算机程序指令加载到计算。
20、机、其它可编程数据处理设备、或其它设备 上,使得在计算机、其它可编程数据处理设备或其它设备上执行一系列操作步骤,以产生计 算机实现的过程,从而使得在计算机或其它可编程设备上执行的指令能够提供实现流程图 和/或框图中的方框中规定的功能/操作的过程。 0027 图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框 图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使 说 明 书CN 103970581 A 4/16页 7 用范围带来任何限制。 0028 如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统 /服务器12的组件可以包括但。
21、不限于:一个或者多个处理器或者处理单元16,系统存储器 28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。 0029 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。 0030 计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是 任何能够被计算机系统/服务器12访问的可。
22、用介质,包括易失性和非易失性介质,可移动 的和不可移动的介质。 0031 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其 它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图 1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对 可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些 情况下,每个驱动。
23、器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以 包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被 配置以执行本发明各实施例的功能。 0032 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器 28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它 程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程 序模块42通常执行本发明所描述的实施例中的功能和/或方法。 0033 计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、 显示器24等)通信,还可与一个。
24、或者多个使得用户能与该计算机系统/服务器12交互的设 备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的 任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22 进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如 局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20 通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以 结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱 动器、冗余处理单元、外部磁盘驱。
25、动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。 0034 现在参看图2,其示出了根据本发明实施例的创建虚拟资源包的方法的流程图。在 这里,为了便于描述,以OVF包作为虚拟资源包的示例,然而,本发明不限于于此,而是也可 以适用于创建其它类型的虚拟资源包。 0035 如图2所示,在步骤S201中,捕捉与至少一个机器有关的元数据。所述机器可以 是物理机和虚拟机中的至少一个。也就是说,所述至少一个机器可以全是虚拟机、全是物理 机、或者可以是虚拟机和物理机的组合。可以将所捕捉的与每个机器有关的元数据转换为 说 明 书CN 103970581 A 5/16页 8 数据文件以便存储这些元数据。例如。
26、,可以将所捕捉的与各个机器有关的元数据分别转换 为可扩展标记语言(XML)格式的数据文件,并且存储这些数据文件。数据文件的格式不限 于XML格式,也可以将所捕捉的元数据转换为任何其它适当格式的数据文件。 0036 当所述机器为虚拟机时,可以捕捉该虚拟机的资源信息、操作系统信息以及软件 信息中的一个或多个,作为与该机器有关的元数据。当所述机器为物理机时,可以捕捉该机 器的操作系统信息以及软件信息中的一个或多个,作为与该机器有关的元数据。根据需要, 也可以捕捉所述机器的其他信息,作为与该机器有关的元数据。 0037 虚拟机的资源信息是指与虚拟机具有的资源有关的信息。例如,该资源信息可以 包括与虚拟。
27、机的CPU有关的信息(例如CPU的工作频率等)、与虚拟机的存储器有关的信息 (例如存储器大小等)、与虚拟机的盘空间有关的信息(例如盘空间大小等)、与虚拟机的网络 有关的信息(例如虚拟机使用的IP地址和网络端口等)、以及与虚拟机的其他资源有关的信 息中的至少一个。可以通过读取该虚拟机的相关配置文件或者采用本领域公知的其他方式 来捕捉所述资源信息。 0038 虚拟机的操作系统信息是指与该虚拟机的操作系统有关的信息。例如,该操作 系统信息可以包括操作系统的版本信息、安全配置信息(例如密码长度、密码有效期等)、用 户账户信息、以及其他与操作系统有关的信息中的至少一个。由于操作系统的各种信息被 保存一个。
28、或多个配置文件中,因此可以通过读取操作系统的配置文件来捕捉所述操作系 统信息。例如,可以通过操作系统提供的应用编程接口(API)读取所述配置文件,来捕捉 操作系统信息。图3示出了通过API读取安装在虚拟机上的Windows操作系统的安全配 置信息的示例。如图3所示,可以使用该操作系统提供的API读取其“本地安全策略”配 置文件,从而捕捉Windows操作系统的安全配置信息,在该配置文件中定义了该操作系统 的账户策略、本地策略、防火墙设置等,其中账户策略包括密码策略和账户锁定策略。在 该示例中,通过读取该配置文件中的配置信息,可以捕捉到以下安全配置信息:最大密码 寿命(maxPasswordAg。
29、e)为90天,最小密码寿命(maxPasswordAge)为1天,最小密码长度 (minPasswordLength)为8个字符、账户锁定阈值(LockPolicy threshold)为0等等。如 上文所述,可以将所捕捉的元数据转换为数据文件。下面的代码段1示出了该数据文件的 一部分,其记录了在图3的示例中捕捉的操作系统的安全配置信息。 0039 代码段1 0040 0041 说 明 书CN 103970581 A 6/16页 9 0042 应当注意,所述操作系统可以是预定义的操作系统,例如来自微软公司的Windows 操作系统,也可以是用户定制的操作系统,例如用户定制的某种Linux操作系。
30、统。对于预定 义的操作系统,由于该操作系统的配置方式是已知的,因此可以基于对该操作系统的已有 知识找到并读取该操作系统的配置文件,从而捕捉操作系统信息。对于用户定制的操作系 统,可以按照用户设定的规则找到并读取该操作系统的配置文件,从而捕捉操作系统信息。 可替换地,也可以使用本领域公知的其他手段来捕捉所述操作系统信息。 0043 虚拟机的软件信息是指与安装在该虚拟机上的软件有关的信息。所述软件可以是 单机软件,也可以是分布在共处一地或彼此远离的多个机器上的分布式软件。所述软件信 息例如可以包括该软件的版本信息、与安装该软件的虚拟化平台有关的信息、表示该软件 的拓扑结构的拓扑信息、与该软件调用的。
31、对象/资源(例如端口或数据资源)有关的信息中 的至少一个,也可以是其他类型的软件信息。 0044 可以根据软件的配置文件获取所述软件信息。例如,可以通过读取所述配置文 件来直接获取软件的版本信息、与安装该软件的虚拟化平台有关的信息等。此外,可以通 过分析软件的配置文件来确定软件的拓扑结构,从而获取软件的拓扑信息。继而,可以通 过分析该软件的拓扑结构,获取与软件调用的对象/资源有关的信息等。例如,对于在虚 拟机上安装的国际商业机器公司的服务器软件WebSphere Application Server,可以通 过分析该软件的配置文件,确定该软件的拓扑结构,继而获取与该软件在运行时要调用的 对象(。
32、节点)和/或资源有关的信息等。下面的代码段2示出了在服务器软件WebSphere Application Server的示例中,记录了所捕捉的软件信息的数据文件的一部分。如代码段2 所示,通过读取和分析该软件的配置文件,可以获取与该软件的组件“部署管理器(DMGR)” 有关的信息、与该软件要调用的节点“定制节点(Custom Node)”有关的信息、与该软件的组 件“Lombardi”有关的信息、与该软件要调用的数据库“DB”有关的信息等。 0045 代码段2 0046 0047 说 明 书CN 103970581 A 7/16页 10 0048 如本领域所知,可以在虚拟机上安装多种类型的软件。
33、,包括通用软件和用户定制 的软件。对于通用软件,可以根据对该软件的已有知识,预先设计通用的软件信息捕捉工 具,以便在需要时使用该工具来捕捉软件信息。对于定制软件,可以根据该软件的规则,设 说 明 书CN 103970581 A 10 8/16页 11 计对应的软件信息捕捉工具,以便在需要时使用该工具来捕捉软件信息。可以为每种类型 的软件设计对应的软件信息捕捉工具,从而能够捕捉各种软件的软件信息。 0049 对于物理机,要捕捉的操作系统信息以及软件信息与上文所述的虚拟机的操作系 统信息以及软件信息相同,在这里省略其详细描述。 0050 如上文所述,可以将所获取的与至少一个机器有关的元数据分别转换。
34、为对应的数 据文件。下面的代码段3示出了通过转换与一个机器有关的所有元数据获得的数据文件的 示例,所述元数据包括代码段1所示的安全配置信息和代码段2所示的软件信息。 0051 代码段3 0052 0053 说 明 书CN 103970581 A 11 9/16页 12 0054 应当注意,尽管代码段3所示的数据文件是使用XML格式编写的,但是该数据文件 的格式不限于XML格式,也可以采用任何其它适当的格式。 0055 返回图2,接下来,在步骤S202中,基于所捕捉的与至少一个机器有关的元数据, 生成描述所述至少一个机器的配置约束的约束定义。所述配置约束可以包括操作系统的配 置约束、软件的配置约。
35、束、触发动作约束中的至少一种,并且根据需要还可以包括其他配置 约束。用户可以根据实际需要选择这些配置约束中的一个或多个。所述约束定义可以理解 为在根据所生成的OVF包部署机器时需要遵循的规则。 0056 简单地说,在步骤S201中捕捉的与至少一个机器有关的元数据包含所述机器的 操作系统信息、软件信息等,这些信息可以包含体现对所述机器的配置约束的信息,例如 上文所述的安全配置信息,可以基于这些信息来生成描述对所述机器的配置约束的约束定 义。此外,在必要时,也可以由用户手动地设置其希望对所述机器的配置施加的约束,并且 生成相应的约束定义。 0057 下面参照图4来更详细地描述步骤S202。图4示出。
36、了在步骤S202执行的生成描 述所述至少一个机器的配置约束的约束定义的操作的详细流程图。 说 明 书CN 103970581 A 12 10/16页 13 0058 如图4所示,首先,在步骤S2021中,将通过转换在步骤S201中捕捉的、与至少一 个机器有关的元数据获得的至少一个数据文件聚合为单个文件。该单个文件描述了配置所 述至少一个机器所需的上下文,因此可称为上下文模型文件。可以使用任何适当的方式来 将各个数据文件聚合为上下文模型文件。例如,可以将各个数据文件的内容复制到单个文 件中,并且按照预定的规则组织这些内容,从而形成上下文模型文件。例如,可以按照所述 内容的类别(例如,与软件有关的。
37、内容、与操作系统有关的内容等等)组织各个数据文件中 的内容,使得在上下文模型文件中,来自各个数据文件的相同类别的内容被放置到一起。应 当注意,当只有一台机器时,可以不执行该聚合操作,而是直接使用针对该机器生成的数据 文件作为上下文模型文件。在下文中,为简单起见,使用代码3所示的数据文件作为上下文 模型文件的示例,尽管该数据文件只包含来自一个机器的元数据。 0059 接下来,在步骤S2022中,基于该上下文模型文件,生成描述所述至少一个机器的 配置约束的约束定义。如上文所述,所述配置约束可以包括操作系统的配置约束、软件的 配置约束、触发动作约束中的至少一个。在本实施例中,使用服务建模语言(SML。
38、)来生成约 束定义,然而,本发明不限于此,也可以使用任何其他适当的语言和/格式来生成该约束定 义。 0060 具体地,操作系统的配置约束例如可以包括操作系统的安全约束等。所述安全约 束可以包括该操作系统的账户策略(例如密码策略、账户锁定策略)等,其中密码策略可以 包括在该操作系统中使用的密码的长度、密码的有效期等。用户可以根据需要选择操作系 统的配置约束的类型,并且生成对应的约束定义。可以基于上下文模型文件中记录的与 至少一个机器有关的元数据(例如操作系统元数据),自动地生成描述操作系统的配置约束 的约束定义。在上文所述的示例中,所捕捉的元数据包含所述至少一个机器的操作系统 的安全配置信息,因。
39、此,可以通过从包含所述元数据的上下文模型文件中提取这些安全配 置信息,来获得操作系统的安全约束,继而以SML格式生成安全约束定义。例如,在代码 段3所示的上下文模型文件的示例中,记录了与操作系统的密码策略有关的安全配置信息 maxPasswordAge=“90“、minPasswordAge=“1“、minPasswordLength=“8“,如果用户决定对密 码策略(例如密码有效期)设置安全约束,则可以从该上下文模型文件中提取安全配置信息 maxPasswordAge=“90“,并且根据此信息自动地生成SML格式的约束定义assert id=“Acco untPolicy“test=“Acc。
40、ountPolicies/PasswordPolicy/maxPasswordAge=90“,该约束定 义将最大密码有效期定义为90天。类似地,通过从代码段3所示的上下文模型文件提取安 全配置信息“LockPolicy threshold=“0“”,可以生成SML格式的约束定义assert id=“Loc kPolicy“test=“AccountPolicies/LockPolicy/threshold=0“,以便施加对于账户锁定 的配置约束,该约束定义表明对应的账户永远不会被锁定。用户可以对按照上述方式生成 的约束定义进行修改。例如,用户可以将上述密码有效期限从90天修改为60天。或者,也。
41、 可以由用户自行定义附加的操作系统的配置约束,并且按照预定的格式生成相应的约束定 义。 0061 软件的配置约束可以包括与该软件的拓扑结构有关的拓扑配置约束、软件的安 全配置约束等。用户可以根据需要选择软件的配置约束的类型,并且生成对应的约束定 义。可以基于上下文模型文件中记录的与至少一个机器有关的元数据(例如软件元数 据),自动地生成描述软件的配置约束的约束定义。在代码段3所示的上下文模型文件的 说 明 书CN 103970581 A 13 11/16页 14 示例中,包含与服务器软件WebSphere Application Server连接的定制节点(“Custom Node”)有关的元。
42、数据,根据该元数据,可以自动生成对定制节点的数目施加约束的约束定 义“assert id=“Cutom Node“test=“TemplateParts/PartpartType=Custom Node/ number=2“,该约束定义将所述服务器软件连接的定制节点的数目限制为2个。同 样,当用户决定对该服务器软件连接的数据库施加关于端口的配置约束时,可以基于上 述代码段3所示的上下文模型文件中与数据库“DB”有关的元数据,自动地生成约束 定义assert id=“DB“test=“TemplateParts/PartpartType=DB/keyAttribute/ port=range20。
43、00,5000“,从而将端口范围限制为2000与5000之间。同样,用户可以对 按照上述方式生成的约束定义进行修改。例如,用户可以将对定制节点数目的约束从2个 修改为3个。或者,也可以由用户自行定义附加的软件的配置约束,并且按照预定的格式生 成相应的约束定义。 0062 此外,用户可以为所定义的各种配置约束设置该约束要触发的动作,即,设置 触发动作约束,并且生成相应的约束定义。该动作可以只涉及一个机器(物理机或虚 拟机)。例如,可以对于上文所述的配置约束assert id=“DB“test=“TemplateParts/ PartpartType=DB/keyAttribute/port=ra。
44、nge2000,5000“,设置要触发的动 作action method=“setPort(3000)“,即,设置将端口设置为3000的动作。用户设置的动 作也可以跨越两个或多个机器,从而在约束定义中体现出跨多个机器的软件相关性。例 如,可以设置以下代码段4所示的描述触发动作约束的约束定义,该约束定义表明,当主 机192.168.1.100的LombardiTopology为Golden Topology时,执行动作showInfo(显 示信息)和configCustomNodeNumber(配置节点数目),配置节点数目的动作由另一主机 192.168.1.101的部署管理器执行,使得将定制节。
45、点数目设置为5。 0063 代码段4 0064 0065 此外,当上下文模型文件中包含表示某种条件的内容时,可以对该条件设 置相应的触发动作,作为触发动作约束,使得当满足该条件时,触发所述动作。例 如,如果上下文模型文件中包含以下条件性语句“If (VM1.Softwares.Lombardi. DBUsageType=“Typical”&VM1.OS.port within range2000,5000)”,则可以对条件设 说 明 书CN 103970581 A 14 12/16页 15 置某种触发动作action1,使得当上述条件被满足时,执行该动作acition1。以下代码段5 示出了如。
46、此生成的触发动作约束的约束定义的示例。 0066 代码段5 0067 If(VM1.Softwares.Lombardi.DBUsageType=“Typical”&VM1.OS.port within range2000,5000) 0068 then action 1. 0069 下面的代码段6示出了基于代码段3所示的上下文模型文件生成的约束定义的示 例。 0070 代码段6 0071 说 明 书CN 103970581 A 15 13/16页 16 0072 返回图2,在步骤S203,将所述至少一个机器的盘映像文件、在步骤S201捕捉的与 所述至少一个机器有关的元数据、以及在步骤S202。
47、生成的约束定义打包,以生成OVF包。具 体地,可以将所述盘映像文件、包含所述元数据的各个数据文件、以及包含所生成的约束定 义的约束定义文件按照OVF格式打包到一起,从而形成OVF包。所述至少一个机器(物理机 和/或虚拟机)的盘映像文件可以使用本领域公知的任何方法来生成,在这里为简单起见而 省略其详细描述。 0073 由此,可以为至少一个机器(物理机和/或虚拟机)生成OVF包。 说 明 书CN 103970581 A 16 14/16页 17 0074 下面,参照图5来描述根据本发明实施例的创建虚拟资源包的设备的结构的框 图。该设备可以通过执行上文所述的方法。 0075 如图5所示,根据本发明实。
48、施例的创建设备500包括捕捉装置501、生成装置502 和打包装置503。该创建设备500可以用来创建包括至少一个机器的虚拟资源包,所述至少 一个机器可以是物理机、虚拟机、或者物理机和虚拟机的组合。在图5中,作为示例,示出了 4个机器,即物理机101和102以及虚拟机103和104。在下文中,为了便于描述,以OVF包 作为虚拟资源包的示例,然而,本发明不限于于此,而是也可以适用于创建其它类型的虚拟 资源包。 0076 捕捉装置501捕捉与各个机器101-104有关的元数据。捕捉装置501可以将所捕 捉的与各个机器有关的元数据分别转换为XML格式的数据文件。应当认识到,捕捉装置501 也可以将所。
49、捕捉的元数据转换为任何其它适当格式的数据文件。 0077 下面,参照图6来详细描述捕捉装置501。图6示出了捕捉装置501的结构框图。 如图6所示,捕捉装置501可以包括用于捕捉与物理机有关的元数据的物理机元数据捕捉 单元5011、用于捕捉与虚拟机有关的元数据的虚拟机元数据捕捉单元5012和用于将所捕 捉的与各个机器有关的元数据分别转换为数据文件的转换单元5013。应当认识到,当所 述至少一个机器全是物理机或全是虚拟机时,可以相应地去除虚拟机元数据捕捉单元5012 或物理机元数据捕捉单元5011。 0078 物理机元数据捕捉单元5011可以包括操作系统信息捕捉单元50111和软件信息 捕捉单元50112。虚拟机元数据捕捉单元5012可以包括资源信息捕捉单元50121、操作系 统信息捕捉单元50122和软件信息捕捉单元50123。