[DRBD-user] about HandShakeS and HandShakeM

Lars Ellenberg lars.ellenberg at linbit.com
Wed Jul 30 12:02:58 CEST 2008

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.


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
socket.

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 mailing list