Open Virtualization Format (OVF and OVA)

OVF is an open standard, specified by the Distributed Management Task Force (DMTF), for packaging and distributing a virtual appliance consisting of one or more virtual machines (VMs).

An OVF Package is composed of metadata and file elements that describe virtual machines, plus additional information that is important to the deployment and operation of the applications in the OVF package. Its file extension is .ovf .

An Open Virtual Appliance (OVA) is an OVF Package in a single file archive with the .ova extension.

Note that in a XenServer environment where Role-Based Access Control (RBAC) is implemented, only users with the RBAC role of Pool Admin can import and export OVF and OVA packages. See RBAC overview for more information about RBAC roles.

What’s in an OVF package?

An OVF Package always includes a descriptor file (*.ovf ) and may also include a number of other files.

File type Description
Descriptor The descriptor specifies the virtual hardware requirements of the service and can also include other information such as descriptions of virtual disks, the service itself, and guest operating systems, a license agreement (EULA), instructions to start and stop VMs in the appliance, and instructions to install the service. The descriptor file extension is .ovf .
Manifest The manifest is an SHA-1 digest of every file in the package, allowing the package contents to be verified by detecting any corruption. The manifest file extension is .mf .
Signature The signature is the digest of the manifest signed with the public key from the X.509 certificate included in the package, and allows the package author to be verified. The signature file extension is .cert .
Virtual disks OVF does not specify a disk image format. An OVF package includes files comprising virtual disks in the format defined by the virtualization product that exported the virtual disks. XenServer produces OVF packages with disk images in Dynamic VHD format; VMware products and Virtual Box produce OVF packages with virtual disks in Stream-Optimized VMDK format.

An OVA package is a single archive file, in the Tape Archive (tar) format, containing the files that comprise an OVF Package.

Which format should I use?

OVF packages contain a series of uncompressed files that make it handier for users who may want to access individual disk images in the file, while OVA packages are just one large file. While you can compress this file, it doesn’t have the flexibility of a series of files like OVF.

OVA is better for specific applications where it is beneficial to have just one file, making the package easier to handle, such as when creating packages for Web downloads. Exporting and importing OVA packages takes longer than OVF.

Using Operating System Fixup

Using OVF as a method of packaging does not guarantee cross-hypervisor compatibility of the virtual machines contained in the package. An OVF package created on one hypervisor might not automatically work on a different hypervisor. This happens for a variety of reasons including; different interpretations of the OVF specification, guest operating system devices, drivers, and implementations inherent to a hypervisor.

XenCenter includes an advanced hypervisor interoperability feature – Operating System Fixup which aims to ensure a basic level of interoperability for OVF packages that are imported to XenServer. It is necessary to run Operating System Fixup on imported VMs that were created on other hypervisors to ensure that they boot correctly on XenServer.

For more information about the Operating System Fixup feature, see About VM Import and Export.

More information about OVF

Refer to the following document on the DMTF website for more information about OVF:

Open Virtualization Format Specification

Open Virtualization Format (OVF and OVA)