Summary

This article provides a basic overview of the Open Virtualization Format (OVF) specification as used in Project Kensho and XenConvert.

Background

Virtual Machine deployment and use has exploded in recent years. Many vendors, including Citrix, have been instrumental in the widespread adoption of virtual machines in today’s computing climate. New use cases, including the distribution of virtual appliances, require a more standardized way to describe and deliver virtual machines. This article aims to shed some light on OVF as used in currently shipping Citrix products.

What OVF Is

Comprised of the Virtualization Management Initiative (VMAN), the Distributed Management Task Force (DMTF) standards body created a standard representation of virtual machine metadata named Open Virtualization Format (OVF).  OVF seeks to allow virtual machine hypervisor vendors and the users of virtual machine technology to create and consume virtual machine metadata free from proprietary formats.

Virtual machine metadata includes a virtual machine’s name and configured memory as well as CPU, network and storage settings among other attributes. A standards approach to creating and consuming virtual machine metadata eases the ability to move a virtual machine from one platform to another as well as distribute virtual appliances to end users.

However, OVF goes beyond just the description and virtual hardware attributes. OVF allows a virtual appliance vendor to add items like a EULA, comments about the virtual machine, boot parameters, minimum requirements, security attributes and a host of other features.

An OVF is not just limited to a single virtual machine. An OVF can describe multiple virtual machines. These virtual machines can be packaged as a virtual appliance suite all wrapped up in a single file. Creators of the appliances also have the ability to encrypt, compress and digitally sign OVF content.

With these capabilities, there is a wide range of packaging and deployment possibilities when using features provided by the OVF specification found in Citrix utilities.

What OVF Is Not

OVF is not a specification that describes a virtual disk. To import OVF content requires hypervisor compatibility with the associated virtual disk.

For example, to import a VMware produced OVF, which includes a VMDK disk into XenServer, the user needs to convert the VMDK into a virtual disk format compatible with XenServer.. The same process is needed to import a XenServer OVF which includes a VHD into a VMware hypervisor.

To assist end users with dissimilar disk formats, Citrix provides XenConvert 2.0.1 which converts VMware OVF/VMDK content into a XenServer compatible format (OVF/VHD). The Project Kensho OVF Tool enables direct import of OVF/VMDK content into XenServer without converting into an intermediate format. Using this method, the Project Kensho OVF Tool reduces migration time by ~ 40%.

With Microsoft Hyper-V content, no conversion is necessary as XenServer natively supports the VHD format. The Project Kensho OVF Tool facilitates the import and export of OVF based VHD content for users of Microsoft Hyper-V.

OVF File Components

From a file perspective, OVF is not just one file. It is a collection of files representing everything from virtual machine metadata, virtual disks, manifests, certificates and archive files. These files can be encrypted, digitally signed, compressed and archived.

The most apparent file is the metadata file. It is an XML document that has the extension of .ovf. This file contains the metadata describing one or more virtual machines and contains the location of the virtual disks associated with the virtual machines. It also contains information about how to manage the virtual machines during import, EULA information and other capabilities described in the specification. A file of this type could appear as myappliance.ovf.

Accompanying the .ovf are one or more virtual disks. Citrix uses the .vhd format for virtual disks associated with a Citrix produced OVF. The .ovf file provides the location to one or more VHD disks. VHD disks can be relative to the OVF or can be a URL.

The OVF specification defines two specific groups of files:

OVF Package
An OVF package is a group of files required for importing the virtual machine.

• The .ovf file containing the metadata. Example: myappliance.ovf
• One or more .vhd virtual hard disks. Example: myappliance.vhd
• A manifest file describing the package and checksum. Example: myappliance.mf
• If a user chooses to digitally sign the OVF file, a certificate file. Example: myappliance.cert

OVA Package
An OVA package is a single file archive of the .ovf file, .vhd file, .mf file and, if applicable, the .cert file. The OVF specification requires an archive to be in the TapeARchive (TAR) format. TAR is a Unix derived archiving format.

• All files associated with the OVF are included in this file. Example: myappliance.ova

The OVF specification allows users to compress an OVA.

• OVA compression uses the gzip algorithm. Example: myappliance.ova.gz

OVF and XVA

OVF is the natural successor to XVA. Accompanying an XVA package is a file named ova.xml. This is XenSever’s proprietary metadata descriptor. Citrix utilities like XenConvert 2.0 convert an XVA into an OVF/VHD combination. XenConvert is useful in creating distributable virtual appliances based on the OVF standard from existing XVA content.

DMTF VMan OVF Specification

There is much more to OVF than the simple description above. To learn more about it, please refer to the OVF specification on the DMTF website.

DSP02431.0.0 Open Virtualization Format Specification