Several components are involved in the I/O filtering process.

The components of I/O filtering include the following:

VAIO Filter Framework

A combination of user world and VMkernel infrastructure provided by ESXi that enables VMware partners to add filter plug-ins to the I/O path to and from virtual disks.

I/O Filter Plug-In

A software component developed by VMware partners that intercepts and filters I/O data in transit between virtual disks and guest operating systems.

CIM Provider

An optional component developed by VMware partners that configures and manages I/O filter plug-ins.

vSphere Web Client Plug-In

An optional component developed by VMware partners. Provides vSphere administrators with methods for communication with an I/O filter CIM provider to receive monitoring information about the I/O filter status as well as send configuration commands to the CIM provider to configure its I/O filters.

I/O Filter Daemon

An optional component developed by VMware partners. It can be used as an additional service that interacts with the individual filter instances running on a host. The service can establish cross-host network communication channels.

The following figure illustrates the components of I/O filtering and the flow of I/Os between the guest OS and the virtual disk.

The graphic shows an I/O path between a virtual disk and a guest OS, and an I/O filter intercepting I/O requests.

Each Virtual Machine Executable (VMX) component of a virtual machine contains a Filter Farmwork that manages the I/O filter plug-ins attached to the virtual disk. The Filter Framework invokes filters when I/O requests move between the guest operating system and the virtual disk. Also, any I/O access towards the virtual disk that happens outside of a running VM is intercepted by the filter.

The filters execute sequentially in a specific order. For example, a replication filter executes before a cache filter. More than one filter can filter the virtual disk, but only one for each category.

Once the I/O request has been filtered by all filters for the particular disk, the I/O request moves to its destination, either the VM or the virtual disk.

Because the filters run in user space, any filter failures impact only the VM, but do not affect the ESXi host.