[DRBD-user] about HandShakeS and HandShakeM
lars.ellenberg at linbit.com
Wed Jul 30 12:02:58 CEST 2008
On Wed, Jul 30, 2008 at 03:37:43PM +0800, niko wrote:
> Hi,first,thank Philipp Reisner for the last help with my stupid
> question.I'm learning linux kernel,and I'm focusing on drbd.
> I read some documents about it,such as "Replicated Storage with shared
> disk Semantics" And now,I want take a deep insight into the code.Is
> there any document about it?
I don't think so.
What is your motivation for this?
How can you help us?
How can you help us help you?
> I don't know the function of drbd_send_fp and the difference between
> HandshakeS and HandShakeM, what's that for ?
DRBD has two connections, called "meta" socket and "data" socket.
each node tries actively to connect() to the other one,
if that does not succeed, it goes to listen() and accept() again.
if the connect _does_ succeed, it goes to list() and accept() as well.
there are a few races in there, where one node would connect its "meta"
socket to what the other node thinks is its "data" socket.
to solve that and determine which of these freshly established tcp
connections is going to be which DRBD socket, we have the drbd_send_fp
(first packet), which sends the Handshake packets, to tell the other
node, that this node thinks this connection should become that DRBD
and so they agree.
: Lars Ellenberg http://www.linbit.com :
: DRBD/HA support and consulting sales at linbit.com :
: LINBIT Information Technologies GmbH Tel +43-1-8178292-0 :
: Vivenotgasse 48, A-1120 Vienna/Europe Fax +43-1-8178292-82 :
please don't Cc me, but send to list -- I'm subscribed
More information about the drbd-user