[ClusterLabs] Sub-clusters / super-clusters?

Klaus Wenninger kwenning at redhat.com
Tue Aug 3 05:14:51 EDT 2021


On Tue, Aug 3, 2021 at 10:41 AM Antony Stone <Antony.Stone at ha.open.source.it>
wrote:

> On Tuesday 11 May 2021 at 12:56:01, Strahil Nikolov wrote:
>
> > Here is the example I had promised:
> >
> > pcs node attribute server1 city=LA
> > pcs node attribute server2 city=NY
> >
> > # Don't run on any node that is not in LA
> > pcs constraint location DummyRes1 rule score=-INFINITY city ne LA
> >
> > #Don't run on any node that is not in NY
> > pcs constraint location DummyRes2 rule score=-INFINITY city ne NY
> >
> > The idea is that if you add a node and you forget to specify the
> attribute
> > with the name 'city' , DummyRes1 & DummyRes2 won't be started on it.
> >
> > For resources that do not have a constraint based on the city -> they
> will
> > run everywhere unless you specify a colocation constraint between the
> > resources.
>
> Excellent - thanks.  I happen to use crmsh rather than pcs, but I've
> adapted
> the above and got it working.
>
> Unfortunately, there is a problem.
>
> My current setup is:
>
> One 3-machine cluster in city A running a bunch of resources between them,
> the
> most important of which for this discussion is Asterisk telephony.
>
> One 3-machine cluster in city B doing exactly the same thing.
>
> The two clusters have no knowledge of each other.
>
> I have high-availability routing between my clusters and my upstream
> telephony
> provider, such that a call can be handled by Cluster A or Cluster B, and
> if
> one is unavailable, the call gets routed to the other.
>
> Thus, a total failure of Cluster A means I still get phone calls, via
> Cluster
> B.
>
>
> To implement the above "one resource which can run anywhere, but only a
> single
> instance", I joined together clusters A and B, and placed the
> corresponding
> location constraints on the resources I want only at A and the ones I want
> only at B.  I then added the resource with no location constraint, and it
> runs
> anywhere, just once.
>
> So far, so good.
>
>
> The problem is:
>
> With the two independent clusters, if two machines in city A fail, then
> Cluster A fails completely (no quorum), and Cluster B continues working.
> That
> means I still get phone calls.
>
> With the new setup, if two machines in city A fail, then _both_ clusters
> stop
> working and I have no functional resources anywhere.
>
Why that? If you are talking about quorum a 4-node partition in a 6-node
cluster should be quorate.
Not saying the config is ideal though. Even node number ...
And when city A doesn't see city B you end up with 2 3-node partitions
that aren't quorate without additional measures.
Did you consider booth? Might really be a better match for your problem.

Klaus

>
>
> So, my question now is:
>
> How can I have a 3-machine Cluster A running local resources, and a
> 3-machine
> Cluster B running local resources, plus one resource running on either
> Cluster
> A or Cluster B, but without a failure of one cluster causing _everything_
> to
> stop?
>
>
> Thanks,
>
>
> Antony.
>
> --
> One tequila, two tequila, three tequila, floor.
>
>                                                    Please reply to the
> list;
>                                                          please *don't* CC
> me.
> _______________________________________________
> Manage your subscription:
> https://lists.clusterlabs.org/mailman/listinfo/users
>
> ClusterLabs home: https://www.clusterlabs.org/
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clusterlabs.org/pipermail/users/attachments/20210803/b3c593a9/attachment-0001.htm>


More information about the Users mailing list