<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <div class="moz-cite-prefix">On 03/06/2014 04:48 PM, Greg Scott
      wrote:<br>
    </div>
    <blockquote
      cite="mid:1b624a9504bf4458957b01c2c190a19c@mail2013.infrasupport.local"
      type="cite">
      <blockquote type="cite">
        <pre wrap="">In your real-life concern, the interconnect would not interfere with the existence of either 
machines' ip address so after the ping-timeout, operations would resume in a split-brain 
configuration. As long as no changes were made to the same file on both volumes, when the 
connection is reestablished, the self-heal will do exactly what you expect.
</pre>
      </blockquote>
      <pre wrap="">
Except that's not what happens.  If I ifdown that interconnect NIC, I should see the file system after 42 seconds, right?
</pre>
    </blockquote>
    No.<br>
    <br>
    Lets take a look at an imaginary volume:<br>
    <tt><br>
    </tt>
    <blockquote><tt># gluster volume info foo</tt><tt><br>
      </tt><tt>Volume Name: foo</tt><tt><br>
      </tt><tt>Type: Replicate</tt><tt><br>
      </tt><tt>Volume ID: f8577cab-9ea9-411f-9b85-97c93b1ba7df</tt><tt><br>
      </tt><tt>Status: Started</tt><tt><br>
      </tt><tt>Number of Bricks: 1 x 2 = 2</tt><tt><br>
      </tt><tt>Transport-type: tcp</tt><tt><br>
      </tt><tt>Bricks:</tt><tt><br>
      </tt><tt>Brick1: server1:/mnt/1/brick</tt><tt><br>
      </tt><tt>Brick2: server2:/mnt/1/brick</tt><tt><br>
      </tt><tt><br>
      </tt><tt># ping -c1 server1 | grep server1</tt><tt><br>
      </tt><tt>PING server1.domain.dom (192.168.0.1) 56(84) bytes of
        data.</tt><tt><br>
      </tt><tt># ping -c1 server2 | grep server2</tt><tt><br>
      </tt><tt>
        PING server2.domain.dom (192.168.0.2) 56(84) bytes of data.</tt><br>
      <br>
    </blockquote>
    Each server mounts its volume from localhost using an fstab entry
    like "localhost:foo /mnt/foo glusterfs _netdev 0 0".<br>
    <br>
    What this actually does is contact glusterd on port 24007 at
    localhost and ask for the volume definition for foo. Upon receiving
    that, the client then connects directly with the brick servers on
    whatever port they have assigned at the resolved ip address for each
    hostname. In this scenario, the <b>client will connect to both
      server1 and server2 at 192.168.0.1 an 192.168.0.2 respectively</b>.<br>
    <br>
    Now, on server1 we down the interface. <b>192.168.0.1 no longer
      exists</b>! The route to 192.168.0.2 no longer exists. The <b>client
      can now connect to neither server</b>.<br>
    <br>
    This is different from someone pulling a plug. If someone pulls the
    plug, <b>192.168.0.1 will still exist</b>! The client will still be
    able to access the mounted volume through that address even though
    it can no longer reach the replica at 192.168.0.2.<br>
    <br>
  </body>
</html>