对象存储灾备
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 节点执行以下命令:
参数:
<realm-name>:Realm 名称。<zonegroup-name>:ZoneGroup 名称。<primary-zone-name>:Primary Zone 名称。<object-store-name>:网关名称。
配置 Primary Zone 的外部访问
-
获取 ObjectStore 的 UID {#uid}
参数
<object-store-name>:在步骤 1中配置的网关名称。
-
创建外部访问 Service
参数:
-
向 CephObjectZone 添加外部端点。
参数:
获取 access-key 和 secret-key
参数:
<realm-name>:在此处配置的 Realm 名称。
创建 Secondary Zone 并配置 Realm 同步
本节说明如何创建 Secondary Zone 并通过从 Primary 集群拉取 Realm 信息配置同步。
在 Secondary 集群的 Control 节点执行以下命令:
参数:
<access-key>:从此处获取的 AK。<secret-key>:从此处获取的 SK。<realm-endpoint>:从 Primary 集群获取的外部地址。<realm-name>:Realm。<zone-group-name>:ZoneGroup。<secondary-zone-name>:Secondary Zone 名称。<secondary-object-store-name>:Secondary 网关名称。
配置 Secondary Zone 的外部访问
-
获取 Secondary 网关的 UID {#uids}
参数:
<secondary-object-store-name>:Secondary 集群中网关名称。
-
创建外部访问 Service
参数:
<secondary-object-store-name>:Secondary 网关。<secondary-object-store-uid>:Secondary 网关 UID。
-
向 Secondary CephObjectZone 添加外部端点
参数:
<secondary-zone-name>:Secondary Zone 名称。<secondary-zone-external-endpoint>:从 Secondary 集群获取的外部地址。
故障切换
当 Primary 集群发生故障时,需要将 Secondary Zone 提升为 Primary Zone。切换后,Secondary Zone 的网关可继续提供对象存储服务。
操作流程
在 Secondary 集群的 rook-ceph-tool pod 中执行以下命令:
参数
<realm-name>:Realm 名称。<zone-group-name>:Zone Group 名称。<secondary-zone-name>:Secondary Zone 名称。
相关操作
获取外部地址
-
进入 平台管理。
-
在左侧导航栏点击 存储管理 > 分布式存储。
-
在 集群信息 标签页,向下滚动至 存储池 区域,点击对象存储池旁的 ⋮,选择 查看地址。