It has been over two years since I began working with the OVF standard from the DMTF.
Repeatedly during this process I have had to educate folks about what an OVF package is, and quite frequently what an OVA is and when to use it. Just yesterday I corrected a person in a conference call as this is still a relatively new thing to most folks.
In very simple terms, an OVA is a single file. It is a TAR archive of an OVF. It simply has the file extension “.ova” to give some indication that it is an OVF. Otherwise it would be just any other “.tar”
The OVF is the real important part that the DMTF keeps defining and expanding upon.
The OVF package is basically two things.
- It is an XML file that describes the virtual environment (vCPU, vRAM, vNetwork config, and it lists references to any other parts of the OVF package).
- It is a collection of files. Virtual disks of virtual machines, .ISO installation media, any other file attachments that a person could dream up.
Use OVA when you need to take an OVF package somewhere. Or want to give it to someone as a download.
Use an OVF for all of your internal purposes.
Is OVF a promise that an appliance can be imported to and run on any hypervisor? Absolutely not.
OVF is NOT a way to convert workload from one platform to another – no reason why it could not be used that way (it makes sense) – but that is not why it exists. Eventually I see companies implement conversions around OVF packages. The closest thing I know of today is the “fixup” that is in the Citrix Kensho implementation.
There are two reasons why: The OS installed in the VM and its built in driver support and that different hypervisors present virtual hardware in different ways.
To a lesser extent there is a third reason: proprietary VM tools. The tools from vendor A can prevent a VM from running on a different hypervisor (or at least make it really difficult) or they can cause the performance of the VM to be very poor on the new hypervisor.
So, the moral of the story: Use OVA appropriately and don’t expect an OVF package build on one hypervisor to “just work” on a different hypervisor. And be wary of VM tools installed within the VM.