Project

General

Profile

Consistency groups » History » Version 2

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

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