Hello,<br><br>thanks for the information. <br>I was looking at this page <a href="http://www.drbd.org/users-guide/s-pacemaker-fencing.html">http://www.drbd.org/users-guide/s-pacemaker-fencing.html</a><br>I did specify the following handlers :<br>
 handlers {<br>        fence-peer &quot;/usr/lib/drbd/crm-fence-peer.sh&quot;;<br>        after-resync-target &quot;/usr/lib/drbd/crm-unfence-peer.sh&quot;;<br><br>        }<br><br>I disconnected the network cable between the clusters, corosync and drbd uses this link.<br>
<br>I was able to see that the fence script added a constraint :<br><br> location drbd-fence-by-handler-ms-drbd-supervision ms-drbd-supervision \<br>        rule $id=&quot;drbd-fence-by-handler-rule-ms-drbd-supervision&quot; $role=&quot;Master&quot; -inf: #uname ne host<br>
<br>But this made :<br><br>:StandAlone ro:Secondary/Unknown ds:UpToDate/Outdated  on drbd.<br><br>I don&#39;t really understand what I should be expected from those handlers ?<br>When cleaning up the errors, I shoudl delete the constraint right ?<br>
<br>Regards,<br><br>Hugo<br><br><div class="gmail_quote">On 26 July 2011 19:27, Digimer <span dir="ltr">&lt;<a href="mailto:linux@alteeve.com">linux@alteeve.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 07/26/2011 11:43 AM, Lars Ellenberg wrote:<br>
&gt; On Wed, Jul 20, 2011 at 11:36:25AM -0400, Digimer wrote:<br>
&gt;&gt; On 07/20/2011 11:24 AM, Hugo Deprez wrote:<br>
&gt;&gt;&gt; Hello Andrew,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; in fact DRBD was in standalone mode but the cluster was working :<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Here is the syslog of the drbd&#39;s split brain :<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.052245] block drbd0: Handshake<br>
&gt;&gt;&gt; successful: Agreed network protocol version 91<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.052267] block drbd0: conn(<br>
&gt;&gt;&gt; WFConnection -&gt; WFReportParams )<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.066677] block drbd0: Starting<br>
&gt;&gt;&gt; asender thread (from drbd0_receiver [23281])<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.066863] block drbd0:<br>
&gt;&gt;&gt; data-integrity-alg: &lt;not-used&gt;<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.079182] block drbd0:<br>
&gt;&gt;&gt; drbd_sync_handshake:<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.079190] block drbd0: self<br>
&gt;&gt;&gt; BBA9B794EDB65CDF:9E8FB52F896EF383:C5FE44742558F9E1:1F9E06135B8E296F<br>
&gt;&gt;&gt; bits:75338 flags:0<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.079196] block drbd0: peer<br>
&gt;&gt;&gt; 8343B5F30B2BF674:9E8FB52F896EF382:C5FE44742558F9E0:1F9E06135B8E296F<br>
&gt;&gt;&gt; bits:769 flags:0<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.079200] block drbd0:<br>
&gt;&gt;&gt; uuid_compare()=100 by rule 90<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.079203] block drbd0: Split-Brain<br>
&gt;&gt;&gt; detected, dropping connection!<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.079439] block drbd0: helper<br>
&gt;&gt;&gt; command: /sbin/drbdadm split-brain minor-0<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.083955] block drbd0: meta<br>
&gt;&gt;&gt; connection shut down by peer.<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.084163] block drbd0: conn(<br>
&gt;&gt;&gt; WFReportParams -&gt; NetworkFailure )<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.084173] block drbd0: asender<br>
&gt;&gt;&gt; terminated<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.084176] block drbd0: Terminating<br>
&gt;&gt;&gt; asender thread<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.084406] block drbd0: helper<br>
&gt;&gt;&gt; command: /sbin/drbdadm split-brain minor-0 exit code 0 (0x0)<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.084420] block drbd0: conn(<br>
&gt;&gt;&gt; NetworkFailure -&gt; Disconnecting )<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.084430] block drbd0: error<br>
&gt;&gt;&gt; receiving ReportState, l: 4!<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.084789] block drbd0: Connection<br>
&gt;&gt;&gt; closed<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.084813] block drbd0: conn(<br>
&gt;&gt;&gt; Disconnecting -&gt; StandAlone )<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.086345] block drbd0: receiver<br>
&gt;&gt;&gt; terminated<br>
&gt;&gt;&gt; Jul 15 08:45:34 node1 kernel: [1536023.086349] block drbd0: Terminating<br>
&gt;&gt;&gt; receiver thread<br>
&gt;&gt;<br>
&gt;&gt; This was a DRBD split-brain, not a pacemaker split. I think that might<br>
&gt;&gt; have been the source of confusion.<br>
&gt;&gt;<br>
&gt;&gt; The split brain occurs when both DRBD nodes lose contact with one<br>
&gt;&gt; another and then proceed as StandAlone/Primary/UpToDate. To avoid this,<br>
&gt;&gt; configure fencing (stonith) in Pacemaker, then use &#39;crm-fence-peer.sh&#39;<br>
&gt;&gt; in drbd.conf;<br>
&gt;&gt;<br>
&gt;&gt; ===<br>
&gt;&gt;         disk {<br>
&gt;&gt;                 fencing         resource-and-stonith;<br>
&gt;&gt;         }<br>
&gt;&gt;<br>
&gt;&gt;         handlers {<br>
&gt;&gt;                 outdate-peer    &quot;/path/to/crm-fence-peer.sh&quot;;<br>
&gt;&gt;         }<br>
&gt;&gt; ===<br>
&gt;<br>
&gt; Thanks, that is basically right.<br>
&gt; Let me fill in some details, though:<br>
&gt;<br>
&gt;&gt; This will tell DRBD to block (resource) and fence (stonith). DRBD will<br>
&gt;<br>
&gt; drbd fencing options are &quot;fencing resource-only&quot;,<br>
&gt; and &quot;fencing resource-and-stonith&quot;.<br>
&gt;<br>
&gt; &quot;resource-only&quot; does *not* block IO while the fencing handler runs.<br>
&gt;<br>
&gt; &quot;resource-and-stonith&quot; does block IO.<br>
<br>
</div></div>Ahhh, that&#39;s why I was confused. I thought the &#39;resource&#39; meant the same<br>
thing in both cases, but had only read the &#39;resource-and-stonith&#39; section.<br>
<div class="im"><br>
&gt;&gt; not resume IO until either the fence script exits with a success, or<br>
&gt;&gt; until an admit types &#39;drbdadm resume-io &lt;res&gt;&#39;.<br>
&gt;<br>
&gt;<br>
&gt;&gt; The CRM script simply calls pacemaker and asks it to fence the other<br>
&gt;&gt; node.<br>
&gt;<br>
&gt; No.  It tries to place a constraint forcing the Master role off of any<br>
&gt; node but the one with the good data.<br>
<br>
</div>Ok, I thought it was akin to the &#39;obliterate-peer.sh&#39; script, which<br>
calls &#39;fence_node&#39;... I made an assumption, which was not correct.<br>
<div class="im"><br>
&gt;&gt; When a node has actually failed, then the lost no is fenced. If<br>
&gt;&gt; both nodes are up but disconnected, as you had, then only the fastest<br>
&gt;&gt; node will succeed in calling the fence, and the slower node will be<br>
&gt;&gt; fenced before it can call a fence.<br>
&gt;<br>
&gt; &quot;fenced&quot; may be &quot;restricted from being/becoming Master&quot; by that fencing<br>
&gt; constraint. Or, if pacemaker decided to do so, actually &quot;shot&quot; by some<br>
&gt; node level fencing agent (stonith).<br>
&gt;<br>
&gt; All that resource-level fencing by placing some constraint stuff<br>
&gt; obviously only works as long as the cluster communication is still up.<br>
&gt; It not only the drbd replication link had issues, but the cluster<br>
&gt; communication was down as well, it becomes a bit more complex.<br>
<br>
</div>Thanks for the clarity. Today I learned. :)<br>
<div class="im HOEnZb"><br>
--<br>
Digimer<br>
E-Mail:              <a href="mailto:digimer@alteeve.com">digimer@alteeve.com</a><br>
Freenode handle:     digimer<br>
Papers and Projects: <a href="http://alteeve.com" target="_blank">http://alteeve.com</a><br>
Node Assassin:       <a href="http://nodeassassin.org" target="_blank">http://nodeassassin.org</a><br>
&quot;At what point did we forget that the Space Shuttle was, essentially,<br>
a program that strapped human beings to an explosion and tried to stab<br>
through the sky with fire and math?&quot;<br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br>