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

recovery和backfill的分叉口

2024-10-11 10:17:28
4
0

先看一段recovery和backfill的日志:

可以看到关键函数在PrimaryLogPG::on_activate(),再进入对应的代码:

若因测试需要想要跳过recovery,直接backfill,配置文件配置如下即可:
osd_min_pg_log_entries = 1
osd_max_pg_log_entries = 1
osd_pg_log_trim_min = 1
 
set<pg_shard_t> backfill_targets记录的是需要做backfill的osd(刚加入pg的osd)。
 
pg的backfill请求也是发送到osd的work queue中与业务IO一起竞争。
 
本次backfill的对象,日志搜关键string“ my backfill interval BackfillInfo”可得该pg实际需要backfill的个数。也可以从日志grep " last_backfill_started " ./osd.* -Rn| grep "pg\[6\.5" 得到对象名和个数,需要排除掉MIN和MAX。
 
 
dout(10) << " peer " << bt
           << " num_objects now " << pinfo.stats.stats.sum.num_objects
           << " / " << info.stats.stats.sum.num_objects << dendl;//这个打印是backfill的对象个数。一条打印就是一个对象。
 
比如日志打印:peer 3 num_objects now 590 / 591,表示本次一共有591个对象做backfill,本次backfill的为第590个。

 

 

0条评论
0 / 1000
13文章数
1粉丝数
13 文章 | 1 粉丝
原创

recovery和backfill的分叉口

2024-10-11 10:17:28
4
0

先看一段recovery和backfill的日志:

可以看到关键函数在PrimaryLogPG::on_activate(),再进入对应的代码:

若因测试需要想要跳过recovery,直接backfill,配置文件配置如下即可:
osd_min_pg_log_entries = 1
osd_max_pg_log_entries = 1
osd_pg_log_trim_min = 1
 
set<pg_shard_t> backfill_targets记录的是需要做backfill的osd(刚加入pg的osd)。
 
pg的backfill请求也是发送到osd的work queue中与业务IO一起竞争。
 
本次backfill的对象,日志搜关键string“ my backfill interval BackfillInfo”可得该pg实际需要backfill的个数。也可以从日志grep " last_backfill_started " ./osd.* -Rn| grep "pg\[6\.5" 得到对象名和个数,需要排除掉MIN和MAX。
 
 
dout(10) << " peer " << bt
           << " num_objects now " << pinfo.stats.stats.sum.num_objects
           << " / " << info.stats.stats.sum.num_objects << dendl;//这个打印是backfill的对象个数。一条打印就是一个对象。
 
比如日志打印:peer 3 num_objects now 590 / 591,表示本次一共有591个对象做backfill,本次backfill的为第590个。

 

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0