Friday, May 22, 2009

The OVF and OVA dilemma

Here is a really good definition that I can thank my manager for of “OVF”:

OVF is a vendor- and platform-independent format to describe virtual machine metadata and create portable virtual-machine packages. These packages do not rely on a specific host platform, virtualization platform, or guest operating system. However, the virtual disk referenced by the OVF package must be compatible with the target hypervisor.

The Open Virtualization Format is a new and developing standard from the DMTF (Distributed Management Task Force). Its purpose is to form a common framework that any virtualization vendor can use to define a virtual workload. This workload can be simply a single virtual machine; this workload could also contain many virtual machines and also include complex descriptions for networking, applications, EULAs, and other entities. In theory, a single OVF could define all of the workloads within an entire enterprise and those workloads could be transported to a remote site for DR, or moved to a new datacenter. The possibilities are many.

The standard is here:

The concept seems simple enough.

When talking to IT Professionals there is always time spent describing OVF and OVA, and where each fits.

“OVF” is the acronym for the standard.

What is referred to as an “OVF Package” is the collection of the workload states, plus a description meta file, plus any other entities that are defined in the description file.

BTW – the description file is also called the OVF file, or OVF meta file or OVF descriptor. This is why this gets really confusing really fast.

Here are the two important terms that get thrown around:

OVF / OVA – these are not the same thing.

An OVF is a collection of items in a single folder. Most commonly this is a description file (*.ovf) a manifest file (*.mf), and virtual machine state files (*.vhd or *.vmdk)

An OVA is a single file. The OVA is the OVF folder contents all zipped into a single file. The purpose of the OVA is when you want to take an OVF and share it, or give it as a download. The OVA needs to be opened into the OVF before it can be consumed.

Currently there are a host of folks working on OVF, you can learn more about the companies involved at the web site:

Most commonly folks are running into OVF with Citrix (Project Kensho and XenConvert 2); VMware (VMware Workstation 6.5, Virtual Center 3 update 3, OvfTool, etc.); Sun (Virtual Box 2.2); and IBM. The big problem to date has been that the standards have been evolving during the time that these tools have been available. For example: a VMware v3 produced OVF is distinctly different than a VMware v4 OVF package. Mainly due to the state of the standards at the time the software was written. So, currently there is little cross platform between vendors.

The other problem that is happening right now is that defining a workload in an OVF is great, however, since these are virtual machine based – the operating system within the virtual machine has to deal with the fact that the virtualization hardware underneath it has been modified. Having a virtual machine as an OVF is not the same as having a virtual machine and running it through a conversion engine that repairs the operating system within the vm.

This is all evolving and will come in time.


Anonymous said...

So how do you "unzip" an OVA into an OVF? Should my WinZip recognize OVA? Is tehre a converter program? DO I rename it as ZIP and unzipit?


BrianEh said...

An OVA is a TAR archive.

It is not compressed in any way - it isn't a zip.

you should be able to untar it on Linux using tar or on Windows using WinRAR or 7-Zip.

Be aware that there is a limitation in the current implementation of TAR that produces a corrupted TAR archive if the virtual disks of the VMs are too large (the total is over 64 Gb).

Anonymous said...

Thanks a lot. This was a SOS blog!

Ashwath said...

It helped me too. Thanks for sharing.

Anonymous said...

Thanks for the explanation.

Anonymous said...

I have been trying to figure out a way to get an OVA into VMWare Fusion. By unzipping the OVA and taking out the .vmdk, I was able to load it and everything is working now!

Unzipping the OVA is ALOT easier than using vCenter Converter or OVF Tool (not that they worked anyhow).

Thanks for the hint!

Anonymous said...

Thanks Good Explanation

Anonymous said...

Thanks for the nice post.. good clarity. It helped me

Anonymous said...

thanks. it helped me . good post !

manu11 said...

hi guys will removing unwanted .vmdk from ova file using 7zip .. will it affect the deployed vm ???

BrianEh said...

Absolutely it will.
That VMDK is part of the definition of the package.
If the VMDK is removed the XML must be fixed up appropriately.
And, if there is a manifest the package now has a different checksum and is considered invalid and in many cases blocked from import.

TheBashar99 said...

When I try to use the ovftool with an OVA it gives me "Error: Failed to open OVF descriptor". If I use the viclient it opens fine. Am I missing something? I'd like to be able to use the ovftool because it has the option to use the new seSparse disk format.

BrianEh said...

The VMware tools can only utilize VMware created OVF formats. Any other OVF format from any other manufacturer will be considered invalid.
That said, there was a bug time in their implementation as well.
And, it sounds as if they are enforcing a descriptor and your OVF does not have one.
That is all I can guess,. I am not VMware support.

Anonymous said...

how to you convert a zip to ova?

BrianEh said...

you unzip it to its folder of files structure, then you create a TAR archive.
An OVA is simply a TAR archive of an OVF. An OVF is a folder of files. One of those files being an XML file in the OVF XML format.

Anonymous said...

Could be mistaken but not sure that applies here. I just downloaded virtual box and oracle extension pack. then also a file named I am told this must be converted to .ova before I can import into virtual box. having trouble figuring that part out if that makes more sense

BrianEh said...

It does apply, except that the documentation for what you have might be incorrect.
This is a standard by the DMTF.

An OVA is a single file archive packaging format for an OVF. And a zip could be as well.

I have no idea what this "" is. But it sounds like your issue is specific to it and its documentation.

Can you rename to foo.ova and have it work? Nope. Because a Zip is not a TAR.
Could your .zip be an OVF that is simply zipped instad of TARred? Sure.

Anonymous said...

Yea I'm not sure what the zip file is yet either bc it's for school but thanks for the help