[openstack-dev] [cinder] [nova] Consistency groups?

yang, xing xing.yang at emc.com
Fri Nov 14 21:15:03 UTC 2014

Hi Phil,

Do you have a libvirt volume driver on the Nova side for DRBD?  Regarding getting consistency group information to the Nova nodes, can you help me understand the steps you need to go through?

1. Create a consistency group
2. Create a volume and add volume to the group
   Repeat the above step until all volumes are created and added to the group
3. Attach volume in the group
4. Create a snapshot of the consistency group

Do you "setup" the volume on the Nova side at step 3?  We currently don't have a group level API that "setup" all volumes in a group.  Is it possible for you to detect whether a volume is in a group or not when attaching one volume and "setup" all volumes in the same group?  Otherwise, it sounds like we need to add a group level API for this purpose.




-----Original Message-----
From: Philipp Marek [mailto:philipp.marek at linbit.com] 
Sent: Friday, November 14, 2014 2:58 AM
To: openstack-dev at lists.openstack.org
Subject: [openstack-dev] [cinder] [nova] Consistency groups?


I'm working on the DRBD Cinder driver, and am looking at the Nova side, too. Is there any idea how Cinder's consistency groups should be used on the Nova nodes?

DRBD has easy support for consistency groups (a DRBD resource is a collection of DRBD volumes that share a single, serialized connection) and so can guarantee write consistency across multiple volumes. 

    [ Which does make sense anyway; eg. with multiple iSCSI
      connections one could break down because of STP or
      other packet loss, and then the storage backend and/or
      snapshots/backups/etc. wouldn't be consistent anymore.    ]

What I'm missing now is a way to get the consistency group information to the Nova nodes. I can easily put such a piece of data into the transmitted transport information (along with the storage nodes' IP addresses etc.) and use it on the Nova side; but that also means that on the Nova side there'll be several calls to establish the connection, and several for tear down - and (to exactly adhere to the API contract) I'd have to make sure that each individual volume is set up (and closed) in exactly that order again.

That means quite a few unnecessary external calls, and so on.

Is there some idea, proposal, etc., that says that
   *within a consistency group*
all volumes *have* to be set up and shutdown 
   *as a single logical operation*?
[ well, there is one now ;]

Because in that case all volume transport information can (optionally) be transmitted in a single data block, with several iSCSI/DRBD/whatever volumes being set up in a single operation; and later calls (for the other volumes in the same group) can be simply ignored as long as they have the same transport information block in them.

Thank you for all pointers to existing proposals, ideas, opinions, etc.


: Ing. Philipp Marek
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting                 http://www.linbit.com :

DRBD® and LINBIT® are registered trademarks of LINBIT, Austria.

OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org

More information about the OpenStack-dev mailing list