VMWARE VIRTUAL DISK FORMATS
Three types of virtual disks
are available to VMs in vSphere. You should become familiar with all of them,
including their similarities, differences, weaknesses, and strengths.
THICK VIRTUAL
DISK
The thick virtual disk is the
traditional virtual disk format that most of us have deployed with most of our
VMs. This format pre-allocates the capacity of the virtual disk from the
datastore at the time it is created. This format does not format the VMDK at
the time of deployment. This means that data that needs to be written must
pause while the blocks required to store the data are zeroed out. The operation
occurs on demand any time an area of the virtual disk that has never been
written to is required to store data.
Figure 5) A
thick VMDK as it relates to storage blocks on an array.
THIN VIRTUAL
DISK
The thin virtual disk is very
similar to the thick format, with the exception that it does not preallocate
the capacity of the virtual disk from the datastore when it is created. When
storage capacity is required, the VMDK allocates storage in chunks equal to the
size of the file system block. For VMFS, this is from 1MB through 8MB (size
selected at deployment), and for NFS it is 4KB. The process of allocating
blocks on a shared VMFS datastore is considered a metadata operation and as
such executes SCSI locks on the datastore while the allocation operation is executed.
Although this process is very brief, it does suspend the write operations of
the VMs on the datastore.
Figure 6) A
thin VMDK as it relates to storage blocks on an array.
Similar to the thick format,
thin VMDKs are not formatted at the time of deployment. Therefore, data that
needs to be written must pause while the blocks required to store the data are
zeroed out. The process of allocating blocks from within the datastore occurs
on demand any time a write operation attempts to store data in a block range
inside the VMDK that has not been written to by a previous operation.
To summarize the zeroing out
and allocation differences between a thick and thin virtual disk, just remember
that both suspend I/O when writing to new areas of disk that need to be zeroed.
However, before this can occur with a thin virtual disk, it might also have to
obtain additional capacity from the datastore.
EAGER-ZEROED
THICK VIRTUAL DISK
The eager-zeroed thick virtual
disk is similar to the thick format because it preallocates the capacity of the
virtual disk from the datastore when it is created. However, unlike the thick
and thin formats, an eager-zeroed thick virtual disk actually formats all of
its data blocks at the time of deployment. This virtual disk format does not
include or require the allocation and zeroing on-demand processes.
Figure 7) An
eager-zeroed thick VMDK as it relates to storage blocks on an array.