Allow Ceph as an option for volume backup

Registered by Edward Hope-Morley

Cinder's volume backup manager currently supports backing up volumes to Swift.
Some users may be using an alternative object store such as Ceph and may
want to use that for volume backups. This blueprint proposes to add support to
the Cinder backup manager for backing up volumes to Ceph. Ensuring that the existing
Swift backup service is comptible with Ceph RADOS Gateway will be dealt with separate to this Blueprint.

'backing up volumes to Ceph' can mean a few different things depending on how it is used so will aim to support the following:

1. Backing up of volume from any driver to Ceph object store

2. Backing of of volumes where Ceph is used as Cinder store backend (RBD). This will be divided into two as follows:

    (a) backup of volumes within the same cluster using a seperate backup pool

    (b) backup of volumes between Ceph clusters

The aim is to have (1) and (2) provided by the same Ceph backup service thus making it compatible with all exisiting volume drivers and providing extra features to the RBD driver.

Blueprint information

Status:
Complete
Approver:
John Griffith
Priority:
Medium
Drafter:
Edward Hope-Morley
Direction:
Approved
Assignee:
Edward Hope-Morley
Definition:
Approved
Series goal:
Accepted for havana
Implementation:
Implemented
Milestone target:
milestone icon 2013.2
Started by
Edward Hope-Morley
Completed by
Edward Hope-Morley

Related branches

Sprints

Whiteboard

If you have ceph already, do you need a backup service (as you could just clone the image directly within CEPH.) What does backup provide over and above that? Would this use the cinder.backup.api and cinder.backup.manager or does it need to abstract additional stuff? Why would it use object store vs. block store to do so?

>> backing up to the same cluster that the original volume came from does not allow you to backup to a seperate failure domain.

>> Yes the existing API would be used (and extended if required).

User Story:
User Burford has a CEPH cluster in use as his cinder block back end. Burford also wants to backup his volumes. CEPH is at its heart an object store and Burford could use that object store capability natively (in addition to the rbd capabilities) to do a backup.

Alternatively, Burford could install a Swift compatible or S3 compatible gateway to CEPH and use one of those for his object backup--which of these scenarios does this bp address?

>> Swift support using Rados Gateway will be dealt with seperately to this Blurprint. Here we focus on getting the existing RBD driver working with the exisiting Swift backup service and add a new Ceph backup service which is compatible with all existing drivers. Once this is done we will work on some Ceph-specific enhancments.

Gerrit topic: https://review.openstack.org/#q,topic:bp/cinder-backup-to-ceph,n,z

Addressed by: https://review.openstack.org/34346
    Added Cinder volume backup to Ceph support

Addressed by: https://review.openstack.org/34350
    Added volume backup and restore to Ceph RBD driver

Addressed by: https://review.openstack.org/35216
    Added extensions to Ceph backup driver

Volume backup tempest tests are being dealt with as part of https://blueprints.launchpad.net/tempest/+spec/add-volume-backup-tests

(?)

Work Items

Work items:
[hopem] add backup support to ceph rbd driver - this will be compatible with the existing swift backup service i.e. backup to Swift: DONE
[hopem] add a new ceph backup service that will do simple volume to object store backup: DONE
[hopem] implement extended features for incremental and inter/intra ceph cluster backup: DONE
[hopem] add functional tests to tempest: INPROGRESS

This blueprint contains Public information 
Everyone can see this information.