3.3. PG Count


池中 PG 的数量在集群对等、分发数据和重新平衡方面扮演着重要角色。与大型集群相比,小型集群无法通过增加放置组的数量来看到性能增强。但是,访问同一 OSD 的集群可能需要仔细考虑 PG 数量,以便 Ceph OSD 高效地使用资源。

提示

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

3.3.1. PG Calculator

PG 计算器为您计算 PG 数量,并解决特定的用例。当使用 Ceph 客户端(如 Ceph 对象网关)时,PG 计算器特别有用,因为有许多池通常使用相同的规则(CRUSH 层次结构)。您可能仍然使用 PG Count for Small ClustersCalculating PG Count 来手动计算 PG。不过,PG 计算器是计算 PG 的首选方法。

详情请参阅 红帽客户门户 上的每个池 PG(PG )。

3.3.2. 配置默认 PG 数

在创建池时,您还会为池创建多个 PG。如果不指定放置组的数量,Ceph 将使用默认值 32,对于某些池而言 比较低。您可以为池增加 PG 数量,但我们也建议在 Ceph 配置文件中设置合理的默认值。

注意

为了避免健康警告 POOL_PG_NUM_NOT_POWER_OF_TWO 消息,将两个值用于 PG。

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

您需要设置 PG 数量(完整),以及用于对象的 PG 数量(用于 PG 拆分)。它们应该是相等的。

3.3.3. 小型集群的 PG Count

小型集群不会从大量放置组中受益。随着 OSD 数量增加,pg_numpgp_num 的正确值变得更为重要,因为它对集群的行为有显著影响,并在出现问题时对数据的持久性(严重事件事件导致数据丢失)。务必要将 PG 计算器 用于小型集群。

3.3.4. 计算 PG 数

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

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

其中,池大小 是复制池的副本数量,或者是纠删代码池的 K+M 和(由 ceph osd erasure-code-profile get返回)。

然后,您应该检查结果是否与 Ceph 集群的设计方式有关,以最大程度提高数据的持久性、数据分布并最大程度减少资源使用量。

结果应 四舍五入至 2 个最接近的力量。向上取整是可选的,但建议 CRUSH 在放置组之间均匀平衡对象数量。

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

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

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

3.3.5. 最大 PG 数

在使用多个数据池来存储对象时,您需要确保平衡每个池的 PG 数量和每个 OSD 的 PG 数量,以便达到合理的 PG 总数。目标是在不耗费系统资源或使 peering 进程变得太慢的情况下,实现每个 OSD 的相对差异。

在由 10 个池组成的实例式 Ceph 存储群集中,每个池在 10 个 OSD 上具有 512 个 PG,每个 OSD 共有 5,120 个 PG,分散在 10 个 OSD 或 512 个 PG 上。这可能不会根据您的硬件配置使用太多的资源。相比之下,如果您创建 1,000 个池,各自具有 512 个 PG,OSD 将分别处理大约 50,000 个 PG,并且需要的资源明显多得多。每个 OSD 使用太多 PG 运行可能会显著降低性能,特别是在重新平衡或恢复期间。

Ceph 存储集群每个 OSD 的默认值最大为 300 个 PG。您可以在 Ceph 配置文件中设置不同的最大值。

mon_max_pg_per_osd
Copy to Clipboard Toggle word wrap
提示

Ceph 对象网关部署有 10-15 个池,因此您可能会考虑每个 OSD 使用 100 个 PG 以达到合理的上限。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat