Replication Actions
You can exercise native replication control operations from Dell storage arrays by performing “Actions” on the replicated group of volumes using the DellCSIReplicationGroup
(RG) object.
You can patch the DellCSIReplicationGroup
Custom Resource (CR) and set the action field in the spec to one of the allowed values (refer to tables in this document).
When you set the action field in the Custom Resource object, the following happens:
- State of the RG CR is set to
action_in_progress
. For e.g. if you set the action field to SYNC, then the state will change to SYNC_IN_PROGRESS, action field will reset to empty - dell-csi-replicator sidecar issues the command to the CSI driver to perform the appropriate action
- Once the CSI driver has completed the operation, State of the RG CR goes back to Ready
While the action is in progress, you shouldn’t update the action field. Any attempt to change the action field will be rejected and it will be reset to empty. There are certain pre-requisites that have to be fulfilled before any action can be done on the RG CR. For example, you can’t perform a Reprotect without doing a Failover first. There are some “Workflows” defined in Disaster Recovery which provide a sequence of operations for some common use-cases. An important exception to these rules is the action UNPLANNED_FAILOVER, which can be run at any time.
NOTE: Throughout this document, we are going to refer to “Site A” as the original source site & “Site B” as the original target site.
Site Specific Actions
These actions can be run at any site, but they have some site-specific context included.
Any action with the LOCAL suffix means, do this action for the local site. Any action with the REMOTE suffix means do this action for the remote site.
For example:
- If the CR at
Site A
is patched with action FAILOVER_REMOTE, it means that the driver will attempt toFail Over
to Site B which is the remote site. - If the CR at
Site B
is patched with action FAILOVER_LOCAL, it means that the driver will attempt toFail Over
to Site B which is the local site. - If the CR at
Site B
is patched with REPROTECT_LOCAL, it means that the driver willRe-protect
the volumes at Site B which is the local site.
The following table lists details of what actions should be used in different Disaster Recovery workflows & the equivalent operation done on the storage array:
Workflow | Actions | PowerMax | PowerStore | PowerScale | PowerFlex |
---|---|---|---|---|---|
Planned Migration | FAILOVER_LOCAL FAILOVER_REMOTE |
symrdf failover -swap | FAILOVER (no REPROTECT after FAILOVER) | allow_writes on target, disable local policy | FAILOVER (no REPROTECT after FAILOVER) |
Reprotect | REPROTECT_LOCAL REPROTECT_REMOTE |
symrdf resume/est | REPROTECT | Delete policy on source, create policy on target | REPROTECT |
Unplanned Migration | UNPLANNED_FAILOVER_LOCAL UNPLANNED_FAILOVER_REMOTE |
symrdf failover -force | FAILOVER (at target site) | allow_writes on target | FAILOVER (at target site) |
Maintenance Actions
These actions can be run at any site and are used to change the replication link state for maintenance activities. The following table lists the supported maintenance actions and the equivalent operation done on the storage arrays:
Action | Description | PowerMax | PowerStore | PowerScale | PowerFlex |
---|---|---|---|---|---|
SUSPEND | Temporarily suspend replication |
symrdf suspend | PAUSE | disable local policy | PAUSE |
RESUME | Resume replication | symrdf resume | RESUME | enable local policy | RESUME |
SYNC | Synchronize all changes from source to target |
symrdf establish | SYNCHRONIZE NOW | start syncIQ job | SYNC NOW |
How to perform actions
We strongly recommend using repctl
to perform any actions on DellCSIReplicationGroup
objects. You can find detailed steps here.
If you wish to use kubectl
to perform actions, then use kubectl edit/patch operations and set the action
field in the Custom Resource.
While performing site-specific actions, please consult each driver’s documentation to get an exhaustive list of all the supported actions.
For a brief guide on using actions for various DR workflows, please refer to this document.
Deleting Replication Groups
To delete a replication group from a cluster, the group must be empty. This means that all associated replication pairs must have been deleted/removed.
This command will delete the empty replication group from the cluster and the associated replication group from the backend array.
kubectl delete rg <rg-id>
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.