Is there a command to list the block what we can free using some command?
the command below will reclaim blocks, but is there a way to find out how is available for reclaim, so we can plan accordingly.
esxcli storage vmfs unmap --volume
2. Is there a way to avoid releasing eagerzerod blocks? Oracle RAC requires disk to be eagerzeroed, will this command release the eagerzeroed block? if so is there a way to bypass certain disks in the datastore?
We are looking at using this command. vmkfstools -y <% to be reclaimed>. One of the resources we are using is this http://goo.gl/JstLkn KB article. I can't tell from your post but we are trying to recover space on our SAN versus on any of our drives. I do not believe you need to worry about reclaiming eagerzerod blocks from the actual vmdk itself.
If I understand what is happening, the volumes created on our compellent system are thin provisioned. As we use the datastores within vsphere, Snapshots, vmotion and such, the space on the volume is being used. This command only reclaims the space difference between what is free on the datastore and what is free on the volume. Far as I know, this is the only way to see what might be reclaimed. There are a couple of caveats. You can only do up to 2TB of reclaimed space. This is due to the fact that it creates a hidden file that is equal to the size of the reclaimed space and you can't create a file larger than 2TB. The other caveat is that you cannot do 100% of the reclaimable space. This is due to there being some overhead on the san. You can do 99% but not 100%.
Here is another resource provided by our vmware vendor, Veristor. http://goo.gl/jc1dI Most of the information above came from that article. I'm sure there is more out there about it.