[DRBD-user] When would acitivity log take effect?

Lars Ellenberg lars.ellenberg at linbit.com
Wed Sep 21 15:21:28 CEST 2011

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, Sep 21, 2011 at 08:46:27PM +0800, Lyre wrote:
> So activity log is used only when two nodes are connected ?
> I believe SRL in VVR stores the IO write order, so it may contain
> serval writes to a same block.

We do intend to have something we call "full data logging" (or
journalling, if you wish) in some future version of DRBD,
basically implemented as an intelligent persistent ring buffer.

This, of course, can only work as long as queued changes still fit in
that ring buffer.

At this point however, we do NOT have this yet.
We "only" mark changed blocks in a bitmap,
and resync based on that bitmap, once we get the chance.

The activity log has nothing to do with this at all,
but only with recovery after primary crash,
as it limits the area which we have assume to be "dirty".
Blocks outside the area covered by the activity log
can be assumed to be clean/dirty as marked in the bitmap.  Blocks inside
that area however may have been target of in-flight IO at the point of
the Primary crash, and thus need to be considered as in-need-of-resync
as a whole.

As the name may suggest, it logs activity.
It does not log data.

You may want to read up on before-resync-target handler.
Probably the DRBD-Proxy may be an interesting option for you as well.

> On Wed, Sep 21, 2011 at 8:35 PM, Felix Frank <ff at mpexnet.de> wrote:
> > Hi,
> >
> > good question.
> >
> > On 09/21/2011 12:23 PM, Lyre wrote:
> >> Hi all:
> >>
> >> DRBD background resync doesn't promise the IO write order, is that right ?
> >>
> >> However, when would actitivy log take effect? In my opinion, it is
> >> similiar to SRL in VVR. But I'm confused, I'm curious how does it
> >> work.
> >>
> >> Considering this situtaion:
> >>
> >> Oracle runs on Primary node (node1) , while secondary node (node2) disconnected.
> >>
> >> when I connect the drbd on node2, the background resync begin.  If
> >> node crashed during background sync, could it be possible to bring the
> >> oracle up no node2? Or is there a way to keep the secondary
> >> consistent? SRL in VVR was able the keep the IO write order.
> >
> > I'm not familiar with that technology, but with DRBD, this cannot work.
> >
> > The problem isn't with write order alone. If a block is written multiple
> > times, the data of the earlier writes is lost. DRBD won't keep some sort
> > of stash and keep several revisions for single blocks (imagine the cost!).
> >
> > So no - whenever a resync becomes necessary, you are faced with an
> > inconsistent SyncTarget as long as the sync is not completed.
> > DRBD won't allow you to access this data, which is the only sane thing
> > to do, really.

: 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