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

Adrian Chapela achapela.rexistros at gmail.com
Wed Oct 29 03:39:50 EDT 2008


Andrew Beekhof escribió:
> On Tue, Oct 28, 2008 at 18:22, Adrian Chapela
> <achapela.rexistros at gmail.com> wrote:
>   
>> Serge Dubrouski escribió:
>>     
>>> On Tue, Oct 28, 2008 at 6:29 AM, Adrian Chapela
>>> <achapela.rexistros at gmail.com> wrote:
>>>
>>>       
>>>> 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 ?
>>>>
>>>>         
>>> pingd is broken in 1.0 :-( Andrew fixed it in the latest dev release.
>>>
>>>       
>> OK, but Adrew said me this morning that bug was fixed in last stable code. I
>> have downloaded Pacemaker-1-0-79d2ba7e502f but pingd seems broken as well.
>>     
>
> I'm pretty sure it works - but its a good idea to log a bug (and add a
> hb_report tarball) anyway
>   
Yes I know. I will test with a two clean systems today (If I can...). If 
for me it stills not working I will open a bug.

>   
>> If I delete the pingd rule Group is starting but if I don't delete the rule
>> the Group is not starting.
>>
>> Another thing  is the master selection, it is wrong in my case, using your
>> config Sergei. Could you try changing the master node from fc-node1 and
>> fc-node2 ?
>>
>> Thank you!
>>
>>     
>>>>>> 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
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>
>>>>>           
>>>> _______________________________________________
>>>> 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