Based on your original post "iSCSI LUNs presented to Windows 2012 VMs" - making one quick assumption that you are using RDMs and presenting the LUNs directly.
If so, there is a way to keep both the storage (cDot 8.2+) and the OS (Windows 2012+) close to reporting the same used space. cDot 8.2 + supports SCSI UNMAP functionality through the "space-allocation" property of the LUN. If space-allocation is enabled, then OS's that also support SCSI UNMAP will detect it and use it when they delete data. Windows 2012 will automatically use UNMAP to inform storage that blocks can be deleted when they are not in use in a LUN.
Space-allocation can be enabled on LUN creation - it is off by default. If you have a LUN that you modify to add space-allocation, you need to take the LUN offline then back online to trigger the change, so it becomes a disruptive transition. With Windows you should also restart the server while the LUN is offline - even bouncing the LUN then rescanning disks doesn't always get Windows to figure out that UNMAP functionality is now available. Space-allocation also applies whether the volume and LUN are thin or not - space-allocation goes to space usage tracking within the LUN so it applies even for thick provisioned space reserved LUNs.
Of course this also applies to LUNs presented to physical Windows 2012 machines as well. Some Linux versions support SCSI UNMAP. Similar support is also available in both ESX 6.0 (virtual machine version 11) and Hyper-V for purely virtual disks on Windows 2012+ VMs. First the Windows guest uses SCSI UNMAP with the hypervisor, then the hypervisor coordinates with storage to release space with it's own UNMAP capability if the underlying storage is LUN based. NFS based VMDKs under ESX will just release the unused space, if thin, once ESX knows it isn't used.
If you add space-allocation support to a LUN, it's also fairly easy to get most of the "unused" space back without going through a long running expensive initial utility process (like SnapDrive space reclamation). In the available "empty" space in the LUN from the OS side, create a big file and delete it. Wait a bit and do it again a few times - cDot and Windows will gradually get closer to equivalent values.
Hope this helps you.
Bob Greenwald
Lead Storage Engineer | Consilio LLC
NCIE SAN Clustered, Data Protection
Kudos and accepted solutions are always appreciated.