VMDK (short for Virtual Machine Disk) is a file format that describes containers for virtual hard disk drives to be used in virtual machines like VMware Workstation or VirtualBox.

Virtual Machine Disk Format
Filename extension
.vmdk
Internet media typeapplication/x-vmdk-disk, application/x-virtualbox-vmdk
Developed byVMware
Latest release
5.0
December 20, 2011
Type of formatDisk image file
Websitecode.vmware.com/web/sdk/6.7/vddk

Initially developed by VMware for its proprietary[1] virtual appliance products, VMDK became an open format[2][dead link] 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.[3]

Support

edit

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:

Format

edit

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's sparse file capability, as is done with the vmfs format on ESXi. An image can also refer to a parent image and only store changes made in a copy-on-write fashion. This enables creating a snapshot of a virtual machine's state.

Extents

edit

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.[8] 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

edit

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.

See also

edit

References

edit
  1. ^ Dhamdhere, Sangeeta (2013-10-31). Cloud Computing and Virtualization Technologies in Libraries. Information Science Reference. p. 130. ISBN 9781466646322.
  2. ^ "Virtual Disk Format 5.0" (PDF). VMware. December 20, 2011.
  3. ^ "vSphere 5.5 Storage Enhancements Part 1: 62TB VMDK". CormacHogan.com. 24 September 2013. Retrieved 11 September 2017.
  4. ^ "Parallels Announces Parallels Desktop 10 for Mac". www.parallels.com. Archived from the original on 2019-04-30.
  5. ^ "Chapter 5. Virtual storage". www.virtualbox.org.
  6. ^ "Oracle and Sun Microsystems - Strategic Acquisitions - Oracle" (PDF). www.sun.com.
  7. ^ "VMDK-Handbook-Basics". sanbarrow.com.
  8. ^ "libvmdk/VMware Virtual Disk (VMDK) format specification". github.com.
edit