Active - Active Capability

IBM FlashSystem is an active-active dual controller system. As shown in Figure 1, the system can be installed and configure as “Optimized” to present paths from all nodes that are defined by the standard SCSI multipath terminology. Optimizing a system states that the I/O operation can be done and processed by either node in a symmetric manner. For read operations, I/O is processed entirely on the node that receives the I/O. For write operations, the I/O is coordinated by the node that receives the I/O with any required cache mirroring processing. Any subsequent destage operations are handled by only one node to ensure data consistency.

Figure 1. Default Active-Active - All paths optimized
Default Active-Active - All paths optimized

Enhancements available with FlashSystem

In addition to supporting an “all-optimized” path configuration, the typically recommended configuration uses both the optimized and non-optimized paths. It provides an advantage by increasing the probability of a read cache hit. It also ensures an even balancing of workload across nodes by following the round-robin rule for allocating per volume for cache destage workloads. The system remains as Active-Active in the optimized paths and the host can still send I/O to both sets of paths as shown in the Figure1.

Unlike Non-Optimized, the designated path of an Optimized is equivalent to the Active-Active design. The outcome of an Active-Active is Active Passive design. However, the FlashSystem has never an Active-Passive design.

Figure 2. Active-Active with more optimized path
Active-Active with more optimized path

Active-Active I/O Flow

To further demonstrate the Active-Active nature, consider Figures 3 - 6 that shows the I/O flow for read and write operations through a FlashSystem.

Consider read is issued from a volume. In this case, no matter if the system is using optimized paths or not, if the read is sent through a path to Node1, the entire read operation is completed by node 1 alone.

Figure 3. Active-active Reads through node1
Active-active Reads through node1

Similarly, as shown in Figure 4, the same read is issued to the same volume, but this time a path is provided by Node2. The entire read operation is completed by node 2 alone. This functionality is the standard definition of an Active-Active controller.

Figure 4. Active-active read through node2
Active-active read through node2

For complete operation, the write I/O flow is shown in Figure 5. In this case, the volume is written through a path to node1. Also, the Node1 is set as “owner node” for the volume. This defines which node owns the eventual destage operation and happens to match the optimized or non-optimized assignment used.

Figure 5. Active-active - Write to node1
Active-active - Write to node1

As shown in Figure 5, step 1 - 4 shows complete writes operation. The initial write, the cache mirror operation, and the acknowledgments back to the host. Also, step A to C shows the required steps to asynchronously complete a write destage.

Note: It is must to have a destage mechanism as detailed here, else the data gets corrupted. This is applicable for all the vendors.

In Figure 6, it shows the same write I/O flow for the same I/O while the operation is submitted through node2. Node1 is still the owner of the volume. Therefore, Node 1 completes the destage operation. However, all other processing is managed by node2.

Figure 6. Active-active - Write to node2
Active-active - Write to node2

In both cases, the number and nature of the required internal operations are identical. The same write data ends up in cache on both nodes, and one node completes destage of the write data to disk. This functionality demonstrates that the IBM FlashSystem is an Active-Active dual controller system.