If you're an administrator who works with virtualization on one platform only, you don't really have to deal with...
different virtualization file formats. Your hypervisor will support what you've created earlier, and, if the hypervisor gets upgraded to a later version, files will still work.
The situation is completely different if you need to use VMs that were created on one hypervisor platform in another hypervisor environment. Virtualization file formats from different hypervisors are highly incompatible. To achieve VM compatibility across hypervisors, it's necessary to first understand the distinctions between and then weigh the pros and cons of different virtualization file and disk formats.
Different file types and file formats
To store a VM, you must use at least two different files: a hard disk file, which is used to store all files that are used within the VM, and a file that describes the VM itself. To effectively transition a VM from one hypervisor platform to another, you must ensure that both files are adapted to the target hypervisor. This isn't as easy as it sounds, because different hypervisors support different features. Therefore, if you're an administrator who wants to ensure the highest level of VM compatibility, you should only use features available on both platforms.
Disk and specification file formats
When you're determining a VM compatibility strategy, the first question you should ask is how far you want to go. Certainly, the source disk formats should be usable on the target hypervisor platform. There are an overwhelming number of available disk format types with useful features to the hypervisor program, which makes compatibility difficult. If, for example, you wanted to use snapshots on your VM, it would help if that feature was natively supported by the VM.
Common disk formats include:
- RAW: This isn't really a disk format. Rather, it refers to a raw image that is used. It does not store metadata, which makes it a good candidate for VM compatibility. However, since it doesn't store metadata, it doesn't offer support for advanced features, such as snapshots or compression.
- Virtual Machine Disk (VMDK) file: This is the default disk format used in VMware environments. It allows for different features, including thin provisioning and thick provisioning, as well as high-end features, such as support for use in a clustered environment.
- Virtual Hard Disk (VHD): This is the default file format introduced by Microsoft. Like VMDK, it offers different features that allow for efficient storage and use in data center environments.
- Qcow2: This is the default disk format used by QEMU, an open source hypervisor. Since Linux KVM also uses QEMU, the qcow2 format is frequently used in KVM environments. It allows for efficient use of storage, allowing an administrator to allocate only the required disk space when needed, known as copy on write (CoW).
Apart from the different disk formats, there are the VM specification file formats. Some common formats include the XML files used in a KVM environment and the VMX files used to describe VMs being used in a VMware environment. For compatibility purposes, these file types are not as important as the virtual disk formats. If a virtual disk can be read, the most important goal is accomplished; the VM can be used. If the VM description file cannot be read, it's often easy enough to recreate the VM on the target platform, as it doesn't contain much more than information about the hardware that is used within the VM.
The purpose of OVF and OVA
In 2007, major virtualization vendors agreed on a format to package VMs, known as the Open Virtualization Format (OVF). The OFV aims to provide a set of common standards to ensure VM files are portable across different virtualization platforms. An OVF package includes an XML file that describes the contents of the VM, as well as the VMDK files. Even if OVF is not used as the default format by all hypervisors, it is supported by all of the major players, which ensures the portability of VMs among platforms.
The Open Virtualization Application (OVA) format adds functionality to the OVF file. It's an archive that allows for compressed storage of VMs. As is the case for OVF files, OVA files are supported by all major platforms. The benefit of using OVA files to transport VMs is that the compression algorithm used is supported by all virtualization platforms. It is worth noting that before using OVA files, they usually must be imported to the virtualization platform.
When dealing with VM compatibility, many file formats are involved. There are disk formats, VM description file formats and the OVA format, which can be used to store compressed VM files. This article has provided an overview of these file formats; in a follow-up piece I'll discuss structure and contents of OVF and OVA files in greater detail.
Choosing the right live migration settings
Creating a VMware OVF virtual appliance
Finding the perfect Hyper-V VHD format