![]() | |
Filename extension | .vmdk |
---|---|
Internet media type | application/x-vmdk-disk, application/x-virtualbox-vmdk |
Developed by | VMware |
Latest release | 5.0 December 20, 2011 |
Type of format | Disk image file |
Website | code |
VMDK (short forVirtual Machine Disk) is afile format that describes containers forvirtual hard disk drives to be used invirtual machines likeVMware Workstation orVirtualBox.
Initially developed byVMware for itsproprietary[1]virtual appliance products, VMDK became anopen format[2] with revision 5.0 in 2011, and is one of the disk formats used inside theOpen 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.[3]
AllVMware virtualization products support VMDK; this includesVMware 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:
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.[7] A flat image allocates space ahead of time while a sparse image grows as the virtual machine writes to it. Flat images can use the underlying file system'ssparse file capability, as is done with thevmfs format on ESXi. An image can also refer to a parent image and only store changes made in acopy-on-write fashion. This enables creating a snapshot of a virtual machine's state.
The descriptor specifies a series of one or moreextents 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.[8] Each extent can be marked eitherRW
,RDONLY
, orNOACCESS
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 itscreateType
. An image withcreateType="custom"
can contain an arbitrary combination of extents.
Flat disk images can be provisioned in one of three ways: