The descriptor specifies a series of one or more extents that typically refer to a file or device that holds the actual data, unless for example they are of type ZERO, which emulates a zero-filled extent. This enables creating a snapshot of a virtual machine's state. An image can also refer to a parent image and only store changes made in a copy-on-write fashion. Flat images can use the underlying file system's sparse file capability, as is done with the vmfs format on ESXi. A flat image allocates space ahead of time while a sparse images grows as the virtual machine writes to it.
The VMDK format includes multiple differing subformats, some of which store metadata in an external descriptor file, while others embed it with the main data in a single file.
Third-party software that support VMDK include:
All VMware virtualization products support VMDK this includes VMware Workstation, VMware Workstation Player, VMware Server, VMware Fusion, VMware ESX, VMware ESXi, and all software-plus-service offerings that incorporate them.