I/O filters are software components that can be installed on ESXi hosts and can offer additional data services to virtual machines. The filters process I/O requests, which move between the guest operating system of a virtual machine and virtual disks.
The I/O filters can be offered by VMware or created by third parties through vSphere APIs for I/O Filtering (VAIO).
I/O filters can gain direct access to the virtual machine I/O path. You can enable the I/O filter for an individual virtual disk level. The I/O filters are independent of the storage topology.
VMware offers certain categories of I/O filters. In addition, third-party vendors can create the I/O filters. Typically, they are distributed as packages that provide an installer to deploy the filter components on vCenter Server and ESXi host clusters.
After the I/O filters are deployed, vCenter Server configures and registers an I/O filter storage provider, also called a VASA provider, for each host in the cluster. The storage providers communicate with vCenter Server and make data services offered by the I/O filter visible in the VM Storage Policies interface. You can reference these data services when defining common rules for a VM policy. After you associate virtual disks with this policy, the I/O filters are enabled on the virtual disks.
I/O filters can support all datastore types including the following:
- NFS 3
- NFS 4.1
- Virtual Volumes (VVol)
Types of I/O Filters
VMware provides certain categories of I/O filters that are installed on your ESXi hosts. In addition, VMware partners can create the I/O filters through the vSphere APIs for I/O Filtering (VAIO) developer program. The I/O filters can serve multiple purposes.
The supported types of filters include the following:
- Replication. Replicates all write I/O operations to an external target location, such as another host or cluster.
- Encryption. Offered by VMware. Provides encryption mechanisms for virtual machines. For more information, see the vSphere Securitydocumentation.
- Caching. Implements a cache for virtual disk data. The filter can use a local flash storage device to cache the data and increase the IOPS and hardware utilization rates for the virtual disk. If you use the caching filter, you might need to configure a Virtual Flash Resource.
- Storage I/O control. Offered by VMware. Throttles the I/O load towards a datastore and controls the amount of storage I/O that is allocated to virtual machines during periods of I/O congestion. For more information, see the vSphere Resource Management documentation.
I/O Filtering Components:
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. If VMware partners develop the I/O filter, the filter might include additional optional components that help in its configuration and management.
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 operate on 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.
Storage Providers for I/O Filters
When I/O filters are installed on ESXi hosts, the I/O filter framework configures and registers a storage provider, also called a VASA provider, for each host in the cluster.
Storage providers for I/O filtering are software components that are offered by vSphere. They integrate with I/O filters and report data service capabilities that I/O filters support to vCenter Server.
The capabilities populate the VM Storage Policies interface and can be referenced in a VM storage policy. You then apply this policy to virtual disks, so that the I/O filters can process I/O for the disks.
System Requirements for I/O Filters
To be able to use I/O filters in your environment, you must follow specific requirements.
The following requirements apply.
- Use the latest version of ESXi and vCenter Server compatible with I/O filters. Older versions might not support I/O filters, or provide only partial support.
- Check for any additional requirements that individual partner solutions might have. In specific cases, your environment might need flash devices, extra physical memory, or network connectivity and bandwidth. For information, contact your vendor or your VMware representative.
- Web server to host partner packages for filter installation. The server must remain available after initial installation. When a new host joins the cluster, the server pushes appropriate I/O filter components to the host.
Enable I/O Filter Data Services on Virtual Disks
Enabling data services that I/O filters provide is a two-step process. You create a virtual machine policy based on data services that the I/O filters provide, and then attach this policy to a virtual machine.
For the caching I/O filters, configure the virtual flash resource on your ESXi host.
- Define a VM policy based on I/O filter services.You must first create a virtual machine policy that lists data services provided by the I/O filters.
- Assign the I/O filter policy to a virtual machine.To activate data services that the I/O filter provides, associate the I/O filter policy with virtual disks. You can assign the policy when you provision the virtual machine.
Assign the I/O Filter Policy to Virtual Machines
To activate data services that I/O filters provide, associate the I/O filter policy with virtual disks. You can assign the policy when you create or edit a virtual machine.
You can assign the I/O filter policy during an initial deployment of a virtual machine. This topic describes how to assign the policy when you create a new virtual machine. For information about other deployment methods, see the vSphere Virtual Machine Administration documentation.
You cannot change or assign the I/O filter policy when migrating or cloning a virtual machine.
Verify that the I/O filter is installed on the ESXi host where the virtual machine runs.
- Start the virtual machine provisioning process and follow the appropriate steps.
- Assign the same storage policy to all virtual machine files and disks.
- On the Select storage page, select a storage policy from the VM Storage Policy drop-down menu.
- Select the datastore from the list of compatible datastores and click Next.The datastore becomes the destination storage resource for the virtual machine configuration file and all virtual disks. The policy also activates I/O filter services for the virtual disks.
- Change the VM storage policy for the virtual disk.Use this option to enable I/O filters just for your virtual disks.
- On the Customize hardware page, expand the New hard disk pane.
- From the VM storage policy drop-down menu, select the storage policy to assign to the virtual disk.
- (Optional) Change the storage location of the virtual disk.Use this option to store the virtual disk on a datastore other than the datastore where the VM configuration file resides.
- Complete the virtual machine provisioning process.
After you create the virtual machine, the Summary tab displays the assigned storage policies and their compliance status.