Technology Preview: Distributed SmartIO in Veritas InfoScale storage environments

Distributed SmartIO is a new feature available as a technology preview in Veritas InfoScale for configuration and testing in non-production environments. It is primarily targeted for Oracle RAC or ODM.

Note:

All the configurations which are supported on SmartIO read caching for applications running on VxFS file systems are also supported with Distributed SmartIO.

With the advancements in the hardware technology - network interconnect such as infiniband, accessing and sharing the data using the network rather than the disk as a medium for data sharing is proving to be faster and cost efficient in storage environments. Data can be cached on faster but costlier SSD storage on few nodes in a cluster. High speed network interconnect can be used to fetch the data as required on any node in the cluster.

Considering these benefits, Veritas InfoScale has come up with a robust solution, Distributed SmartIO, which lets you share SSD resources between all the nodes in the cluster for caching frequently read data.

Distributed SmartIO feature uses SSD resources both local and remote for caching purposes to improve performance of the applications running within the cluster. Using Distributed SmartIO, you can create a coherent cache area using SSD across all the nodes in the cluster irrespective of whether each node has an independent local cache.

In the Distributed SmartIO feature, a few or all the nodes in the cluster have SmartIO cache attached to it. Each node within the cluster is connected through a high speed network interconnect such as Infiniband or 10G Ethernet. Read Operation (RO) cached data and metadata about the cached data is distributed and shared across the SmartIO cache within all nodes in the cluster. The metadata also resides at the back-end storage device.

See Read Operations (RO) in Distributed SmartIO

See Write Operations in Distributed SmartIO

Read Operations (RO) in Distributed SmartIO

In a clustered environment, when the application issues a RO using Direct I/O, Distributed SmartIO checks to see if the RO can be serviced from the local cache on the existing node. In the absence of requested data from local cache on the existing node, Distributed SmartIO attempts to serve the RO from remote node's local cache. If the requested data is not present in any cache, then the data is rendered asynchronously in the Distributed SmartIO from the back-end storage.

Note:

You can create a coherent cache area using SSDs on all nodes in the cluster even if one or more nodes within the cluster does not have an independent SmartIO (Local Cache) attached to it.

The following diagram gives an overview of how the read operations are processed in Distributed SmartIO:

Write Operations in Distributed SmartIO

In a clustered environment, when the application issues a write operation on any node within the cluster, it invalidates copies of the data from all the remote caches except the data on local cache of the node on which the write operation is performed. The local cache of this node is updated with the new data.

Note:

You can create a coherent cache area using SSDs on all nodes in the cluster even if one or more nodes within the cluster does not have an independent SmartIO (Local Cache) attached to it.

The following diagram gives an overview of how the write operations are processed in Distributed SmartIO:

Enabling Distributed SmartIO feature in Veritas InfoScale storage environment

To enable Distributed SmartIO feature in Veritas InfoScale storage environment

  1. Use sfcache command to create SmartIO cache on the required nodes in the cluster.

    See Creating a cache area . for more details.

    See sfcache(1M) manual page for more details.

  2. While mounting a VxFS file system, use cluster,smartiomode=cfusion option to enable Distributed SmartIO.
    # mount -t vxfs /dev/vx/dsk/testdg/vol1 -o cluster,
    smartiomode=cfusion /mnt1
  3. To see statistics on the cache usage, use the following command:
    # sfcache stat
       
    Cache Name: cache_dg1/cachevol
    Cache Size:   24.97 GB
    Cache Utilization:    70.8 MB ( 0.28 %)
    File Systems Using Cache:       6
    Writeback Cache Use Limit:  Unlimited
    Writeback Flush Timelag:     10 s
    
    Read Cache                            Writeback
    Hit Ratio   Data Read  Data Written   Hit Ratio  Data Written  rdcachename   wbcachename
     
    Total:
    45.40 %     4.99 MB     2 MB           0.00 %     0 KB
    
    /mnt1:
    74.98 %     2.996 MB    1 MB           0.00 %     0 KB        cache_dg1/cachevol     -
    Remote Read:
    66.62 %     1.996 MB
    
    

The output displays the Data Read and Hit Ratio statistics under the Remote Read section for a particular mount point. It provides statistical information about the data that is served by SmartIO cache (Local Cache) for reads happening on the remote nodes.

Limitations of Distributed SmartIO

Support for Distributed SmartIO is limited by the following constraints: