IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Linux | Open source  >

使用 OVF Toolkit 构建虚拟工具

了解实现轻松为 VM 封装和分发虚拟工具的 Open Virtualization Format 标准和工具包

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码

英文原文

英文原文


级别: 中级

Steve Schmidt, 高级软件工程师, IBM
Andrew R. Freed, 高级软件工程师, IBM
Mike Gering, 高级软件工程师, IBM

2009 年 7 月 27 日

Open Virtualization Format (OVF) 是用于封装和分发将在虚拟机上运行的虚拟工具(或软件)的开放标准。该标准描述了一种开放、安全、可迁移、有效以及可扩展的格式,用于封装和分发将在虚拟机上运行的软件;该标准的目的是不再需要绑定到任何特定的管理程序或处理器架构。在本文中,作者将描述 OVF 标准以及由 IBM 开发的 OVF Toolkit。

Open Virtualization Format (OVF) 规范是在 Distributed Management Task Force (DMTF) 协会内部开发的一种标准,旨在推广一种开放、安全、可迁移、有效以及可扩展的格式,用于封装和分发将在虚拟机上运行的软件。

DMTF 是一个非盈利行业成员协会,致力于推广企业和系统管理以及互操作性。成员和非成员可以复制 DMTF 规范和文档,在此特定用途下使用,但要指出正确的归属权。

IBM 在 OVF 标准的发展过程中看到了巨大的潜力,特别是从它开始支持创建开放环境(用于定义表示和分发虚拟机/虚拟工具内容和标准途径)之后。在标准规范的成型过程中,IBM 一直发挥着积极的作用。为了进一步促进 OVF 的采用,我们开发了一些工具来帮助人们以 OVF 可分发格式表示虚拟机/虚拟工具。

在本文中,我们概述了该标准并演示了 Open Virtualization Format Toolkit。

OVF 在虚拟工具生命周期中的位置

如 Open Virtualization Format White Paper(链接见本文后面的 参考资料 部分)的 1.4 节所述,虚拟工具的软件生命周期遵循以下模式:

  1. 开发
  2. 封装和分发
  3. 部署
  4. 管理
  5. 退役

经过开发阶段(步骤 1)之后,服务(一个或多个 VM,以及必要的配置和部署元数据)将封装为 OVF 格式(步骤 2)。封装的组件可以是第三方数据。在部署阶段(步骤 3)将安装 OVF 包。管理和退役阶段(步骤 4 和 5)特定于 OVF 包的内容以及您所使用的特定虚拟化产品。

OVF 1.0 解决了封装、分发和部署阶段。





回页首


OVF 标准中的元素

OVF 标准定义了三个元素:

  • OVF 包
  • OVF 描述符
  • OVF 环境文件

接下来详细讨论它们。

OVF 包

作为其核心,OVF 包是一种分发包,它由以下内容组成:

  • 一个 OVF 描述符文件 (.ovf)。这通常表示 OVF 信封 并且主要是此工具支持的主题。OVF 描述符文件定义了封装虚拟工具的内容和需求,以支持此包的成功和一致的部署。OVF 描述符文件采用 XML 格式。
  • 0 到 1 个 OVF 清单文件 (.mf)。清单文件包含 OVF 包中各文件的 SHA-1 摘要。清单的作用是提供包的数据完整性。
  • 0 到 1 个 OVF 认证文件 (.cert)。可以通过签名清单文件来签名 OVF 包。摘要的签名随同 base64-encoded X.509 证书存储在一个 .cert 文件中。证书的作用是确保包的真实性。
  • 0 到多个磁盘映像文件。这些文件代表支持定义的虚拟映像或工具的虚拟磁盘。通常,包中包含工具所需的工件,其中包括虚拟磁盘、本地化语言资源和其他工件。

OVF 描述符

信封描述符描述构成此 OVF 包的所有虚拟机元数据(包括虚拟硬件)。

信封由以下几个部分组成:

  • 由 XML 名称空间 URI 定义的版本指示。
  • 引用所有外部文件的文件引用列表,它是由 References 元素及其 File 子元素定义的 OVF 包的一部分。它们通常是虚拟磁盘文件、ISO 映像和国际化资源。
  • section 元素定义的工具级元数据,用于描述网络和虚拟磁盘等内容。
  • 对工具内容的描述,可以是单个虚拟机(VirtualSystem 元素)或一系列虚拟机(VirtualSystemCollection 元素)。
  • 一个针对 0 到多个区域的消息资源包规范,各区域由相应的 Strings 元素定义。

图 1 显示了 OVF 信封的部分结构。


图 1. OVF 信封结构
OVF 信封结构图

OVF 信封在虚拟工具生命周期的封装和分发阶段创建和使用。

OVF 环境

OVF 环境是一个 XML 文档,它由 OVF 部署平台在部署 OVF 包的过程中生成,并提供给已部署的虚拟系统 中的访客软件使用。OVF 环境文档的作用是提供虚拟系统访客软件(属于已部署的 OVF 包)属性变量信息,用于 “定制” 访客虚拟系统。OVF 包描述符的创建者(OVF 信封)指定哪些自定义属性将需要变量输入。在 OVF 包的部署活动中,部署平台将收集与自定义属性键相关的值,并构建 OVF 环境文档。

OVF 环境在虚拟工具生命周期的部署阶段中使用。





回页首


Open Virtualization Format Toolkit 要点

Open Virtualization Format Toolkit 提供了一组 Eclipse 插件,以及一个标准的 Java™ API,以帮助您以新的基于标准的 Open Virtualization Format 格式创建虚拟工具包。OVF Toolkit 将帮助在 OVF 标准之下封装和分发虚拟工具。

此工具包提供了一个易于使用的编辑器,用于执行创建所需包描述符的任务,以确保遵循标准的语法和语义需求。它还提供了将包文件导出为 OVF 标准所许可的两种格式的功能:作为 Open Virtual Appliance 格式的单一 TAR 文件,或者作为一组文件。

为了支持这种新的编辑功能,这个包提供一组必要的 Eclipse 插件,用于扩展您的现有开发环境。

以下各节列出了 OVF 复合工具各个方面的要点以及使用场景。

规范范围和验证

OVF 规范提供了一个模式,详述了 OVF 信封 XML 实例文档的语义,以及一个已经写好的规范,详述了超出模式描述范围的语义。OVF Toolkit 支持生成 OVF 兼容的实例文档和以及遵循 OVF 模式和规范的分发包。包含的项目有:

  • 元素数据以及所需属性的基数性
  • 元素关系的引用完整性
  • 数据类型完整性
  • 绑定类型的字段枚举完整性
  • 除模式语义之外,还支持已定规范的语义

OVF 规范能够在信封 XML 实例文档中描述单虚拟机内容定义和多虚拟机内容定义。OVF 复合工具支持创建、编辑和封装这些类型的实例文档以及它们的支持文件。

设计新 OVF 信封

在许多情况下,从零开始创建 OVF 信封是比较令人满意的。如前所述,复合工具中出现的一个 Eclipse 工件是一个新编辑器,它就提供了这种功能。从本质上说,您在 Eclipse 工作空间中创建一个新文件与在 Eclipse IDE 中创建任何文件都是相同的。不同的是文件的类型:它被称作 Envelope Model。

创建新 OVF 信封的步骤如下:

  1. 创建一个新项目(或使用已有项目)来保存 OVF 信封文件(如果不存在的话)。

图 2. 准备或创建一个项目来保存 OVF 信封文件
屏幕截图显示了用于准备或创建一个项目来保存 OVF 信封文件的菜单
  1. 使用 File/New/Other 菜单操作在项目中创建一个新的 Envelope Model 文件。

图 3. 创建一个新的 Envelope Model 文件
屏幕截图显示了用于创建新 Envelope Model 文件的菜单
  1. 此时,您将在新编辑器中打开一个框架 OVF 信封。记住,大多数 OVF 元数据都将在新文件创建之后添加。

图 4. 将 OVF 元数据添加到框架信封
用于将 OVF 元数据添加到框架信封的三个视图
  1. 通过高亮编辑器中的元素向 OVF 信封添加额外内容;右键单击并选择 New ChildNew Sibling,这由要添加的内容决定。

图 5. 向信封添加新的子元素或并列元素(额外内容)
用于向信封添加新的子元素或并列元素(额外内容)的菜单
  1. 所有常用的编辑命令都按预期运行,包括剪切、复制和粘贴。此外,您还希望打开 Properties 视图。通过某 OVF 对象的上下文菜单或 Window/Show View/Properties 菜单操作打开此视图。Properties 视图提供了树型编辑器中所选元素的属性名称和对应的值。在此视图中,您可以更改所选属性的值。在图 6 中,References 部分下添加了一个新的 File 元素;选中之后,它的相应属性将在 Properties 视图中变为可见且可更改。

图 6. 从 Properties 视图中查看它
显示 Properties 视图的屏幕截图

这就是创建新 OVF 信封的方法。当您保存正在编辑的文件时,信封将序列化为标准的 OVF 格式。并且,如果愿意,可以使用 OVF 信封编辑器或任何其他能查看 XML 文件的编辑器打开它(如果您希望查看信封的 XML 表示)。


图 7. 在编辑器中查看表示
用于在编辑器中查看表示的菜单

图 8 显示了信封编辑器中的信封。


图 8. 信封编辑器中的信封
信封编辑器中的信封

图 9 显示了在标准文本编辑器显示为序列化 XML 的信封。


图 9. 作为序列化 XML 的信封
作为序列化 XML 的信封

导入/编辑专用 VM 描述符

我们发现到许多基于 x86 的虚拟机都由一款 VMware 管理程序产品托管。在这种情况下,您会比较愿意创建 OVF 信封元数据和 OVF 分发包来表示这些之前构建的虚拟机。

为了稍微简化这一复合场景,您可以使用新的 Import 功能(更具体地说,即 Import VMware VMX Configuration File)。通过使用这种新的导入功能,您可以通过 VM 配置数据文件生成基本的 OVF 信封元数据,然后可以根据所需的最终 OVF 包来编辑它们。在与 Composing New 场景相类似的方式中,您将在基于工作空间的项目中创建一个 OVF 信封(将它作为新 文件)。下图演示了执行这种导入操作所需的基本步骤。

首先从主菜单选项中选择 File/Import


图 10. 选择 File/Import
用于选择 File/Import 的树型视图

然后,选择要导入的 VMX 配置文件,并指定希望将生成的 OVF 信封保存在工作空间中的目标位置:


图 11. 选择 VMX 导入配置文件
用于选择 VMX 导入配置文件的对话框

点击 Finish 之后,分析流程将分析 VMX 配置文件并生成适当的 OVF 信封结构。除了 OVF 元数据之外,还会为各个 VMDK(虚拟磁盘)在工作空间项目中创建一个文件链接,以支持后续 OVF 包生成,从而提供了一个完整的 “往返式” 生成场景。图 12 显示了打开生成的 OVF 信封的信封编辑器。


图 12. 打开 OVF 信封的信封编辑器
打开 OVF 信封的信封编辑器

导出 OVF 包

OVF 规范的一个主要目标是定义一种有效、安全和可迁移的包分发的标准方式。规范定义了两种主要的包格式:

  • 作为单一 TAR 文件封装(开放虚拟工具或 .ova 格式)
  • 作为文件集封装(多种文件格式)

OVF 复合工具通过 Export 处理服务支持这两种分发格式。在 OVF 复合工具中,将 OVF 包导出为文件集或导出为 .ova TAR 归档文件的过程基本相同;可以通过对话框选择所需的包格式。为了演示如何生成 OVF 包以支持分发,我们给出了以下场景。

可以将 OVF 包表示为一组文件或一个使用 TAR 格式的文件。如果 OVF 包采用单文件格式,则该文件的扩展名应该是 pac.ova(开放虚拟工具或应用程序)。

对于 OVF TAR 归档,文件将按以下顺序在归档内容创建:

  1. .ovf 描述符文件。
  2. 其余文件的顺序与 References 部分所列的相同。注意,用于国际化的任何外部字符串资源包文件都应该首先位于 References 部分中。
  3. .mf 清单文件(如果用户选择)。
  4. .cert 证书文件(如果用户选择包签名)。

如果存储清单或证书文件,则它们将位于归档的结束部分。对部署来说,顺序限制将确保能从 OVF TAR 文件中提取 OVF 描述符,而不需要扫描整个归档。所使用的 TAR 格式符合 POSIX IEEE 1003.1 标准组定义的 USTAR (Uniform Standard Tape Archive) 格式。

要从 OVF 复合工具导出某个 OVF 包,请选择文件导出菜单命令:


图 13. 从复合工具导出 OVF 包
如何从复合工具导出 OVF 包

接下来,您选择并载入定义 OVF 信封元数据及其文件的 OVF 描述符文件。如果您在调用导出向导之前选择了某个 .ovf 文件,则该向导将为您预先加载它。


图 14. 选择/载入定义 OVF 信封元数据的描述符文件
选择/载入定义 OVF 信封元数据的描述符文件

接下来,指定希望对 OVF 信封 References 部分中包含的文件执行什么处理。在导出过程的这个阶段,需要考虑许多事项:

  • 文件是否将与信封及其他可选文件一同封装?(这对于本地文件引用是必需的,但对于 http 或 https 协议是可选的)。
  • 是否有任何文件资源转换包?(首先需要在文件列表中对它们进行排序)。
  • 您是否希望创建一个清单文件?(这将计算文件摘要)。
  • 是否希望计算文件大小(或者重新计算)?

图 15 展示了指定文件处理选项的对话框:


图 15. 指定文件处理选项
指定文件处理选项对话框

根据文件处理步骤,指定导出 OVF 的目标目录,以及是希望导出一组文件还是一个 .ova TAR 文件归档。


图 16. 指定包目标目录
指定包目标目录的对话框

最终步骤(图 17)允许您根据早期选项选择以(更新文件大小)保存可能与 OVF 信封相关的任何变更。完成此步骤之后,导出的 OVF 包将准备用于分发。


图 17. 保存,然后准备分发导出的 OVF 包
用于保存的对话框。分发导出的 OVF 包

此时,您可以保存向导设置。如果这样做,工作空间中将创建一个扩展名为 .ovfPackage 的文件。稍后,您可以选择此文件,并使用初始设置启动导出向导。





回页首


结束语

在本文中,我们讨论了 Open Virtualization Format 标准,它是一种开放、安全、可迁移、有效且可扩展的格式,用于帮助您封装和分发希望在虚拟机上运行的软件。我们还:

  • 讨论了 OVF 在普通虚拟工具生命周期中的角色。
  • 概述了标准的三个支持元素 — OVF 的包、描述符和环境文件 — 并演示了它们的作用以及如何使用它们。
  • 您了解了 Open Virtualization Format Toolkit 的一些特性(比如规范范围和验证),设计了 OVF 信封,导入和编辑了专用 VM 描述符,并导出了 OVF 包。

现在,您要做的仅仅是阅读下面的 参考资料 部分,继续学习 Open Virtualization Format 以及支持其功能的工具包。






回页首


下载

描述名字大小下载方法
Open Virtualization Format 工具包1OVFtoolkit_101m5.zip4.2MBHTTP
关于下载方法的信息

注意:

  1. 安装说明:需要 Eclipse 3.4 或更高版本,以及 EMF Modeling Framework Runtime 和 Tools Feature Version 2.4.1。

    a. 下载 zip 文件并将其保存到所选目录。
    b. 在已有 Eclipse IDE 中,选择 Help > Software Updates
    c. 转到 Add Site... > Archive... 指向已经下载的更新归档。
    d. 选择 OVF Editor Standalone Feature 并选择 Install


参考资料

学习

获得产品和技术

讨论


作者简介

Steve Schmidt 目前在 IBM Software Group Advanced Design and Technology 团队担任高级软件工程师。他在 IBM 任职已经超过了 27 年,并且参与了计算机工程的许多方面,从大型机操作系统到个人计算,再到行业解决方案。最近,他一直在致力于虚拟化技术以及相关开发实践。


Andrew R. Freed 在 North Carolina 的 IBM Research Triangle Park 担任高级软件工程师。他前两年在 WebSphere Remote Server 团队工作,致力于监控解决方案。他是 WRS Data Provider 的设计者。


Mike Gering 在 N.C Research Triangle Park 的 IBM Software Group Advanced Design and Technology 团队担任高级软件工程师。他有 30 多年的职业编程经验,目睹了穿孔卡片的消亡以及个人计算的普及。他当前的兴趣包括模型驱动开发和虚拟化。他喜爱以传统、正当的途径实现 Hack 程序。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款