[ClusterLabs] resource cloned group colocations

Gerald Vogt vogt at spamcop.net
Thu Mar 2 02:41:08 EST 2023


Hi,

I am setting up a mail relay cluster which main purpose is to maintain 
the service ips via IPaddr2 and move them between cluster nodes when 
necessary.

The service ips should only be active on nodes which are running all 
necessary mail (systemd) services.

So I have set up a resource for each of those services, put them into a 
group in order they should start, cloned the group as they are normally 
supposed to run on the nodes at all times.

Then I added an order constraint
   start mail-services-clone then start mail1-ip
   start mail-services-clone then start mail2-ip

and colocations to prefer running the ips on different nodes but only 
with the clone running:

   colocation add mail2-ip with mail1-ip -1000
   colocation ip1 with mail-services-clone
   colocation ip2 with mail-services-clone

as well as a location constraint to prefer running the first ip on the 
first node and the second on the second

   location ip1 prefers ha1=2000
   location ip2 prefers ha2=2000

Now if I stop pacemaker on one of those nodes, e.g. on node ha2, it's 
fine. ip2 will be moved immediately to ha3. Good.

However, if pacemaker on ha2 starts up again, it will immediately remove 
ip2 from ha3 and keep it offline, while the services in the group are 
starting on ha2. As the services unfortunately take some time to come 
up, ip2 is offline for more than a minute.

It seems the colocations with the clone are already good once the clone 
group begins to start services and thus allows the ip to be removed from 
the current node.

I was wondering how can I define the colocation to be accepted only if 
all services in the clone have been started? And not once the first 
service in the clone is starting?

Thanks,

Gerald




More information about the Users mailing list