一.什么是pg的revovery?为什么需要它?
考虑两种最常见的场景:
1. osd暂时的故障下线然后又上线。
2.osd永久的故障下线,更换硬盘重新上线。
无论哪种情况,osd上线后通常会发现,自己承载的pg有数据落后了,需要进入恢复模式,从其它osd上获取新的数据达到同步。
这个过程就是pg的recovery过程。
recovery分为两种:
1. log-based recovery. 是说osd故障时间不长,需要恢复的数据可以通过pg log回放找回来。
2. backfill recovery. 是说无法通过pg log回放找全数据,只能通过全量回填(backfill)拷贝。
二.pg recovery三个相关的限流参数:
osd_max_backfills:默认值10
osd_recovery_max_active:默认值15
osd_recovery_max_single_start:默认值5
1. osd_max_backfills的含义是:一个osd上承载了多个pg。可能很多pg都需要做第二种recovery,即backfill。 设定这个参数来指明