If a thin provisioned VMDK is taking up more space on the datastore than expected, you can reclaim space to free up local space in the datastore.



Step-by-step guide

  1. Back up the VM.

    Make a Backup!

    Since we are modifying the VMDK files, make a good backup of the entire VM folder in case something happens.

  2. Download SDelete from SysInternals (Microsoft) on the VM.
    1. https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete
  3. Zero the free space on the affected drive.

    sdelete.exe -z C:

    If the VM has more than one drive letter, substitute the appropriate drive letter, or run the command against each one individually.

  4. Power off the VM.
  5. SSH into the ESXi host.

    SSH is usually disabled on ESXi hosts. Enable it for this procedure, then turn it back off again for security reasons.

  6. CD into the VM folder.
    cd /vmfs/volumes/DATASTORE_NAME/VM_NAME
  7. Run the cleanup command.

    vmkfstools -K disk_name.vmdk

    The file used here is descriptor file .vmdk file not the data file -flat.vmdk

  8. Verify disk size has decreased.
  9. Power on the VM and return to normal operation.