IP Storage Networking: Straight to the Core
3.7.1 Mirroring and Replication
Mirroring and replication solutions go beyond the protection mechanisms of point-in-time and snapshot copies by providing continuous real-time availability. These solutions do not provide for incremental rollbacks and therefore are frequently coupled with point-in-time and snapshot solutions for such functionality. Mirroring and replication deliver the highest levels of data availability across local and remote geographic distances. Although they have similar objectives, mirroring and replication have different implementations . With mirroring, each copy of the data is identical, and one can be substituted for the other at any time. Further, applications see complete consistency at all times between the two copies. Implementing mirroring requires that each write operation be written and confirmed by both mirrors before the application can continue. This insures that at each incremental change in the data, both copies remain identical. Mirroring implies that the connection between the primary and secondary copy remains intact. Any temporary outage in that link is interpreted as a failure of the mirror. Replication can take place in synchronous or asynchronous mode. Synchronous mode is more similar to mirroring in that the I/O must be written and confirmed by both copies before proceeding. However, synchronous replication can handle temporary network outages and store updates between the primary and secondary location until the link is restored, upon which the updates continue. Applications can detect this update latency and may be temporarily put on hold until the synchronization resumes. These parameters, such as timeouts, can be tuned to discern between a network glitch (measured in single seconds) and all-out failure (measured in tens of seconds). A failure would render the replication incomplete and initiate the appropriate recovery procedures. With asynchronous replication, applications receive I/O completion confirmation only from the primary copy, allowing continued operation without waiting for additional confirmation from the second copy. The replication process managed between the two disk arrays allows them to be out of step or for the second copy to complete its I/O command one or two steps later. This allows the application to run at full speed with less I/O latency, but also mandates keeping track of the outstanding I/O commands between the primary and secondary copies in the event of failure. In that case, the second copy would only be valid once the log of incremental updates was written and confirmed. Looking at mirroring, synchronous, and asynchronous replication together, each has its own strengths depending on performance and geography. True mirroring is best suited for local, controlled environments where the likelihood of a network failure between the two mirrors is extremely low. This often means that mirroring takes place within a single disk array, eliminating network interference as a potential way to break the mirror. Mirroring also offers applications the highest read performance of these options. Trading time for distance, or performance for remote disaster recovery storage, synchronous mirroring would be the next choice. Here, applications may detect some latency, but the remote storage provides data protection benefits not delivered with a local mirror. Since synchronous mirroring requires completion of both primary and secondary I/O operations, the network link must have reasonable performance and quality of service. Asynchronous replication stretches the balance between time and distance one notch further. Though the primary application will operate in real time without having to wait for secondary I/O completion, the incremental gap in outstanding commands between the two copies adds some time in the event of recovery. Vendor implementations of remote mirroring and replication include
The basic functionality of remote replication is shown in Figure 3-16. Figure 3-16. Comparing asynchronous and synchronous replication.
|