VMware Cloud Community
demhyts
Contributor
Contributor

VM Overreserved claim too much space?

pastedImage_0.png

Hi All,

I have a question, I have 4 node vsan (Dell EMC VxRail G Series) with total around 21TB...Recently our apps team move the VM from Hyper-V to vxrail, they export the VMDK to VxRail and it's consume big space then I reapply storage policy on each of VMs and free space increase from 700GB to 2TB but when I saw the VSAN Datastore the VM Overreserved taking too much space...Is it normal?, I know I dont have dedupe and compression because this is hybrid configuration and I dont have any OSR enable (always use 0% OSR) on my storage policy...Any workaround to reduce the VM Overreserved capacity usage on VSAN?...appreaciate any advice, thank you

0 Kudos
5 Replies
TheBobkin
Champion
Champion

Hello demhyts

"Overreserved taking too much space...Is it normal?"

VxRails apply a Thick-provisioned Storage Policy to all service VMs (VxRail manager, vCSA, PSC, vRealize LogInsight) so likely a few of the TB are these.

.vswp files are also Thick-provisioned by default.

Disk Objects can also unintentionally be Thick as a result of using workflows that don't fully understand SPBM such as migrating/cloning VMs via the C# Thick Client.

"Any workaround to reduce the VM Overreserved capacity usage on VSAN?...appreaciate any advice, thank you"

Identify what Objects Thick-provisioned and Thin them - unfortunately re-applying the same SP(Storage Policy) won't work if it is Thick but the SP states OSR=0, in this case what I usually do is clone the current SP and add a rule for 'IOPS Limit=0', apply this SP to thin the Object (*shouldn't* cause full rebuild of the Object) and then either re-apply the original SP or leave it as is.

Identifying these Objects can be done in numerous ways using RVC, objtool+cmmds-tool or scripts against the data generated by vsan-health-status.pyc:

Save the vsan-health-status.pyc output:

# python ./usr/lib/vmware/vsan/bin/vsan-health-status.pyc > /tmp/Health.txt

Show all Thick Objects:

# for i in $(python ./usr/lib/vmware/vsan/bin/vsan-health-status.pyc | grep "'proportionalCapacity': 100" | awk '{print $2}'); do grep -A1 $i /tmp/Health.txt; done

Show all Thick Objects that are not FP=1(as .vswp are by default):

# for i in $(python ./usr/lib/vmware/vsan/bin/vsan-health-status.pyc | grep "'proportionalCapacity': 100" | grep -v "'forceProvisioning': 1" | awk '{print $2}'); do grep -A1 $i /tmp/Health.txt; done

Script a colleague of mine wrote to generate this information using objtool+cmmds-tool:

# for i in `cmmds-tool find -f python | grep 'proportionalCapacity\\\": 100' -B9 | grep uuid | cut -d "\"" -f4` ; do /usr/lib/vmware/osfs/bin/objtool getAttr -u  $i | egrep '(^Object path:|^UUID:)' ; echo ; done

Setting .vswp default to Thin:

https://cormachogan.com/2016/02/22/vsan-6-2-part-5-new-sparse-vm-swap-object/

Bob

GreatWhiteTec
VMware Employee
VMware Employee

Hi Demhyts,

I wrote a blog post about this a while back. Hope this helps clear things up. FYI. In vSAN the swapthickprovision option is disabled by default. Prior to 6.7, you have the option to disable manually, per host.

https://greatwhitetec.com/2017/06/08/what-is-vm-overreserved-and-why-is-it-taking-so-much-space/

demhyts
Contributor
Contributor

Hi Bob

Thank you for your input, I will try...Cheers

0 Kudos
demhyts
Contributor
Contributor

Hi, thank you very much I will schedule the maintenance window for shutdown and power on VMs

0 Kudos
TheBobkin
Champion
Champion

Hello demhyts​,

Out of interest - did those scripts come back with a lot of Objects that are proportionalCapacity = 100 with a Thin storage Policy applied to them?

If it did then almost certainly encountering that issue as what is applied to the Objects should match the Storage Policy if they are 'compliant' with it.

Bob

0 Kudos