VMware VAAI XCOPY Primitive with VNX OE Release 32

UPDATE: The issue outlined below with code level R32 has now been fixed. This issue is addressed in VNX OE for Block 05.32.000.5.209 (Inyo MR1 SP3). This was covered in EMC Technical Advisory (ETA) 172796 and KB article 172796.

Original Post:
There is a known latency issue with the VMware XCOPY primitive when used with EMC VNX Operating Environment Release 32. The problem is detailed in EMC KB90433 please read this before proceeding with any changes.

“EMC are developing a fix for this issue for the next release of OE R32 currently scheduled for Q4 2013”

The following operations may trigger the bug:
Deploying Templates with VMware
Storage VMotions
Any ESX operation which is used to copy or migrate data within the same physical array

Until the fix is released it would be adivisable to disable the XCOPY primitive. The other VAAI Primitives are functioning correctly.

Please refer to VMware KB http://kb.vmware.com/kb/1033665 on details of how to disable the VAAI Primitives.

On ESX 5.x hosts, to determine if VAAI XCOPY is enabled, run the following command and check if Int Value is set to 1 (enabled):

# esxcli system settings advanced list -o /DataMover/HardwareAcceleratedMove

Expected output for XCOPY ENABLED:

XCOPY1

Command to change the XCOPY to DISABLED mode on an ESX 5.X host:
# esxcli system settings advanced set –int-value 0 –option /DataMover/HardwareAcceleratedMove
XCOPY0

Disabling VAAI using the vSphere Client:

1.Click the Configuration tab.

2.Under Software, click Advanced Settings.

3.Click DataMover.

4.Change the DataMover.HardwareAcceleratedMove setting to 0.

XCOPY2

VAAI USAGE:
HardwareAcceleratedLocking Atomic Test & Set (ATS), which is used during creation of files on the VMFS volume
HardwareAcceleratedMove Clone Blocks/Full Copy/XCOPY, which is used to copy data
HardwareAcceleratedInit Zero Blocks/Write Same, which is used to zero-out disk regions

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

3 thoughts on “VMware VAAI XCOPY Primitive with VNX OE Release 32

  1. This might make thing easier – 🙂

    ######################
    param(

    [Parameter(Mandatory=$true)]$vCenter,
    $VMhost =”*”
    )

    #Connect to vCenter
    Write-Verbose “Connecting to vCenter”
    $server = Connect-VIServer $vCenter -credential $(get-credential)

    #Disable XCOPY primitive
    ForEach ($VMhostname in (Get-VMHost -name $VMhost)| sort)
    {
    if((Get-VMHostAdvancedConfiguration -VMHost $VMhostname -Name DataMover.HardwareAcceleratedMove).Values -ne “0”){
    $null = Set-VMHostAdvancedConfiguration -VMHost $VMhostname -Name DataMover.HardwareAcceleratedMove -Value 0 -Confirm:$false

    }
    }

    #Disconnect from vCenter
    Disconnect-VIServer $vCenter -confirm:$false
    #############################################

  2. Hey Cliff, If only you let me know about this fix.. It’s been driving me crazy down here.. Need to get it on the arrays !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s