Project

General

Profile

Consistency groups » History » Version 2

Victor Denisov, 03/21/2016 08:44 PM

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