Ever wonder what
meta interleave really means in a Pacemaker clone
definition? We’ll explain.
interleave meta attribute is only valid on Pacemaker clone
definitions – and their extended version of sorts, master/slave
sets. It’s not available on primitives and groups. Clones are often
used in configurations involving cluster filesystems, such as GFS2
(here’s an example).
Consider the following example (primitive definitions omitted to keep this short):
clone cl_foo p_foo meta interleave=false clone cl_bar p_bar meta interleave=false order o_foo_before_bar inf: cl_foo cl_bar
What this means is for the
order constraint to be fulfilled, all
cl_foo must start before any instance of
can. Often, that’s not what you want.
In contrast, consider this:
clone cl_foo p_foo meta interleave=true clone cl_bar p_bar meta interleave=true order o_foo_before_bar inf: cl_foo cl_bar
Here, for each node, as soon as the local instance of
started, the corresponding local instance of
cl_bar can, too. This
is what’s usually desired – when in doubt, allow interleaving.
One thing that often throws people is that interleaving only works when Pacemaker is configured to run the same number of instances of two clones on the same node. Thus,
clone cl_foo p_foo\ meta interleave=true \ globally-unique=true clone-node-max=2 clone cl_bar p_bar meta interleave=false order o_foo_before_bar inf: cl_foo cl_bar
… won’t work, as Pacemaker is allowed to run 2 instances of
on the same node, but only one of
cl_bar (the default for
clone-node-max is 1).
globally-unique=true is a requirement for any
clone-node-max>1 – which means that interleaving between a
globally-unique and a not globally-unique clone is also not supported.
This article originally appeared on the
hastexo.com website (now defunct).