Ceph backup driver

The Ceph backup driver backs up volumes of any type to a Ceph back-end store. The driver can also detect whether the volume to be backed up is a Ceph RBD volume, and if so, it tries to perform incremental and differential backups.

For source Ceph RBD volumes, you can perform backups within the same Ceph pool (not recommended). You can also perform backups between different Ceph pools and between different Ceph clusters.

At the time of writing, differential backup support in Ceph/librbd was quite new. This driver attempts a differential backup in the first instance. If the differential backup fails, the driver falls back to full backup/copy.

If incremental backups are used, multiple backups of the same volume are stored as snapshots so that minimal space is consumed in the backup store. It takes far less time to restore a volume than to take a full copy.


Block Storage enables you to:

  • Restore to a new volume, which is the default and recommended action.

  • Restore to the original volume from which the backup was taken. The restore action takes a full copy because this is the safest action.

To enable the Ceph backup driver, include the following option in the cinder.conf file:

backup_driver = cinder.backup.drivers.ceph.CephBackupDriver

The following configuration options are available for the Ceph backup driver.

Description of Ceph backup driver configuration options

Configuration option = Default value


backup_ceph_chunk_size = 134217728

(Integer) The chunk size, in bytes, that a backup is broken into before transfer to the Ceph object store.

backup_ceph_conf = /etc/ceph/ceph.conf

(String) Ceph configuration file to use.

backup_ceph_image_journals = False

(Boolean) If True, apply JOURNALING and EXCLUSIVE_LOCK feature bits to the backup RBD objects to allow mirroring

backup_ceph_pool = backups

(String) The Ceph pool where volume backups are stored.

backup_ceph_stripe_count = 0

(Integer) RBD stripe count to use when creating a backup image.

backup_ceph_stripe_unit = 0

(Integer) RBD stripe unit to use when creating a backup image.

backup_ceph_user = cinder

(String) The Ceph user to connect with. Default here is to use the same user as for Cinder volumes. If not using cephx this should be set to None.

restore_discard_excess_bytes = True

(Boolean) If True, always discard excess bytes when restoring volumes i.e. pad with zeroes.

This example shows the default options for the Ceph backup driver.

backup_ceph_user = cinder-backup
backup_ceph_chunk_size = 134217728
backup_ceph_pool = backups
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0