7.5. 增加放置组
放置组(PG)计数不足,会影响 Ceph 集群和数据分布的性能。它是 nearfull osds
错误消息的主要原因之一。
建议的比率为每个 OSD 100 到 300 个 PG。当您添加更多 OSD 到集群时,此比例可能会降低。
pg_num
和 pgp_num
参数决定了 PG 数量。这些参数为每个池配置,因此您必须单独调整每个池的 PG 数较低。
增加 PG 数量是您可以在 Ceph 集群上执行最多密集型进程。如果没有以缓慢和方法方式执行,这个过程可能会对性能有严重影响。增加 pgp_num
后,您将无法停止或撤销进程,您必须完成它。考虑在业务关键处理时间分配外增加 PG 数量,并警告所有客户端有关潜在性能影响。如果集群处于 HEALTH_ERR
状态,则不要更改 PG 数量。
先决条件
- 正在运行的 Red Hat Ceph Storage 集群处于健康状态。
- 节点的根级别访问权限。
流程
减少数据在各个 OSD 和 OSD 主机上重新分配和恢复的影响:
降低
osd max backfills
、osd_recovery_max_active
和osd_recovery_op_priority
参数的值:[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 1 --osd_recovery_op_priority 1'
[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 1 --osd_recovery_op_priority 1'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用浅刮除和深度刮除:
[ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrub
[ceph: root@host01 /]# ceph osd set noscrub [ceph: root@host01 /]# ceph osd set nodeep-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
使用 每个池计算器的 Ceph 放置组(PG) 来计算
pg_num
和pgp_num
参数的最佳值。 以较小增量增加
pg_num
值,直到您达到所需的值。- 确定启动递增值。使用一个非常低的值(2 的指数),并在您确定对集群的影响时增加这个值。最佳值取决于池大小、OSD 数量和客户端 I/O 负载。
增加
pg_num
值:语法
ceph osd pool set POOL pg_num VALUE
ceph osd pool set POOL pg_num VALUE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定池名称和新值,例如:
示例
[ceph: root@host01 /]# ceph osd pool set data pg_num 4
[ceph: root@host01 /]# ceph osd pool set data pg_num 4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 监控集群的状态:
示例
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PG 状态将从
creating
变为active+clean
。等待所有 PG 都处于active+clean
状态。
以小增量增加
pgp_num
值,直到您达到所需的值:- 确定启动递增值。使用一个非常低的值(2 的指数),并在您确定对集群的影响时增加这个值。最佳值取决于池大小、OSD 数量和客户端 I/O 负载。
增加
pgp_num
值:语法
ceph osd pool set POOL pgp_num VALUE
ceph osd pool set POOL pgp_num VALUE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定池名称和新值,例如:
[ceph: root@host01 /]# ceph osd pool set data pgp_num 4
[ceph: root@host01 /]# ceph osd pool set data pgp_num 4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 监控集群的状态:
[ceph: root@host01 /]# ceph -s
[ceph: root@host01 /]# ceph -s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PG 状态将更改到
对等
、wait_backfill
、回填
、恢复
等等。等待所有 PG 都处于active+clean
状态。
- 对 PG 数量不足的所有池重复上述步骤。
将
osd max backfills
,osd_recovery_max_active
, 和osd_recovery_op_priority
设置为它们的默认值:[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 3 --osd_recovery_op_priority 3'
[ceph: root@host01 /]# ceph tell osd.* injectargs '--osd_max_backfills 1 --osd_recovery_max_active 3 --osd_recovery_op_priority 3'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用浅刮除和深度刮除:
[ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrub
[ceph: root@host01 /]# ceph osd unset noscrub [ceph: root@host01 /]# ceph osd unset nodeep-scrub
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 详情请查看 第 3 章 网络问题故障排除。
- 有关对 Ceph 监控器相关的最常见错误进行故障排除的详细信息,请参阅 第 4 章 Ceph 监控器故障排除。
- 有关对 Ceph OSD 相关的最常见错误进行故障排除的详细信息,请参阅 第 5 章 Ceph OSD 故障排除。
- 有关 PG 自动缩放器的更多信息,请参阅 Red Hat Ceph Storage 策略指南中的 自动扩展放置组 部分。