In order for storage vendors to add value to native VMware virtual machine storage operations (via acceleration, insights, and more) VMware provides a standardized API called vSphere APIs for Array Integrations, often referred to as VAAI. For those familiar with block-based datastore implementations of VAAI, these are in-band protocol-based operations that require no installation of additional software. For NFS-based datastores there is no standardized way of implementing this is the datapath- this is mainly due to the fact that vendors implement operations in different ways for support of NFS. Therefore, VMware provided an alternative path for VAAI support file NFS through the use of VAAI plugins in the form of an ESXi host-based vSphere Installation Bundle (VIB) component.
This VIB component is tested, certified, and digitally signed by VMware to ensure the appropriate behaviors and avoid malicious installation of software into the ESXi kernel behavior.
Everpure now provides a VAAI NFS VIB component for use with FlashArray storage arrays starting with Purity 6.4.0. Please ensure your FlashArray File Limits also supports File Services as well before proceeding.
VAAI Primitives
VMware provides the following features (often referred to as "primitives") with NFS-based VAAI:
- Full File Clone. This feature offloads the cloning or Storage vMotion of VMDKs (virtual disks) and VMs to the array. Instead of ESXi transmitting unneccessary reads and writes over the data path, a singular operation is sent to inform the underlying array of what VMs file or files to directly copy. This reduces network traffic and often accelerates the overall operation.
- Fast File Clone. This feature offloads the creation of snapshots or Linked Clones to the array. This results in similar benefits to Full File Clone but is focused on snapshot/file redirection.
- Reserve Space. By default virtual disks on NFS datastores are created as "thin" this means the capacity is not allocated until it is actually written to similar to a traditional file on a file system (files grow as written to). This primitive allows the NFS array to fully reserve the provisioned space of the VMDK upon creation.
- Extended Statistics. By default, ESXi only has insight into basic capacity reporting for NFS datastores that are provided natively by the NFS specification. This primitive enhances this metric set by providing more insight into capacity utilization for thinly-provisioned devices.
-
Native Snapshot Support.
-
Disk Type Reporting.
-
UNMAP. The Unmap primitive supports the space reclamation for VMs that run on thin provisioned NFS 3 datastores. It includes two primitives:
- GET_UNMAP_GRANULARITY primitive gets called during a VM power-on operation. It fetches the UNMAP related parameters from the storage backend. The parameters are expected to be filled by the storage vendor specific NAS plugin.
- UNMAP primitive gets called when the guest VM issues UNMAP requests to free the space consumed by VMDK files. For example, file deletion can trigger UNMAP if the guest OS filesystem supports the Discard option. The guest VM provides region of a VMDK file, from which the backend storage can reclaim space. After receiving the guest OS UNMAP request, the NFS storage layer in ESX passes the request to the NAS VAAl plugin to execute the UNMAP request on the storage provider.
Downloading the VAAI VIB Component
The best way to install the vSphere API for Array Integration VMware Installation Bundle (VAAI VIB) zip component is directly on ESXi from the web URL listed below in the ESXCLI Method. If the ESXi host does not have access to that URL directly, the zip package can be downloaded below.
Release notes for the VAAI VIB Component can be found here.
|
Download Release Notes |
ESXi Release Support |
Checksum |
|---|---|---|
|
ESXi 9+ IMPORTANT NOTE: This plugin version contains the UNMAP primitive and is compatible with ESXi 9+ because UNMAP was introduced in ESXi 9. |
MD5 Checksum 0ed626bd1ae91a9ca300c888b4d69e74 SHA256 Checksum 7c4024a8689d99f3db35865ba49d32fe64f565ddd3a33a1aa275ee64bc7e470d |
|
|
ESXi 7.0.1+ ESXi 8+ ESXi 9+ |
MD5 Checksum 3b6270df5d00aaa51cd4c8d0675a03ae SHA256 Checksum ae20da50c391d71a64b4c0ff8412c3fcad985186562d0b6391328dafb9b30baf |
|
|
ESXi 7.0.1+ ESXi 8+ ESXi 9+ |
MD5 Checksum 9af1389f796a487cc5910f54299221af SHA256 Checksum 840e9a9c83121728249271b320262e74df69b2b2706568c557eba969d191ec5b |
|
|
ESXi 7.0.1+ ESXi 8+ ESXi 9+ |
MD5 Checksum a9d72182b87921b59693f5234ff58108 SHA256 Checksum 9e08e63858d3dd15400c90390d29fc461117198f75f6c174a8dfd85e7585c609 |
|
|
ESXi 7.0.1+ ESXi 8+ |
MD5 Checksum 94f93ff920cdda49975040ed147bae8d SHA256 Checksum 8d29e9709d61900250e5d904e2122db9fed083ceee5f3f481e2eaeecee42d5be |
|
| 1.0.0-1 Download |
ESXi 7.0.1+ ESXi 8+ |
MD5 Checksum 3702f49757391c2c6e71126def43408d SHA256 Checksum 871d66a521a731d6b72e2f703ecd87c41d012426015ddbe98d90d192e738fb60 |
|
Beta |
ESXi 7.0.1+ ESXi 8+ |
Retired |
Always confirm the checksum (SHA256 is preferred) before installing into ESXi.