searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Ceph数据修复:recovery与backfill

2023-06-25 08:07:10
191
0

1. recoery与backfill的区别

Recovery:通过副本之间的日志差异进行修复,属于增量修复;

Backfill:副本之间的日志有断层,无法从日志修复,只能对比副本之间的数据差异进行修复,属于全量恢复。

2. 判断PG是走增量修复(recovery)还是全量修复(backfill)

根据log日志判断的,一般默认一个pg保存3000条日志。

当加入集群OSD的log日志与权威OSD的log日志有交集时,增量恢复;

当加入集群OSD的log日志与权威OSD的log日志无交集时,全量恢复;

如图:osd.3重启后,日志记录的末尾序列号为3000,权威osd.1在场景一记录的起始序列号1000,那么osd.1与osd.3的日志有交集[1000,3000],此时recovery修复;权威osd.1在场景二记录的起始序列号为4000,那么osd.1与osd.3无交集,此时backfill修复。

3. 数据修复会消耗带宽、cpu资源,影响客户端IO,那么如何控制速度?

osd_recovery_op_priority:是控制数据迁移的op的优先级,一般为了降低对客户端op的影响,优先级低于客户端op;

osd_recovery_max_active:当PG修复是recovery时,调节该参数,可以控制PG的并发数,调节迁移速度的快慢;

osd_max_backfills:当PG修复是backfill时,调节该参数,可以控制PG的并发数,调节迁移速度的快慢。

 

0条评论
作者已关闭评论
wwwdl
2文章数
1粉丝数
wwwdl
2 文章 | 1 粉丝
wwwdl
2文章数
1粉丝数
wwwdl
2 文章 | 1 粉丝
原创

Ceph数据修复:recovery与backfill

2023-06-25 08:07:10
191
0

1. recoery与backfill的区别

Recovery:通过副本之间的日志差异进行修复,属于增量修复;

Backfill:副本之间的日志有断层,无法从日志修复,只能对比副本之间的数据差异进行修复,属于全量恢复。

2. 判断PG是走增量修复(recovery)还是全量修复(backfill)

根据log日志判断的,一般默认一个pg保存3000条日志。

当加入集群OSD的log日志与权威OSD的log日志有交集时,增量恢复;

当加入集群OSD的log日志与权威OSD的log日志无交集时,全量恢复;

如图:osd.3重启后,日志记录的末尾序列号为3000,权威osd.1在场景一记录的起始序列号1000,那么osd.1与osd.3的日志有交集[1000,3000],此时recovery修复;权威osd.1在场景二记录的起始序列号为4000,那么osd.1与osd.3无交集,此时backfill修复。

3. 数据修复会消耗带宽、cpu资源,影响客户端IO,那么如何控制速度?

osd_recovery_op_priority:是控制数据迁移的op的优先级,一般为了降低对客户端op的影响,优先级低于客户端op;

osd_recovery_max_active:当PG修复是recovery时,调节该参数,可以控制PG的并发数,调节迁移速度的快慢;

osd_max_backfills:当PG修复是backfill时,调节该参数,可以控制PG的并发数,调节迁移速度的快慢。

 

文章来自个人专栏
Ceph PG 状态介绍
2 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0