Hi @mdm,
Here is the response from a SME
1-
XO get the VM metadata through soap api and create the vm /network
XO use the nbdkit + nbdkit-vddk package , connecting to each disk
XO connect through NBD to nbdkit
XO list the allocated blocks
XO create the disk
XO read the block and import the data into the disk (though a vhd or qcow2 stream depending on the size)
2- though XO. There is a lot of disk transform occuring here
3- not anymore, it was too brittle, especially on when the disk are locked or not. Also it was not scaling too well
4- see 3- +
vddk transfer is overwhelmly faster that previous access through http, is compatible with VSAN and don't lock the disks.
(+ also see https://xen-orchestra.com/blog/xen-orchestra-5-110/ section "VMware to Vates (V2V)" where we made key improvements)