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.