5.2. Ceph 块设备镜像
RADOS 块设备 (RBD) 镜像是在两个或多个 Ceph 存储集群之间异步复制 Ceph 块设备镜像的过程。通过在不同的地理位置查找 Ceph 存储集群,RBD 镜像功能可帮助您从站点灾难中恢复。基于日志的 Ceph 块设备镜像可确保镜像所有更改的时间点一致性副本,包括读取和写入、块设备调整大小、快照、克隆和扁平化。
RBD 镜像使用专用锁定和日志记录功能,按照镜像发生的顺序记录对镜像的所有修改。这样可确保镜像的崩溃一致性镜像可用。
支持镜像块设备镜像的主要和次要池的 CRUSH 层次结构必须具有相同的容量和性能特性,并且必须具有足够的带宽才能确保镜像无延迟。例如,如果您的主存储集群中有 X MB/s 平均写入吞吐量,则网络必须支持连接至次要站点的 N * X 吞吐量,以及 Y% 用于镜像 N 镜像的安全因子。
rbd-mirror
守护进程负责通过从远程主镜像拉取更改,将镜像从一个 Ceph 存储集群同步到另一个 Ceph 存储集群,并将这些更改写入本地的非主镜像。rbd-mirror
守护进程可以在单个 Ceph 存储集群上运行,实现单向镜像功能,也可以在两个 Ceph 存储集群上运行,以实现参与镜像关系的双向镜像。
要使 RBD 镜像工作(可使用单向复制或双向复制),进行几个假设:
- 两个存储集群中都存在一个名称相同的池。
- 池包含您要镜像的启用了日志的镜像。
在单向或双向复制中,rbd-mirror
的每个实例必须能够同时连接其他 Ceph 存储集群。此外,两个数据中心站点之间网络必须具有足够的带宽才能处理镜像。
单向复制(One-way Replication)
单向镜像意味着一个存储集群中的主要镜像或镜像池会被复制到次要存储集群。单向镜像还支持复制到多个次要存储集群。
在辅助存储群集上,镜像是非主要复制;即 Ceph 客户端无法写入镜像。当数据从主存储集群镜像到次要存储集群时,rbd-mirror
只在次要存储集群上运行。
为了进行单向镜像工作,应进行几项假设:
- 您有两个 Ceph 存储集群,希望将镜像从主存储集群复制到辅助存储集群。
-
辅助存储集群附加有运行
rbd-mirror
守护进程的 Ceph 客户端节点。rbd-mirror
守护进程将连接到主存储集群,将镜像同步到次要存储集群。
双向复制(Two-way Replication)
双向复制在主集群中添加一个 rbd-mirror
守护进程,使得镜像可以在集群上降级并提升到次要集群中。然后可以对次要群集上的镜像进行更改,然后按照相反方向(从次要到主要)进行复制。两个集群都必须运行 rbd-mirror
,才能在任一集群上提升和降级镜像。目前,仅在两个站点间支持双向复制。
要进行双向镜像工作,请进行几项假设:
- 您有两个存储集群,希望在它们之间以任一方向复制镜像。
-
两个存储集群都附加了一个客户端节点,它们运行
rbd-mirror
守护进程。次要存储集群上运行的rbd-mirror
守护进程将连接到主存储集群,将镜像同步到次要存储集群,而主存储集群上运行的rbd-mirror
守护进程将连接到次要存储集群,将镜像同步到主要位置。
自 Red Hat Ceph Storage 4 起,支持在一个集群中运行多个活跃的 rbd-mirror
守护进程。
镜像模式
镜像以每个池为基础配置,带有镜像对等存储集群。Ceph 支持两种镜像模式,具体取决于池中镜像的类型。
- 池模式
- 启用了日志记录功能的池中的所有镜像都会被镜像(mirror)。
- 镜像模式
- 只有池中的特定镜像子集才会被镜像(mirror)。您必须为每个镜像单独启用镜像功能。
镜像状态
镜像是否可以修改取决于其状态:
- 可以修改处于主要状态的镜像。
- 处于非主要状态的镜像无法修改。
镜像在镜像上首次启用镜像时自动提升为主版本。升级可能发生:
- 通过在池模式中启用镜像来隐式执行镜像。
- 通过启用特定镜像的镜像来显式启用。
可以降级主镜像并提升非主镜像。
其它资源
- 如需了解更多详细信息,请参阅 Red Hat Ceph Storage 块设备指南中的镜像提升和降级小节。