Hi JP,

Thanks for replay. I really appreciate it. I've examined your piece of config file and most of all I accepted and understood. But my main previous question was not "how" but "why".
For example, why you choose these parameters:
    after-sb-0pri discard-zero-changes;
    after-sb-1pri discard-secondary;
    after-sb-2pri disconnect;

As far as I see the most common configuration consist of two nodes. If one of them Primary and other Secondary and you have split brain how your system will react? Secondary node will try to implement changes from Primary node (after-sb-0pri discard-zero-changes) and Primary node at the same time will try to discard all changes which Secondary node doesn't have (after-sb-1pri discard-secondary). Do I understand it correct? If so, I can't imagine what we will have finally. I see this settings in lots of examples in the Internet and my question is "why". Why lots of people chose it? Apparently, my understanding of split brain behavior is wrong. Could you explain me, please, how a system from two nodes will self recovery with these settings?

Thank you in advance,

Ivan. (Sydney)

On 01/13/2011 05:44 AM, J. Ryan Earl wrote:
Reply inline:

On Wed, Jan 12, 2011 at 8:50 AM, Dan Barker <[email protected] <mailto:[email protected]>> wrote:

    As to the I/O handling with DEBD+GFS2+NFS Primary/Primary, I do
    not know the
    answer. Maybe someone else on the list can help.

    Dan, in Atlanta (the Top Poster)


Oh we got a RFC-1855 heretic here ;-)


    -----Original Message-----
    From: [email protected]
    <mailto:[email protected]>
    [mailto:[email protected]
    <mailto:[email protected]>] On Behalf Of Ivan
    Pavlenko
    Sent: Tuesday, January 11, 2011 4:29 PM
    To: [email protected] <mailto:[email protected]>
    Subject: [DRBD-user] DRBD settings difficulties with understanding

    Hi ALL,

    I'm a new to DRBD and have some difficulties with understanding of
    drbd
    settings. I've been reading manuals hard but still have lots of
    questions.

    1) Configuring I/O error handling strategies I see detach method
    is highly
    recommended but pass_on is still default method. Why? What differences
    between these methods? Why we have unrecommended method as default
    instead
    of the first one? I have
    DEBD+GFS2+NFS Primary/Primary solution. What should I use in my
    case? Why?



First off, break this into 2 parts: DRBD+GFS2 and GFS2+NFS. I'll answer the DRBD+GFS2 part. The GFS2+NFS part can be examined without DRBD. I'd suggest looking at: http://sources.redhat.com/cluster/doc/nfscookbook.pdf


common {
   startup {
    wfc-timeout 0 ;       # Wait forever for initial connection
degr-wfc-timeout 60; # Wait only 60 seconds if this node was a degraded cluster
  }
  net {
# these split-brain options automatically repair common cases with GFS2
    # and at a minimum ensure integrity
    after-sb-0pri discard-zero-changes;
    after-sb-1pri discard-secondary;
    after-sb-2pri disconnect;
    cram-hmac-alg sha512;
    shared-secret "replace this secret";
  }
  handlers {
    split-brain "/usr/lib/drbd/notify-split-brain.sh [email protected]";
  }
  disk {
    # be safe, go into diskless mode
    on-io-error   detach;
  }
  syncer {
    verify-alg md5;
  }
}

In your resource you need this to make it dual-primary:

resource some-resource {
  [...]
  net {
    allow-two-primaries;
  }
  startup {
    become-primary-on both;
  }
}

That what you need from DRBD for GFS2. You'll need to assure fencing somehow. I personally use power-fencing. Once you have the DRBD+GFS2 specifics above down, you probably want to research GFS2+NFS.

-JR
_______________________________________________
drbd-user mailing list
[email protected]
http://lists.linbit.com/mailman/listinfo/drbd-user

Reply via email to