VMDK File Naming

VMDK Virtual Disk Files explains the different types of virtual disk. The first column corresponds to Virtual Disk Types but without the VIXDISKLIB_DISK prefix. The third column gives the possible names of VMDK files as implemented on Workstation and ESXi hosts.

Note: When you open a VMDK file with the virtual disk library, always open the one that points to the others, not the split or flat sectors. The file to open is most likely the one with the shortest name.

For information about other virtual machine files, see section “Files that Make Up a Virtual Machine” in the VMware Workstation User’s Manual. On ESXi hosts, VMDK files are type VMFS_FLAT or VMFS_THIN.

Table 1. VMDK Virtual Disk Files
Disk Type in API Virtual Disk Creation on VMware Host Filename on Host
MONOLITHIC_SPARSE In Select A Disk Type, accepting the defaults by not checking any box produces one VMDK file that can grow larger if more space is needed. The <vmname> represents the name of a virtual machine.

On VMFS partitions, this is name of the disk descriptor file.

<vmname>.vmdk
MONOLITHIC_FLAT 
or VMFS_FLAT
or VMFS_THIN If you select only the Allocate all disk space now check box, space is pre-allocated, so the virtual disk cannot grow. The first VMDK file is small and points to a much larger one, whose filename says flat without a sequence number.

Similarly on VMFS partitions, this is the virtual disk file that points to virtual disk data files, either thick or thin provisioned.

<vnname>-flat.vmdk
SPLIT_SPARSE If you select only the Split disk into 2GB files check box, virtual disk can grow when more space is needed. The first VMDK file is small and points to a sequence of other VMDK files, all of which have an s before a sequence number, meaning sparse. The number of VMDK files depends on the disk size requested. As data grows, more VMDK files are added in sequence. <vmname>-s<###>.vmdk
SPLIT_FLAT If you select the Allocate all disk space now and Split disk into 2GB files check boxes, space is pre-allocated, so the virtual disk cannot grow. The first VMDK file is small and points to a sequence of other files, all of which have an f before the sequence number, meaning flat. The number of files depends on the requested size. <vnname>-f<###>.vmdk
MONOLITHIC_SPARSE or SPLIT_SPARSE snapshot A redo log (or child disk or delta link) is created when a snapshot is taken of a virtual machine, or with the virtual disk library. Snapshot file numbers are in sequence, without an s or f prefix. The numbered VMDK file stores changes made to the virtual disk <diskname> since the original parent disk, or previously numbered redo log (in other words the previous snapshot). <diskname>-<###>.vmdk
SE_SPARSE Space-efficient sparse (seSparse) format. In vSphere 5.1 and later, used by VMware View to optimize linked clone templates. In the vSphere API, see data object SeSparseVirtualDiskSpec. Use of seSparse as a base disk is neither documented nor supported.
n/a Snapshot of a virtual machine, which includes pointers to all its .vmdk virtual disk files. <vnname>Snapshot.vmsn

For lazy zeroed thick disk, all blocks are allocated, and data written to used blocks, however unused blocks are left as-is, so they may contain data from previous use. Many storage systems will zero-out unused blocks in the background. With eager zeroed thick disk, unused blocks are zeroed-out at allocation time.