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 |