Link Management and Resynchronization with Synchronous Replication

Resynchronization is a process where data is sent from the upstream pool partner to the downstream pool partner to ensure that the data at both partners is in-sync, or the same. If the two sites become out-of-sync, for example, through a pause in system connectivity, a resynchronization is performed to bring the two sites back in-sync.

Upon creation, the entire data set from the upstream volume collection is sent to the downstream volume collection. This is the initial synchronization, also known as seeding.

When a link breaks, such as a TCP link or a TCP connection and cannot be reestablished for 30 seconds, the volume transitions to an out-of-sync state.

When the volume collection is out-of-sync, new writes are not replicated to the downstream partner.

After the TCP link is restored, a resynchronization is needed to bring the arrays back into an in-sync state. The replicated volumes are scanned, and blocks that have been written since the link broke are sent to the downstream array. Volumes continue to accept I/O during the resynchronization process, and when the resynchronization is complete, the volume collection returns to an in-sync state.

In some cases a resynchronization sends more than just the missing data. For example, when you restore a volume to a snapshot or a new volume is created by cloning, the resynchronization process sends all data that has changed since the last snapshot that is common between the upstream and the downstream volume.

This type of resynchronization also happens if you remove (unconfigure) synchronous replication from a volume, and later reconfigure it, for example, by removing and later re-adding the volume to its volume collection, or by removing and recreating the synchronous replication schedule.