public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [DRIVER SUBMISSION] DRBD wants to go mainline
@ 2007-07-21 20:38 Lars Ellenberg
  2007-07-21 21:17 ` Jan Engelhardt
                   ` (4 more replies)
  0 siblings, 5 replies; 42+ messages in thread
From: Lars Ellenberg @ 2007-07-21 20:38 UTC (permalink / raw)
  To: Jens Axboe, Andrew Morton, lkml; +Cc: drbd-user


	DRBD wants to go mainline.
	please have a look at the "for-linus" branch of
	git://git.drbd.org/home/git/linux-drbd.git.

Longer story:

Hi there,

for lkml readers who don't know about DRBD yet:
DRBD is the distributed replicated block device,
a stacked block device driver as developed mainly
by Lars Ellenberg and Philipp Reisner
both employed at Linbit.

We implement shared-disk semantics in a shared-nothing cluster.

yes, we even support cluster file systems (OCFS2, GFS2)
[support for this is somewhat clumsy, still,
mainly userland/setup/convenience issues.
but that will improve.]

to actually use it you will need some userland tools
(drbdadm, drbdmeta, drbdsetup).

most unfortunate current limitations:
we support only 2 nodes directly;
but we are working on that, too :)

I'm going to give a presentation/BoF about it
at linux-conf.eu in September.

Currently we are at "stable version 8.0.y" (y == 4 right now,
8.0.5 to be released within a few days.

we have a project home page http://www.drbd.org
we have some mention on the linux-HA project http://www.linux-ha.org/DRBD
(both are slightly out-dated, unfortunately...)
our subversion repository (yeah, sorry, there has been no git back then)
is at http://svn.drbd.org/drbd/branches/drbd-8.0

and, we have a user base...
[drbd-user readers who are in a position to do so:
please help us get this into mainline! ]

Now, finally, we have a git repository of the kernel module part, too:
 git://git.drbd.org/home/git/linux-drbd.git

it has two branches currently,
 master, which tracks ...torvalds/linux-2.6.git, and 
 for-linus, which tracks the cleaned up patch meant for inclusin in
mainline.
so if interessted please do
 git fetch git://git.drbd.org/home/git/linux-drbd.git +for-linus:drbd-8.0
to get a local branch named drbd-8.0 where you can inspect it.
see below for a diffstat of master..for-linus.

Jens, Andrew, anyone: please review,
and give me advice how to proceed from here.

technically, would you prefer
frequent rebase of the "for-linus" branch,
or rather merges back and forth?

Cheers,

	Lars




The only not drbd specific files touched
are listed explicitly here:

=====================
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
index a4a3119..76f84bc 100644
--- a/drivers/block/Kconfig
+++ b/drivers/block/Kconfig
@@ -272,6 +272,8 @@ config BLK_DEV_CRYPTOLOOP
 	  instead, which can be configured to be on-disk compatible with the
 	  cryptoloop device.
 
+source "drivers/block/drbd/Kconfig"
+
 config BLK_DEV_NBD
 	tristate "Network block device support"
 	depends on NET
diff --git a/drivers/block/Makefile b/drivers/block/Makefile
index 819c829..b27e16a 100644
--- a/drivers/block/Makefile
+++ b/drivers/block/Makefile
@@ -31,3 +31,4 @@ obj-$(CONFIG_BLK_DEV_UB)	+= ub.o
 
 obj-$(CONFIG_XEN_BLKDEV_FRONTEND)	+= xen-blkfront.o
 obj-$(CONFIG_LGUEST_GUEST)	+= lguest_blk.o
+obj-$(CONFIG_BLK_DEV_DRBD)	+= drbd/
diff --git a/include/linux/major.h b/include/linux/major.h
index 0cb9805..2dbd7c1 100644
--- a/include/linux/major.h
+++ b/include/linux/major.h
@@ -145,6 +145,8 @@
 #define UNIX98_PTY_MAJOR_COUNT	8
 #define UNIX98_PTY_SLAVE_MAJOR	(UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT)
 
+#define DRBD_MAJOR		147
+
 #define RTF_MAJOR		150
 #define RAW_MAJOR		162
=====================

(yes, block major 147 is assigned by LANANA,
 as documented in Documentation/devices.txt already)

git-diff master..for-linus | diffstat
 drivers/block/Kconfig              |    2 
 drivers/block/Makefile             |    1 
 drivers/block/drbd/Kconfig         |   32 
 drivers/block/drbd/Makefile        |    7 
 drivers/block/drbd/drbd_actlog.c   | 1456 ++++++++++++++++
 drivers/block/drbd/drbd_bitmap.c   | 1184 +++++++++++++
 drivers/block/drbd/drbd_buildtag.c |    6 
 drivers/block/drbd/drbd_int.h      | 1894 ++++++++++++++++++++
 drivers/block/drbd/drbd_main.c     | 3249 +++++++++++++++++++++++++++++++++++
 drivers/block/drbd/drbd_nl.c       | 1847 ++++++++++++++++++++
 drivers/block/drbd/drbd_proc.c     |  267 ++
 drivers/block/drbd/drbd_receiver.c | 3356 +++++++++++++++++++++++++++++++++++++
 drivers/block/drbd/drbd_req.c      | 1169 ++++++++++++
 drivers/block/drbd/drbd_req.h      |  320 +++
 drivers/block/drbd/drbd_strings.c  |  106 +
 drivers/block/drbd/drbd_worker.c   | 1046 +++++++++++
 drivers/block/drbd/drbd_wrappers.h |  144 +
 drivers/block/drbd/lru_cache.c     |  370 ++++
 drivers/block/drbd/lru_cache.h     |  147 +
 include/linux/drbd.h               |  284 +++
 include/linux/drbd_config.h        |   55 
 include/linux/drbd_limits.h        |  124 +
 include/linux/drbd_nl.h            |  105 +
 include/linux/drbd_tag_magic.h     |   78 
 include/linux/major.h              |    2 
 25 files changed, 17251 insertions(+)

 

-- 
: Lars Ellenberg                            Tel +43-1-8178292-0  :
: LINBIT Information Technologies GmbH      Fax +43-1-8178292-82 :
: Vivenotgasse 48, A-1120 Vienna/Europe    http://www.linbit.com :

^ permalink raw reply related	[flat|nested] 42+ messages in thread
* Re: [DRIVER SUBMISSION] DRBD wants to go mainline
@ 2007-07-22  9:54 Tomasz Chmielewski
  0 siblings, 0 replies; 42+ messages in thread
From: Tomasz Chmielewski @ 2007-07-22  9:54 UTC (permalink / raw)
  To: LKML; +Cc: jengelh

Jan Engelhardt wrote

> On Jul 22 2007 00:43, Lars Ellenberg wrote:

>>Think of it as RAID1 over TCP.
> 
> And what does it do better than raid1-over-NBD? (Which is already N-disk,
> and, logically, seems to support cluster filesystems)

I don't know about DRDB, but NBD doesn't handle network disconnections 
at all (well, almost).

So basically, disconnect a NBD-connected system for a while (switch, 
cabling problem, operator error etc.), and you need lots of effort, 
perhaps restarts, to get the things to a functioning state (devices 
offlined, kicked out etc.).

I wouldn't call such raid-over-NBD setup reliable.


A better question would be: what does it do better than raid1-over-iSCSI?

iSCSI can recover from disconnections very well when configured 
properly; but when a disconnection is in place, most of the system will 
just "hang/freeze" (that is, from the user perspective - the system will 
be waiting for the I/O to complete, until the systems are connected again).


A brief reading of "official DRBD FAQ" didn't give me an answer to that 
problem.


-- 
Tomasz Chmielewski
http://wpkg.org

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2007-07-30 20:12 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-21 20:38 [DRIVER SUBMISSION] DRBD wants to go mainline Lars Ellenberg
2007-07-21 21:17 ` Jan Engelhardt
2007-07-21 22:43   ` Lars Ellenberg
2007-07-22  9:06     ` Jan Engelhardt
2007-07-22 14:03       ` Lars Ellenberg
2007-07-27 18:46     ` Pavel Machek
2007-07-30 19:35       ` Lars Ellenberg
2007-07-30 19:41         ` Jan Engelhardt
2007-07-21 21:34 ` Jesper Juhl
2007-07-21 23:50 ` Andi Kleen
2007-07-22  5:52   ` Jens Axboe
2007-07-22 13:58     ` Lars Ellenberg
2007-07-22 14:49       ` Sam Ravnborg
2007-07-22 14:56       ` Andi Kleen
2007-07-22 15:31       ` Satyam Sharma
2007-07-22 15:50         ` Satyam Sharma
2007-07-22 16:13         ` Stefan Richter
2007-07-22  6:09   ` Lars Ellenberg
2007-07-22  8:52     ` Sam Ravnborg
2007-07-22  9:05       ` Pekka Enberg
2007-07-22  9:00     ` Pekka Enberg
2007-07-23  1:32 ` Kyle Moffett
2007-07-23  8:49   ` Christoph Hellwig
2007-07-23  9:00     ` Sam Ravnborg
2007-07-23  9:01       ` Christoph Hellwig
2007-07-23  9:19         ` Sam Ravnborg
2007-07-23 11:08           ` Lars Ellenberg
2007-07-23 13:32   ` Lars Ellenberg
2007-07-23 13:37     ` Jens Axboe
2007-07-23 21:13       ` Lars Ellenberg
2007-07-23 13:40     ` Satyam Sharma
2007-07-23 21:19       ` Lars Ellenberg
2007-07-24  7:36         ` Jens Axboe
2007-07-24 23:11         ` Satyam Sharma
2007-07-25  9:46           ` Lars Ellenberg
2007-07-25 12:12             ` Satyam Sharma
2007-07-26  2:03               ` david
2007-07-26  3:43                 ` Kyle Moffett
2007-07-26  9:17                   ` Evgeniy Polyakov
2007-07-24  0:48     ` Kyle Moffett
2007-07-23 20:59 ` Jesper Juhl
  -- strict thread matches above, loose matches on Subject: below --
2007-07-22  9:54 Tomasz Chmielewski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox