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 |