From: Philipp Reisner <philipp.reisner@linbit.com>
To: linux-kernel@vger.kernel.org
Cc: gregkh@suse.de, jens.axboe@oracle.com, nab@risingtidestorage.com,
andi@firstfloor.org
Subject: [PATCH 00/12] DRBD: a block device for HA clusters
Date: Mon, 30 Mar 2009 18:47:08 +0200 [thread overview]
Message-ID: <1238431643-19433-1-git-send-email-philipp.reisner@linbit.com> (raw)
Hi,
This is a repost of DRBD, to keep you updated about the ongoing
cleanups.
Description
DRBD is a shared-nothing, synchronously replicated block device. It
is designed to serve as a building block for high availability
clusters and in this context, is a "drop-in" replacement for shared
storage. Simplistically, you could see it as a network RAID 1.
Each minor device has a role, which can be 'primary' or 'secondary'.
On the node with the primary device the application is supposed to
run and to access the device (/dev/drbdX). Every write is sent to
the local 'lower level block device' and, across the network, to the
node with the device in 'secondary' state. The secondary device
simply writes the data to its lower level block device.
DRBD can also be used in dual-Primary mode (device writable on both
nodes), which means it can exhibit shared disk semantics in a
shared-nothing cluster. Needless to say, on top of dual-Primary
DRBD utilizing a cluster file system is necessary to maintain for
cache coherency.
This is one of the areas where DRBD differs notably from RAID1 (say
md) stacked on top of NBD or iSCSI. DRBD solves the issue of
concurrent writes to the same on disk location. That is an error of
the layer above us -- it usually indicates a broken lock manager in
a cluster file system --, but DRBD has to ensure that both sides
agree on which write came last, and therefore overwrites the other
write.
More background on this can be found in this paper:
http://www.drbd.org/fileadmin/drbd/publications/drbd8.pdf
Beyond that, DRBD addresses various issues of cluster partitioning,
which the MD/NBD stack, to the best of our knowledge, does not
solve. The above-mentioned paper goes into some detail about that as
well.
DRBD can operate in synchronous mode, or in asynchronous mode. I want
to point out that we guarantee not to violate a single possible write
after write dependency when writing on the standby node. More on that
can be found in this paper:
http://www.drbd.org/fileadmin/drbd/publications/drbd_lk9.pdf
Last not least DRBD offers background resynchronisation and keeps
a on disk representation of the dirty bitmap up-to-date. A reasonable
tradeoff between number of updates, and resyncing more than needed
is implemented with the activity log.
More on that:
http://www.drbd.org/fileadmin/drbd/publications/drbd-activity-logging_v6.pdf
Changes since the last post from DRBD upstream
* Updated to the final drbd-8.3.1 code
* Optionally run-length encode bitmap transfers
Changes triggered by reviews
* Using the latest proc_create() now
* Moved the allocation of md_io_tmpp to attach/detach out of drbd_md_sync_page_io()
* Removing the mode selection comments for emacs
* Removed DRBD_ratelimit()
cheers,
Phil
next reply other threads:[~2009-03-30 16:48 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-30 16:47 Philipp Reisner [this message]
2009-03-30 16:47 ` [PATCH 01/13] DRBD: lru_cache Philipp Reisner
2009-03-30 16:47 ` [PATCH 02/13] DRBD: activity_log Philipp Reisner
2009-03-30 16:47 ` [PATCH 03/13] DRBD: bitmap Philipp Reisner
2009-03-30 16:47 ` [PATCH 04/13] DRBD: request Philipp Reisner
2009-03-30 16:47 ` [PATCH 05/13] DRBD: userspace_interface Philipp Reisner
2009-03-30 16:47 ` [PATCH 06/13] DRBD: internal_data_structures Philipp Reisner
2009-03-30 16:47 ` [PATCH 07/13] DRBD: main Philipp Reisner
2009-03-30 16:47 ` [PATCH 08/13] DRBD: receiver Philipp Reisner
2009-03-30 16:47 ` [PATCH 09/13] DRBD: proc Philipp Reisner
2009-03-30 16:47 ` [PATCH 10/13] DRBD: worker Philipp Reisner
2009-03-30 16:47 ` [PATCH 11/12] DRBD: misc Philipp Reisner
2009-03-30 16:47 ` [PATCH 11/13] DRBD: variable_length_integer_encoding Philipp Reisner
2009-03-30 16:47 ` [PATCH 12/12] DRBD: final Philipp Reisner
2009-03-30 16:47 ` [PATCH 12/13] DRBD: misc Philipp Reisner
2009-03-30 16:47 ` [PATCH 13/13] DRBD: final Philipp Reisner
2009-03-30 19:05 ` Sam Ravnborg
2009-04-01 10:13 ` Philipp Reisner
2009-04-07 10:26 ` [PATCH 00/12] DRBD: a block device for HA clusters Lars Marowsky-Bree
2009-04-07 12:23 ` Nikanth K
2009-04-07 15:56 ` Philipp Reisner
-- strict thread matches above, loose matches on Subject: below --
2009-03-23 15:47 Philipp Reisner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1238431643-19433-1-git-send-email-philipp.reisner@linbit.com \
--to=philipp.reisner@linbit.com \
--cc=andi@firstfloor.org \
--cc=gregkh@suse.de \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nab@risingtidestorage.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®