[ClusterLabs] Using "mandatory" startup order but avoiding depending clones from restart after member of parent clone fails

Ken Gaillot kgaillot at redhat.com
Wed Feb 8 22:18:10 EST 2017

On 02/06/2017 05:25 PM, Alejandro Comisario wrote:
> guys, really happy to post my first doubt.
> i'm kinda having an "conceptual" issue that's bringing me, lots of issues
> i need to ensure that order of starting resources are mandatory but
> that is causing me a huge issue, that is if just one of the members of
> a clone goes down and up (but not all members) all resources depending
> on it are restarted (wich is bad), my workaround is to set order as
> advisory, but that doesnt asure strict order startup.
> eg. clone_b runs on servers_B, and depends on clone_a that runs on servers_A.
> I'll put an example on how i have everything defined between this two clones.
> ### clone_A running on servers A (location rule)
> primitive p_mysql mysql-wss \
> op monitor timeout=55 interval=60 enabled=true on-fail=restart \
> op start timeout=475 interval=0 on-fail=restart \
> op stop timeout=175 interval=0 \
> params socket="/var/run/mysqld/mysqld.sock"
> pid="/var/run/mysqld/mysqld.pid" test_passwd="XXX" test_user=root \
> meta is-managed=true
> clone p_mysql-clone p_mysql \
> meta target-role=Started interleave=false globally-unique=false
> location mysql_location p_mysql-clone resource-discovery=never \
> rule -inf: galera ne 1
> ### clone_B running on servers B (location rule)
> primitive p_keystone apache \
> params configfile="/etc/apache2/apache2.conf" \
> op monitor on-fail=restart interval=60s timeout=60s \
> op start on-fail=restart interval=0 \
> meta target-role=Started migration-threshold=2 failure-timeout=60s
> resource-stickiness=300
> clone p_keystone-clone p_keystone \
> meta target-role=Started interleave=false globally-unique=false
> location keystone_location p_keystone-clone resource-discovery=never \
> rule -inf: keystone ne 1
> order p_clone-mysql-before-p_keystone INF: p_mysql-clone p_keystone-clone:start
> Again just to make my point, if p_mysql-clone looses even one member
> of the clone, ONLY when that member gets back, all members of
> p_keystone-clone gets restarted, and thats NOT what i need, so if i
> change the order from mandatory to advisory, i get what i want
> regarding behaviour of what happens when instances of the clone comes
> and goes, but i loos the strictness of the startup order, which is
> critial for me.
> How can i fix this problem ?
> .. can i ?

I don't think pacemaker can model your desired situation currently.

In OpenStack configs that I'm familiar with, the mysql server (usually
galera) is a master-slave clone, and the constraint used is "promote
mysql then start keystone". That way, if a slave goes away and comes
back, it has no effect.

More information about the Users mailing list