[openstack-dev] [Cinder] DRBD integration as volume driver
philipp.marek at linbit.com
Tue Jun 3 08:06:43 UTC 2014
at the Juno Design Summit we held a presentation about using DRBD 9
Here's an overview about the situation; I apologize in advance that the
mail got a bit longer, but I think it makes sense to capture all that
information in a single piece.
==== WHAT WE HAVE
Design Summit notes:
As promised we've got a proof-of-concept implementation for the simplest
case, using DRBD to access data on all nodes - the "DRBDmanage volume
driver" as per the Etherpad notes (link see below).
As both DRBD 9 and DRBDmanage are still in heavy development, there are
quite a few rough edges; in case anyone's interested in setting that up
on some testsystem, I can offer RPMs and DEBs of "drbd-utils" and
"drbdmanage", and for the DRBD 9 kernel module for a small set of kernel
Ubuntu 12.04 3.8.0-34-generic
RHEL6 (& compat) 2.6.32_431.11.2.el6.x86_64
If there's consensus that some specific kernel version should be used
for testing instead I can try to build packages for that, too.
There's a cinder git clone with our changes at
so that all developments can be discussed easily.
(Should I use some branch in github.com/OpenStack/Cinder instead?)
==== FUTURE PLANS
The (/our) plans are:
* LINBIT will continue DRBD 9 and DRBDmanage development,
so that these get production-ready ASAP.
Note: DRBDmanage is heavily influenced by outside
requirements, eg. OpenStack Cinder Consistency Groups...
So the sooner we're aware of such needs the better;
I'd like to avoid changing the DBUS api multiple times ;)
* LINBIT continues to work on the DRBD Cinder volume driver,
as this is
* LINBIT starts to work to provide DRBD 9 integration
between the LVM and iSCSI layer.
That needs the Replication API to be more or less finished.
There are a few dependencies, though ... please see below.
All help - ideas, comments (both for design and code), all feedback,
and, last but not least, patches resp. pull requests - are *really*
welcome, of course.
(For real-time communication I'm available in the #openstack-cinder
channel too, mostly during European working hours; I'm "flip\d+".)
==== WHAT WE NEED
Now, while I filled out the CLA, I haven't read through all the
documentation regarding Processes & Workflow yet ... and that'll take
some time, I gather.
Furthermore, on the technical side there's a lot to discuss, too;
eg. regarding snapshots there are quite a few things to decide.
* Should snapshots be taken on _one_ of the storage nodes,
* on some subnet, or
* on all of them?
I'm not sure whether the same redundancy that's defined for the volume
is wanted for the snapshots, too.
(I guess one usecase that should be possible is to take at least one
snapshot of the volume in _each_ data center?)
Please note that having volume groups would be good-to-have (if not
essential) for a DRBD integration, because only then DRBD could ensure
data integrity *across* volumes (by using a single resource for all of
See also https://etherpad.openstack.org/p/juno-cinder-cinder-consistency-groups; basically, the volume driver just needs to get an
additional value "associate into this group".
Now, there'll be quite a few things I forgot to mention, or that I'm
simply missing. Please bear with me, I'm fairly new to OpenStack.
So ... ideas, comments, other feedback?
More information about the OpenStack-dev