Ceph-RGW对象存储异地双活架构设计

Ceph-RGW对象存储异地双活架构设计

Deng YongJie's blog 550 2022-10-07

通过 Ceph 的对象网关:RADOS Gateway (简称 RGW),可以实现多站点的配置,最终实现双活数据中心。Ceph 的多站点网关的架构如下图所示:

  • Zone :定义了由一个或多个 Ceph 对象网关实例组成的逻辑组。
  • Zone Group :包含一个或多个 zone。在一个 zone group 中,一个 zone 将会被配置成 master zone。master zone 处理所有 bucket 和 user 的变更。Secondary zone 可以接受 bucket 和 user 操作请求,然后将操作请求重定向到 master zone。如果 master zone 出现故障,secondary zone 将会被提升为 master zone。
  • Realm: 它代表一个全局唯一的命名空间,包含一个或者多个 zone group。但必须要有一个 master zone group。Realm 使用 period 的概念来管理 zone group 和 zone 的配置状态。每次对 Zone group 或 zone 进行变更,都会对 period 做 update 和 commit 操作。每个 Ceph Cluster Map 都会维护它的历史版本。这些版本被称为 epoch。
  • Period :每个 period 包含一个独有的 ID 和 epoch。每次提交操作都会使 epoch 递增。每个 realm 都与一个当前的 period 相关联,它保持 zone group 和存储策略的当前配置状态。

Ceph 的多站点由一个 zone group 组成,zone 之间的复制进程是异步完成的,在第一个 zone 数据写入完成自动开始了。每个 zone 具有一个或多个 ceph-radosgw 实例,多个网关通常指向到 zone 中一个 Ceph 集群。从 Ceph 客户端发起的请求,可以在不同 radosgw 实例之间做负载均衡。

image-20230216174648256
image-20230216174657879