Purpose

This article provides steps to disable the vStorage APIs for Array Integration (VAAI) functionality in ESXi/ESX. You may want to disable VAAI if the storage array devices in the environment do not support the hardware acceleration functionality or are not responding correctly to VAAI primitives.

For information on VAAI support in a given storage array or required firmware levels, contact the storage array vendor.

Resolution

To disable VAAI in ESXi/ESX, you must modify these advanced configuration settings:

  • HardwareAcceleratedMove
  • HardwareAcceleratedInit
  • HardwareAcceleratedLocking

You can modify these settings using the vSphere Client, vSphere CLI, or a console connection to the ESXi/ESX host.


When a VMFS-5 volume is formatted on a VAAI capable device, it uses ATS locking, which is termed asATS-only. To check if a VMFS volume has been configured with VAAI ATS-only, use this command:

# vmkfstools -Ph -v1 /vmfs/volumes/VMFS-volume-name

The output appears similar to:

VMFS-5.54 file system spanning 1 partitions.
File system label (if any): ats-test-1
Mode: public ATS-only



Note: To disable VAAI ATS-only, the LUN must be offline.

Disabling VAAI using the vSphere Client

To disable VAAI using the vSphere Client:

  1. Open the VMware vSphere Client.
  2. In the Inventory pane, select the ESXi/ESX host.
  3. Click the Configuration tab.
  4. Under Software, click Advanced Settings.
  5. Click DataMover.
  6. Change the DataMover.HardwareAcceleratedMove setting to 0.
  7. Change the DataMover.HardwareAcceleratedInit setting to 0.
  8. Click VMFS3.
  9. Change the VMFS3.HardwareAcceleratedLocking setting to 0.
  10. Click OK to save your changes.
  11. Repeat this process for the all ESXi/ESX hosts connected to the storage.


Disabling VAAI using vSphere CLI or PowerCLI

To disable VAAI using the vSphere CLI:

Note: Ensure that the vSphere CLI (vCLI) is installed and is able to connect to the ESXi/ESX hosts. For more information, see the vSphere Command-Line Interface Installation and Scripting Guide.

  1. Run these vicfg-advcfg commands to change the three settings:

    vicfg-advcfg connection_options -s 0 /DataMover/HardwareAcceleratedMove
    vicfg-advcfg connection_options -s 0 /DataMover/HardwareAcceleratedInit
    vicfg-advcfg connection_options -s 0 /VMFS3/HardwareAcceleratedLocking


    Note: For more information and examples on using vCLI connection options, see the Common Options for vCLI Execution section of the vSphere Command-Line Interface Installation and Scripting Guide.

  2. Repeat this process for all the ESXi/ESX hosts connected to the storage as no reboot is required. For a production environment, ensure that you plan accordingly.


To disable VAAI using the PowerCLI:

  • Run the command:

    Set-VMHostAdvancedConfiguration -VMHost Hostname -Name OptionName -Value 0

    Where OptionName is one of:

    • DataMover.HardwareAcceleratedMove
    • DataMover.HardwareAcceleratedInit
    • VMFS3.HardwareAcceleratedLocking


    For example:

    Set-VMHostAdvancedConfiguration -VMHost (Get-VMHost ($Hosts.SelectedItem)) -Name DataMover.HardwareAcceleratedMove -Value 0

    Set-VMHostAdvancedConfiguration -VMHost (Get-VMHost ($Hosts.SelectedItem)) -Name DataMover.HardwareAcceleratedInit -Value 0

    Set-VMHostAdvancedConfiguration -VMHost (Get-VMHost ($Hosts.SelectedItem)) -Name VMFS3.HardwareAcceleratedLocking -Value 0


Disabling VAAI using an ESXi/ESX console connection

To disable VAAI using an ESXi/ESX console connection:

  1. Open a console to the ESXi/ESX host. For more information, see: 

  2. Log in as root.

  3. On ESXi 5.x hosts, run these esxcli commands to change the three settings:

    # esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedMove
    # esxcli system settings advanced set --int-value 0 --option /DataMover/HardwareAcceleratedInit
    # esxcli system settings advanced set --int-value 0 --option /VMFS3/HardwareAcceleratedLocking

    On ESXi/ESX 4.1 hosts, run these esxcfg-advcfg commands to change the three settings:

    # esxcfg-advcfg -s 0 /DataMover/HardwareAcceleratedMove
    # esxcfg-advcfg -s 0 /DataMover/HardwareAcceleratedInit
    # esxcfg-advcfg -s 0 /VMFS3/HardwareAcceleratedLocking

  4. Repeat this process for all the ESXi/ESX hosts connected to the storage.

    Note: The changes will be active after running the above commands; a reboot of the host is not required.

  5. If you must disable VAAI for a specific storage type, use the esxcli command to delete the existing hardware acceleration claim rules as documented on pages 176-177 of the vSphere 5 Storage guide.


Verifying the current configuration values

To check the current value of the configuration settings:

  • HardwareAcceleratedMove
  • HardwareAcceleratedInit
  • HardwareAcceleratedLocking

Note: Replace OptionName with one of the configuration setting names.

  • Using the vSphere CLI:

    vicfg-advcfg connection_options -get OptionName

  • Using the PowerCLI:

    Get-VMHostAdvancedConfiguration -VMHost Hostname -Name OptionName

  • Using SSH/DCUI:

    # esxcfg-advcfg --get OptionName

    or

    # esxcli system settings advanced list --option OptionName

    Example:

     

    # esxcli system settings advanced list --option=/VMFS3/HardwareAcceleratedLocking
    esxcli system settings advanced list --option=/DataMover/HardwareAcceleratedMove
    # esxcli system settings advanced list --option=/DataMover/HardwareAcceleratedInit

 

 

Additional Information

For more information, see the Turn off Hardware Acceleration section of the ESX Configuration Guide.

To revert this configuration and to enable vStorage APIs for Array Integration functionality, change each of these settings from 0 to 1.

 

To be alerted when this article is updated, click Subscribe to Document in the Actions box