2.5. Ceph 对象网关注意事项
设计存储集群的另一个重要方面是确定存储集群会位于一个数据中心站点,还是跨越多个数据中心站点。多站点存储群集得益于地理分散的故障切换和灾难恢复,如长期停电、农业、风暴、风暴、水水或其他灾难。另外,多站点存储群集可以具有主动配置,该配置可将客户端应用定向到最接近的可用存储集群。这是内容交付网络的一个好存储策略。考虑尽可能将数据放置在客户端附近。这对吞吐量密集型工作负载(如流 4k 视频)非常重要。
红帽建议识别域、zone group 和 zone 名称 BEFORE 创建 Ceph 的存储池。使用区域名称作为标准命名约定附加一些池名称。
2.5.1. 管理数据存储 复制链接链接已复制到粘贴板!
Ceph 对象网关将管理数据存储在实例的区域配置中定义的一系列池中。例如,后续小节中讨论的 bucket、用户、用户配额和用量统计存储在 Ceph 存储集群的池中。默认情况下,Ceph 对象网关会创建以下池并将其映射到默认区域。
-
.rgw.root -
.default.rgw.control -
.default.rgw.meta -
.default.rgw.log -
.default.rgw.buckets.index -
.default.rgw.buckets.data -
.default.rgw.buckets.non-ec
只有 Ceph 对象网关中创建 bucket 之后,才会创建 .default.rgw.buckets.index 池,而数据上传到 bucket 后才会创建 .default.rgw.buckets.data 池。
考虑手动创建这些池,以便您可以设置 CRUSH 规则集和放置组的数量。在典型的配置中,存储 Ceph 对象网关管理数据的池通常使用相同的 CRUSH 规则集,并且使用较少的 PG,因为管理数据有 10 个池。
红帽建议 .rgw.root 池和服务池使用相同的 CRUSH 层次结构,并且至少将 node 用作 CRUSH 规则中的故障域。红帽建议将 复制 用于数据持久性,而不要删除 .rgw.root 池和服务池。
如果您将太多 PG 分配给池,mon_pg_warn_max_per_osd 设置将发出警告,默认为 300。您可以调整值以满足您的需求和硬件的功能,其中 n 是每个 OSD 的最大 PG 数。
mon_pg_warn_max_per_osd = n
对于包括 .rgw.root 在内的服务池,每个池计算器的 Ceph 放置组(PG) 建议的 PG 数显著低于每个 Ceph OSD 的目标 PG。此外,还要确保计算器的第 4 步中设置 Ceph OSD 的数量。
垃圾回收使用带有常规 RADOS 对象的 .log 池,而不是 OMAP。在未来的发行版中,更多功能会将元数据存储到 .log 池。因此,红帽建议将 NVMe/SSD Ceph OSD 用于 .log 池。
.rgw.root 池
存储 Ceph 对象网关配置的池。这包括 realms、zone group 和 zones。按照惯例,其名称不会以区域名称开头。
服务池
服务池存储与服务控制、垃圾收集、日志记录、用户信息和使用量相关的对象。按照惯例,这些池名称的前置为池名称的区域名称。
-
.ZONE_NAME.rgw.control: 控制池。 -
.ZONE_NAME.log:日志池包含所有存储桶、容器和对象操作的日志,如 create、read、update 和 delete。 -
.ZONE_NAME.rgw.buckets.index:此池存储存储桶的索引。 -
.ZONE_NAME.rgw.buckets.data:此池存储存储桶的数据。 -
.ZONE_NAME.rgw.meta:元数据池存储 user_keys 和其他关键元数据。 -
.ZONE_NAME.meta:users.uid:用户 ID 池包含唯一用户 ID 的映射。 -
.ZONE_NAME.meta:users.keys:密钥池包含每个用户 ID 的访问密钥和密钥。 -
.ZONE_NAME.meta:users.email:电子邮件池包含与用户 ID 关联的电子邮件地址。 -
.ZONE_NAME.meta:users.swift:Swift 池包含用于用户 ID 的 Swift 子用户信息。