<br><br><div class="gmail_quote">On Mon, Dec 20, 2010 at 10:25 PM, Patrick H. <span dir="ltr"><<a href="mailto:pacemaker@feystorm.net">pacemaker@feystorm.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">



  

<div bgcolor="#ffffff" text="#0050d0">
Sent: Sat Nov 13 2010 04:20:56 GMT-0700 (Mountain Standard Time)<br>
From: Andrew Beekhof <a href="mailto:andrew@beekhof.net" target="_blank"><andrew@beekhof.net></a><br>
To: The Pacemaker cluster resource manager
<a href="mailto:pacemaker@oss.clusterlabs.org" target="_blank"><pacemaker@oss.clusterlabs.org></a>
<br>
Subject: Re: [Pacemaker] symmetric anti-collocation
<div class="im"><blockquote type="cite">
  <pre>On Fri, Nov 12, 2010 at 5:27 PM, Alan Jones <a href="mailto:falancluster@gmail.com" target="_blank"><falancluster@gmail.com></a> wrote:
  </pre>
  <blockquote type="cite">
    <pre>On Thu, Nov 11, 2010 at 11:31 PM, Andrew Beekhof <a href="mailto:andrew@beekhof.net" target="_blank"><andrew@beekhof.net></a> wrote:
    </pre>
    <blockquote type="cite">
      <blockquote type="cite">
        <pre>colocation X-Y -2: X Y
colocation Y-X -2: Y X
        </pre>
      </blockquote>
      <pre>the second one is implied by the first and is therefore redundant
      </pre>
    </blockquote>
    <pre>If only that were true!
    </pre>
  </blockquote>
  <pre>It is. I know exactly how my code works in this regard.
More than likely a score of -2 is simply too low to have any effect.
  </pre>
</blockquote></div>
I'm going to have to side with Alan here, his pasted statements are
*NOT* redundant and also do *NOT* work. Please be a little more
accepting that your code might have problems.<br></div></blockquote><div><br></div><div>I think the past 7 years have adequately shown that I am under no illusions on that score.</div><div><br></div><div>However I actually know how colocation is supposed to work, and I'm and telling you with 100% certainty that the second one is redundant.  That the combination doesn't do what you want is another story.</div>
<div><br></div><div>Unless you use a clone in some manner, there is no way to express:</div><div><br></div><div>If nodeA fails, stop rscA</div><div>If nodeB fails, stop rscB</div><div><br></div><div>In order to complete computations before the end of the universe, Pacemaker requires you to decide with of rscA and rscB is more important and will sacrifice the other.</div>
<div><br></div><div>You can of course argue that this requirement is a crime against humanity, but it remains how Pacemaker is currently designed to work.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div bgcolor="#ffffff" text="#0050d0">
<br>
Exhibit A:<br>
<table border="1" cellpadding="2" cellspacing="2" width="100%">
  <tbody>
    <tr>
      <td valign="top"><small>crm(live)# configure show<br>
node nas01 \<br>
        attributes standby="off"<br>
node nas02 \<br>
        attributes standby="off"<br>
node nas03 \<br>
        attributes standby="on"<br>
primitive d1 ocf:pacemaker:Dummy<br>
primitive d2 ocf:pacemaker:Dummy<br>
colocation co1 -inf: d1 d2<br>
colocation co2 -inf: d2 d1<br>
property $id="cib-bootstrap-options" \<br>
        dc-version="1.0.10-da7075976b5ff0bee71074385f8fd02f296ec8a3" \<br>
        cluster-infrastructure="openais" \<br>
        expected-quorum-votes="3" \<br>
        stonith-enabled="false" \<br>
        default-resource-stickiness="INFINITY"<br>
      <br>
      <br>
      <br>
      <br>
crm(live)# status<br>
============<br>
Last updated: Mon Dec 20 21:03:49 2010<br>
Stack: openais<br>
Current DC: nas01 - partition with quorum<br>
Version: 1.0.10-da7075976b5ff0bee71074385f8fd02f296ec8a3<br>
3 Nodes configured, 3 expected votes<br>
2 Resources configured.<br>
============<br>
      <br>
Node nas03: standby<br>
Online: [ nas01 nas02 ]<br>
      <br>
 d1     (ocf::pacemaker:Dummy): Started nas01<br>
 d2     (ocf::pacemaker:Dummy): Started nas02<br>
      <br>
      <br>
      <br>
      <br>
crm(live)# node standby nas02<br>
crm(live)# status<br>
============<br>
Last updated: Mon Dec 20 21:04:14 2010<br>
Stack: openais<br>
Current DC: nas01 - partition with quorum<br>
Version: 1.0.10-da7075976b5ff0bee71074385f8fd02f296ec8a3<br>
3 Nodes configured, 3 expected votes<br>
2 Resources configured.<br>
============<br>
      <br>
Node nas02: standby<br>
Node nas03: standby<br>
Online: [ nas01 ]<br>
      <br>
 d2     (ocf::pacemaker:Dummy): Started nas01</small><br>
      </td>
    </tr>
  </tbody>
</table>
<br>
Notice how resource 'd1' got evicted from node 'nas01' and 'd2'
replaced it. This would indicate that the 'co2' rule is being
completely ignored. In fact if you delete the co2 rule, you get the
exact same behavior. If you were to delete the co1 rule, and put
'nas02' in standby, d1 would have stayed running on 'nas01' instead of
being replaced. This would indicate that the constraints are NOT
redundant and NOT implied by eachother.<br>
<br>
I'm not trying to be disrespectful or rude, its just that nobody is
perfect.<br>
</div>

<br>_______________________________________________<br>
Pacemaker mailing list: <a href="mailto:Pacemaker@oss.clusterlabs.org">Pacemaker@oss.clusterlabs.org</a><br>
<a href="http://oss.clusterlabs.org/mailman/listinfo/pacemaker" target="_blank">http://oss.clusterlabs.org/mailman/listinfo/pacemaker</a><br>
<br>
Project Home: <a href="http://www.clusterlabs.org" target="_blank">http://www.clusterlabs.org</a><br>
Getting started: <a href="http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf" target="_blank">http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf</a><br>
Bugs: <a href="http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker" target="_blank">http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker</a><br>
<br></blockquote></div><br>