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)

3.4.2. 配置默认放置组计数

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

osd pool default pg num = 100
osd pool default pgp num = 100

您需要设置放置组数量(总计)以及用于对象的放置组数量(在 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

其中,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

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

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 的 PG 数量太多可能会显著降低性能,特别是在重新平衡或恢复期间。

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

mon pg warn max per osd
提示

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.