No subject


Fri Oct 28 02:41:40 EDT 2011


the stock "Dummy" and "Stateful" RAs.

=20

primitive testStateful ocf:heartbeat:Stateful \

        op start interval=3D"0" timeout=3D"1800s" \

        op stop interval=3D"0" timeout=3D"45s" \

        op monitor interval=3D"10s"

=20

primitive testDummy ocf:heartbeat:Dummy \

        op monitor interval=3D"20" timeout=3D"10"

=20

ms testStateful-ms testStateful \

        meta target-role=3D"Started" master-max=3D"1" =
master-node-max=3D"1"
clone-max=3D"2" clone-node-max=3D"1" notify=3D"true" ordered=3D"false"
globally-unique=3D"false" is-managed=3D"true"

=20

clone testDummy-clone testDummy \

        meta target-role=3D"Started"

=20

order testDummy-testStateful-order inf: testDummy-clone
testStateful-ms:start

=20

I then perform some experiments:

1)      If the testDummy instance on the same node as the
testStateful:slave instance fails, both the testStateful:slave and
testStateful:master instances are stopped, and restarted when the
testDummy instance is restarted.

2)      If the testDummy instance on the same node as the
testStateful:master instance fails, both the testStateful:slave and
testStateful:master instances are stopped, and restarted when the
testDummy instance is restarted.

The desired behaviour is for the instance of testStateful on the same
node as the failed instance of the testDummy to be stopped, and
restarted when the testDummy instance is restarted.  In other words, we
want to be able to order an instance of a clone/stateful resource on the
instance of a clone/stateful resource on the same node.  For our
purposes, it is actually very harmful if the dependent resource depends
on BOTH instances of the clone, as my experiments show that it does.

=20

So questions:

1)      Is it possible to express with a valid configuration a "nodal"
ordering constaint between instances of different clone resources?
I.e., an ordering constraint in which the instance of the stateful
resource depends on the instance of the clone on the same node, but not
the instance of the clone on the other node.  I've read the on-line
documentation which highly discourages referencing a clone's child in an
ordering constraint (and by "clone's child", I am assuming you mean the
clone's primitive, not a specific instance of the primitive) so I don't
want to do that.  But, if I manually edit the cluster configuration to
reference the primitives in the ordering constraint between testDummy
and testStateful, we seem to get the desired behaviour, but the cluster
configuration is technically invalid.  ("crm configure verify" returns
errors.)  So we don't want to do that, but is there a valid way of
configuring for the desired behaviour?

2)      Again, looking at the online documentation, I found a reference
to a meta attribute of clones called "interleave".  The description is a
little open to interpretation; does it refer to changing the behaviour
of ordering constraints between the instances of a clone, or between two
different cloned resources?  We think the former interpretation is most
likely, but if I add a "interleave=3D"true" attribute to the
testDummy-clone and testStateful-ms configurations above, I get the
desired behaviour.  Is that what you would expect, or is this a
side-effect that may not deterministically occur?

=20

Thanks very much.

Chris

=20


------_=_NextPart_001_01CC9981.E9FBE4E7
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
 /* List Definitions */
 @list l0
	{mso-list-id:1151561606;
	mso-list-type:hybrid;
	mso-list-template-ids:1200227176 67698705 67698713 67698715 67698703 =
67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1
	{mso-list-id:1522474576;
	mso-list-type:hybrid;
	mso-list-template-ids:-1899100550 67698705 67698713 67698715 67698703 =
67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DWordSection1>

<p class=3DMsoNormal>Hi all,<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>We have a 2-node cluster running on the SLES 11 HAE =
SP1,
plus the latest supported patches.&nbsp; (So Pacemaker version 1.1.5,
etc).&nbsp; In the cluster, we have a clone resource and a stateful =
resource
that have an mandatory<span style=3D'color:#1F497D'> </span>ordering =
constraint
between the two, such that the stateful resource will start after the =
clone.<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>From the output of &#8220;crm configure =
show&#8221;.&nbsp;
We reproduced the problem with the stock &#8220;Dummy&#8221; and =
&#8220;Stateful&#8221;
RAs.<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>primitive
testStateful ocf:heartbeat:Stateful \<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
op start interval=3D&quot;0&quot; timeout=3D&quot;1800s&quot; =
\<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
op stop interval=3D&quot;0&quot; timeout=3D&quot;45s&quot; =
\<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
op monitor interval=3D&quot;10s&quot;<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>primitive
testDummy ocf:heartbeat:Dummy \<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
op monitor interval=3D&quot;20&quot; =
timeout=3D&quot;10&quot;<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>ms testStateful-ms
testStateful \<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
meta target-role=3D&quot;Started&quot; master-max=3D&quot;1&quot;
master-node-max=3D&quot;1&quot; clone-max=3D&quot;2&quot;
clone-node-max=3D&quot;1&quot; notify=3D&quot;true&quot; =
ordered=3D&quot;false&quot;
globally-unique=3D&quot;false&quot; =
is-managed=3D&quot;true&quot;<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>clone
testDummy-clone testDummy \<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
meta target-role=3D&quot;Started&quot;<o:p></o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier New"'>order
testDummy-testStateful-order inf: testDummy-clone =
testStateful-ms:start<o:p></o:p></span></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>I then perform some experiments:<o:p></o:p></p>

<p class=3DMsoListParagraph style=3D'text-indent:-.25in;mso-list:l0 =
level1 lfo1'><![if !supportLists]><span
style=3D'mso-list:Ignore'>1)<span style=3D'font:7.0pt "Times New =
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>If the testDummy instance on the same node as =
the testStateful:slave
instance fails, both the testStateful:slave and testStateful:master =
instances
are stopped, and restarted when the testDummy instance is =
restarted.<o:p></o:p></p>

<p class=3DMsoListParagraph style=3D'text-indent:-.25in;mso-list:l0 =
level1 lfo1'><![if !supportLists]><span
style=3D'mso-list:Ignore'>2)<span style=3D'font:7.0pt "Times New =
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>If the testDummy instance on the same node as =
the testStateful:master
instance fails, both the testStateful:slave and testStateful:master =
instances
are stopped, and restarted when the testDummy instance is =
restarted.<o:p></o:p></p>

<p class=3DMsoNormal>The desired behaviour is for the instance of =
testStateful on
the same node as the failed instance of the testDummy to be stopped, and
restarted when the testDummy instance is restarted.&nbsp; In other =
words, we
want to be able to order an instance of a clone/stateful resource on the
instance of a clone/stateful resource on the same node.&nbsp; For our =
purposes,
it is actually very harmful if the dependent resource depends on BOTH =
instances
of the clone, as my experiments show that it does.<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>So questions:<o:p></o:p></p>

<p class=3DMsoListParagraph style=3D'text-indent:-.25in;mso-list:l1 =
level1 lfo2'><![if !supportLists]><span
style=3D'mso-list:Ignore'>1)<span style=3D'font:7.0pt "Times New =
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Is it possible to express with a valid =
configuration a
&#8220;nodal&#8221; ordering constaint between instances of different =
clone
resources?&nbsp; I.e., an ordering constraint in which the instance of =
the
stateful resource depends on the instance of the clone on the same node, =
but
not the instance of the clone on the other node.&nbsp; I&#8217;ve read =
the
on-line documentation which highly discourages referencing a =
clone&#8217;s
child in an ordering constraint (and by &#8220;clone&#8217;s =
child&#8221;, I am
assuming you mean the clone&#8217;s primitive, not a specific instance =
of the
primitive) so I don&#8217;t want to do that.&nbsp; But, if I manually =
edit the
cluster configuration to reference the primitives in the ordering =
constraint
between testDummy and testStateful, we seem to get the desired =
behaviour, but
the cluster configuration is technically invalid.&nbsp; (&#8220;crm =
configure
verify&#8221; returns errors.)&nbsp; So we don&#8217;t want to do that, =
but is
there a valid way of configuring for the desired =
behaviour?<o:p></o:p></p>

<p class=3DMsoListParagraph style=3D'text-indent:-.25in;mso-list:l1 =
level1 lfo2'><![if !supportLists]><span
style=3D'mso-list:Ignore'>2)<span style=3D'font:7.0pt "Times New =
Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Again, looking at the online documentation, I =
found a
reference to a meta attribute of clones called =
&#8220;interleave&#8221;.&nbsp;
The description is a little open to interpretation; does it refer to =
changing
the behaviour of ordering constraints between the instances of a clone, =
or
between two different cloned resources?&nbsp; We think the former
interpretation is most likely, but if I add a
&#8220;interleave=3D&#8221;true&#8221; attribute to the testDummy-clone =
and testStateful-ms
configurations above, I get the desired behaviour.&nbsp; Is that what =
you would
expect, or is this a side-effect that may not deterministically =
occur?<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal>Thanks very much.<o:p></o:p></p>

<p class=3DMsoNormal>Chris<o:p></o:p></p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>

------_=_NextPart_001_01CC9981.E9FBE4E7--



More information about the Pacemaker mailing list