Ceph 新建/重建OSD Recovery速度加快
一般情况下可以操作以下参数实现速度控制,但是要留意,速度越快对集群性能的影响越大;可以动态的调整参数值,观察recovery对集群性能影响情况,找到合适自己的值,即不会对client请求造成过大影响的同时保障最优的recovery速度。
osd_recovery_max_single_start:指示每个可同时启动多少线程实现recovery
osd_backfill_retry_interval:osd在重试回填请求之前等待的秒数(默认30秒)
osd_recovery_sleep_hdd:指示hd磁盘在恢复过程中的休眠时间
osd_recovery_sleep_ssd:指示ssd磁盘在恢复过程中的休眠时间
osd_max_backfills:允许进出 OSD 的最大回填操作数。数字越大,恢复越快。
osd_recovery_max_active:OSD恢复请求的数量。数字越大,恢复越快。
osd_recovery_op_priority:恢复操作优先级,取值1-63,值越高占用资源越高,恢复越快。
osd_recovery_priority:同上,恢复操作的优先级,如过不希望影响业务,设置优先级低一些,数字越小,性能影响越小。
部分默认值:
ceph-admin:~ # ceph-config --show-config | egrep "osd_recovery_max_active|osd_recovery_op_priority|osd_max_backfills"
osd_max_backfills = 1
osd_recovery_max_active = 3
osd_recovery_op_priority = 3
除了直接修改ceph.conf文件然后重启osd的方式外,还可以动态的去修改这些值,例如在任意节点执行:
ceph tell 'osd.*' injectargs --osd-max-backfills=1 --osd-recovery-max-active=1
则可以把osd max backfills、osd recovery max active修改为1。建议动态调整后关注性能变化,在性能和恢复速度中找到平衡,不要出现slow ops,不仅影响client请求性能还影响恢复速度。
摘录学习自:
https://www.suse.com/support/kb/doc/?id=000019693
http://strugglesquirrel.com/2018/03/21/ceph%E9%9B%86%E7%BE%A4%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E6%81%A2%E5%A4%8D%E5%8F%82%E6%95%B0%E6%B5%8B%E8%AF%95/
https://docs.ceph.com/en/latest/rados/configuration/osd-config-ref/