Knowledge Base

The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides
 
Search the VMware Knowledge Base (KB)   View by Article ID
 

Disabling the VAAI functionality in ESXi/ESX (1033665)

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 as ATS-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


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 a 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

    For 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

Disabling the ATS Heartbeat Commands

In VMware ESXi 5.5 U2 and later versions, VMware introduced using ATS for VMFS heartbeats. Some array manufacturers have recommended disabling ATS for heartbeat operations even if they support ATS for other tasks. Depending on the exact circumstance, it may be beneficial to disable ATS for heartbeat operations only, while leaving ATS enabled for other filesystem operations. To disable ATS for heartbeat operations, run this command:
# esxcli system settings advanced set -i 0 -o /VMFS3/useATSForHBOnVMFS5
You can verify the command execution by examining the current setting:
# esxcli system settings advanced list -o /VMFS3/useATSForHBOnVMFS5
Note: If you globally disable ATS as described in this document, ATS for heartbeat operations will also be disabled even if that option is not configured.

Changing an ATS-only volume to public

To change an ATS-only volume to be accessible using SCSI, it must be unmounted and remounted to apply the change and initialize the new locking mechanism.

To change an ATS-only volume to public (SCSI+ATS):

  1. Migrate all virtual machines and templates off the datastore using Storage vMotion. There should be nothing registered to the datastore.
  2. Unmount the datastore from all ESXi hosts. For more information, see Unmounting a LUN or detaching a datastore/storage device from multiple VMware ESXi 5.x/6.0 hosts (2004605).
  3. Run this command to allow non ATS access to the volume:

    # vmkfstools --configATSOnly 0 /vmfs/volumes/VMFS-volume-name

  4. Remount the datastore to the ESXi hosts.
  5. Migrate or re-register the virtual machines back to the original datastore.
  6. Once you have completed these steps for each target datastore, and all the datastores you want to have public access are configured correctly, run the relevant esxcli system settings advanced command(s) to apply a global configuration to the ESXi host.

    Notes:
    • If you cannot migrate the virtual machines off the datastore using Storage vMotion, you can unregister the virtual machines temporarily to allow the unmount and remount. 

      Caution:
       This clears statistical data for the virtual machine in vCenter Server. Virtual machine configuration data, including solutions/plug-in configuration data (backup jobs/schedules, replication/protection mappings, etc) may also be lost if the virtual machine it relates to is removed from the vCenter Server inventory.

    • If there are VMware View linked clones residing on the datastore, they cannot be migrated using Storage vMotion. The linked clones must be decommissioned and recreated, or unregistered and re-registered. Ensure you make suitable changes in View Manager to prepare for the datastore maintenance.

Impact/Risks

Notes:
  • Enabling or disabling ATS should not impact any virtual machines running, but VMware recommends to ensure this change during a maintenance window.
  • Disabling the ATS (atomic test and set) parameter has the potential to cause data unavailability in ESXi 5.5 for volumes that were create as VMFS5 natively. Those volumes only support the use of ATS locking. Anything that is VMFS3 or upgrade from VMFS3 to VMFS5 should be fine. The other option would be to upgrade the ESXi host to version 6.x where we have added functionality to set the lock mode on native VMFS5 volumes that allows the old SCSI reservation method to function.

    Note: Modifying ATS mode has been improved in vSphere 6.0. VMware has added additional flags in the VMFS metadata to support transient conditions, so the operation can be done with running virtual machines and is not disruptive. For more information, see the VMFS Locking Mechanisms section of the vSphere Storage Guide.

  • If you are running a VMware Virtual SAN environment, it is important that Hardware Assisted Locking (ATS) is not disabled.

  • If you unregister a virtual machine from the vCenter Server inventory to allow a datastore unmount, you will lose virtual machine configuration and statistical data.

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.

For more information about locking mechanisms, see:
To be alerted when this article is updated, click Subscribe to Document in the Actions box. 

Tags

disable-vaai

See Also

This Article Replaces

2012967

Update History

08/30/2013 - Removed Note: You cannot disable or re-enable ATS-only on a VMFS-5 datastore which has been upgraded from VMFS-3. as it is incorrect. 01/13/2012 - Added ESXi 5.0 commands in the Disabling VAAI using an ESX/ESXi console connection section 07/25/2012 - Updated HardwareAcceleratedLocking PowerCLI command

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 54 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 54 Ratings
Actions
KB: