[Pacemaker] Re: Understanding rules: location, colocation, order. Using with Master/Slave

Serge Dubrouski sergeyfd at gmail.com
Mon Oct 27 14:18:54 EDT 2008


On Mon, Oct 27, 2008 at 12:07 PM, Adrian Chapela
<achapela.rexistros at gmail.com> wrote:
>
>> Hello!
>>
>> I am working on a cluster with a two Master/Slave instances.
>>
>> I have: 2 drbd Master/Slave instance, 1 pingd clone instance, 1 group with
>> Filesystem resource.
>>
>> ms-drbd0 is the first Master/Slave
>> ms-drbd1 is the second Master/Slave
>> mail_Group is the first group, it depends on ms-drbd0
>> samba_Group is the second group, it depends on ms-drbd1
>>
>> I have the next rules:
>>
>> <rsc_order id="mail-drbd0_before_fs0" from="Montaxe_mail" action="start"
>> to="ms-drbd0" to_action="promote"/>
>> <rsc_order id="samba-drbd1_before_fs0" from="Montaxe_samba" action="start"
>> to="ms-drbd1" to_action="promote"/>
>> (starts Montaxe_mail when ms-drbd0 has been promoted, start Montaxe_samba
>> when ms-drbd1 has been promoted. These rules are ok, I think)
>>
>> <rsc_colocation id="mail_Group_on_ms-drbd0" to="ms-drbd0" to_role="master"
>> from="mail_Group" score="INFINITY"/>
>> <rsc_colocation id="samba_Group_on_ms-drbd1" to="ms-drbd1"
>> to_role="master" from="samba_Group" score="INFINITY"/>
>> (Run mail_Group only on the master node, run samba_Group on the master
>> node)
>>
>> <rsc_location id="mail:drbd" rsc="ms-drbd0">
>> <rule id="rule:ms-drbd0" role="master" score="100">
>>    <expression  attribute="#uname" operation="eq" value="debianquagga2"/>
>> </rule>
>> <rule id="mail_Group:pingd:rule" score="-INFINITY" boolean_op="or">
>>     <expression id="mail_Group:pingd:expr:undefined" attribute="pingd"
>> operation="not_defined"/>
>>     <expression id="mail_Group:pingd:expr:zero" attribute="pingd"
>> operation="lte" value="0"/>
>> </rule>
>> </rsc_location>
>> <rsc_location id="samba:drbd" rsc="ms-drbd1">
>> <rule id="rule:ms-drbd1" role="master" score="100">
>>    <expression  attribute="#uname" operation="eq" value="debianquagga2"/>
>> </rule>
>> <rule id="samba_Group:pingd:rule" score="-INFINITY" boolean_op="or">
>>     <expression id="samba_Group:pingd:expr:undefined" attribute="pingd"
>> operation="not_defined"/>
>>     <expression id="samba_Group:pingd:expr:zero" attribute="pingd"
>> operation="lte" value="0"/>
>> </rule>
>> </rsc_location>
>> (Select debianquagga2 as Master and if the node lost its connection take
>> the score -INFINITY to do failover, it applies to ms-drbd0 and ms-drbd1)
>>
>> With this rules all is working very well but the node selected as master
>> isn't "debianquagga2",   Why could be the reason ?
>>
>> I using Heartbeat 2.1.4
>>
>
> I have attached the cib xml file. If I delete two groups, Master is
> debianQuagga2, If not, Master is debianQuagga1.

That probably has something to do with how scores are counted for
groups. In your rsc_location rule for masters you have a really low
score for assigning master role to debianquagga2. It's possible that
groups outscore them with default values. I'm not sure in that, that's
just mu guess. You probably can check this with show score scripts.

I'd try to assign rsc_location rules to groups, not to master role.
Your collocation rule will control that groups are on the same nodes
with the masters. Or you can try to increase your scores from 100 to
something higher.

>
> _______________________________________________
> Pacemaker mailing list
> Pacemaker at clusterlabs.org
> http://list.clusterlabs.org/mailman/listinfo/pacemaker
>
>



-- 
Serge Dubrouski.




More information about the Pacemaker mailing list