On Nov 12, 2007, at 2:29 PM, Cousin Marc wrote:
Hi,
I'm trying to figure out the actual behaviour of heartbeat (I'm using
2.1.2+hg.11310.702e4f418ca8-2, as provided for debian sid)
I'm sorry if it's a bit long and complicated, don't hesitate to ask
me to
clarify some parts ...
I've detailed the steps I'm following, as I've found several docs in
the wiki
contradicting each other.
I'm trying for my tests to build a 3 node cluster (drbdtest1, 2 and
3), with 2
nodes hosting a drbd device, and one resource group having to be
collocated
with the master drbd resource.
First, I create a drbd resource ...
No problem here. Without constraints, it's running anywhere.
I'm adding a location constraint telling heartbeat not to run on
drbdtest3 ...
cibadmin -o constraints -C -X '
<rsc_location id="place_r0" rsc="cloner0">
<rule id="prefered_place_r0" score="-INFINITY">
<expression attribute="#uname" id="colocr0_1"
operation="eq"
value="drbdtest3"/>
</rule>'
that will work, but you're better off with a rsc_colcation constraint
(also set the score=-INFINITY)
It's OK, now it's not running on the third node. It's activating a
master on
drbdtest1.
Then I create my resource group ('applisr0'), with no constraints
for now.
It's OK, but of course, with no constraints, it's not running where
it should.
In fact, it's running on the third node.
Then I put a constraint telling it not to run on a stopped node.
cibadmin -o constraints -C -X '<rsc_colocation
id="r0_et_applis_stopped"
from="applisr0" to="cloner0" to_role="stopped" score="-INFINITY"/>
It's not working. The group is still trying to start on the third
node.
Instead of a double negative, just go with a positive:
cibadmin -o constraints -C -X '<rsc_colocation id="r0_et_applis"
from="applisr0" to="cloner0" score="INFINITY"/>
I've tried a lot of other configurations. I think that 'stopped' is
not
working...
The most obvious way to verify it is this :
if I replace the previous constraint with :
cibadmin -o constraints -U -X '<rsc_colocation
id="r0_et_applis_stopped"
from="applisr0" to="cloner0" to_role="stopped" score="+INFINITY"/>'
the resource isn't running anywhere. I think it means that every
node is
considered to be in the stopped role.
I can make it work this way :
cibadmin -o constraints -C -X '<rsc_colocation
id="r0_et_applis_master"
from="applisr0" to="cloner0" to_role="master" score="+INFINITY"/>'
So, to sum it up, it seems to me that the stopped role is seen as
true on
every node...
Am I right ?
For clones, this may be correct.
Most people find the regular way sufficient but there's no argument
that the double negative should also work.
If you'd like to log a bug in bugzilla I will make sure it gets fixed.
I would rather have a configuration where I tell heartbeat what it
cannot do
and leave it as free as possible (as I've seen in most examples),
instead of
forcing it.
BTW, I was using this doc : http://linux-ha.org/v2/Concepts/MultiState
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems