Lets start to have a small explanation what is VAAI(vStorage API for Array Integration ) and what are the benefits using it.
VAAI is an API framework in VMware that enable some Storage tasks. It first presented in ESXi 4.1, but only after 5.x supports hardware acceleration with NAS storage devices.
Allows certain I/O operations to be offloaded from the ESXi to the physical array. With VAAI we release the workload on the virtual server hardware. Enables certain storage tasks, such as thin provisioning, to be offloaded from the VMware server virtualization hardware to the storage array.
You can read more about VAAI in VMware HERE
Our first tasks will be in the NetApp so that we can prepare the system to use VAAI in VMware.
Install NetApp VAAI plugin VIB in NetApp
Login to you your NetApp console:
First check if nfs.vstorage in enabled. If not, enable
# options nfs.vstorage.enable
# vfiler run vfiler_name options nfs.vstorage.enable
In our case(7-Mode CLI) was disable/off, so we will enable.
In 7-Mode CLI
# options nfs.vstorage.enable on
In Clustered Data ONTAP CLI
# vserver nfs modify –vserver vserver_name -vstorage enabled
Note: vserver_name is the name of your SVM
Active also for vfiler 7-Mode CLI in the vFiler
# vfiler run vfile_name options nfs.vstorage.enable on
Note: vfile_name is the name of your vfiler. In our case is vfiler0
If you are using NetApp clustered Data ONTAP you need to modify export policy rules for ESXi servers that use VAAI.
Enter the following command to set nfs as the access protocol for each export policy rule for ESXi servers that use VAAI:
# vserver export-policy rule modify -vserver vs1 -policyname mypolicy -ruleindex 1 -protocol nfs
In the above example:
- vs1 is the name of the SVM.
- mypolicy is the name of the export policy.
- 1 is the index number of the rule.
- nfs includes the NFSv3 and NFSv4 protocols.
After we have finish our work in the NetApp side, we should start the VMware tasks. But first let download the VAAI files from NetApp support site.
Note: You need to have a support account to download the files from NetApp support site HERE.
In the next image we see the option to download for both ESXi versions(we will use for 5.5)
In our case files are:
- ESXi 6.0
NetAppNasPlugin.v22.zip – offline bundle
NetAppNasPlugin.v22.vib – online bundle
- ESXi 5.x
NetAppNasPlugin.v21.zip – offline bundle
NetAppNasPlugin.v21.vib – online bundle
Now we that we have our files lets start the tasks in the VMware side.
First lets check if the VAAI is enabled on each ESXi host
Connect to your ESXi shell console
# esxcfg-advcfg -g /DataMover/HardwareAcceleratedMove
# esxcfg-advcfg -g /DataMover/HardwareAcceleratedInit
If VAAI is enabled then we should get 1 for each one(ESXi 5.0 and later, VAAI is enabled by default).
If we get 0 then VAAI is disable(not in case above). Lets enable.
# esxcfg-advcfg -s 1 /DataMover/HardwareAcceleratedInit
# esxcfg-advcfg -s 1 /DataMover/HardwareAcceleratedMove
We can also enable and check ha in vSphere Client.
- Using the vSphere client, log in to the vCenter server.
- For each ESXi server, click the server name.
- In the Software section of the Configuration tab, click Advanced Settings.
- Select DataMover, and ensure that the DataMover.HardwareAcceleratedMove and DataMover.HardwareAcceleratedInit parameters are set to 1.
Also check if VMFS3.HardwareAcceleratedLocking is enable.
After we have set Hardware Accelerated we can now install the VAAI plug-in.
Install NetApp VAAI plugin VIB in ESXi
Copy the files that we download from NetApp support to the ESXi host(we can use a tool like WinSCP to do this)
Since I have done this tests with my ESXi 5.5 lab I have downloaded the offline bundle NetAppNasPlugin.v21.zip.
In the ESXi shell console:
- Let check our offline bundle
# esxcli software sources vib list -d /VIB/NetAppNasPlugin.v21.zip
After we check that we have the file and is ok, then we will intall.
- Install the offline bundle
# esxcli software vib install -n NetAppNasPlugin -d /VIB/NetAppNasPlugin.v21.zip
In the next image we see that VAAI is installed:
If you want to install a online bundle(vib file) then you need to run the following command
Install the online bundle
# esxcli software vib install -v /VIB/NetAppNasPlugin.v21.vib
Note: Always use full path(for online and offline bundle) or the install will not work.
After VAAI is installed we need to reboot ESXi host.
After reboot Check if NetApp plugin is enabled in ESXi
# esxcli software vib list | more
You could see in the next image the NetApp VAAI Plug-in installed and enable(first line)
After we know that everything is enable now our Volumes/Datastore should be Hardware Accelerated supported.
After checking that our NetApp VAAI is installed lets mount a volume to use the VAAI(we will do it manually, but we can also do it in the vSphere Client or Web Client).
In case that you want to add new volumes and also check the volumes in the Shell Console.
# esxcfg-nas -a NFS-Simulator-01 -o 22.214.171.124 -s /vol/LUN_NetappTest001_vol
Lets check if the volume if supported and enabled with VAAI from NetApp
# vmkfstools -Ph /vmfs/volumes/NFS-Simulator-01
As we can see in the next image, NAS VAAI Supported is YES.
We can use vmkfstools -Ph to check all our Volumes if they are VAAI Supported.
After you finish
For testing purposes:
Use the NFS plug-in space reservation and copy offload features to make routine tasks more efficient:
- Create virtual machines in the thick virtual machine disk (VMDK) format on NetApp traditional or FlexVol volumes and reserve space for the file at the time you create it.
- Clone existing virtual machines within or across NetApp volumes:
1. Datastores that are volumes on the same SVM on the same node.
2. Datastores that are volumes on the same SVM on different nodes.
3. Datastores that are volumes on the same 7-Mode system or vFiler unit.
- Perform cloning operations that finish faster than non-VAAI clone operations because they do not need to go through the ESXi host.
Hope this article will help you install and enable VAAI in your VMware environment.
Note: Share this article, if you think is worth sharing.