After a recent post summarizing my thoughts around on thin-on-thin provisioning there were a few comments on the Twitterverse (shout outs to @trodemaster) expressing concerns about VMDK fragmentation by using thin provisioned virtual machines (on thin provision LUNs). This is yet another topic that has been heavily discussed, but here we go again. The thing about fragmentation is that it happens no matter what when you use thin-provisioned VMDKs. Whether you configure thin-on-thin provisioning, or thin-on-thick provisioning the virtual machines are going to need space allocated when write commands are issued.
The use of thin provisioning, then, boils down to the answer to one very important question; Is the virtual machine an appropriate candidate for thin provisioning? Successful use of thin provisioning is predicated on choosing the right virtual machines/application to provision in thin format. Obviously, if the application running in a thin provisioned virtual machine is a write intensive type of application and its rapidly growing and allocating new blocks (we call that a fatty), then this is not the type of application you wan’t to deploy in a thin provision format.
Thanks to Storage vMotion we can remedy these situations by changing the format from thin to thick. Remember too, you have the ability to define the thin or thick format per disk, on multi-disk virtual machines you can chose thin for some disks, like the operating system disk, and then use thick for other disks, like the data disk. Fragmentation can and will happen when using thin provisioned VMs, but whether or not it poses a problem lies in knowing when to use it and when not to.
For future updates, be sure to follow me on Twitter at @PunchingClouds