This post is intended to look at the VCAP-DCA objective of the same title. The thing that springs to mind here is thin provisioning and other methods of provision virtual disks, which are discussed in some detail here. Thin provisioning is probably the technology that highlights the differences between physical and virtual provisioning the most.
Thin Provisioned Disks
When using thin provisioning, the virtual disk does not pre-allocate all of the disk space. Blocks in the VMDK file are not allocated and backed by physical storage until they are written to during the operation of the virtual machine. A thin virtual disk is zero bytes until you begin installing the guest OS (or other means of adding data to the disk).
This can be demonstrated by looking at the sizes of the different types of virtual disks. We’ll start by creating a new thick-provisioned virtual disk:
# vmkfstools -c 10M thick.vmdk Create: 100% done.
Listing the files we can see that two files have been created, with the ‘-flat.vmdk’ file being 10Mb is size:
# ls -alh thick*.vmdk -rw------- 1 root root 10.0M Jan 1 21:03 thick-flat.vmdk -rw------- 1 root root 460 Jan 1 21:03 thick.vmdk
Now, if we run ‘du’ we can see that the file sizes are the same as those reported above:
# du -ah 10.0M ./thick-flat.vmdk 0 ./thick.vmdk
Next, if we create another disk, also 10MB in size, but this time thin provision the disk with the following:
# vmkfstools -c 10M -d thin thin.vmdk Create: 100% done.
Again, using ‘ls’ we can see that the output is similar for both the thick and thin provisioned disks:
# ls -lah -rw------- 1 root root 10.0M Jan 1 21:03 thick-flat.vmdk -rw------- 1 root root 460 Jan 1 21:03 thick.vmdk -rw------- 1 root root 10.0M Jan 1 21:20 thin-flat.vmdk -rw------- 1 root root 485 Jan 1 21:20 thin.vmdk
However, this time when we run ‘du’ the difference between the thick and thin provisioned disks are clear:
# du -ah 10.0M ./thick-flat.vmdk 0 ./thick.vmdk 0 ./thin-flat.vmdk 0 ./thin.vmdk
We can see that the ‘thin-flat.vmdk’ is actually zero bytes rather than 10MB as nothing has been written to it as yet.