- Deploy cluster1 VRG with
Spec.ReplicationState: primary
in application's namespace - Wait for cluster1 VRG condition
ClusterDataProtected
indicating application's Kube objects have been protected
- Delete VRG with
Spec.ReplicationState: primary
to delete its Kube object replicas orSpec.ReplicationState: secondary
to preserve them
- Fence cluster1 and cluster2 VRGs from each other's Kube object
replicas
- This is typically accomplished by network fencing
- Fence cluster1 and cluster2 VRGs from each other's volume data
- For
async
mode, this is typically accomplished by setting cluster2 VRGspec.replicationState: primary
- For
sync
mode, this is typically accomplished by network fencing
- For
- Deploy cluster2 VRG with
spec.replicationState: primary
in thenamespace
it was in and with thename
it had on cluster1- Kube objects are recovered from the first available replica store specified
in VRG's
spec.s3Profiles
containing a replica for itsnamespace
andname
- Kube objects are recovered from the first available replica store specified
in VRG's
- Wait for cluster2 VRG condition
ClusterDataReady
indicating its Kube objects have been recoveredDataReady
indicating its volumes have been recovered
- cluster2 application protection resumes automatically
- Set cluster1 VRG
spec.replicationState: secondary
andspec.action: Failover
- This disables its Kube object replication and preserves its Kube object replicas when VRG is deleted in a subsequent step
- Undeploy cluster1 application
- Its PVCs can finally be deleted once VRG is deleted in a subsequent step
- This allows its Kube objects to be recovered in a subsequent step
- Wait for cluster1 VRG
Status.State: Secondary
indicating volume data and Kube object replication can resume from cluster2 to cluster1 - Delete cluster1 VRG
- This allows its PVCs to finally be deleted
- Unfence cluster1 and cluster2 VRGs from each other's Kube object
replicas
- This is typically accomplished by network unfencing
- Unfence cluster1 and cluster2 VRGs from each other's volume data
- For
async
mode, this is accomplished when cluster1 VRGstatus.state: Secondary
- For
sync
mode, this is typically accomplished by network unfencing
- For
- Quiesce cluster2 application Kube objects
- Desired quiesced states in captured Kube objects are reset in a subsequent step
- Set cluster2 VRG
spec.replicationState: secondary
andspec.action: Relocate
- Wait for cluster2 VRG condition
ClusterDataProtected
indicating Kube objects have been replicated to cluster1 - Undeploy cluster2 application
- Its PVCs can finally be deleted once VRG is deleted in a subsequent step
- Wait for cluster2 VRG
status.state: Secondary
- Wait for cluster2 VRG condition
DataProtected
indicating cluster1's volume data are synchronized with cluster2's - Deploy cluster1 VRG with
spec.replicationState: primary
to recover its volumes and Kube objects - Wait for cluster1 VRG condition
ClusterDataReady
indicating its Kube objects have been recoveredDataReady
indicating its volumes have been recovered
- cluster1 application protection resumes automatically
- Unquiesce cluster1 application Kube objects
- Reset desired quiesced states in recovered Kube objects
- Delete cluster2 VRG
- This allows its PVCs to finally be deleted