I usually fiddle around with SysInternals SDelete, but VMware’s newest fling, ‘Guest Reclaim’, might be a worthy replacement. Instead of zeroing the blocks like SDelete does, Guest Reclaim actually brings SCSI UNMAP support to Windows-based virtual machines. This removes the need for a Storage vMotion (after SDeleting a thin provisioned disk inside a VM) to actually free up the unmapped blocks all the way to the SAN LUN. You still need to execute a VMFS-based reclaim of those blocks on VMFS-level (http://kb.vmware.com/kb/2014849), but running Guest Reclaim periodically in a couple of VMs that accumulate the most dead space and manually running vmkfstools afterwards really speeds up the process.

Dead space from the virtual disk is released to the underlying VMFS data store. VMFS can then repurpose space for other virtual disk. Future releases of ESX will have tools that can further release this dead space to the backend array.

Too bad this tool doesn’t seem to be supported on Microsoft Windows Server 2008 R2. Although the PDF explicitly mentions Windows 8 *not* being supported; there’s no mention of Server 2008 R2. I suspect it’ll work fine, since Windows 7 is supported.
One odd mention for defragmentation; it’s pretty common these days not to (automatically) defragment VMs. The read-me included with this tool explicitly  suggests running defrag in some scenarios. I urge to be very cautious with this suggestion.

Summary

Guest Reclaim reclaims dead space from NTFS volumes hosted on a thin provisioned SCSI disk. The tool can also reclaim space from full disks and partitions, thereby wiping off the file systems on it. As the tool deals with active data, please take all precautionary measures understanding the SCSI UNMAP framework and backing up important data.

Features

  • Reclaim space from Simple FAT/NTFS volumes
  • Works on Windows XP to Windows 7
  • Can reclaim space from flat partitions and flat disks
  • Can work in virtual as well as physical machines

Whats a Thin provisioned (TP) SCSI disks?

In a thin provisioned LUN/Disk, physical storage space is allocated on demand. That is, the storage system allocates space as and when a client (example a file system/database) writes data to the storage medium. One primary goal of thin provisioning is to allow for storage overcommit. A thin provisioned disk can be a virtual disk, or a physical LUN/disk exposed from a storage array that supports TP. Virtual disks created as thin disks are exposed as TP disks, starting with virtual Hardware Version 9. For more information on this please refer http://en.wikipedia.org/wiki/Thin_provisioning.

What is Dead Space Reclamation?

Deleting files frees up space on the file system volume. This freed space sticks with the LUN/Disk, until it is released and reclaimed by the underlying storage layer. Free space reclamation allows the lower level storage layer (for example a storage array, or any hypervisor) to repurpose the freed space from one client for some other storage allocation request. For example:

  • A storage array that supports thin provisioning can repurpose the reclaimed space to satisfy allocation requests for some other thin provisioned LUN within the same array.
  • A hypervisor file system can repurpose the reclaimed space from one virtual disk for satisfying allocation needs of some other virtual disk within the same data store.

GuestReclaim allows transparent reclamation of dead space from NTFS volumes. For more information and detailed instructions, view the Guest Reclaim ReadMe (pdf)

System Requirements

Thin provisioned (TP) SCSI disk

Space can be reclaimed on SCSI disks that advertise themselves as thin provisioned (TP) devices.

GuestReclaim queries the device for its TP status using standard SCSI primitives like reading the vital product data page (B0 vpd). GuestReclaim will issue SCSI Unmap commands to the underlying storage for reclaiming dead space.

Supported Operating Systems

  • Desktop: XP onwards up to Windows 7
  • Server: Until Windows 2008

Administrative Privileges

The tool needs to be executed with Administrator privileges.

Supported Filesystem NTFS only.

Instructions

The tool is provided as a standalone binary executable. Unzip the package, and it will contain a program. The tool needs to be executed with Administrator privileges.

Run GuestReclaim.exe from the command prompt. Use the --list option to list available thin provisioned disks on the system. If none show up, it means that the first 16 drives are not thin provisioned. Export an environment variableRECLAIM_DEBUG to see verbose output of the TP querying results.

For detailed instructions, you’ll get the pdf in the download, but you can also view them here in the pdf.