Last week I was asked by a customer which datastore would be the best location for a new virtual machine. They asked because while all of their datastores were showing plenty of free space they remembered that I had mentioned that some of them were very over provisioned. They admitted that they didn’t fully understand what over provisioned meant… after all there was free space on the datastore… so what was the problem ?
The goal of this article is to explain the possible risks that you take by over provisioning your datastores without regularly monitoring the free space. When you click on one of your physical servers and then look over to the right you will see a box that looks like the first picture. This is a little misleading because it only shows the total size of the datastore, as well as the amount of actual free space that is available.
The other piece that we need to monitor is the amount of provisioned space. Provisioned space is something that comes into play when you thin provision your virtual machines. Basically you start out using no space, and then as a virtual machine starts to use space, VMware will start to grow that virtual machine on the datastore as needed. The benefit of thin provisioning is that you can assign a VM a hard drive that is larger then you might actually need, without tying up that space and making it unavailable to other virtual machines. The downside is that if you over provision a datastore and then all of your virtual machines decide they need to grow you could run that datastore out of space. When this happens writes fail to that datastore and your virtual machines running on that datastore will lock up, or otherwise fail.
So how do you know if you are over provisioned ?
Up at the top of your vSphere client you can click “Home” and then find the “Datastores” icon. Then you simply click the datastore you want to check and look to the right. It shows you the amount of free space (space that hasn’t been used by a VM when it has grown), and also the amount of “provisioned” space. Ideally your provisioned number will be less then the total size of the datastore.
Don’t worry if your Provisioned Space number is a little bit larger then the Capacity number, your VM’s aren’t going to crash and burn as long as the Free Space number isn’t close to zero. I guess the best way to think about it is like your check book… you can write as many checks as you want… and if you add up all the checks you write out … think of that number s your “provisioned space” number. Now think of your “Free Space” number as the real balance of your check book. So if one of two checks that you wrote out clear your account… the “Free space” number will come down… but as long as it isn’t zero your ok (as long as more checks don’t clear). So this is where Storage vMotion comes in… before your Free space gets to zero.. you can Storage vMotion a VM over to another datastore… this will increase the amount of free space on the datastore you moved it from (just like depositing more money into your checking).
All in all its just a balancing act, as the whole point of thin provisioning is to be able to over provision the amount of storage you have, but just remember to monitor free space and make sure you don’t get so far over provisioned that you back yourself into a corner.