As you have already explained, it seems that from Netapp point of view, that space is not free. NetApp only knows when a block has been modified, it doesn't know if it was deleted by Vmware. So what Vmware see is the actual available space within the LUN. I would recommend you to take a look at the use of UNMAP primitive from ESXi to reclaim unused space in the LUN as described in http://www.netapp.com/us/media/TR-4333.pdf - 3.2 Space Reclamation.
Starting with Data ONTAP 8.2, you can use the space-allocation option to reclaim space and notify the host when a thinly provisioned LUN cannot accept writes.
Even if your NetApp LUNs are configured properly for space reclamation, be sure that you are running a supported configuration before initiating a SCSI UNMAP operation from an ESXi host. Please refer Vmware compatibility guide for this.
It is always better to enable the space-allocation option when you are provisioning the lun.
Since the datastore is empty, VMware won't issue the unmap commands again. You can enable the space-allocation on the LUN but it won't free-up on the NetApp until you run space-reclimation or put data in the datastore and delete it.
I had the same issue and we use FC LUNS, presented the same way like how you do it. I did have to run specific flags
In order for these features of VAAI Thin Provisioning to work as expected, the LUN must have space allocation enabled. This is NOT the default in any version of Data ONTAP. For Data ONTAP7-Mode, run the lun set space_alloc <lun path> enabled command.
Firstly we need to find out the Lun path for each volume do the following (ensure this is run on each controller):
e.g. Lun show command
To set it would be:
lun set space_alloc /vol/flexvolname/lun_name enable.
To check whether it is enabled type lun set space_alloc /vol/volume/lun_name
You also need to check on the ESXi host side whether it setup correctly.
. Logon to each host CLI uisng putty and type the following:
If int Value is set to 0, this needs to be enabled
esxcli system settings advanced list --option /VMFS3/EnableBlockDelete
Int Value: 0 <<<<<<<<<< 0 means Disabled Default Int Value: 1
Min Value: 0
Max Value: 1
Default String Value:
Description: Enable VMFS block delete
Type esxcli system settings advanced set --int-value 1 --option /VMFS3/EnableBlockDelete to enable.
Then type 'esxcli storage vmfs extent list' to list each datastore (across both hosts) and the associated UUID and naa number
Pick any naa for a volume which needs the task run on.
Using NetApp_Prf2_ESX_W2k3_Sas_01 with naa.60a9800038303045525d4559446d2d36 as an example
type esxcli storage core device vaai status get -d naa.60a9800038303045525d4559446d2d36
You should see delete status say 'supported'. if this say unsupported it means one of the previous steps hasn't been performed properly.
You can run another command to check a more detailed status:
4. esxcli storage core device list -d naa.60a9800038303045525d4559446d2d36
Display Name: NETAPP Fibre Channel Disk (naa.60a9800038303045525d4559446d2d36) Has Settable Display Name: true Size: 2621563 Device Type: Direct-Access Multipath Plugin: NMP Devfs Path: /vmfs/devices/disks/naa.60a9800038303045525d4559446d2d36 Vendor: NETAPP Model: LUN Revision: 820a SCSI Level: 5 Is Pseudo: false Status: on Is RDM Capable: true Is Local: false Is Removable: false Is SSD: false Is VVOL PE: false Is Offline: false Is Perennially Reserved: false Queue Full Sample Size: 0 Queue Full Threshold: 0 Thin Provisioning Status: yes Attached Filters: VAAI_FILTER VAAI Status: supported Other UIDs: vml.020037000060a9800038303045525d4559446d2d364c554e202020 Is Shared Clusterwide: true Is Local SAS Device: false Is SAS: false Is USB: false Is Boot USB Device: false Is Boot Device: false Device Max Queue Depth: 64 No of outstanding IOs with competing worlds: 32 Drive Type: unknown RAID Level: unknown Number of Physical Drives: unknown Protection Enabled: false PI Activated: false PI Type: 0 PI Protection Mask: NO PROTECTION Supported Guard Types: NO GUARD SUPPORT DIX Enabled: false DIX Guard Type: NO GUARD SUPPORT Emulated DIX/DIF Enabled: false