3.4. 放置组计数
池中放置组的数量对于集群如何对等、分布数据和重平衡操作起非常重要的作业。与大型集群相比,在小集群中增加放置组的数据对性能并不会有显著提高。但是,拥有许多访问同一 OSD 的池的集群可能需要仔细考虑 PG 数量,以便 Ceph OSD 有效地使用资源。
红帽建议每个 OSD 100 到 200 个 PG。
3.4.1. 放置组计算器 复制链接链接已复制到粘贴板!
放置组(PG)计算器计算您和解决特定用例的放置组数量。当使用 Ceph 客户端(如 Ceph 对象网关)时,PG 计算器尤其有用,其中有许多池通常使用相同的规则(CRUSH 层次结构)。您仍然可以手动计算 PG,使用 放置组计数中用于小型集群和 计算放置组计数 的指南。但是,PG 计算器是计算 PG 的首选方法。
详情请参阅 红帽客户门户网站 中 每个池计算器的 Ceph 放置组(PG)。
3.4.2. 配置默认放置组计数 复制链接链接已复制到粘贴板!
当您创建池时,您还可以为池创建多个放置组。如果没有指定放置组的数量,Ceph 将使用默认值 8
,这会不接受低。您可以增加池的放置组数量,但我们建议设置合理的默认值。
osd pool default pg num = 100 osd pool default pgp num = 100
osd pool default pg num = 100
osd pool default pgp num = 100
您需要设置放置组数量(总计)以及用于对象的放置组数量(在 PG 分隔中使用的数量)。它们应该相等。
3.4.3. 小型集群的放置组计数 复制链接链接已复制到粘贴板!
小集群不会从大量放置组中受益。随着 OSD 数量的增加,为 pg_num
和 pgp_num
选择正确的值会变得更为重要,因为在出现问题时以及数据不稳定(这是严重事件导致数据丢失的可能性)时,对集群的行为有显著影响。务必要使用带有小集群的 PG 计算器。
3.4.4. 计算放置组计数 复制链接链接已复制到粘贴板!
如果您有超过 50 个 OSD,建议每个 OSD 大约有 50-100 个放置组来平衡资源使用量、数据持久性和分发。如果您小于 50 个 OSD,请在小型集群的 PG Count 中选择是理想的选择。对于单个对象池,您可以使用以下公式获取基准:
(OSDs * 100) Total PGs = ------------ pool size
(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
(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 使用太多放置组操作可能会显著降低性能,特别是在重新平衡或恢复过程中。
Ceph Storage 集群具有默认值 300 个放置组。您可以在 Ceph 配置文件中设置不同的值。
mon pg warn max per osd
mon pg warn max per osd
Ceph 对象网关使用 10-15 池进行部署,因此您可以考虑每个 OSD 使用少于 100 个 PG 来达到合理的最大数量。