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. With the framework, you can add filter plug-ins to the I/O path to and from virtual disks. The infrastructure includes an I/O filter storage provider (VASA provider). The provider integrates with the Storage Policy Based Management (SPBM) system and exports filter capabilities to vCenter Server.
- I/O Filter Plug-In
- A software component provided by VMware or developed by VMware partners that intercepts and filters I/O data in transit between virtual disks and guest operating systems.
- CIM Provider
- If VMware partners develop the I/O filters, the partners can provide an optional component that configures and manages I/O filter plug-ins.
- vSphere Web Client Plug-In
- When developing I/O filters, VMware partners can include this optional plug-in. The plug-in provides vSphere administrators with methods for communication with an I/O filter CIM provider to receive monitoring information about the I/O filter status. It can also send configuration commands to the CIM provider to configure its I/O filters.
- I/O Filter Daemon
- An optional component that VMware partners can develop. You can use it as an extra service that interacts with the individual filter instances running on a host. The service can establish network communication channels across the hosts.
The following figure illustrates the components of I/O filtering and the flow of I/O between the guest OS and the virtual disk.
Each Virtual Machine Executable (VMX) component of a virtual machine contains a Filter Framework that manages the I/O filter plug-ins attached to the virtual disk. The Filter Framework invokes filters when the I/O requests move between the guest operating system and the virtual disk. Also, the filter intercepts any I/O access towards the virtual disk that happens outside of a running VM.
The filters run 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 all filters for the particular disk verify the I/O request, the 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.