Particularly, virtual disks types are very confusing. This document is an attempt to disentangle that and make easier the design of an implementation.
- Monolithic or one-file: Single flat extent with separate descriptor file.
createType: monolithicFlat
- Split or multiple files: 2gb preallocated extents or smaller, to account for file system limits.
createType: 2GbMaxExtentFlat
- VMFS (managed):
- Zeroed: Thick (flat) disk on VMFS, with blocks zeroed on first use.
createType: vmfsPreallocated
- Eager zeroed: Pre‐allocated (flat) disk on VMFS, with all blocks zeroed when created.
createType: vmfsEagerZeroedThick
- Zeroed: Thick (flat) disk on VMFS, with blocks zeroed on first use.
- Monolithic or one-file: Single sparse extent with embedded descriptor file.
createType: monolithicSparse
- Stream-optimized: Compressed sparse extents with embedded LBA, useful for OVF streaming.
createType: streamOptimized
- Stream-optimized: Compressed sparse extents with embedded LBA, useful for OVF streaming.
- Split or multiple files: Sparse extents 2GB or smaller to account for file system limits.
createType: 2GbMaxExtentSparse
- VMFS (managed):
- Thin: Thin‐provisioned VMFS disks that consume only as much space as needed.
createType: vmfsThin
- Sparse: Sparse disk on VMFS, often a redo log, not to be confused with thin‐provisioned disk.
createType: vmfsSparse
- Thin: Thin‐provisioned VMFS disks that consume only as much space as needed.
- Virtual raw device map (RDM): Virtual compatibility raw device map (RDM) acts like a symbolic link to physical disk.
createType: vmfsRDM
- Physical raw device map (RDMP): Physical compabibility RDM, similar but sends SCSI commands to underlying hardware.
createType: vmfsRDMP
- Special raw disk: Special raw disk for ESXi hosts, passthrough only mode.
createType: vmfsRaw
Disk that takes the properties of, and is backed by, physical disk on the host. createType: fullDevice
Disk backed by some partitions of physical disk, with other partitions hidden. createType: partitionedDevice
Descriptor file with arbitrary extents. createType: custom