SmartIO supports block-level read caching for Veritas Volume Manager (VxVM) volumes. This type of SmartIO caching primarily supports the applications that run directly over raw volumes. For example, database instances running directly over raw volumes. Volume-level caching can also be used in cases where VxFS caching cannot be used. SmartIO only supports read caching at the volume level.
The SmartIO cache typically resides on one or more SSD devices or other fast devices. SmartIO accelerates the read I/O performance because the application read I/Os are serviced from the SSD-based cache rather than the standard storage.
SmartIO does not require complex configuration to set up caching. You simply set up a cache area, which is the storage space for the cached data and metadata about the cache. For volume-level read caching, the cache area has the VxVM type. A single VxVM cache area is used per system. By default, the SmartIO cache area enables automatic caching for all VxVM volumes on the system. If you prefer, you can configure the cache area as noauto. For a noauto cache area, you must explicitly enable SmartIO read caching for the VxVM volumes. The configuration of the cache area is persistent.
For each VxVM volume on which caching is enabled, SmartIO determines which data to cache or to evict from the cache. SmartIO uses its knowledge of the workload to optimize its use of the cache.
The SmartIO feature supports only one VxVM cache area on a system. For each system, all VxVM volumes that are cached share a single cache area of VxVM type. Multiple VxVM cache areas are not supported, although the same system can have both a VxFS cache area and a VxVM cache area.
A cache area is private to each node in a cluster. The cache contents are not shared across the nodes in the cluster.
A SmartIO cache preserves cache coherency at the volume level. If the cache device becomes inaccessible while caching is enabled, the application continues to function normally. However, application performance may be reduced.
In a Cluster Volume Manager (CVM) environment, SmartIO uses a cache coherency protocol to keep cache areas on multiple nodes coherent when writes are made to a shared volume. A write on the data volume invalidates the contents on the cache area of other nodes. The cache coherency protocol uses the Group Lock Manager (GLM) module for communication. When the cache is initially getting populated, the cache coherency protocol creates a small performance overhead in the write I/O path.
The data in the read cache is not persistent by default. In the case of a planned system reboot, you can choose to create a warm cache.