Welcome: To stay updated with all my Blog posts follow me on Twitter @arunpande !!
This blog provides steps and points to consider while using vSphere VAAI (block & file) with NetApp Storage. vSphere VAAI is used to offloaded certain tasks from the ESXi hosts to the underlying storage resulting in faster provision/deployment and improved performance of the ESXi hosts. To ensure that this configuration is setup correctly, consider the following steps:
It’s important that the setup you are using is compatible i.e. the ONTAP version and the corresponding ESXi version support the VAAI primitives that you are going to use. To understand the compatibility between ONTAP and ESXi review the NetApp KB How to determine if VAAI features are being used in a vSphere and NetApp environment? (You need to register with http://support.netapp.com in order to view the KB)
In addition to the above NetApp KB also check VMware Compatibility Guide to confirm the compatibility of the Storage Array with the version of vSphere. Here is an example of how the supported VAAI primitives are reported
Enable VAAI on ESXi host:
Once you have confirmed that the VAAI primitives are supported by the ESXi and Storage Array (ONTAP) version you have to ensure that VAAI is enabled. For block level storage (FC/iSCSI) VAAI is enabled by default on the ESXi hosts. To confirm this use the following commands on the ESXi host
# esxcfg-advcfg -g /DataMover/HardwareAcceleratedMove Value of HardwareAcceleratedMove is 1
# esxcfg-advcfg -g /DataMover/HardwareAcceleratedInit Value of HardwareAcceleratedInit is 1
# esxcfg-advcfg -g /VMFS3/HardwareAcceleratedLocking Value of HardwareAcceleratedLocking is 1
From the above command we can identify the VAAI primitives for example HardwareAcceleratedMove corresponds to FULL Copy, HardwareAcceleratedInit corresponds to Block Zero & HardwareAcceleratedLocking corresponds to ATS.
To disable VAAI primitive use the following command for all primitives
# esxcfg-advcfg –s 0 /DataMover/HardwareAcceleratedMove Value of HardwareAcceleratedMove is 0
To enable VAAI primitive use the following command for all primitives
# esxcfg-advcfg –s 1 /DataMover/HardwareAcceleratedMove Value of HardwareAcceleratedMove is 0
Alternatively you can also use GUI to enable VAAI on the ESXi host. For the ESXi host by navigating to Configuration > Advanced Setting under Software > Datamover and ensure that the values are 1
For the third primitive you have to navigate to VMFS3
NOTE: VAAI is enabled by default for ESXi hosts and if you are going to use block level storage no additional changes are required on the ESXi host.
If you want to VAAI for NetApp NFS Storage then you need to install the NFS VAAI Plugin. To download the plugin navigate to http://support.netapp.com/ and click on Downloads > Software > NetApp NFS Plug-in for VMware VAAI > Select ESXi > Go
You can now download the NetAppNasPlugIn.v20.vib or NetAppNasPlugin.v20.zip. I chose to download NetAppNasPlugin.v20.vib and used the following command to install the VIB on the ESXi host.
# esxcli software vib install –d /vmfs/datastore/nfs_datastore/ NetAppNasPlugin.v20.vib
NOTE: If you are using NetApp Virtual Storage Console (VSC) you can also push the installation of the VIB on the ESXi hosts using VSC.
Enable VAAI on NetApp Storage:
VAAI is enabled by default in Data ONTAP for block storage. For NFS you have to use the following commands to enable vStorage.
Clustered Data ONTAP
vserver nfs modify –vserver vserver_name -vstorage enabled
options nfs.vstorage.enable on
Check VAAI settings
The datastores that are VAAI capable should have Hardware Acceleration status as Supported. If this is marked as Unknown then either few or none of the VAAI primitives are supported.
You may also check the hardware acceleration status from ESXi Shell using the following commands
Get the details about the LUN using the following command
~ # esxcli storage core device list -d naa.600a09802d6474573924384a79717958
Display Name: NETAPP iSCSI Disk (naa.600a09802d6474573924384a79717958)
Has Settable Display Name: true
Device Type: Direct-Access
Multipath Plugin: NMP
Devfs Path: /vmfs/devices/disks/naa.600a09802d6474573924384a79717958
Model: LUN C-Mode
SCSI Level: 4
Is Pseudo: false
Is RDM Capable: true
Is Local: false
Is Removable: false
Is SSD: 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.0200040000600a09802d6474573924384a797179584c554e20432d
Is Local SAS Device: false
Is Boot USB Device: false
No of outstanding IOs with competing worlds: 32
To get VAAI details about a specific LUN use the following command, you can now determine the VAAI primitives that are supported. Note that all VAAI primitives might not be supported for a specific ESXi and ONTAP.
~ # esxcli storage core device vaai status get -d naa.600a09802d6474573924384a79717958
VAAI Plugin Name: VMW_VAAIP_NETAPP
ATS Status: supported
Clone Status: supported
Zero Status: supported
Delete Status: supported
I will discuss more about the statistics in the next blog.