ceph之rados设计原理与实现第七章:在线数据恢复——Recovery和Backfill

本文探讨了Ceph分布式存储系统中Recovery和Backfill两种数据恢复机制,涉及资源预留、对象修复策略以及增量Recovery和异步Recovery的改进方法,以提高效率并减少业务影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于每个写操作都需要产生和操作日志,所以处于效率考虑,必须定时对日志进行裁剪。
由于PG保存的日志条目有限,按照能否依靠日志进行数据恢复,存在两种数据恢复方式,分别为Recovery和Backfill。

Recovery指只需要修复副本(PG)上与权威日志不同步的那部分对象(即降级对象即可)。missing已经记录
Backfill指以PG全体对象为目标的数据迁移过程。例如所在OSD离线太久而期间产生大量客户端发起的读写请求,或者Ceph自身出于数据重平衡需要而执行Backfill。

1.Recovery

1.1 资源预留

为了防止集群中大量PG同时执行Recovery从而严重影响正常业务,需要对Recovery进行约束
在这里插入图片描述
在这里插入图片描述
为了实现上述约束,在PG正式开始执行Recovery任务之前,必须先由Primary主导,发起资源预留

所谓的资源预留:Primary(一个PG实例)必须先加入所属OSD的全局异步资源预留队列,如果OSD资源够,就会给队列头PG分配资源。
Primary得到OSD资源后,需要进一步通知所有参与本次Recovery的副本远程进行资源预留,所有副本都获得资源后,才能开始Recovery。

所有需要执行Recovery的PG也会进入op_shardedwq工作队列,与来自客户端的请求一同参与竞争。

1.2 对象修复

Pull:指Primary自身存在降级对象,由Primary按照missing_loc选择合适的副本去拉取降级对象的权威副

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值