Project

General

Profile

Consistency groups » History » Version 1

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

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