关于pg恢复优先级的一些idea(记一次数据恢复)

概述

本文关于pg恢复场景下的一些想法、需求和可能得优化方向。

backfill

回顾backfill的逻辑

当Primary判断 ActingBackfill集合中,有副本需要通过backfill才能修复时,会向所有参与backfill的pg实例进行backfill的资源预留,当恢复线程不足,或者等待资源预留过程中,pg会进入backfill_wait状态。如果资源预留成功,可开始backfill也就是进入backfilling状态。如果一个backfill的pg实例,其所归属的osd空间不足,则会将当前backfill流程挂起,并释放之前申请预留的资源,同时pg进入backfill_toofull状态。primary会通过定时器中的回调函数,定期唤醒再次由primary发起资源预留申请,直到满足backfill所有条件。当pg backfill完成后,primary会发送backfilled事件,最终将状态机调整成active/clean状态,然后再删除这个pg不必要的副本。

简单来说,就是pg需要backfill,资源不够或者等待申请资源,进入backfill_wait状态,资源预留成功,osd空间足够,进入backfilling,空间不足,进入backfill_wait+toofull。主osd会定期进行重新申请,发现符合条件会再次backfill。backfill完成后,最终进入clean状态, 并回收不必要的空间

概念解释

这里重温一下之前提到的基础概念

  • osd_backfillfull_ratio:如上所说,osd进行pg backfill需要空间,为了避免osd直接full掉,一般先用此值限制osd 的pg backfill行为,避免osd空间达到full,造成集群error。
  • osd_full_ratio:允许单个osd所能达到的最高使用率,当达到这个值时,集群所有业务不可写入,变为只读。
  • osd_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值