Dead space reclamation (SCSI UNMAP)

Basically the UNMAP command is used when you have Thin Provisioned LUNs, you run it against VMFS  5 datastores, hopefully freeing up some space.

This will allow the hosts to correctly report the list of deleted blocks on the datastore to the array. It basically is a space reclamation feature that helps reclaim space left by deleted data.

The main reasons you would want to run this on all Thin Provisioned LUNs, would be because of:

Storage vMotion, VM snapshots and VM deletion. As even though the VM/Snapshot etc has been deleted it doesn’t mean the array is aware of this!

It was disabled in ESXi 5.0, due to various issues and enabled in 5.1 by using the:

vmkfstools -y “% of free space you want to use”

Basically you SSH into your host and navigate to the datastore you want to try and reclaim space on, and then run this command.

The percent of free space bit, is basically how much free space the UNMAP command will use to create a virtual ballooning file. So if you have a 1TB datastore with 500GB of free space and you use the value of 50, it will create a balloon file of 250GB. Using 50% of the free space. My understanding is its very similar to the way Memory ballooning works in VMs, it forces the free space.

So the command would look like :

vmkfstools -y 40 = it would use 40% of the free space to UNMAP.

Why wouldn’t you just run it at 100%, and use all the free space, well then what would the VMs use in that short time it was running?! VMware recommend using a figure of 60.

Further information with regards to this can be found here:

Dell Compellent UNMAP Thread

Dell Storage Center Best Practices with VMware vSphere 5.x White Paper

UNMAP Deep Dive

UNMAP Balloon file

All about the UNMAP command

In vSphere 5.1 it is recommended this be done out of hours, as there can be a surge of I/O which would have a negative impact during normal hours.

It is run differently in 5.5 as it uses esxcli storage vmfs unmap –l <datastore name>, you have to specify the datastore name as the esxcli command can be run from anywhere, while the vmkfstools command had to be run from in the datastore you wanted to run it against! It is also a faster process in 5.5.

Also the amount of reclaimed space is hard to predict, and may take some time to show as the Dell Compellent replays would need to expire.

It can be run against any SAN that uses Thin Provisioned LUNs, the only thing is that the Array must support VAAI Hardware Acceleration.

People running Dell Compellent highly recommend using it, as Compellent only does Thin Provisioning for its LUNs.

Comments are closed.

Post Navigation