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

Adrian Chapela achapela.rexistros at gmail.com
Tue Oct 28 08:29:50 EDT 2008


Serge Dubrouski escribió:
> On Mon, Oct 27, 2008 at 12:43 PM, Adrian Chapela
> <achapela.rexistros at gmail.com> wrote:
>   
>> Serge Dubrouski escribió:
>>     
>>> Something like this:
>>>
>>>      <rsc_order id="drbd0_before_myGroup" first="ms-drbd0"
>>> then="myGroup" then-action="start" first-action="promote"/>
>>>      <rsc_colocation id="myGroup_on_drbd0" rsc="myGroup"
>>> with-rsc="ms-drbd0" with-rsc-role="Master" score="INFINITY"/>
>>>      <rsc_location id="primNode" rsc="myGroup">
>>>        <rule id="prefered_primNode" score="1000">
>>>          <expression attribute="#uname" id="expression.id2242728"
>>> operation="eq" value="fc-node1"/>
>>>        </rule>
>>>      </rsc_location>
>>>
>>> See that cib.xml that I sent you a couple of days ago. First rule will
>>> promote DRBD before starting a group, second will collocate master and
>>> a group, third one will place group and master to the desired node.
>>>
>>>       
>> Yes, I bases my rules on yours, but I can't update my config with your rules
>> directly.
>> <rsc_order id="drbd0_before_myGroup" first="ms-drbd0" then="mail_Group"
>> then-action="start" first-action="promote"/>
>>
>> This could be like:
>> <rsc_order id="drbd0_before_myGroup" from="mail_Group" action="start"
>> to="ms-drbd0" to_action="promote"/>
>>
>> What is the version of your heartbeat ? My 2.99.1 heartbeat didn't
>>     
>
> It's processed by pacemaker, not heartbeat. That rule worked all right
> under 0.6, 0.7, 1.0:
>
> Refresh in 3s...
>
> ============
> Last updated: Mon Oct 27 14:52:47 2008
> Current DC: fc-node2 (ad6f19b7-228a-48b7-bae0-f95a838bde2a)
> 2 Nodes configured.
> 3 Resources configured.
> ============
>
> Node: fc-node1 (b88f98c6-50f2-463a-a6eb-51abbec645a9): online
> Node: fc-node2 (ad6f19b7-228a-48b7-bae0-f95a838bde2a): online
>
> Full list of resources:
>
> Clone Set: DoFencing
>     child_DoFencing:0   (stonith:external/xen0):        Started fc-node1
>     child_DoFencing:1   (stonith:external/xen0):        Started fc-node2
> Master/Slave Set: ms-drbd0
>     drbd0:0     (ocf::heartbeat:drbd):  Master fc-node1
>     drbd0:1     (ocf::heartbeat:drbd):  Started fc-node2
> Resource Group: myGroup
>     myIP        (ocf::heartbeat:IPaddr):        Started fc-node1
>     fs0 (ocf::heartbeat:Filesystem):    Started fc-node1
>     myPgsql     (ocf::heartbeat:pgsql): Started fc-node1
>
> [root at fc-node1 crm]# rpm -qa | grep pacemaker
> libpacemaker3-1.0.0-2.1
> pacemaker-1.0.0-2.1
> [root at fc-node1 crm]#
>
>
> What error do you get?
>   

I can update the configuration now. I have Heartbeat 2.99.1 + Pacemaker 
1.0. Bur now, I can't put Master on the node. Have you check fc-node2 as 
a master node?

How are you using pingd ? As a clone instance or  configured in ha.cf ?

>
>   
>> understand the rule.
>>     
>>> On Mon, Oct 27, 2008 at 12:24 PM, Adrian Chapela
>>> <achapela.rexistros at gmail.com> wrote:
>>>
>>>       
>>>> Serge Dubrouski escribió:
>>>>
>>>>         
>>>>> 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 will check that, thank you!
>>>>
>>>>         
>>>>> 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.
>>>>>
>>>>>
>>>>>           
>>>> Ok, but I need that node be a master before than start group because it
>>>> depends on the master / slave resource, is that possible changing
>>>> collocation ? Could you open my eyes with a simple example ?
>>>>
>>>>
>>>>         
>>>>>> _______________________________________________
>>>>>> Pacemaker mailing list
>>>>>> Pacemaker at clusterlabs.org
>>>>>> http://list.clusterlabs.org/mailman/listinfo/pacemaker
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>
>>>>>           
>>>> _______________________________________________
>>>> Pacemaker mailing list
>>>> Pacemaker at clusterlabs.org
>>>> http://list.clusterlabs.org/mailman/listinfo/pacemaker
>>>>
>>>>
>>>>         
>>>
>>>
>>>       
>> _______________________________________________
>> Pacemaker mailing list
>> Pacemaker at clusterlabs.org
>> http://list.clusterlabs.org/mailman/listinfo/pacemaker
>>
>>     
>
>
>
>   





More information about the Pacemaker mailing list