DutyCalls
Contributor
Contributor

vvol testing - provisioned space almost double total capacity, without any VMs in it

Hello, we're testing out vvols in 6.7 with the idea of eventually replacing our RDM-based windows failover cluster with vvol-based WFCS. My first time dealing with vvols, and I've had about a year of experience working with vsphere making and using vms. Not much with the storage aspect of vmware.

We use a Dell Compellant sc4020 array. As a test, I made a small, 20GB vvol storage container on the array. So far so good. I made a 5GB thin-prov volume on that array, assigned it to a test vm, once again, no problem.

Then I deleted that 5GB volume. Created a new 10GB one. Shared that 10GB volume with two future file server VMs. Have not brought the shared disk 'online' in windows yet. So the volume in vmware shows the "testFileServer\testfileserver.vmdk" file within the storage container volume as being 0KB.

Yet, under the storage container's capacity properties, total capacity reads "20 GB" as it should, but "provisioned space" reads "34 GB" and "free space" reads "6 GB"

where are these numbers coming from? Why would an essentially brand-new storage container that only has had 2 volumes put into it, one of them deleted, be saying that my provisioned space is already up to 34GB?

I did notice that the 10GB volume's settings say that it can have a "maximum size" of 16GB, which would at least explain some of where the space has gone.

0 Kudos
1 Reply
DutyCalls
Contributor
Contributor

Thankfully my company has an expensive VMware service contract. After a month of back and forth with VMware and Dell's SAN support, my VMware tech was able to find the following information for me, quoted verbatim from his email.

I came by a PR#2532210 with VMware engineering and storage vendor checking the API calls between the storage array and vSphere as well as talking about the same situation we have here and how the provisioned space is being calculated on VVOL.

Provisioned space is a VC DataProperty and is calculated as:

provisionedSpace = Capacity - FreeSpace + unCommited

The above unCommited space of a Datastore is a sum of all uncommitted spaces all the vms vm::summary::storagesummary::uncommitted

You have a lazy allocated disk with descriptor TestVM1.vmx that claims capacity 10737418240 but is totally unallocated at 0, correct.

Given second paragraph in API the definition quoted below:
- committed contribution is equal to its disklib allocated size, which is 0
- uncommitted contribution is equal to its capacity size - committed contribution, e.g. 10737418240 - 0 yields 10737418240

The dell tech I was working with agreed this is a rather obtuse way of calculating provisioned space, especially since in the command line for the ESXi host itself, it shows up as you'd expect. But, there it is: provisionedSpace = Capacity - FreeSpace + unCommited

0 Kudos