This post covers two important vSphere features: VMware vSphere API for Array Integration (VAAI) and VMware vSphere API for Storage Awareness (VASA). After reading this post, you will know answers for the following questions:
- What is VAAI and what does this feature require? How to determine if my storage supports VAAI?
- What are the fundamental operations used VAAI?
- What are VAAI limitations?
- What is VASA and what does this feature require?
People are often confused which feature what does 🙂 so let's clarify the concerns!
VMware vSphere API for Array Integration (VAAI)
VMware vSphere API for Array Integration (VAAI) - allows for hardware acceleration and offload certain operations that originally occurs at the host level, to the storage system. With the storage hardware assistance, your host performs these operations faster and consumes less CPU, memory, and storage fabric bandwidth.
- ESXi/ESX 4.1 or later (with vSphere 4.1 NAS is not supported. NAS is supported since vSphere 5.0).
- Enterprise or Enterprise Plus licensing for ESXi/ESX hosts.
- Storage arrays that support VAAI storage-based hardware acceleration.
There are following fundamentals operations used VAAI:
- Atomic Test & Set (ATS), which is used during creation and locking of files on the VMFS volume.
- Clone Blocks/Full Copy/XCOPY, which is used to copy or migrate data within the same physical array.
- Zero Blocks/Write Same, which is used to zero-out disk regions.
- Thin Provisioning in ESXi 5.x and later hosts, which allows the ESXi host to tell the array when the space previously occupied by a virtual machine (whether it is deleted or migrated to another datastore) can be reclaimed on thin provisioned LUNs.
- Block Delete in ESXi 5.x and later hosts, which allows for space to be reclaimed using the SCSI UNMAP feature.
- Full File Clone – Like the Full Copy VAAI primitive provided for block arrays, this Full File Clone primitive enables virtual disks to be cloned by the NAS device.
- Native Snapshot Support – Allows creation of virtual machine snapshots to be offloaded to the array.
- Extended Statistics – Enables visibility to space usage on NAS datastores and is useful for Thin Provisioning.
- Reserve Space – Enables creation of thick virtual disk files on NAS.
There are VAAI limitations are as follow:
VAAI can not be used when:
- The source and destination VMFS volumes have different block sizes
- The source file type is RDM and the destination file type is non-RDM (regular file)
- The source VMDK type is eagerzeroedthick and the destination VMDK type is thin
- The source or destination VMDK is any kind of sparse or hosted format
- Cloning a virtual machine that has snapshots because this process involves consolidating the snapshots into the virtual disks of the target virtual machine.
- The logical address and/or transfer length in the requested operation is not aligned to the minimum alignment required by the storage device (all datastores created with the vSphere Client are aligned automatically)
- The VMFS datastore has multiple LUNs/extents spread across different arrays
To check if you storage supports VAAI please refer to the VMware compatibility chart tool found here
If you use Web Client (recommended :)), go to Datastore > Manage > Settings > General and check Datastore Capabilities:
For each storage device and datastore, it's displayed the hardware acceleration support status in the Hardware Acceleration column of the Devices view and the Datastores view.
The status values are Unknown, Supported, and Not Supported. The initial value is Unknown. The status changes to Supported after the host successfully performs the offload basic operations. If the offload operation fails, the status changes to Not Supported.
To determine if your storage device supports VAAI, test the Full Copy VAAI primitive:
- Using the vSphere Client, browse the datastore and locate a virtual disk (VMDK) of at least 4 MB that is not in use.
- Copy the virtual disk to a new file.
- Check the Hardware Acceleration status to verify that it changes from Unknown to either Supported or Not Supported.
To check exactly supported VAAI features by datastore, please run command (vSphere 5.x) via SSH:
esxcli storage core device vaai status get
The example output:
VAAI Plugin Name:
ATS Status: unsupported
Clone Status: unsupported
Zero Status: supported
Delete Status: unsupported
VMware vSphere API for Storage Awareness (VASA)
VMware vSphere API for Storage Awareness (VASA) - is a set of APIs that permits storage arrays to integrate with vCenter for management functionality:
- Displays the features of the physical storage devices.
- Provides storage health status, configuration info & capacity.
Depending on storage and VASA provider, the attributes provided to vCenter can be as follow:
- Disk Type (SSD, SATA, SAS, FC)
- Snap space reserved
- Dedupe - Indicates space efficiency on the underlying NetApp LUN or a volume & Replication – Indicates that the underlying NetApp storage is configured for SnapMirror or SnapVault.
- VV Type – VirtualCopy, PhysicalCopy, Base & Remotecopy – InRemotecopy, NotInRemotecopy - HP storage
To see which storage vendors have VASA providers refer to the VMware compatibility chart tool found here and view vendors’ specific release notes for specific functionality and configuration details:
As you can see, you can check vSphere supported releases by VASA and direct link to the VASA binaries. For example NetApp Virtual Storage Console for VMware vSphere is the management console for VASA Provider.
VMware provides "out of box" VASA for VSAN . I described it in the post: How to define a Virtual Machine Storage Policy for Virtual SAN (VSAN) ?
In the next post, I will show how to use VASA based on NetApp storage.