rbd: Add snapshot mirroring support

Registered by Arthur Outhenin-Chalandre

Add support for snapshot based replication (this feature was added in Octopus in Ceph) to cinder rbd driver and ceph backup driver. Snapshot mirroring need the fast diff feature and to enable the replication per image. This feature is very similar to the existing ceph journal replication in cinder.

This would require to add some new configuration options. I propose to add `rbd_replication_mode` in the cinder driver which would have two possible values: "journal" and "snapshot" and defaults to "journal" to not break any existing configuration. On the cinder-backup driver I propose to add a boolean `backup_ceph_image_snapshot_mirroring` to be coherent with the existing `backup_ceph_image_journals`.

==> We discussed this at the cinder meeting on 7 July [0]. Consensus is that:
 (1) rbd driver option to select journaling vs snapshot mirroring is a good idea,
 (2) for rbd backup driver, journaling only when it's available, snapshot mirroring does not seem an appropriate technology for backups (so no change to rbd backup driver).

If you have an objection to (2), please come to the next Cinder weekly meeting [1] to explain to the team. Thanks!

[0] https://meetings.opendev.org/meetings/cinder/2021/cinder.2021-07-07-14.00.log.html#l-101
[1] https://etherpad.opendev.org/p/cinder-xena-meetings

Blueprint information

Status:
Started
Approver:
None
Priority:
Undefined
Drafter:
Arthur Outhenin-Chalandre
Direction:
Needs approval
Assignee:
Arthur Outhenin-Chalandre
Definition:
New
Series goal:
Proposed for xena
Implementation:
Needs Code Review
Milestone target:
None
Started by
Arthur Outhenin-Chalandre

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.opendev.org/q/topic:rbd-snapshot-mirroring

Addressed by: https://review.opendev.org/c/openstack/cinder/+/784945
    RBD: add support for snapshot mirroring based replication

Addressed by: https://review.opendev.org/c/openstack/cinder/+/784956
    backup: ceph: add support for snapshot mirroring based replication

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.