Project

General

Profile

Consistency groups » History » Version 1

Victor Denisov, 03/11/2016 01:19 AM

1 1 Victor Denisov
h1. Consistency Groups
2
3
h3. Summary
4
5
Consistency Groups could be useful for Data Protection (snapshots, backups) and Remote Replication (Mirroring). 
6
7
The Mirroring support will allow to setup mirroring of multiple volumes in the same consistency group (i.e. attaching multiple RBD images to the same journal to ensure consistent replay).
8
9
There is already an interest to implement this functionality as a part Mirroring feature:
10
http://tracker.ceph.com/issues/13295
11
12
The snapshot support will allow snapshots of multiple volumes in the same consistency group to be taken at the same point-in-time to ensure data consistency. 
13
14
h3. Owners
15
16
* Victor Denisov (Mirantis)
17
* Mykola Golub (Mirantis)
18
19
h3. Interested Parties
20
21
* Victor Denisov (Mirantis)
22
* Mykola Golub (Mirantis)
23
24
h3. Current Status
25
26
Currently Mirroring feature is being implemented. Consistency groups is supposed to be implemented as a part of Mirroring. The snapshot support will allow snapshots of multiple volumes in the same consistency group to be take at the same point-in-time to ensure data consistency.
27
28
h3. Detailed Description
29
30
This feature will require to add a new entity - consistency group.
31
You should be able to run the following operations on a consistency group:
32
33
* Create a consistency group
34
* Show a consistency group
35
* List all available consistency groups
36
* Add an image to a consistency group
37
* Create a snapshot of all the members of a consistency group
38
  - Created snapshot of a consistency group only has references to snapshots that appear under the corresponding images
39
* List all snapshots of a consistency group
40
* Delete consistency group's snapshot
41
* Modify consistency group (delete, add images to the consistency group)
42
43
A consistency group is empty upon its creation. Images need to be created and added to it later.
44
Not all operations have to be implemented at once. Many can be added later.
45
46
h4. Openstack Cinder Integration
47
48
The functionality should cover Cinder Driver API to make integration possible:
49
50
51
def create_consistencygroup(self, context, consistencygroup, volumes)
52
def delete_consistencygroup(self, context, consistencygroup)
53
def create_cgsnapshot(self, context, cgsnapshot)
54
def delete_cgsnapshot(self, context, cgsnapshot)
55
56
https://github.com/openstack/cinder-specs/blob/master/specs/juno/consistency-groups.rst
57
58
h3. Work items
59
60
h4. Coding tasks
61
62
# Task 1
63
# Task 2
64
# Task 3
65
66
h4. Build / release tasks
67
68
# Task 1
69
# Task 2
70
# Task 3
71
72
h4. Documentation tasks
73
74
# Task 1
75
# Task 2
76
# Task 3
77
78
h4. Deprecation tasks
79
80
# Task 1
81
# Task 2
82
# Task 3