有时候,节点宕机或者osd daemon挂掉,会引发ceph集群的recovery,接下来具体聊一聊什么是recovery
什么是pg的recovery?
主要有两种场景:
- osd暂时下线,然后又上线
- osd硬件故障下线,更换硬盘重新上线
无论哪种情况,osd上线后通常会发现,自己承载的pg有数据落后了,需要进入恢复模式,从其它osd上获取新的数据达到同步。这个过程就是recovery。
recovery分为两种: - log-based recovery: 是说osd故障时间不长,需要恢复的数据可以通过pg log回放找回来。
- backfill recovery: 是说无法通过pg log回放找全数据,只能通过全量回填(backfill)拷贝。
recovery相关参数
|
|
如果恢复过程中,会影响业务,那么可以把osd_max_backfills(1)、osd_recovery_max_active(1)、osd_recovery_max_single_start(1)调小
参考:[https://blog.csdn.net/guzyguzyguzy/article/details/50439621 “ceph pg recovery参数限流值研究小结”]