对象存储灾备
Ceph RGW Multi-Site 功能是一种跨集群异步数据复制机制,旨在同步地理分布的 Ceph 集群之间的对象存储数据,提供高可用(HA)和灾难恢复(DR)能力。
术语
前提条件
- 准备两个可部署 Rook-Ceph 的集群(Primary 和 Secondary),并确保它们之间网络连通。
- 两个集群必须使用相同的平台版本(v3.12 或更高)。
- 确保 Primary 和 Secondary 集群上均未部署 Ceph 对象存储。
- 参考创建存储服务文档部署 Operator 并创建集群。集群创建完成后,不要通过向导创建对象存储池,而是按照下述说明使用 CLI 工具进行配置。
架构

操作流程
本指南提供同一 ZoneGroup 内两个 Zone 之间的同步方案。
在 Primary 集群创建对象存储
本步骤创建 Realm、ZoneGroup、Primary Zone 及 Primary Zone 的网关资源。
在 Primary 集群的 Control 节点执行以下命令:
-
设置参数
参数说明:
-
创建对象存储
配置 Primary Zone 的外部访问
获取 access-key 和 secret-key
创建 Secondary Zone 并配置 Realm 同步
本节说明如何创建 Secondary Zone 并通过从 Primary 集群拉取 Realm 信息配置同步。
在 Secondary 集群的 Control 节点执行以下命令:
-
设置参数
参数说明:
<realm-name>:Realm 名称。<zone-group-name>:ZoneGroup 名称。<realm-endpoint>:从 Primary 集群获取的外部地址。<access-key>:从此处获取的 AK。<secret-key>:从此处获取的 SK。<secondary-zone-name>:Secondary Zone 名称。<secondary-object-store-name>:Secondary 网关名称。
-
创建 Secondary Zone 并配置 Realm 同步
配置 Secondary Zone 的外部访问
-
获取 Secondary 网关的 UID
-
创建外部访问 Service
-
将外部端点添加到 Secondary CephObjectZone
检查 Ceph 对象存储同步状态
在 Secondary 集群的 rook-ceph-tools pod 中执行以下命令
输出示例
metadata is caught up with master 和 data is caught up with source 表示同步状态正常。
故障切换
当 Primary 集群发生故障时,需要将 Secondary Zone 提升为 Primary Zone。切换后,Secondary Zone 的网关可以继续提供对象存储服务。
操作流程
在 Secondary 集群的 rook-ceph-tools pod 中执行以下命令
参数
<realm-name>:Realm 名称。<zone-group-name>:Secondary ZoneGroup 名称。<secondary-zone-name>:Secondary Zone 名称。
故障恢复
当主站点的故障集群恢复后,若需从 Secondary 站点切换回主站点,请按以下步骤操作。
操作流程
在 Primary 集群的 rook-ceph-tools pod 中执行以下命令
参数
<realm-name>:Realm 名称。<zone-group-name>:ZoneGroup 名称。<primary-zone-name>:Primary Zone 名称。