[ClusterLabs] Complex Pacemaker resource depedency

Vassilis Aretakis vassilis at onlab.xyz
Tue Sep 11 18:23:58 UTC 2018


On 11/09/2018 20:09, Andrei Borzenkov wrote:
> 11.09.2018 20:57, Ken Gaillot пишет:
>> On Mon, 2018-09-10 at 21:46 +0200, Vassilis Aretakis wrote:
>>> Hi All,
>>>
>>> I have a Pacemaker which failovers IPs around 5 nodes. I want to add
>>> an
>>> default Route on each node, when this node has at least one of the
>>> resources running.
>>>
>>>
>>> The resources are:
>>>
>>>    vip1-19    (ocf::heartbeat:IPaddr2):    Started b01.
>>>    vip1-20    (ocf::heartbeat:IPaddr2):    Started bm02.
>>>    vip1-21    (ocf::heartbeat:IPaddr2):    Started eworker01.
>>>    vip1-22    (ocf::heartbeat:IPaddr2):    Started eworker02.
>>>    vip1-23    (ocf::heartbeat:IPaddr2):    Started eworker03.
>>>    vip1-24    (ocf::heartbeat:IPaddr2):    Started b02.
>>>    vip1-25    (ocf::heartbeat:IPaddr2):    Started eworker01.
>>>    vip1-26    (ocf::heartbeat:IPaddr2):    Started eworker02.
>>>    vip1-27    (ocf::heartbeat:IPaddr2):    Started b01.
>>>    vip1-28    (ocf::heartbeat:IPaddr2):    Started eworker03.
>>>    vip1-29    (ocf::heartbeat:IPaddr2):    Started eworker01.
>>>    vip1-30    (ocf::heartbeat:IPaddr2):    Started eworker02.
>>>
>>> The Resource which brings up the Route is:
>>>
>>>    Clone Set: r1-clone [r1]
>>>        Started: [ b01. b02. eworker01. eworker02. eworker03. ]
>>>
>>> If one nodes starts then the r1-clone cannot start, because it has no
>>> IP
>>> assigned on that interface and therefore cannot add route.
>>> I have to manually cleanup this resource to make it work.
>>>
>>> What do you suggest to make these resources always come up after at
>>> least one ip is running on the servers?
>>>
>>>
>>> Regards,
>>>
>>> Vass
>> If I understand the question correctly, you want resource sets (in an
>> ordering constraint, with require-all=false):
>>
>> http://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/1.1/html-single/Pacemaker_Explained/index.html#s-resource-sets
>>
> I do not see how resource set can be used here. There is no way to
> express "if any of member of resource set is active on specific node,
> start specific resource (instance) on this node, but allow different
> resources be active on different nodes". Colocation with resource set
> requires that all active resources are active on the same node.
> _______________________________________________

Basically I want this:
If at least one resource runs on the node (Per node), the start the 
clone (route) on that node)

I though of scripting the way of it, and set attributes per node based 
on the results.


More information about the Users mailing list