Resync a protection group
POST/v1/protection-groups/:id/resync
Stands this region's copy of the workload down after the other region took it over without a release, keeping what was written here as a backup first. Runs where the group's custody is active and the other region has recorded taking the group at the custody epoch held here or above, which is what puts a group in split_brain_risk; without such a record it is refused with no_newer_custody_elsewhere. Only an operator can start one, and only by confirming with confirm_discard_local_writes.
The run pauses the members' plans, locks and stops their servers, then asks of each member whether anything changed after the point the other region recovered from, by comparing its disks with that point's snapshot; a member that cannot be compared is taken to have changed. Each member that changed is backed up first, labelled with the cloud and epoch it diverged from, so what was written here can be restored later like any backup. The group's custody here then becomes standby at the other region's epoch, which is the run's point of no return, and the resync is recorded for the other region to read. At the group's home, each member then holds that backup, or the point the other region recovered from when nothing changed, for the failback that returns to it. A failure before the point of no return starts the servers again and leaves the group as it was, split_brain_risk included.
Operator only: needs a system-scoped token.
Request
Responses
- 200
- 202
- 400
- 401
- 403
- 404
- 409
- 413
- 415
- 422
- 503
- default
OK.
With dry_run=true, the plan the run would follow. Nothing was started.
Accepted
Bad Request.
invalid_request: The body is not a single JSON object, names a field this operation does not take, or gives a value of the wrong type.
Unauthorized.
unauthenticated: The token is missing, expired or not valid.
Forbidden.
forbidden: The token is not an operator token.
Not Found.
not_found: No group with this id exists.
Conflict.
group_busy: A run is acting on the group.
custody_not_active: Nothing runs here to stand down, because the group's custody here is standby or released.
no_newer_custody_elsewhere: The other region has recorded no recovery of the group at the custody epoch held here or above.
Request Entity Too Large.
body_too_large: The body is larger than the service accepts.
Unsupported Media Type.
unsupported_media_type: The body is not sent as application/json.
Unprocessable Entity.
resync_unconfirmed: confirm_discard_local_writes is missing or false.
member_not_under_group_policy: A member's server is protected by no plan under the group's policy, so what diverged on it cannot be backed up; an operator may skip that backup by name.
image_not_found_by_global_id: For a hot group, no image here carries a member's disk's mirror global id, so it cannot be resynced.
Service Unavailable.
dr_not_enabled: Disaster recovery is not enabled here, or this cloud cannot stop, lock or start servers, which the detail names.
An error, as an RFC 7807 problem document.