VMDK
VMDK is a file format that describes containers for virtual [hard disk drive]s to be used in virtual machines like VMware Workstation or VirtualBox.
Initially developed by VMware for its proprietary virtual appliance products, VMDK became an open format with revision 5.0 in 2011, and is one of the disk formats used inside the Open Virtualization Format for virtual appliances.
The maximum VMDK size is generally 2TB for most applications, but in September 2013, VMware vSphere 5.5 introduced 62TB VMDK capacity.
Support
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.Third-party software that support VMDK include:
- Parallels Desktop for Mac version 10
- QEMU
- VirtualBox
- former SUSE Studio
- former Sun xVM
- Norton Ghost
- Paragon Hard Disk Manager
- DiskInternals VMFS Recovery
Format
Extents
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 typeZERO, which emulates a zero-filled extent. Each extent can be marked either RW, RDONLY, or NOACCESS to signify that the virtual machine should have respectively read/write, read-only, or no access to that part of the disk. The number and types of extents in an image depend on its createType. An image with createType="custom" can contain an arbitrary combination of extents.Virtual disk provisioning options
Flat disk images can be provisioned in one of three ways:- thin: Blocks are not allocated or zeroed during initial provisioning. Instead, the image is created as a sparse file. Block allocation and zeroing is performed at first access.
- zeroedthick: Blocks are allocated during initial provisioning but are not zeroed until first access.
- eagerzeroedthick: Blocks are allocated and zeroed during initial provisioning.