作者:李航(滴滴基础平台技术专家)
编辑:小君君(才云)
Ceph RBD 是 Ceph 的 RADOS 块设备。RBD 块存储是最稳定且最常用的存储类型,它类似磁盘可以被挂载。RBD 块设备具有快照、多副本、克隆和一致性等特点,数据以条带化的方式存储在 Ceph 集群的多个 OSD 中。本文的作者是滴滴基础平台技术专家李航,在这篇文章中,他将对 3 种 Ceph RBD 灾备方案展开介绍,并从它们的实现原理、操作命令、性能优缺等方面进行全面分析,为大家在生产中选择最佳灾备方案提供建议。
通过本文你将了解到:
业内灾备方案
Snapshot
Ceph BackUp
RBD Mirroring
方案对比
总结
业内灾备方案
1. Snapshot
1.1 介绍
Cluster A&B 是独立的 Ceph 集群,通过 RBD 的 Snapshot 机制,在 Cluster A 端,针对 image 定期通过 RBD 创建 image 的 snap,然后通过rbd export-diff
、rbd import-diff
命令将 image 备份到 Cluster B 中。
1.2 原理
异步备份,基于 RBD 的snapshot
机制。
1.3 命令和步骤
把 Cluster A 的 pool rbd 下面的 image testimage 异步备份到 Cluster B 的 pool rbd 下相同的 image 上:
在 Cluster A/B 上创建 rbd/testimage;
rbd create -p rbd --size 10240 testimage
在准备备份 image 前,暂停 Cluster A 端对 testimage 的 IO 操作,然后创建一个 Snapshot;
rbd snap create
导出 Cluster A 端的 testimage 数据,不指定 from-snap;
rbd export-diff
copy 上一步中导出的文件到 Cluster B 中,并导入数据到 testimage 中。
rbd import-diff
后续需要周期性地暂停 Cluster A 端的 testimage 的 IO,然后创建 snapshot,通过rbd export-diff [--from-snap ]
命令导出 incremental diff。
工程师们可以将差异数据文件 copy 到 Cluster B 上,然后通过命令rbd import-diff