cinder/cinder
Xing Yang cf961f83ac Consistency Groups
This patch enables Consistency Groups support in Cinder.
It will be implemented for snapshots for CGs in phase 1.

Design
------------------------------------------------
The workflow is as follows:

1) Create a CG, specifying all volume types that can be supported by this
CG. The scheduler chooses a backend that supports all specified volume types.
The CG will be empty when it is first created.   Backend needs to report
consistencygroup_support = True.  Volume type can have the following in
extra specs: {'capabilities:consistencygroup_support': '<is> True'}.
If consistencygroup_support is not in volume type extra specs, it will be
added to filter_properties by the scheduler to make sure that the scheduler
will select the backend which reports consistency group support capability.

Create CG CLI:
cinder consisgroup-create --volume-type type1,type2 mycg1

This will add a CG entry in the new consistencygroups table.

2) After the CG is created, create a new volume and add to the CG.
Repeat until all volumes are created for the CG.

Create volume CLI (with CG):
cinder create --volume-type type1 --consisgroup-id <CG uuid> 10

This will add a consistencygroup_id foreign key in the new volume
entry in the db.

3) Create a snapshot of the CG (cgsnapshot).

Create cgsnapshot CLI:
cinder cgsnapshot-create <CG uuid>

This will add a cgsnapshot entry in the new cgsnapshots table, create
snapshot for each volume in the CG, and add a cgsnapshot_id foreign key
in each newly created snapshot entry in the db.

DocImpact
Implements: blueprint consistency-groups

Change-Id: Ic105698aaad86ee30ef57ecf5107c224fdadf724
2014-08-27 01:47:31 -04:00
..
api Consistency Groups 2014-08-27 01:47:31 -04:00
backup Allow backup-to-swift to take swift URL from service catalogue 2014-08-21 08:01:26 +00:00
brick Remove redundant temporary_chown from IetAdm 2014-08-19 15:59:50 -04:00
common Consistency Groups 2014-08-27 01:47:31 -04:00
compute debug level logs should not be translated 2014-06-18 09:03:02 -06:00
consistencygroup Consistency Groups 2014-08-27 01:47:31 -04:00
db Consistency Groups 2014-08-27 01:47:31 -04:00
hacking Add hacking check for use of LOG.audit 2014-08-09 10:22:03 -05:00
image Fix LOG string formatting in image_utils 2014-08-17 11:00:45 -06:00
keymgr Adds barbican keymgr wrapper 2014-08-18 09:38:57 -04:00
locale Imported Translations from Transifex 2014-08-18 06:07:42 +00:00
openstack Sync latest processutils from oslo-incubator 2014-08-26 11:32:37 -05:00
replication Add support in Cinder for volume replication - driver approach 2014-08-23 15:53:55 +00:00
scheduler Consistency Groups 2014-08-27 01:47:31 -04:00
testing updating testing readme with more current information. 2014-02-26 09:21:13 -05:00
tests Consistency Groups 2014-08-27 01:47:31 -04:00
transfer Use oslo.i18n 2014-08-08 17:26:41 -05:00
volume Consistency Groups 2014-08-27 01:47:31 -04:00
zonemanager Use oslo.i18n 2014-08-08 17:26:41 -05:00
__init__.py Remove vim header 2013-12-30 18:53:02 -06:00
context.py Allow backup-to-swift to take swift URL from service catalogue 2014-08-21 08:01:26 +00:00
exception.py Consistency Groups 2014-08-27 01:47:31 -04:00
flow_utils.py Put result in quotes 2014-08-14 17:02:32 -07:00
i18n.py Use oslo.i18n 2014-08-08 17:26:41 -05:00
manager.py debug level logs should not be translated 2014-06-18 09:03:02 -06:00
policy.py Use oslo.i18n 2014-08-08 17:26:41 -05:00
quota.py Consistency Groups 2014-08-27 01:47:31 -04:00
quota_utils.py Use oslo.i18n 2014-08-08 17:26:41 -05:00
rpc.py Integrate OSprofiler and Cinder 2014-08-21 02:19:36 +04:00
service.py Integrate OSprofiler and Cinder 2014-08-21 02:19:36 +04:00
ssh_utils.py Use oslo.i18n 2014-08-08 17:26:41 -05:00
test.py Enable import group hacking rule 2014-08-14 13:10:58 +08:00
utils.py Enable import group hacking rule 2014-08-14 13:10:58 +08:00
version.py Remove vim header 2013-12-30 18:53:02 -06:00
wsgi.py Use oslo.i18n 2014-08-08 17:26:41 -05:00