13.4. 添加或删除节点的建议
红帽建议在一个节点中逐一添加或删除一个 OSD,并在继续执行下一个 OSD 前恢复存储集群。这有助于最大程度降低对存储集群性能的影响。请注意,如果某个节点失败,您可能需要一次性更改整个节点,而不是一次更改一个 OSD。
删除 OSD:
添加 OSD:
在添加或删除 Ceph OSD 节点时,请考虑其他持续进程也会影响存储集群性能。要减少对客户端 I/O 的影响,红帽向您推荐以下几项:
计算容量
在移除 Ceph OSD 节点之前,请确保存储集群可以回填所有 OSD 的内容,而不会达到全满比率
。达到 全满比率
将导致存储集群拒绝写操作。
临时禁用清理
清理是确保存储集群数据的持久性非常重要,但这是资源密集型。在添加或删除 Ceph OSD 节点之前,禁用清理和深度清理,并使当前清理操作在继续之前完成。
ceph osd set noscrub ceph osd set nodeep-scrub
在添加或删除 Ceph OSD 节点且存储集群返回 active+clean
状态后,取消设置 noscrub
和 nodeep-scrub
设置。
ceph osd unset noscrub ceph osd unset nodeep-scrub
限制回填和恢复
如果您有合理的数据持久性,则处于 degraded
状态应该不会出现问题。例如,您可以使用 osd_pool_default_size = 3
和 osd_pool_default_min_size = 2
来运行存储集群。您可以调整存储集群以最快的恢复时间,但这样做会对 Ceph 客户端 I/O 性能造成重大影响。要保持最高的 Ceph 客户端 I/O 性能,请限制回填和恢复操作,并允许它们花费更长的时间。
osd_max_backfills = 1 osd_recovery_max_active = 1 osd_recovery_op_priority = 1
您还可以考虑设置 sleep 和 delay 参数,如 osd_recovery_sleep
。
增加放置组数量
最后,如果您扩展存储集群的大小,可能需要增加放置组的数量。如果您确定需要扩展放置组数量,红帽建议在放置组数量中进行增量增长。通过显著数量增加放置组的数量会导致性能下降。