Hi everybody, at the Juno Design Summit we held a presentation about using DRBD 9 within OpenStack.
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: https://etherpad.openstack.org/p/juno-cinder-DRBD 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 versions: 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 https://github.com/phmarek/cinder 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 them). 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". ==== EULA 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? Regards, Phil _______________________________________________ Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack Post to : openstack@lists.openstack.org Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack