OVF and OVA

摘要:
下面我们逐一做个介绍:1)ovf文件:a.简介ovf文件在OVF文件格式中起到了举足轻重的作用,他的存在是保证了镜像文件vmdk,资源文件iso与虚拟机domain配置之间的正确对应,作用就如同vmware中的vmx格式、以及Xen、kvm中的xml配置文件。

最近测试的东西有关于ovf 和ova等相关用例,在网上找了点内容摘抄了下来。

一、什么是OVF文件

开源虚拟化格式OVF文件是一种开源的文件规范,它描述了一个开源、安全、有效、可拓展的便携式虚拟打包以及软件分布格式,它一般有几个部分组成,分别是ovf文件、mf文件、cert文件、vmdk文件和iso文件。

二、OVF文件工作原理以及各组件的作用

简单来说,OVF文件可以抽象看做一个由规定的几个不同类型的文件所组成的文件包,这个文件包可作为以后不同虚拟机之间一个标准可靠的虚拟文件格式,实现不同虚拟机之间的通用性。每个类型的文件都有各自的作用,相辅相成。
下面我们逐一做个介绍:
1)ovf 文件:

a.简介
ovf文件在OVF文件格式中起到了举足轻重的作用,他的存在是保证了镜像文件vmdk,资源文件iso与虚拟机domain配置之间的正确对应,作用就如同vmware中的vmx格式、以及Xen、kvm中的xml 配置文件。

b.内容详细分析
我们以一个ovftool生成的ovf为例通过对内容的研究可知。
前两行是对ovf文件的一些基本信息作简要说明主要内容包括了xml的版本,编码规范以及创建文件时的一些基本信息:

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!--GeneratedbyVMwareovftool2.1.0(build-467744),UTCtime:2011-10-08T04:29:32.179193Z-->

在基本信息之后,会有一个Envelope类型的说明,主要是规定了OVF文件所用规范的一些基本定义位置以及基本变量内容的声明。比如这里xmlns:vmw内容就是对应后面的vmw:

  1. <Envelopevmw:buildId="build-467744"xmlns="http://schemas.dmtf.org/ovf/envelope/1"xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common"xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"xmlns:vmw="http://www.vmware.com/schema/ovf"xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2. </Envelope>

一般来说,以上的内容只跟我们所用ovf格式的具体版本和提供商有关,在版本相同的情况下(也就是使用工具相同的情况下)以上内容并不会有什么区别。真正控制ovf文件工作的内容是后面部分,它和具体虚机配置紧密相关,在vmware中主要是靠vmx文件进行转换。
主要内容包括:
1)References类型

  1. <References>
  2. <Fileovf:compression="gzip"ovf:href="Winxp2-disk1.vmdk.gz"ovf:id="file1"ovf:size="573898140"/>
  3. <Fileovf:compression="gzip"ovf:href="Winxp2-file1.iso.gz"ovf:id="file2"ovf:size="214903055"/>
  4. </References>

以上两句声明了两个镜像分别对应OVF文件包中的vmdk镜像文件以及iso资源文件并用file1,file2予以区别。
2)DiskSection类型

  1. <DiskSection>
  2. <Info>Virtualdiskinformation</Info>
  3. <Diskovf:capacity="40"ovf:capacityAllocationUnits="byte*2^30"ovf:diskId="vmdisk1"ovf:fileRef="file1"ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized"ovf:populatedSize="1275461632"/>
  4. DiskSection>

在声明了vmdk文件为file1之后通过对DiskSection的配置,确定让vmdk作为虚机的硬盘镜像。
3)网络配置模块NetworkSection

  1. <NetworkSection>
  2. <Info>Thelistoflogicalnetworks</Info>
  3. <Networkovf:name="bridged">
  4. <Description>Thebridgednetwork</Description>
  5. </Network>
  6. </NetworkSection>

4)与虚机机内容相关的配置模块

  1. <VirtualSystemovf:id="vm">
  2. <Info>Avirtualmachine</Info>
  3. <Name>WindowsXPProfessional</Name>
  4. <OperatingSystemSectionovf:id="67"vmw:osType="winXPProGuest">
  5. <Info>Thekindofinstalledguestoperatingsystem</Info>
  6. </OperatingSystemSection>
  7. <VirtualHardwareSection>
  8. <Info>Virtualhardwarerequirements</Info>
  9. <System>
  10. <vssd:ElementName>VirtualHardwareFamily</vssd:ElementName>
  11. <vssd:InstanceID>0</vssd:InstanceID>
  12. <vssd:VirtualSystemIdentifier>WindowsXPProfessional</vssd:VirtualSystemIdentifier>
  13. <vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType>
  14. </System>
  15. <Item>
  16. <rasd:AllocationUnits>hertz*10^6</rasd:AllocationUnits>
  17. <rasd:Description>NumberofVirtualCPUs</rasd:Description>
  18. <rasd:ElementName>1virtualCPU(s)</rasd:ElementName>
  19. <rasd:InstanceID>1</rasd:InstanceID>
  20. <rasd:ResourceType>3</rasd:ResourceType>
  21. <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
  22. </Item>
  23. <vmw:Configovf:required="false"vmw:key="cpuHotAddEnabled"vmw:value="false"/>
  24. </VirtualHardwareSection>
  25. </VirtualSystem>

上述文档信息主要是对各种vmx中的信息进行归类,比如说VirtualSystem声明了hypervisor环境为vmware,同时声明的还有虚拟机的domain,系统环境、各种CPU配置等。
2)mf文件
a.简介
mf文件主要是一些文件SHA的集合,他主要起到的作用是防止镜像文件被非法用户篡改,通过对实例的比对我们可以得出,mf文件中各个文件的SHA值是对该文件的整个文件内容进行的内容摘要。
b.实例内容如下:

  1. SHA1(winxp_2.ovf)=87a7ef2d0d130d58b96905377ae3637d2de15260
  2. SHA1(winxp_2-disk1.vmdk.gz)=597f3effb12b77898f9dc2e92b836211c30b95b1
  3. SHA1(winxp_2-file1.iso.gz)=d59d519da9663c7245678efe08c21aa86cf96655

3).Cert文件
a.详细介绍
从对mf文件的分析我们知道了,mf文件主要作用是为了验证各种虚机相关配置是否被恶意篡改,但是如何保证mf文件本身的合法性呢?于是我们需要.Cert文件来加以补充。Cert文件主要分为2个部分,一部分是mf文件的摘要,而另一部分是合法证书的证书内容。通过证书的验证来实现验证mf文件合法性的验证,进一步证明整个OVF文件包的合法性。Cert证书的生成主要依赖PKI,可以通过openssl来实现。
4).vmdk文件和iso文件
这两种文件属于同一类,在OVF中都是资源类,主要就是具体的镜像资源。不同的区别是vmdk文件内容主要是用户操作系统OS的内容,而iso是光驱一类的内容。

三、虚拟机包 OVF和OVA的区别

OVF(Open Virtualization Format:开放虚拟化格式 )和OVA(Open Virtualization Appliance:开放虚拟化设备),两者包含所有用于部署虚拟机的必要信息。这两种包封装格式都是由DMTF(Distributed Management Task Force)所定义的。
两者之间的主要区别是在包的描述和封装。OVF包构造了必要的几个文件(具体见上描述),所有这些在定义和部署的虚拟机必须用到的。相比之下,OVA包是一个单一的文件,所有必要的信息都封装在里面。
OVF文件使用.ovf文件扩展名,同时一个OVF描述符,一个XML文件,用来描述打包的虚拟机。OVF还包含元数据和一个或更多的磁盘映像。或者,它也可能包含证书和其他附文件。
而OVA文件则采用.tar文件扩展名,包含了一个OVF ​​包中所有文件类型。这样OVA单一的文件格式使得它非常便携。

免责声明:文章转载自《OVF and OVA》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_ant调用jmeter脚本并生成报告(2)CentOS 7安装WordPress下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

初识Quartz(一)

首先需要一个任务: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 package quartz_project;   import java.util.Date;   import org.quartz.Job; import org.q...

解决Flink消费Kafka信息,结果存储在Mysql的重复消费问题

背景 最近项目中使用Flink消费kafka消息,并将消费的消息存储到mysql中,看似一个很简单的需求,在网上也有很多flink消费kafka的例子,但看了一圈也没看到能解决重复消费的问题的文章,于是在flink官网中搜索此类场景的处理方式,发现官网也没有实现flink到mysql的Exactly-Once例子,但是官网却有类似的例子来解决端到端的仅一...

WIN10 终止进程弹出拒绝访问的解决办法

现象: 今天打开 VMware Workstation 启动虚拟机时遇到一个问题:由于之前改过虚拟机名称,此次又修改了虚拟机设置,故而导致启动异常;然后我找到虚拟机文件的所在目录打算直接删掉也失败,提示已被其他程序占用;接着我打开任务管理器查看详细进程,发现有个进程无法终止。 解决办法: 1、win+r,输入 msconfig,进入系统配置页面 2、切换...

《软件安装》VMware Workstation 不注册 下载

问答环节 问:为什么要下载安装VMware Workstation 答:VMware Workstation 可以安装虚拟机,我们可以把我们安装的一些软件装在虚拟机上面,防止自己的电脑卡顿(软件装多了,我还怎么能流畅的玩游戏??),后面的很多教程我也是在虚拟机上操作 问:除了VMware Workstation还有别的类似软件吗? 答:有,比如 Oracl...

(转载)VM下ubuntu安装vmtools

转自:http://blog.sina.com.cn/s/blog_6f047ff20100ut5l.html 1.必须在vmware中系统的选项卡里选择安装vmware tools2.然后在系统的光驱里会出现一张VMware tools的光盘3.进入Ubuntu系统4.把文件从光盘上拷贝到本地(名字记不到了,自己用tab补全。)    cd /media...

如何在CentOS 6.4上安装并使用OpenVZ?

http://os.51cto.com/art/201304/387720.htm 安装OpenVZ 要完成OpenVZ的安装工作,我们需要先把OpenVZ库添加到yum当中: cd /etc/yum.repos.d wget http://download.openvz.org/openvz.repo rpm --import http://downlo...