3.4. 添加或删除节点的建议
节点的故障可能会阻止一次移除某一个 OSD,然后再更改节点。在有些情况下,您可以在添加或删除 Ceph OSD 节点时降低对性能造成负面影响,红帽建议在节点间添加或删除一个 OSD,并允许集群在继续下一个 OSD 前进行恢复。有关删除 OSD 的详细信息:
在添加 Ceph 节点时,红帽还建议一次添加一个 OSD。有关添加 OSD 的详情:
在添加或删除 Ceph OSD 节点时,请考虑其他持续进程会对性能造成影响。为了减少对客户端 I/O 的影响,红帽建议以下操作:
计算容量:
在移除 Ceph OSD 节点之前,请确保存储集群能够通过 OUT 回填所有 OSD 的内容,到达 满比率
。达到 全满比率
将导致集群拒绝写操作。
临时禁用清理 :
清理是确保存储集群数据的持久性,但资源密集型是必不可少的。在添加或删除 Ceph OSD 节点前,禁用清理和深度清理,并在继续前让当前的清理操作完成,例如:
ceph osd set noscrub ceph osd set nodeep-scrub
添加或移除了 Ceph OSD 节点并且存储集群返回到 active+clean
状态后,取消设置 noscrub
和 nodeep-scrub
设置。
限制回填和恢复 :
如果您具有合理的数据持久性,例如 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
。
最后,如果您要扩展存储集群的大小,可能需要增加 PG 的数量。如果您确定需要扩展放置组数量,红帽建议在放置组数量上增加增量。通过大量增加放置组的数量会大大降低性能。