PowerFlex replication can be used to quickly resume operations remotely after a disaster at the local site: To test data at a remote site, to create remote crash-consistent snapshots, or to offload backup operations. PowerFlex replication is designed to allow a subminute RPO, reducing the data-loss to a minimum if there is a disaster. Replication occurs between two PowerFlex systems designated as peer systems, which are connected by local network or a WAN. PowerFlex achieves replication using a storage software component called the Storage Data Replicator (SDR).
The role of the SDR is to proxy the I/O of replicated volumes between the Storage Data Client (SDC) and the Storage Data Servers (SDSs) where data is ultimately stored. The SDR splits the write I/O, sending one copy to the SDS nodes in local system and another to a replication journal volume. As it sits between the SDS and SDC, from the point-of view of the SDS, the SDR appears and behaves as an SDC, that is to say, the SDR is sending incoming writes to the SDS and then receiving write acknowledgments from the SDS. Conversely, to the SDC, the SDR appears as, and behaves as, an SDS, to which writes can be sent.
The following figure shows the architecture of PowerFlex asynchronous replication:
Figure 2. PowerFlex asynchronous replication between two PowerFlex systems
As shown in the preceding figure there are two PowerFlex clusters, namely the source domain and the target domain. Both systems are distributed using the network. Each cluster can act as a replication source and as a target.
All application I/O of replicated volumes are processed by the source SDRs. The source SDC sends the write I/O traffic to the SDR. And then, the SDR splits the I/O and forwards it to both the local SDS and the replication journal volume.
The local multiple SDS processes these write I/Os, while the SDR assembles the journal data into checkpoints that each represent a point of consistency preserving the write order fidelity.
Write I/O traffic of non-replicated volumes passes directly from SDC to SDS. The journal is a component of the SDR which stores data at source before it is sent to the target and at the target, journal stores the data before it is applied to target volumes.
On the source system, journals are accumulated in journal-intervals or checkpoints. At the end of the collection interval, the checkpoint is closed, and a new journal-interval opens (a new checkpoint). As the journals reach close to the top of the queue, the journal-intervals are scanned, and writes to the same blocks are consolidated (a process called write folding) to minimize the amount of data sent. And then, these journal-intervals are sent continuously to the target journal buffer of the remote system over dedicated networks assigned to replication.
On the target system, the journal-intervals are processed by the SDRs residing in the target system. After all the data for a journal-interval or checkpoint is received, the data is applied to the target volume by the relevant SDS. After all writes to the target volume is complete by remote SDS, the SDS sends an acknowledgment back to the SDR, and then sends the next complete journal-interval.