[Linux-cluster] Arbitrary heuristics

Lon Hohberger lhh at redhat.com
Tue Nov 20 20:25:12 UTC 2007


On Tue, 2007-11-20 at 08:26 -0800, Scott Becker wrote:
> Lon Hohberger wrote: 
> >   
> I got that. As far as I can tell, that line will only work in a
> quorumd tag which as far as I can tell I can not use without setting
> up a shared volume (which I have no hardware for at this time).

Correct, it needs a shared volume.  Without one, you should use cman
two_node mode.

> Will this heuristic or something similar work in <rm> or anywhere
> else?

I don't think so - at least, not in the way you want it to.

> I got a "script" resource added to my "IP address" service to
> disqualify a node from running it when it can't reach the gateway but
> when I simulate an error it tries all nodes (good) and then gives up
> and doesn't retry when the error is resolved (bad).

That's mostly because there's no mechanism to trigger service
transitions from external sources (except user requests).

So what you're trying to do is prevent starting a service unless X is
present (which it sounds like you succeeded in doing), where X is
something not on the cluster.  What you want to do now is retry starting
the service if X should become available.  Is that about right?

Simplest thing right now is to use 'mon' or another script outside the
cluster to enable/disable the service when resources become available
(or not).

e.g.: http://mon.wiki.kernel.org/index.php/Main_Page

I do not think making rgmanager do it internally would be difficult, at
least not in the RHEL5 branch.  You should file a bugzilla.

Either of the two solutions (using 'mon' or adding it to rgmanager)
should obviate the need for augmenting your service, too - if the
resource is unavailable, the service won't start (ever, assuming you
have autostart="0"), so there's no reason to keep the check in the
service itself.

-- Lon




More information about the Linux-cluster mailing list