[DRBD-user] problem with syncing new changes on disks

Lars Ellenberg lars.ellenberg at linbit.com
Mon Oct 11 15:52:33 CEST 2010

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


On Mon, Oct 11, 2010 at 09:31:51AM -0400, Ravi Kanth wrote:
> Hello,
> 
> In my 3 machine config A, B and C. I want A - B cluster to be primary and
> get all the real time data changes. Then I would disconnect B and connect it
> with C to just copy the changes that we made. And then Connect B back to A,
> while A was still getting changes made to it. So now B gets the new changes
> from A. This way I could get stable changes (only changes I would like)
> rather than realtime changes (like errors) onto C.
> 
> Problem I am facing is when I connect A-B and make changes there is no
> change in UUID, but some activity in Activity log and bitmap. I don't
> understand how it is checking the activity log but it is not seeing the
> changes.
> 
> Now when I disconnect and connect it to C, it is either raising
> Split-Brain,  or showing 0KB marked out of sync when B clearly has changes
> to it.
> 
> Is there any way I could change UUID on C so that it always starts to sync
> from B (not full disk syncs) or stop split brain.

DRBD is not (yet) designed to work the way you seem to want it to.

Depending on the exact sequence of events, DRBD should either detect
split brain, or detect related, but not closely-enough related data.

Either way, it would require a full sync.

As long as at least one of the nodes is Primary,
DRBD should not silently connect without a resync.

So for this sequence of events:

t1)
	A (Connected [to B], Primary, UpToDate)
	B (Connected [to A], Secondary, UpToDate)
	C just sitting there.
t2)
	A (WFConnection, Primary, UpToDate)
	B (StandAlone, Secondary, just sitting there)
	C just sitting there, now connecting to A

connecting A and C now, waiting for sync...

t3)
	A (Connected [to C], Primary, UpToDate)
	B (StandAlone, Secondary, just sitting there)
	C (Connected [to A], Secondary, UpToDate)


t4)
	A (WFConnection, Primary, UpToDate)
	B (StandAlone, Secondary, just sitting there)
	C (StandAlone, Secondary, just sitting there)

Now connecting A and B again,

    If B has NOT been Primary in between,
	you should get an automatic full sync from A to B.

    If B has been Primary in between,
	you should get a "split-brain detected", or even "unrelated data", and
	to resolve it would also require a full resync.


You will NOT get any incremental resync here.

We have that feature on the roadmap, though,
we call it "More than two nodes in one level".

Feature sponsoring accepted ;-)

-- 
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.
__
please don't Cc me, but send to list   --   I'm subscribed



More information about the drbd-user mailing list