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

Think about integrating distributed lock managers #125

Open
jrha opened this issue May 22, 2018 · 5 comments
Open

Think about integrating distributed lock managers #125

jrha opened this issue May 22, 2018 · 5 comments

Comments

@jrha
Copy link
Member

jrha commented May 22, 2018

We would like to ensure that hosts in HA clusters cannot run components at the same time, an obvious solution to this would to be to use a distributed lock manager such as Zookeeper or etcd. This is to prevent outages when services get restarted on multiple hosts simutaneously.

One day it would really nice to be able to make use of aquilon's cluster metadata (e.g. down_hosts_threshold) with this functionality.

See locksmith for an example of a system used to control reboots of hosts – this is in fact very much what we would like to use, but we should be agnostic about the lock manager being used.

@jrha
Copy link
Member Author

jrha commented May 22, 2018

I guess pre_script could be used for this, but some care might be required to handle timeouts.

@stdweird
Copy link
Member

ncm-ncd already takes a lock, maybe extend that to a "global" lock somehow.

@ned21
Copy link
Contributor

ned21 commented May 22, 2018

+1 to implementing this via the pre-hook. Does your HA software provide anyway to take a lock within cluster? That would remove the need for an external arbitrator.

@jrha
Copy link
Member Author

jrha commented May 22, 2018

Mostly no, and it would be more useful to us as a generic solution (i.e. prevent too many of any arbitrary class of node being interrupted – e.g. backends behind loadbalancers, preventing a degradation in service rather than an outage).
We already have etcd for other purposes, so we're quite happy to extend it's reach.

@stdweird
Copy link
Member

@jrha wwill wrtie-up a blog post how they used prescript and etcd to help manage haproxy/keealived clusters

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

3 participants