VMware Cloud Community
mysticknight
Enthusiast
Enthusiast
Jump to solution

VAAI xcopy not working on ESX6.0, used to work with ESX 5.5

We are seeing that VMwareVAAI  XCOPY is not working with ESX 6.0. This used to work fine with ESX 5.5. The storage has not been updated, only the ESX server was updated to 6.0 and XCOPY stopped working. The same operation which works with a ESX 5.5 cluster on the  storage node, does not work with a ESX 6.0 cluster on the same storage node. So it does not seem to be a array vendor issue as it clearly works in ESX 5.5 version and not the newer ESX 6.0 version.

Anyone have a clue as to why this could be..

I have made sure of the following


The source and destination volumes were the same blocksize as I was cloning within the same VMFS volume

  1. The source file was not an RDM
  2. The disk was a flat disk format
  3. The VMFS datastore was created using the vSphere Web client
Reply
0 Kudos
1 Solution

Accepted Solutions
mysticknight
Enthusiast
Enthusiast
Jump to solution

The issue was related to a small error in the code and how the T10 spec got implemented.

ESX fires the RECEIVE_COPY_RESULTS CDB with SVC_ACTION_OPERATING_PARAMETERS as input. The response to this CDB required that we pass the type of descriptors which were supported.. which is mainly a block segment descriptor B2B (0x02) and ID target descriptor (0xe4).  The response is supposed to be filled in ascending order of descriptor values. We had inverted this, so it was not finding a block descriptor as 0xe4 was greater than 0x02 so it was not proceeding beyond the first entry and reverting to normal copy.

In ESX 5.5 even though this error was there on our side, it used to scan through all the provided output looks like so we never noticed it.. In ESX 6.0 they went as per spec so it showed the error in our code.

View solution in original post

Reply
0 Kudos
2 Replies
MartinE11
Enthusiast
Enthusiast
Jump to solution

Do you have a Snapshot on this machine? XCOPY would not work then.

Otherwise:

Go to "Host and Clusters" View, select a Host which have this datastore mapped. Go to "Configuration" -> "Storage". Look for the column "Hardware Acceleration". Whats the state of it? (Supported, Unknown ..)

Also may try this commands on one of the ESXi Hosts (Don't know if they may have changed in vSphere 6)

esxcli system settings advanced list -o /DataMover/HardwareAcceleratedMove

esxcli system settings advanced list -o /DataMover/HardwareAcceleratedInit

esxcli system settings advanced list -o /VMFS3/HardwareAcceleratedLocking

You will be showed some infos. The "Int Value" should be 1 if VAAI is enabled.

mysticknight
Enthusiast
Enthusiast
Jump to solution

The issue was related to a small error in the code and how the T10 spec got implemented.

ESX fires the RECEIVE_COPY_RESULTS CDB with SVC_ACTION_OPERATING_PARAMETERS as input. The response to this CDB required that we pass the type of descriptors which were supported.. which is mainly a block segment descriptor B2B (0x02) and ID target descriptor (0xe4).  The response is supposed to be filled in ascending order of descriptor values. We had inverted this, so it was not finding a block descriptor as 0xe4 was greater than 0x02 so it was not proceeding beyond the first entry and reverting to normal copy.

In ESX 5.5 even though this error was there on our side, it used to scan through all the provided output looks like so we never noticed it.. In ESX 6.0 they went as per spec so it showed the error in our code.

Reply
0 Kudos