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.

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.

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.

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.

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.

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.
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.

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.