I was trying to set up VMware with SCST iSCSI target running on Ubuntu Linux but I couldn't get EXTENDED COPY command working between LUNs. It works correctly in SCST with sg_xcopy command but in VMware it doesn’t. The EXTENDED COPY command works only within the same LUN. I analyzed the traffic with Wireshark and noticed that the EXTENDED COPY is executed when virtual machine is cloned within one datastore. I found out that NexentaStor advertises that it works with VMware VAAI, so I tested it with their trial version. The NexentaStor was unstable but VMware sent EXTENDED COPY commands between LUNs (datastores). I captured the whole login session of NexentaStor with Wireshark and modified SCST code to respond with the same data as NexentaStor (except of vendor, product identification in standard INQUIRY command). It didn't work. The last step was changing identification fields (VENDOR IDENTIFICATION, PRODUCT IDENTIFICATION and PRODUCT REVISION LEVEL) in standard INQUIRY and... it started to work. I reverted back all the changes leaving only these three fields that introduce drive as NexentaStor's one and VMware didn't discover the iSCSI LUNs. So I made also a device identification VPD page similar to NexentaStor's. It means containing NAA designator, target port vendor specific designator, target port group designator and relative target port designator. Devices were discovered then and EXTENDED COPY command was sent while cloning machines between datastores (LUNs).
How is it possible that the VMware has hardcoded the behaviour for the NexentaStor target? This is even not a VAAI plugin:
esxcli storage core device vaai status get -d naa.606144f0e0d4fd770000503970705800
VAAI Plugin Name:
ATS Status: supported
Clone Status: supported
Zero Status: supported
Delete Status: supported
I'd like to use VMware with open source solutions and I'd expect that it behaves the same way as when there is no proprietary plugin.
The sample INQUIRY response that makes it works looks like below:
standard INQUIRY:
PQual=0 Device_type=0 RMB=0 LU_CONG=0 version=0x06 [SPC-4]
[AERC=0] [TrmTsk=0] NormACA=0 HiSUP=0 Resp_data_format=2
SCCS=0 ACC=0 TPGS=1 3PC=1 Protect=0 [BQue=0]
EncServ=0 MultiP=1 (VS=0) [MChngr=0] [ACKREQQ=0] Addr16=0
[RelAdr=0] WBus16=0 Sync=0 [Linked=0] [TranDis=0] CmdQue=1
[SPI: Clocking=0x0 QAS=0 IUS=0]
length=66 (0x42) Peripheral device type: disk
Vendor identification: NEXENTA
Product identification: COMSTAR
Product revision level: 1.0
Unit serial number: 3afcb739
Device Identification VPD page:
Addressed logical unit:
designator type: NAA, code set: Binary
0x606144f0e0d4fd770000503970705800
Target port:
designator type: vendor specific [0x0], code set: ASCII
transport: Internet SCSI (iSCSI)
vendor specific: iqn.2016-05:com.testtg0
designator type: Target port group, code set: Binary
Target port group: 0x0
designator type: Relative target port, code set: Binary
Relative target port: 0x1
Isaac Goldbaum