Project

General

Profile

Consistency groups » History » Version 1

Version 1/2 - Next ยป - Current version
Victor Denisov, 03/11/2016 01:19 AM


Consistency Groups

Summary

Consistency Groups could be useful for Data Protection (snapshots, backups) and Remote Replication (Mirroring).

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).

There is already an interest to implement this functionality as a part Mirroring feature:
http://tracker.ceph.com/issues/13295

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.

Owners

  • Victor Denisov (Mirantis)
  • Mykola Golub (Mirantis)

Interested Parties

  • Victor Denisov (Mirantis)
  • Mykola Golub (Mirantis)

Current Status

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.

Detailed Description

This feature will require to add a new entity - consistency group.
You should be able to run the following operations on a consistency group:

  • Create a consistency group
  • Show a consistency group
  • List all available consistency groups
  • Add an image to a consistency group
  • Create a snapshot of all the members of a consistency group
    - Created snapshot of a consistency group only has references to snapshots that appear under the corresponding images
  • List all snapshots of a consistency group
  • Delete consistency group's snapshot
  • Modify consistency group (delete, add images to the consistency group)

A consistency group is empty upon its creation. Images need to be created and added to it later.
Not all operations have to be implemented at once. Many can be added later.

Openstack Cinder Integration

The functionality should cover Cinder Driver API to make integration possible:

def create_consistencygroup(self, context, consistencygroup, volumes)
def delete_consistencygroup(self, context, consistencygroup)
def create_cgsnapshot(self, context, cgsnapshot)
def delete_cgsnapshot(self, context, cgsnapshot)

https://github.com/openstack/cinder-specs/blob/master/specs/juno/consistency-groups.rst

Work items

Coding tasks

  1. Task 1
  2. Task 2
  3. Task 3

Build / release tasks

  1. Task 1
  2. Task 2
  3. Task 3

Documentation tasks

  1. Task 1
  2. Task 2
  3. Task 3

Deprecation tasks

  1. Task 1
  2. Task 2
  3. Task 3