Ceph 备份驱动

Ceph 备份驱动将任何类型的卷备份到 Ceph 后端存储。该驱动程序还可以检测要备份的卷是否为 Ceph RBD 卷,如果是,则尝试执行增量和差异备份。

对于源 Ceph RBD 卷,您可以在同一个 Ceph 存储池内执行备份(不推荐)。您还可以执行不同 Ceph 存储池之间的备份以及不同 Ceph 集群之间的备份。

在撰写本文时,Ceph/librbd 中的差异备份支持还比较新。此驱动程序首先尝试差异备份。如果差异备份失败,则驱动程序将回退到完整备份/复制。

如果使用增量备份,则同一卷的多个备份将存储为快照,以便在备份存储中占用最少的空间。恢复卷比执行完整复制花费的时间要少得多。

默认情况下,所有增量备份都保存在源卷存储上,这可能会占用通常更昂贵的原始存储上的大量磁盘空间,而备份存储则不然。启用选项 backup_ceph_max_snapshots 可以通过仅保留每个备份卷的有限数量的快照来节省源卷存储上的磁盘空间。在成功创建新的增量备份后,Ceph 备份驱动程序将确保删除相应备份卷的过量快照,以便在主存储上保留 backup_ceph_max_snapshots 个最新的快照。但是,如果用户手动删除了至少 backup_ceph_max_snapshots 个增量备份,则会导致增量备份自动变为完整备份。在这种情况下,下一个快照(即完整备份)将需要备份存储上的更多磁盘空间,并且完成时间将比增量备份长。

因此,该选项允许在源卷存储上所需的空间和备份存储上所需的空间之间进行权衡,以及在上述情况下更长的备份过程。

注意

块存储使您能够

  • 恢复到新卷,这是默认且推荐的操作。

  • 恢复到备份所做的原始卷。恢复操作执行完整复制,因为这是最安全的操作。

要启用 Ceph 备份驱动程序,请在 cinder.conf 文件中包含以下选项

backup_driver = cinder.backup.drivers.ceph.CephBackupDriver

Ceph 备份驱动程序可用以下配置选项。

Ceph 备份驱动程序配置选项说明

配置选项 = 默认值

描述

backup_ceph_chunk_size = 134217728

(整数) 备份在传输到 Ceph 对象存储之前被分解成的块大小(以字节为单位)。

backup_ceph_conf = /etc/ceph/ceph.conf

(字符串) 要使用的 Ceph 配置文件。

backup_ceph_image_journals = False

(布尔值) 如果为 True,则将 JOURNALING 和 EXCLUSIVE_LOCK 功能位应用于备份 RBD 对象,以允许镜像。

backup_ceph_max_snapshots = 0

(整数) 要保留的最新快照的数量。0 表示保留无限数量的快照。配置此选项可以通过仅在源卷存储上保留有限数量的快照来节省磁盘空间。但是,如果用户删除了仍保留在源存储上的所有增量备份,则下一个增量备份将自动变为完整备份,因为不再存在公共快照。

backup_ceph_pool = backups

(字符串) 存储卷备份的 Ceph 存储池。

backup_ceph_stripe_count = 0

(整数) 创建备份映像时要使用的 RBD 条带数。

backup_ceph_stripe_unit = 0

(整数) 创建备份映像时要使用的 RBD 条带单元。

backup_ceph_user = cinder

(字符串) 要连接的 Ceph 用户。这里的默认值是使用与 Cinder 卷相同的用户。如果未使用 cephx,则应将其设置为 None。

restore_discard_excess_bytes = True

(布尔值) 如果为 True,则在恢复卷时始终丢弃多余的字节,即用零填充。

此示例显示 Ceph 备份驱动程序的默认选项。

backup_ceph_conf=/etc/ceph/ceph.conf
backup_ceph_user = cinder-backup
backup_ceph_chunk_size = 134217728
backup_ceph_pool = backups
backup_ceph_stripe_unit = 0
backup_ceph_stripe_count = 0
backup_ceph_max_snapshots = 0