What is VAAI

VMware vSphere Storage APIs – Array Integration (VAAI), also referred to as hardware acceleration or hardware offload APIs, are a set of APIs to enable communication between VMware vSphere ESXi hosts and storage devices. The APIs define a set of “storage primitives” that enable the ESXi host to offload certain storage operations to the array, which reduces resource overhead on the ESXi hosts and can significantly improve performance for storage-intensive operations such as storage cloning, zeroing, and so on. The goal of VAAI is to help storage vendors provide hardware assistance to speed up VMware I/O operations that are more efficiently accomplished in the storage hardware.”

What are the used Case.

“In a virtualized environment, storage operations traditionally have been expensive from a resource perspective. Functions such as cloning and snapshots can be performed more efficiently by the storage device than by the host.”  It can be used in DAAS environment where rapid cloning and snapshots are required.Also beneficial while taking the backup based on Snapshots.

How to enable and Disable

VAAI attributes can be modified by opening up the Configuration tab for our host and selecting Advanced Settings:

Note: Value used are  0= Disable & 1= Enable

Step 1.

In the Advanced Settings configuration dialog, select the DataMover option in the left hand pane and you will see the two fields in the main window that are HardwareAcceleratedMove and DataMover.HardwareAcceleratedInit .

image

Step 2.

One more setting to configure under the VMFS3 option which isVMFS3.HardwareAcceleratedLocking:

image

*NOTE*: the settings take effect immediately and do not require a reboot of the host. As soon as you close your Advanced Settings window you will see the task in your vSphere client window.

IF you want to do this on numerous hosts, and maybe even numerous clusters to manage so this can be done via Power CLI.Using below script.

Script Data is Given below.

# First let’s see the current setting to ensure it is set to 0 (disabled)
Get-Cluster YourClusterName| Get-VMHost | Get-AdvancedSetting -Name DataMover.HardwareAcceleratedMove
Get-Cluster YourClusterName| Get-VMHost | Get-AdvancedSetting -Name DataMover.HardwareAcceleratedInit
Get-Cluster YourClusterName| Get-VMHost | Get-AdvancedSetting -Name VMFS3.HardwareAcceleratedLocking
# Now we disable the three options by setting the value to 1
Get-Cluster YourClusterName| Get-VMHost | Set-VMHostAdvancedConfiguration -Name DataMover.HardwareAcceleratedMove -Value 1
Get-Cluster YourClusterName| Get-VMHost | Set-VMHostAdvancedConfiguration -Name DataMover.HardwareAcceleratedInit -Value 1
Get-Cluster YourClusterName| Get-VMHost | Set-VMHostAdvancedConfiguration -Name VMFS3.HardwareAcceleratedLocking -Value 1

# Confirm the results by querying the values which will show 1 now (enabled)
Get-Cluster YourClusterName| Get-VMHost | Get-AdvancedSetting -Name DataMover.HardwareAcceleratedMove
Get-Cluster YourClusterName| Get-VMHost | Get-AdvancedSetting -Name DataMover.HardwareAcceleratedInit
Get-Cluster YourClusterName| Get-VMHost | Get-AdvancedSetting -Name VMFS3.HardwareAcceleratedLocking

Hope you like reading this blog.

Leave a Reply