3.4. 放置组计数


池中放置组的数量对于集群如何对等、分布数据和重平衡操作起非常重要的作业。与大型集群相比,在小集群中增加放置组的数据对性能并不会有显著提高。但是,访问同一 OSD 的多个池的集群可能需要仔细考虑 PG 数量,以便 Ceph OSD 高效地使用资源。

提示

红帽建议每个 OSD 100 到 200 个 PG。

3.4.1. 放置组计算器

放置组(PG)计算器为您计算放置组数量,并解决特定的用例。当使用 Ceph 客户端(如 Ceph 对象网关)时,PG 计算器尤其有用,其中有许多池通常使用相同的规则(CRUSH 层次结构)。您仍然可以使用 小集群的放置组计数 中的指南手动 计算 PG,并计算放置组计数。但是,PG 计算器是计算 PG 的首选方法。

详情请参阅红帽客户门户网站上的 Ceph Placement Groups (PG) per Pool Calculator on the Red Hat Customer Portal

3.4.2. 配置默认放置组计数

在创建池时,您还会为池创建多个放置组。如果没有指定放置组的数量,Ceph 将使用默认值 8,这不可接受的低。您可以为池增加放置组数量,但我们推荐也建议设置合理的默认值。

osd pool default pg num = 100
osd pool default pgp num = 100
Copy to Clipboard Toggle word wrap

您需要设置放置组数量(总计)以及用于对象的放置组数量(在 PG 分隔中使用的数量)。它们应该相等。

3.4.3. 小集群的放置组计数

小集群不会从大量放置组中受益。随着 OSD 数量的增加,为 pg_numpgp_num 选择正确的值会变得更为重要,因为在出现问题时以及数据不稳定(这是严重事件导致数据丢失的可能性)时,对集群的行为有显著影响。将 PG 计算器 与小集群一起使用非常重要。

3.4.4. 计算放置组计数

如果您有超过 50 个 OSD,我们建议每个 OSD 大约 50-100 个放置组来平衡资源使用量、数据持久性和分发。如果您小于 50 个 OSD,在 PG Count for Small Clusters 中选择是理想的选择。对于单个对象池,您可以使用以下公式获取基准:

                (OSDs * 100)
   Total PGs =  ------------
                 pool size
Copy to Clipboard Toggle word wrap

其中,pool size 是复制池的副本数,或用于删除代码池的 K+M 总和(ceph osd erasure-code-profile 的返回值)。

然后,您应该检查结果是否适合您设计 Ceph 集群以最大化数据持久性、数据分布和最小化资源使用量。

结果应舍入到最接近的 2 的指数。轮循是可选的,但建议 CRUSH 在放置组之间均匀平衡对象数量。

对于具有 200 个 OSD 和池大小为 3 个副本的集群,您可以估计您的 PG 数量,如下所示:

   (200 * 100)
   ----------- = 6667. Nearest power of 2: 8192
        3
Copy to Clipboard Toggle word wrap

由于 8192 个放置组分布到 200 个 OSD,它评估为每个 OSD 大约 41 个 PG。您还需要考虑集群中可能会使用的池数量,因为每个池也会创建放置组。确保具有合理 的最大放置组计数

3.4.5. 最大放置组计数

当使用多个数据池来存储对象时,您需要确保平衡每个池的放置组数量与每个 OSD 的放置组数量,以便您可以达到合理的放置组总数。目的是实现每个 OSD 的合理差异,而无需消耗系统资源或使对等进程变得太慢。

在由 10 个池组成的 exemplary Ceph Storage 集群中,每个池在 10 个 OSD 上有 512 个放置组,总计有 5120 个 PG 分布于 10 个 OSD 中,或每个 OSD 都有 512 个放置组。取决于硬件配置,可能无法使用过多的资源。相反,如果您创建 1,000 个池,每个 PG 具有 512 个 PG,OSD 将处理 ~50,000的放置组,这需要大量资源。每个 OSD 操作带有太多放置组可能会显著降低性能,特别是在重新平衡或恢复过程中。

Ceph Storage Cluster 每个 OSD 的默认最大值为 300 个放置组。您可以在 Ceph 配置文件中设置不同的最大值。

mon pg warn max per osd
Copy to Clipboard Toggle word wrap
提示

Ceph 对象网关部署有 10-15 池,因此您可以考虑每个 OSD 使用少于 100 个 PG 来达到合理的数量。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat