Hi and thanks for the answer !<div><br></div><div>I got several pm urging me NOT to use active/active and OCFS2.</div><div><br></div><div>A more simpler active/passive and no OCFS2 would be the best choice.... Too many things could go wrong with OCFS2 and active/active + MySQL.</div>
<div><br></div><div>But you fully understood my configuration and thanks for your help.</div><div>My drbd.conf is almost like the one you sent me.</div><div><br></div><div>But in my case, i must have another problem.... it&#39;s not working.</div>
<div><br></div><div>One more question. I have 2 ethernet ports. eth1 is used to link both boxes together. </div><div>Should i use for DRBD + Heartbeat a different IP address and class than on eth0 which is on the LAN ?  </div>
<div><br></div><div>Patrick<br><br><div class="gmail_quote">2011/4/22 Digimer <span dir="ltr">&lt;<a href="mailto:linux@alteeve.com">linux@alteeve.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 04/22/2011 01:36 PM, Patrick Egloff wrote:<br>
&gt; Hi all,<br>
&gt;<br>
&gt; First of all, let me say that i&#39;m a newbie with DRBD and not a high<br>
&gt; level linux specialist...<br>
<br>
</div>Few are. Fewer still who claim to be. :)<br>
<div class="im"><br>
&gt; I want to have a HA setup for my Intranet which is using PHP + MySQL.<br>
&gt; (Joomla 1.6)<br>
&gt;<br>
&gt; For that, i have 2 DELL servers with 5 HD RAID on which i installed a<br>
&gt; CentOS 5.5 with<br>
&gt;<br>
&gt; I tried to install OCFS2, DRBD and Heartbeat as active/active. I&#39;m at<br>
&gt; the point where i can access to my drbd partition  /sda6, but i can&#39;t<br>
&gt; make both boxes talk together.<br>
&gt; I do have some errors will loading :<br>
&gt; - mount.ocfs2 (device name specified was not found while opening device<br>
&gt; /dev/drbd0)<br>
&gt; - drbd is waiting for peer.... and i have to enter &quot;yes&quot; to stop the process<br>
&gt;<br>
&gt; After reading a lot, i&#39;m not even sure anymore if my first project is<br>
&gt; the right choice...<br>
&gt;<br>
&gt; Is the configuration i planned the best one for my usage or should i<br>
&gt; change my plans for another setup with same result, that is high<br>
&gt; availibility ?<br>
&gt;<br>
&gt; If it makes sense to continue with drbd , i will be back with some<br>
&gt; questions about my problems...<br>
&gt;<br>
&gt;<br>
&gt; Thanks,<br>
<br>
</div>I can&#39;t speak to heartbeat or OCFS2, as I use RHCS and GFS2, but the<br>
concept should be similar. Aside from that, those are questions above<br>
DRBD anyway.<br>
<br>
First, your RAID 5 is done in hardware, so CentOS only sees /dev/sda,<br>
right? Second, Partition 6 is what you want to use as a backing device<br>
on either node for /dev/drbd0? If you want to run Active/Active, then<br>
you will also want Primary/Primary, right?<br>
<br>
Given those assumptions, you will need to have a drbd.conf similar to<br>
below. Note that the &#39;on foo {}&#39; section must have the same hostname<br>
returned by `uname -n` from either node. Also, change the &#39;address&#39; to<br>
match the IP address of the interface you want DRBD to communicate on.<br>
Lastly, make sure any firewall you have allows port 7789 on those<br>
interfaces.<br>
<br>
Finally, replace &#39;/sbin/obliterate&#39; with the path to a script that will<br>
kill (or mark Inconsistent) the other node in a split-brain situation.<br>
This is generally done using a fence device (aka: stonith).<br>
<br>
Line wrapping will likely make this ugly, sorry.<br>
<br>
====<br>
#<br>
# please have a a look at the example configuration file in<br>
# /usr/share/doc/drbd83/drbd.conf<br>
#<br>
<br>
# The &#39;global&#39; directive covers values that apply to RBD in general.<br>
global {<br>
        # This tells Linbit that it&#39;s okay to count us as a DRBD user. If you<br>
        # have privacy concerns, set this to &#39;no&#39;.<br>
        usage-count     yes;<br>
}<br>
<br>
# The &#39;common&#39; directive sets defaults values for all resources.<br>
common {<br>
        # Protocol &#39;C&#39; tells DRBD to not report a disk write as complete until<br>
        # it has been confirmed written to both nodes. This is required for<br>
        # Primary/Primary use.<br>
        protocol        C;<br>
<br>
        # This sets the default sync rate to 15 MiB/sec. Be careful about<br>
        # setting this too high! High speed sync&#39;ing can flog your drives and<br>
        # push disk I/O times very high.<br>
        syncer {<br>
                rate    15M;<br>
        }<br>
<br>
        # This tells DRBD what policy to use when a fence is required.<br>
        disk {<br>
                # This tells DRBD to block I/O (resource) and then try to fence<br>
                # the other node (stonith). The &#39;stonith&#39; option requires that<br>
                # we set a fence handler below. The name &#39;stonith&#39; comes from<br>
                # &quot;Shoot The Other Nide In The Head&quot; and is a term used in<br>
                # other clustering environments. It is synonomous with with<br>
                # &#39;fence&#39;.<br>
                fencing         resource-and-stonith;<br>
        }<br>
<br>
        # We set &#39;stonith&#39; above, so here we tell DRBD how to actually fence<br>
        # the other node.<br>
        handlers {<br>
                # The term &#39;outdate-peer&#39; comes from other scripts that flag<br>
                # the other node&#39;s resource backing device as &#39;Inconsistent&#39;.<br>
                # In our case though, we&#39;re flat-out fencing the other node,<br>
                # which has the same effective result.<br>
                outdate-peer    &quot;/sbin/obliterate&quot;;<br>
        }<br>
<br>
        # Here we tell DRBD that we want to use Primary/Primary mode. It is<br>
        # also where we define split-brain (sb) recovery policies. As we&#39;ll be<br>
        # running all of our resources in Primary/Primary, only the<br>
        # &#39;after-sb-2pri&#39; really means anything to us.<br>
        net {<br>
                # Tell DRBD to allow dual-primary.<br>
                allow-two-primaries;<br>
<br>
                # Set the recover policy for split-brain recover when no device<br>
                # in the resource was primary.<br>
                after-sb-0pri   discard-zero-changes;<br>
<br>
                # Now if one device was primary.<br>
                after-sb-1pri   discard-secondary;<br>
<br>
                # Finally, set the policy when both nodes were Primary. The<br>
                # only viable option is &#39;disconnect&#39;, which tells DRBD to<br>
                # simply tear-down the DRBD resource right away and wait for<br>
                # the administrator to manually invalidate one side of the<br>
                # resource.<br>
                after-sb-2pri   disconnect;<br>
        }<br>
<br>
        # This tells DRBD what to do when the resource starts.<br>
        startup {<br>
                # In our case, we&#39;re telling DRBD to promote both devices in<br>
                # our resource to Primary on start.<br>
                become-primary-on       both;<br>
        }<br>
}<br>
<br>
# The &#39;resource&#39; directive defines a given resource and must be followed<br>
by the<br>
# resource&#39;s name.<br>
# This will be used as the GFS2 partition for shared files.<br>
resource r0 {<br>
        # This is the /dev/ device to create to make available this DRBD<br>
        # resource.<br>
        device          /dev/drbd0;<br>
<br>
        # This tells DRBD where to store it&#39;s internal state information. We<br>
        # will use &#39;internal&#39;, which tells DRBD to store the information at the<br>
        # end of the resource&#39;s space.<br>
        meta-disk       internal;<br>
<br>
        # The next two &#39;on&#39; directives setup each individual node&#39;s settings.<br>
        # The value after the &#39;on&#39; directive *MUST* match the output of<br>
        # `uname -n` on each node.<br>
        on <a href="http://an-node01.alteeve.com" target="_blank">an-node01.alteeve.com</a> {<br>
                # This is the network IP address on the network interface and<br>
                # the TCP port to use for communication between the nodes. Note<br>
                # that the IP address below in on our Storage Network. The TCP<br>
                # port must be unique per resource, but the interface itself<br>
                # can be shared.<br>
                # IPv6 is usable with &#39;address ipv6 [address]:port&#39;.<br>
                address         <a href="http://192.168.2.71:7789" target="_blank">192.168.2.71:7789</a>;<br>
<br>
                # This is the node&#39;s storage device that will back this<br>
                # resource.<br>
                disk            /dev/sda6;<br>
        }<br>
<br>
        # Same as above, but altered to reflect the second node.<br>
        on <a href="http://an-node02.alteeve.com" target="_blank">an-node02.alteeve.com</a> {<br>
                address         <a href="http://192.168.2.72:7789" target="_blank">192.168.2.72:7789</a>;<br>
                disk            /dev/sda6;<br>
        }<br>
}<br>
====<br>
<font color="#888888"><br>
--<br>
Digimer<br>
E-Mail: <a href="mailto:digimer@alteeve.com">digimer@alteeve.com</a><br>
AN!Whitepapers: <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>
</font></blockquote></div><br><br clear="all"><br>-- <br>Patrick Egloff - TK5EP<br>email : <a href="mailto:pegloff@gmail.com" target="_blank">pegloff@gmail.com</a><br>
</div>