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

GET Replication API : Make it functional. #58

Open
rajat-soda opened this issue Nov 19, 2020 · 2 comments
Open

GET Replication API : Make it functional. #58

rajat-soda opened this issue Nov 19, 2020 · 2 comments

Comments

@rajat-soda
Copy link

rajat-soda commented Nov 19, 2020

Issue/Feature Description:
Make the GET API work for Replication Feature and add the documentation for it.

Why this issue to fixed / feature is needed(give scenarios or use cases):

How to reproduce, in case of a bug:

Other Notes / Environment Information: (Please give the env information, log link or any useful information for this issue)

@rajat-soda rajat-soda changed the title GET Replication API : Make it work. GET Replication API : Make it functional. Nov 19, 2020
@kumarashit kumarashit added this to the Iter2_30Nov2020 milestone Nov 20, 2020
@rajat-soda
Copy link
Author

Following are the findings for Host Based Replication.

The following approaches have been tried for enabling replication.

  1. Devsds Single node setup : As both the Primary and Secondary(replica) devices are on the same node, due to single node setup, Replication fails with error [EnableReplication-fm' failed: rpc error: code = Unknown desc = exit status 1]

  2. Ansible Multi-node setup : Dock was getting installed on both Primary & Secondary nodes, however secondary Dock was not receiving OSDSCTL commands.

  3. Devsds multi-node setup :
    Even though in some instances, the Volume creation and attach was successful on Primary & Secondary hosts.
    The Enable Replication failed with [EnableReplication-fm' failed: rpc error: code = Unknown desc = exit status 1].
    Another issue observed is that, all the osdsctl commands are going though the Primary Controller-Dock and not to the Secondary Controller-Dock.
    However, the code [dock\pkg\model\replication.go] is written with the assumption that its executed simultaneously on both Primary and Secondary Nodes.
    As the simultaneous execution of the above code block was not happening the DRBD configuration / metadata was not getting created on both the Nodes, which is an expectation for DRBD to work successfully.
    Hence, the current implementation is not suitable for Replication feature and other alternatives should be explored.

    Enhancements would need be made to
    - Make Pool creation consistent and reliable.

    • Execution of Dock commands in a purely distributed manner.
    • Scale tests to be done for Controller-Dock for at least 4-8 nodes or more.
In all the above approaches the following steps were missing
  1. /etc/opensds/driver/drbd.yaml was missing.
  2. Dock entry for drbd was missing in ETCD.
  3. Enable drivers "lvm,drbd" in /etc/opensds/opensds.conf
    Other issues observed :
    - Pool created on the primary/secondary host was not getting discovered.
    - Pool which were discovered earlier, were going into Unavailable state.
    - Due to this the volumes created earlier were getting invalidated.

@rajat-soda
Copy link
Author

As there is no more action to be taken on this task , it can be closed.
#65 Revamp Host Based Replication using new framework/API from LinBit. has been opened to track the task

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

No branches or pull requests

2 participants