VAAI support

From Xen

We want to speed up common VM disk operations such as:

  1. deleting disks
  2. creating empty disks
  3. cloning disks

Ideally the host would send the commands to the storage server/target and allow it to Do The Right Thing. Many arrays are 'smart' in the sense that they maintain block allocation maps and can create trees of disk clones without explicitly copying all the blocks. Even when an array doesn't have such smarts it is still better to copy blocks across the internal array fabric than across the host to array network link.

The VMware vStorage APIs for Array Integration (VAAI) are a defacto standard which allow common VM disk operations to be sped up including

  1. Atomic Test and Set (ATC): for fast LV locking
  2. Block-level Zero: for blanking freshly-created LVs
  3. Block-level Clone: for getting the array to copy LVs
  4. Block-level Delete: to clear unused space

(for more information see http://linux-iscsi.org/wiki/VStorage_APIs_for_Array_Integration )

How can we take advantage of storage arrays which support these?

Notes on VAAI

The APIs are presented as SCSI commands and have been implemented in the Linux-IO software target which has achieved VMware certification in several hardware products.