What is vSphere APIs for IO Filtering (VAIO)
VAIO is a Framework that enables third parties (Partners) to develop filters that run in ESXi and can intercept any IO requests from a guest operating system to a virtual disk. An IO will not be issued or committed to disk without being processed by IO Filters created by 3rd parties.
Filters execute inside ESXi and not in a VM. In addition, the VAIO Framework provides centralized installation and upgrade.
The first release of vSphere APIs for IO Filtering (ESXi 6.0 Update 1) will only support and certify the Caching and Replication use cases. VMware will not certify VAIO solutions attempting to support other use cases at this time.
Caching - Will significantly increase the IOPS available, reduce latency, and increase hardware utilization rates.
Replication - Will allow the user to create VM granular replication policies for use in DR and other scenarios (ie. Snapshot)
Note: This program does entail a vetting process and based on the answers to the questionnaire below, partner solutions may or may not qualify for this program.
How IO Filtering Works
IO request moving between the guest operating system (Initiator), located in the Virtual Machine Monitor(VMM), and a virtual disk (Consumer) are filtered through a series of two IO Filters (per disk), one filter per filter class, invoked in filter class order. For example, a replication filter executes before a cache filter. Once the IO request has been filtered by all the filters for the particular disk, the IO request moves on to its destination, either the VM or the virtual disk.
Partner will develop IO Filter plug-ins to provide filtering virtual machines. Each IO Filter registers a set of callbacks with the Filter Framework, pertaining to different disk operations. If a filter fails an operation, only the filters prior to it are informed of the failure.
Any filter can complete, fail, pass, or defer an IO request. A filter will defer an IO if the filter has to do a blocking operation like sending the data over the network, but wants to allow further IOs to get processed as well. If a filter performs a blocking operation during the regular IO processing path, it would affect the IOPS of the virtual disk, since we wouldn't be processing any further IOs until the blocking operation completes. If the filter defers an IO request, the Filter Framework will not pass the request to subsequent filters in the class order until the filter completes the request and notifies the Filter Framework that the IO may proceed.
VAIO Overview Architecture
- Access to the Program Documents, Development Kit, pertinent Development Documentation, and Workbench for partner Filter class development
- VMware Compatibility Guide (VCG) posting
- Program communication
- vSphere Installation Bundle Suite (VIB)
Used to package the Partner Developed Filter Class so that can be installed on ESXi
- Access to Maintenance Releases
- TAP Elite or Global status
- Partner Solution vetting (approval required). Please fill out the questionnaire below and send it to firstname.lastname@example.org
- VMware program agreement signature
- Adherence to product support requirements as documented in vSphere APIs for I/O Filtering Program Guide document.
- TSANet membership and an entry in the VMware custom TSANet portal
- General support on VMware vSphere features is purchased separately
Product Versions Supported
6.0U1, 6.0U2, 6.5
- Storage and Server partners
Related Programs and Services
- Engineering Services Development Consulting Program