Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PowerScale Replication: Failback, reprotect and improvements #159

Merged
merged 25 commits into from
Jan 6, 2023

Conversation

santhoshatdell
Copy link
Contributor

@santhoshatdell santhoshatdell commented Dec 14, 2022

Description

  • Replication improvements: Replication on the PowerScale only needs a SyncIQ policy on the source side. Having policy on both source and target arrays made things complicated. So target side policy creation has been avoided and reworked existing actions and replication group status.
  • Failback functionality has been implemented so that user can recover from failover state.
    • Both modes of failback are implemented (KEEP-SOURCE and KEEP-TARGET).
  • Reprotect functionality has been implemented so that user can reprotect the target site after failover. Please note that if user wants to reprotect source site, he should run failback_discard_changes action.

GitHub Issues

List the GitHub issues impacted by this PR:

GitHub Issue #
dell/csm#558
dell/csm#532
dell/csm#573

Checklist:

  • I have performed a self-review of my own code to ensure there are no formatting, vetting, linting, or security issues
  • I have verified that new and existing unit tests pass locally with my changes
  • I have not allowed coverage numbers to degenerate
  • I have maintained at least 90% code coverage
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • Backward compatibility is not broken

How Has This Been Tested?

All supported actions along with new failback and reprotect actions are tested. During the tests, RG status (isSource property), SyncIQ policy on PowerScale arrays and data on the source & target PVs were continuously monitored.
Create PV/RG, suspend, resume, sync, failover, failback discarding remote changes, unplanned failover, failback discarding local changes, reprotect, and delete PV/RG.
Repctl tool RG status output is attached for reference.
test repctl output.txt
UnitTest.log

@santhoshatdell
Copy link
Contributor Author

Workflow failures are due to changes required in gopowerscale code. I will update this PR once the gopowerscale PR is merged.
service/replication.go:702:37: localIsiConfig.isiSvc.client.ModifyPolicy undefined (type *goisilon.Client has no field or method ModifyPolicy

@santhoshatdell santhoshatdell merged commit 12faea5 into main Jan 6, 2023
@santhoshatdell santhoshatdell deleted the replication-improvement branch January 6, 2023 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants