VMware vSphere Storage APIs – Array Integration (VAAI), referred as Hardware Accelator or hardware offload APIs. It offload from ESXi to Storage Devices. API enable ESXi host to offload task related to Storage operations to Array. It improve performance for storage-intensive operations such as storage cloning, Storage vMotion, zeroing, and so on.
For example;
If VAAI is Disabled :-
If you are performing storage vmotion of a VM from one datastore to another, it will copy through kernel (Virtual Machine >>> Datastore01>>> ESXi01>>>>Copy to >>>ESXi02>>>>Datastore02)
If VAAI is Enabled :-
if you are performing storage vmotion of a VM from one datastore to another, copying will directly between Datastore01 to Datastore02, this is something Offloading the task from ESXi which improve performance.
Enabling or Disabling VAAI can be perform via vSphere Client, Web Client, or PowerCLI. Refer to below screenshot to perform this through vSphere Client.
Login to vSphere Client and access vCenter Server.
Click on ESXi Host.
Click on Configuration >> Advance Setting as shown below.
Once Advance Setting Windows will popup, it will show many parameters. Click on VMFS3
Change the value of VMFS3.HardwareAcceleratedLocking to 0 or 1.
++ {Value 0 is for Disabling the VAAI}
++ {Value 1 is for Enabling the VAAI}
Click on DataMover
Change Value of DataMover.HardwareAcceleratedInit to 0 or 1
Change Value of DataMover.HardwareAcceleratedMove to 0 or 1
++ {Value 0 is for Disabling the VAAI}
++ {Value 1 is for Enabling the VAAI}
You can also use below VMware PowerCLI commands to configure VAAI in multiple ESXi Hosts in Cluster. Connect Virtual Center Server by using below command in PowreCLI, and run commands given below as per requirement.
Connect-VIServer vCenterName
Get-Cluster ClusterName | Get-VMHost | Get-AdvancedSetting -Name DataMover.HardwareAcceleratedMove
Get-Cluster ClusterName | Get-VMHost | Get-AdvancedSetting -Name DataMover.HardwareAcceleratedInit
Get-Cluster ClusterName | Get-VMHost | Get-AdvancedSetting -Name VMFS3.HardwareAcceleratedLocking
Get-Cluster ClusterName | Get-VMHost | Set-VMHostAdvancedConfiguration -Name DataMover.HardwareAcceleratedMove -Value 0
Get-Cluster ClusterName | Get-VMHost | Set-VMHostAdvancedConfiguration -Name DataMover.HardwareAcceleratedInit -Value 0
Get-Cluster ClusterName | Get-VMHost | Set-VMHostAdvancedConfiguration -Name VMFS3.HardwareAcceleratedLocking -Value 0
Get-Cluster ClusterName | Get-VMHost | Set-VMHostAdvancedConfiguration -Name DataMover.HardwareAcceleratedMove -Value 1
Get-Cluster ClusterName | Get-VMHost | Set-VMHostAdvancedConfiguration -Name DataMover.HardwareAcceleratedInit -Value 1
Get-Cluster ClusterName | Get-VMHost | Set-VMHostAdvancedConfiguration -Name VMFS3.HardwareAcceleratedLocking -Value 1
PowerCLI Script to Check VAAI Status of all ESXi Hosts in a Virtual Center. Click Here.