Using thin provisioned virtual disks can provide many benefits. Not only do they allow over-provisioning, but with the prevalence of flash storage, performance degradation really isn’t a concern like it used to be.
I recently ran into a situation in my home lab where my Windows jump box ran out of disk space. I had downloaded a bunch of OVA and ISO files and had forgotten to move them over to a shared drive that I use for archiving. I expanded the disk by 10GB to take it from 40GB to 50GB, and moved off all the large files. After this, I had about 26GB used and 23GB free – much better.
Because that jump box is sitting on flash storage – which is limited in my lab – I had thin provisioned this VM to conserve as much disk space as possible. Despite freeing up lots of space, the VM’s VMDK was still consuming a lot more than 26GB.
Notice below that doing a normal directory listing displays the maximum possible size of a thin disk. In this case, the disk has been expanded to 50GB:
[root@esx0:/vmfs/volumes/58f77a6f-30961726-ac7e-002655e1b06c/jump] ls -lha total 49741856 drwxr-xr-x 1 root root 3.0K Feb 12 21:50 . drwxr-xr-t 1 root root 4.1K Feb 16 16:13 .. -rw-r--r-- 1 root root 41 Jun 16 2017 jump-7a99c824.hlog -rw------- 1 root root 13 May 29 2017 jump-aux.xml -rw------- 1 root root 4.0G Nov 25 18:47 jump-c49da2be.vswp -rw------- 1 root root 3.1M Feb 12 21:50 jump-ctk.vmdk -rw------- 1 root root 50.0G Feb 16 17:55 jump-flat.vmdk -rw------- 1 root root 8.5K Feb 16 15:26 jump.nvram -rw------- 1 root root 626 Feb 12 21:50 jump.vmdk
Using the ‘du’ command – for disk usage – we can see the flat file containing the data is still consuming over 43GB of space:
[root@esx0:/vmfs/volumes/58f77a6f-30961726-ac7e-002655e1b06c/jump] du -h *flat*.vmdk 43.6G jump-flat.vmdk
That’s about 40% wasted space.