Continuing on the series of vSphere 5.5 Storage Enhancements, we now come to a feature that is close to many people’s hearts. The vSphere Storage API for Array Integration (VAAI) UNMAP primitive reclaims dead or stranded space on a thinly provisioned VMFS volume, something that we could not do before this primitive came into existence. However, it has a long and somewhat checkered history. Let me share the timeline with you before I get into what improvements we made in vSphere 5.5.
History of UNMAP
vSphere 5.0 introduced the VAAI UNMAP primitive is automatic mode, which mean that once a virtual machine was migrated or deleted from a thinly provisioned VSAN datastore, the dead space was automatically reclaimed by the array.
We very quickly had reports from customers that this wasn’t working as expected. I blogged about it here about 2 years ago. We basically asked customers to turn the feature off. We turned it off ourselves in vSphere 5.0 patch 2.
We then brought support for the VAAI UNMAP primitive back in vSphere 5.0U1. However the automated aspect was disabled and the reclaims now has to be run manually using a vmkfstools command. I did a blog post on how you would go through the process of a manual reclaim. To be honest, we did not do a great job in providing details on how to do the reclaim, and we needed customers to figure out stuff like free space, etc.
UNMAP in vSphere 5.5
This leads us nicely to what enhancements we made around this feature in vSphere 5.5. Basically we have introduced a much simpler command in the ESXCLI namespace:
There are a few other nice features around the new command. The reclaim size can now be specified in blocks rather than a percentage value (which is what was required for vmkfstools -y) and make the reclaim process much more intuitive. Also, dead space can now be reclaimed in increments rather than all at once.
What about automation?
We do understand the demand for having dead space reclaimed automatically. We continue to look at ways to do this without impacting a production environment by overloading the storage system with UNMAP requests. I’ll share more details when I can.