RadosGW Charm 多站点复制¶
问题描述¶
RadosGW 多站点配置可以设置以提供对象同步,用于灾难恢复和其他目的,例如在云区域本地的 Ceph 集群中存储相同对象数据。典型的设置如下
每个区域组一个区域(每个“区域”一个集群);
多个区域组(“区域”);
一个 Realm;
运行模式:主动-主动或主动-被动。
注意
Ceph 支持主动-被动配置,但为了简化部署选择,charm 只支持主动-主动模式。
也可能存在更复杂的配置,每个区域组有多个区域(集群)。
为了设置此配置,不同 Juju 模型中的独立 radosgw 应用程序部署必须相互感知,并设置必要的配置
radosgw 的 Realm 名称;
主区域组和主区域配置;
用于守护进程之间身份验证的系统用户;
主区域身份验证的访问密钥和密钥;
在配置更改后需要更新一个周期来更改一个 epoch。
注意
charm 不支持将现有的单站点 ceph-radosgw 部署迁移到多区域部署。
提议的变更¶
为了能够配置多站点 radosgw 部署,有必要修改 radosgw charm 以支持多个 radosgw 应用程序之间的跨模型关系。此关系将用于交换端点和身份验证信息,以便为复制配置 RADOS 网关部署。
charm 将针对具有单个 realm 和区域组以及两个区域的固定拓扑。假设区域将由单独的 Ceph 集群支持,但这并非硬性要求(但建议这样做)。
将提供操作以提升和降级 RADOS 网关集群到和从主状态。不会提供自动故障转移,并且必须由操作员在站点故障转移/故障恢复事件中执行这些操作。
备选方案¶
由于这是 RADOS 网关特定功能,因此没有考虑替代方案。
实现¶
负责人¶
主要负责人
Gerrit Topic¶
对于与此规范相关的所有补丁,请使用 Gerrit 主题“radosgw-multi-site”。
git-review -t radosgw-multi-site
工作项¶
实现 radosgw 应用程序之间新的(跨模型)关系‘rgw-peer’,这些应用程序与不同的 Ceph 集群相关联。
添加支持,以设置每个 ceph-radosgw 部署的 realm、区域组和区域的附加配置键。
实现功能以设置主区域并向其添加辅助区域。
为新添加的功能编写单元测试。
编写功能测试,包括部署多个集群和验证对象同步。
仓库¶
不会创建新的 git 存储库。
文档¶
radosgw charm README 应包含有关启用新功能后部署 charm 的说明。
安全性¶
TLS 终止可以在任何一方启用,并且无需手动同步站点之间的 CA 证书即可支持。SSL CA 证书将使用新的 rgw-peer 关系在 RADOS 对等方之间共享。
测试¶
编写或更改的代码将涵盖在单元测试中;功能测试将使用 Zaza 完成。
依赖项¶
ceph-radosgw charm 当前使用旧式 radosgw systemd 单元和全局 cephx 密钥来访问基础 Ceph 集群。
charm 应迁移到使用新的 ceph-radosgw systemd 单元,并切换到使用特定于单个 radosgw 单元的 cephx 密钥。