VIXDISKLIB_NASPLUGIN_PRIM_GET_UNMAP_GRANULARITYVIXDISKLIB_NASPLUGIN_PRIM_UNMAP The function of this primitive is to send a coalesced list of Unmap requests from the Guest OS to the VAAI-NAS plugin
VMware vSphere ESXi 9.0
There are a few advance configuration options introduced to fine-tune the NFSv3 Unmap behavior. The following sections explains the purpose of the several tuning options,
Disclaimer: The values used in the commands are examples and not to be interpreted as recommendations.
This option is added to enable/disable NFS Unmap support. By default NFS Unmap support is disabled. To enable the support, the below advance configuration option needs to be set on all the ESXi hosts that requires Unmap:
# get the current status of the NFS Unmap feature[root@esxi-host:~] esxcfg-advcfg -g /NFS/UnmapEnabledValue of UnmapEnabled is 0
# enable the NFS Unmap feature[root@esxi-host:~] esxcfg-advcfg -s 1 /NFS/UnmapEnabledValue of UnmapEnabled is 1
# the values are in milli-seconds, max is 100ms, min is 2ms[root@esxi-host:~] esxcfg-advcfg -g /NFS/UnmapBatchWindowTimeoutMsValue of UnmapBatchWindowTimeoutMs is 5
[root@esxi-host:~] esxcfg-advcfg -s 10 /NFS/UnmapBatchWindowTimeoutMsValue of UnmapBatchWindowTimeoutMs is 10
[root@esxi-host:~] esxcfg-advcfg -g /NFS/UnmapMaxQueueDepthValue of UnmapMaxQueueDepth is 32 [root@esxi-host:~] esxcfg-advcfg -s 16 /NFS/UnmapMaxQueueDepthValue of UnmapMaxQueueDepth is 16
# maximum number of threads is 128[root@esxi-host:~] esxcfg-advcfg -g /NFS/UnmapMaxThreadsValue of UnmapMaxThreads is 16 [root@esxi-host:~] esxcfg-advcfg -s 32 /NFS/UnmapMaxThreadsValue of UnmapMaxThreads is 32
[root@esxi-host:~] vsish -e get /vmkModules/nfsclient/mnt/<nfsv3-volume-label>/vaaistatsVaai statistics { fullCloneSuccess:0 fullCloneFailure:0 ... extStatsFailure:0 unmapSuccess:0 unmapFailure:0 unmapCancelSuccess:0 unmapResetSuccess:0 unmapGranularitySuccess:0 unmapGranularityFailure:0 unmapGranularityCancelSuccess:0 unmapGranularityCancelFailure:0 fullCloneSuccessTime:0 ... extStatsFailureTime:0 unmapSuccessTime:0 unmapFailureTime:0 unmapGranularitySuccessTime:0 unmapGranularityFailureTime:0 unmapLatencyHist:The time (us) spent for an unmap request to complete from VAAI-NAS infrastructure { min:0 max:0 mean:0 count:0 Histogram Bucket Array: { 0 (<= 63) 0 (<= 127) 0 (<= 255) 0 (<= 511) 0 (<= 1023) 0 (<= 2047) 0 (<= 4095) 0 (<= 8191) 0 (<= 16383) 0 (<= 32767) 0 (<= 65535) 0 (<= 131071) 0 (<= 262143) 0 (<= 524287) 0 (> 524287) } } unmapBatchingHist:The number of unmap requests batched into a single call to VAAI-NAS infrastrucutre { min:0 max:0 mean:0 count:0 Histogram Bucket Array: { 0 (<= 1) 0 (<= 3) 0 (<= 7) 0 (<= 15) 0 (<= 31) 0 (> 31) } }}
| Statistics Field | Description |
| unmapSuccess | Total number of successful Unmap calls |
| unmapFailure | Total number of failed Unmap calls |
| unmapGranularitySuccess | Total number of successful Granularity IOCTL calls |
| unmapGranularityFailure | Total number of failed granularity IOCTL calls |
| unmapSuccessTime | Cumulative time taken to execute successful Unmap calls |
| unmapFailureTime | Cumulative time taken to execute failed Unmap calls |
| unmapGranularitySuccessTime | Cumulative time taken to execute successful Unmap granularity calls |
| unmapGranularityFailureTime | Cumulative time taken to execute failed Unmap granularity calls |
| unmapLatencyHist | Histogram that captures the different range of latencies observed |
| unmapBatchingHist | Histogram that captures the efficiency of batching algorithm |
| unmapCancelSuccess | Number of Unmap requests cancelled successfully (cancels are issued by Guest OS) |
| unmapCancelSuccess | umber of Unmap resets processed successfully (resets are issued by Guest OS) |
/var/log/vmkernel.log for Unmap platform related logs/var/log/syslog.log for Unmap VAAI-NAS infrastructure and 3rd party VAAI-NAS plugin related logsFor partners who are developing VAAI-NAS plugin, Unmap and other VAAI-NAS primitives' related information could be found in NAS VAAI Development Kit Guide