转载自http://blog.itpub.net/27042095/viewspace-1180354/

一、什么是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. "1.0"encoding="UTF-8"?>

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

  1. <envelope vmw:buildid=< span="" style="word-wrap: break-word;">"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">

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

  1. <fileovf:compression=< span="" style="word-wrap: break-word;">"gzip" ovf:href="Winxp2-disk1.vmdk.gz"ovf:id="file1" ovf:size="573898140"/>
  2. <fileovf:compression=< span="" style="word-wrap: break-word;">"gzip" ovf:href="Winxp2-file1.iso.gz"ovf:id="file2" ovf:size="214903055"/>

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

  1. Virtual diskinformation
  2. <diskovf:capacity=< span="" style="word-wrap: break-word;">"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"/>
  3. DiskSection>

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

  1. Thelist of logical networks
  2. <network ovf:name=< span="" style="word-wrap: break-word;">"bridged">
  3. The bridgednetwork

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

  1. <virtualsystemovf:id=< span="" style="word-wrap: break-word;">"vm">
  2. A virtualmachine
  3. Windows XPProfessional
  4. <operatingsystemsectionovf:id=< span="" style="word-wrap: break-word;">"67" vmw:osType="winXPProGuest">
  5. The kind ofinstalled guest operating system
  6. Virtual hardwarerequirements
  7. Virtual Hardware Family
  8. 0
  9. Windows XPProfessional
  10. vmx-07
  11. hertz * 10^6
  12. Number of Virtual CPUs
  13. 1virtual CPU(s)
  14. 1
  15. 3
  16. 1
  17. <vmw:configovf:required=< span="" style="word-wrap: break-word;">"false" vmw:key="cpuHotAddEnabled" vmw:value="false"/>

上述文档信息主要是对各种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和OVA的区别相关推荐

  1. 虚拟机包OVF和OVA的区别

    虚拟机包OVF和OVA的区别 参考: cnblog - 沐阳zz - OVF and OVA OVF(Open Virtualization Format:开放虚拟化格式 )和OVA(Open Vir ...

  2. AR502H-CN开发笔记54:OVF和OVA的区别

    本系列文章将向大家讲述华为网关AR502H的开发方法. 本文介绍OVF和OVA的区别. 一.什么是OVF文件 开源虚拟化格式OVF文件是一种开源的文件规范,它描述了一个开源.安全.有效.可拓展的便携式 ...

  3. 如何从 OVF 或 OVA 文件中部署虚拟机

    从 OVF 或 OVA 文件中部署虚拟机 使用新建虚拟机向导从 OV F和 VMDK 文件或 OVA 文件部署虚拟机.由于 Web 浏览器的限制,OVA 部署仅限于1GB以下的文件.要部署大于1GB的 ...

  4. VMware导出ovf和ova格式文件

    文章目录 前言 导出ovf文件 导出为ova文件 ovf文件与ova文件 前言 在进行VMware靶机的架设时,常常需要进行不同设备的传输 导出ovf文件 VMware虚拟机中先选择所要导出的系统,工 ...

  5. java虚拟机参数-X 与 -XX的区别

    java虚拟机参数-X 与 -XX的区别 java虚拟机参数-X 与 -XX的区别 为什么有的用-X 如,-Xms -Xmx -Xmn等 有的用-XX: 如-XX:MaxPermSize=100M等 ...

  6. 太好了,一分钟带你分清Python的模块、库、包有什么联系和区别?

    Python的流行主要依赖于其有众多功能强大的库(Library),Python自带的标准库(Standard Library)可以满足大多数的基础需求,除了函数库以外,模块(Module)和包(Pa ...

  7. 计算机网络 数据段、报文、IP数据报、数据包、MAC帧的区别;应用层、运输层、网络层、数据链路层、物理层的区别与功能;转发器、集线器、网桥、交换机、路由器、网关的功能与区别

    主要解决三个问题: 1.数据段.报文.IP数据报.数据包.MAC帧的区别 2.应用层.运输层.网络层.数据链路层.物理层的区别与功能 3.转发器.集线器.网桥.交换机.路由器.网关的功能与区别 数据传 ...

  8. 认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别

    认识 java JVM虚拟机选项 Xms Xmx PermSize MaxPermSize 区别 2012-08-24 12:15 点击window---->preferences----> ...

  9. 【java】深入理解Java JVM虚拟机中init和clinit的区别

    1.概述 转载并且补充:深入理解Java JVM虚拟机中init和clinit的区别 原创 之所以来转载一下,是因为,有个学弟问了这个问题 这个知识点,回顾起来应该是我看 深入理解Java JVM虚拟 ...

最新文章

  1. javascript 两个数组组成一个对象
  2. ZooKeeper原理及使用
  3. java设计模式---构建者模式
  4. SecureCRT文件传输
  5. Linux C/C++ Openssl RSA Encrypt/Decrypt(加密/解密) 简单示例教程
  6. 【转】ABP源码分析二十:ApplicationService
  7. 【Python成长之路】机器学习:10+分类算法汇总学习
  8. debian之自启动程序
  9. AAC Explicit or Implicit SBR PS issue
  10. Chrome 手动清理缓存
  11. 小白都能看懂的java虚拟机内存区域划分
  12. 下一代半导体表面清洁技术
  13. 《凡人修仙传》8.25正式上线链游玩家 | 修仙世界、天降神器
  14. stm32 定时器_基于STM32定时器ETR信号的应用示例
  15. 吃鸡路线(map最短路径)
  16. ubuntu快捷复制粘贴
  17. 小米电视不能访问电脑共享文件的解决方案
  18. Java监听器实现网站在线人数统计
  19. 萧洁云:SAP中国重上快车道
  20. 短视频评论的抓取及分析

热门文章

  1. Python 爬取迷你MP4电影网,电影名称保存到本地,Requests+lxml框架
  2. 微型计算机联想c325,寓教于乐一体机 联想IdeaCentre B325评测
  3. 开关电源环路的零极点可以在反馈端补偿吗_开关电源的建模和环路补偿设计(1):小信号建模的基本概念和方法(一)...
  4. 什么是群、什么是阿贝尔群(abel群、阿贝尔群也称为交换群或可交换群)、群论入门
  5. 农村穷小子的逆袭之路;如何一步一步成为中国首富。
  6. peewee mysql_tornado+peewee-async+peewee+mysql(一)
  7. flask keras 多线程环境下加载模型
  8. 域名 CN 被注册;上世纪最大的 BBS 论坛 | 历史上的今天
  9. linux查看pro文件,Linux下.pro文件的写法简介
  10. 淘宝旺旺号转userid 和 uid 的接口方法