Skip to content
This repository has been archived by the owner on Dec 4, 2018. It is now read-only.

Commit

Permalink
interleave Pacemaker clones to minimise disruption (bsc#965886)
Browse files Browse the repository at this point in the history
By default, Pacemaker clones aren't interleaved.  This means that if
Pacemaker wants to restart a dead clone instance, and there is an order
constraint on that clone, it will do the same restart on all other
nodes, even if all the others are healthy.

More details on interleaving are here:

  https://www.hastexo.com/resources/hints-and-kinks/interleaving-pacemaker-clones/

This behaviour is far more disruptive than we want.  For example, in

  https://bugzilla.suse.com/show_bug.cgi?id=965886

we saw that when a network node dies and Pacemaker wants to stop the
instance of cl-g-neutron-agents on that node, it also stops and restarts
the same clone instances on the healthy nodes.  This means there is a
small window in which there are no neutron agents running anywhere.  If
neutron-ha-tool attempts a router migration during this window, it will
fail, at which point things start to go badly wrong.

In general, the cloned (i.e. active/active) services on our controller
and compute nodes should all behave like independent vertical stacks,
so that a failure on one node should not cause ripple effects on other
nodes.  So we interleave all our clones.

(There is a corresponding commit to crowbar-ha for the Apache clone.)

(cherry picked from commit bdde4b4dc2534e91bf1f2869a66491463134f8c1)
  • Loading branch information
Adam Spiers authored and jsuchome committed Mar 31, 2016
1 parent b2062ce commit bec9e6f
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
3 changes: 3 additions & 0 deletions chef/cookbooks/ceilometer/recipes/mongodb.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@

pacemaker_clone "cl-mongodb" do
rsc "mongodb"
meta ({
"interleave" => "true",
})
action [:create, :start]
only_if { CrowbarPacemakerHelper.is_cluster_founder?(node) }
end
Expand Down
3 changes: 3 additions & 0 deletions chef/cookbooks/ceilometer/recipes/server_ha.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@
pacemaker_clone "cl-#{group_name}" do
rsc group_name
action [ :create, :start]
meta ({
"interleave" => "true",
})
only_if { CrowbarPacemakerHelper.is_cluster_founder?(node) }
end

Expand Down

0 comments on commit bec9e6f

Please sign in to comment.