注意
本文档适用于 Ceph 的开发版本。
同步模块
从 Kraken 版本开始新增。
RGW 的多站点功能(在 Jewel 中引入)允许创建多个区域并在它们之间镜像数据和元数据。 同步模块构建在多站点框架之上,允许将数据和元数据转发到不同的外部层。每当数据发生更改时(元数据操作如存储桶或用户创建等也被视为数据更改),同步模块都会执行一组操作。由于 RGW 多站点更改最终在远程站点上保持一致,因此更改会异步传播。这将有助于解锁用例,例如将对象存储备份到外部云集群或使用磁带驱动器的自定义备份解决方案、在 ElasticSearch 中索引元数据等。
同步模块配置是特定于区域的。同步模块决定该区域是导出数据还是只能使用在另一个区域中修改的数据。截至 Luminous,支持的同步插件包括 elasticsearch、rgw(用于在区域之间同步数据的默认同步插件)和 log(一个简单的同步插件,用于记录远程区域中发生的元数据操作)。以下文档以使用 elasticsearch 同步模块的区域为例编写,配置任何同步插件的过程都类似。
要求和假设
让我们假设一个简单的多站点配置,如 多站点文档中所述,包含 2 个区域 us-east 和 us-west,让我们添加第三个区域 us-east-es,这是一个仅处理来自其他站点的元数据的区域。此区域可以与 us-east 位于同一个 Ceph 集群中,也可以位于不同的 Ceph 集群中。此区域将仅使用来自其他区域的元数据,此区域中的 RGW 将不直接服务任何最终用户请求。
配置同步模块
创建第三个区域,类似于 多站点 文档,例如
radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-es \
--access-key={system-key} --secret={secret} --endpoints=http://rgw-es:80
可以通过以下方式为此区域配置同步模块
radosgw-admin zone modify --rgw-zone={zone-name} --tier-type={tier-type} --tier-config={set of key=value pairs}
例如,在 elasticsearch 同步模块中
radosgw-admin zone modify --rgw-zone={zone-name} --tier-type=elasticsearch \
--tier-config=endpoint=https://:9200,num_shards=10,num_replicas=1
有关各种支持的 tier-config 选项,请参阅 elasticsearch 同步模块 文档。
最后更新周期
radosgw-admin period update --commit
现在在区域中启动 radosgw
systemctl start ceph-radosgw@rgw.`hostname -s`
systemctl enable ceph-radosgw@rgw.`hostname -s`