Difference between revisions of "VAAI support"

From Xen
m (Notes on VAAI)
m (Notes on VAAI)
Line 24: Line 24:
 
* Windows uses ODX (Offloaded Data Transfer) rather than EXTENDED COPY
 
* Windows uses ODX (Offloaded Data Transfer) rather than EXTENDED COPY
 
* A comparison of file vs block primitives: http://cormachogan.com/2012/11/08/vaai-comparison-block-versus-nas/
 
* A comparison of file vs block primitives: http://cormachogan.com/2012/11/08/vaai-comparison-block-versus-nas/
* A draft of NFS v4.2 has [server-side copy|https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-26#section-1.4.1]
+
* A draft of NFS v4.2 has [https://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-26#section-1.4.1 server-side copy]

Revision as of 00:09, 11 January 2015

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 http://linux-iscsi.org/wiki/LIO which has achieved VMware certification in several hardware products.