将设为首页浏览此站
开启辅助访问 天气与日历 收藏本站联系我们切换到窄版

易陆发现论坛

 找回密码
 开始注册
查看: 52|回复: 1
收起左侧

每个pg可以启动recover操作的最大数 ceph 以及recovery速率介绍

[复制链接]
发表于 2022-11-21 09:32:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?开始注册

x
// 集群中添加一个osd,; T% j- K; D: t+ k8 m/ A
ceph-deploy osd create  --bluestore node1 --data  /dev/sdg    --block-db cache/db1 --block-wal cache/wal1' G  [; H7 t& m' K$ H
4 X2 k" v& u1 M8 e
  t5 c- u. M" i* _) z) m; t/ S5 n
ceph daemon osd.5 config show  |grep osd_recovery_max_single_start   #这个值限定了每个pg可以启动recover操作的最大数。3 g3 Y: u: @! h2 Z/ w  K

# l! B( `1 J7 {, a7 t1 D7 q
% V8 ~  M" X% k, C// 查看每个osd节点的参数,或者通过  ceph daemon osd.2 config get osd_recovery_op_priority 查看单个osd的参数
7 B9 z' Q; x& X  C) {1 C0 k7 ^' S% C0 A# k# k# D3 G0 I
ceph daemon osd.5 config show |egrep "osd_recovery_max_active|osd_recovery_op_priority|osd_max_backfills"
3 d( f( f7 {2 s  ^' u    "osd_max_backfills": "10",# k  U% n0 J% u  B' C! i1 K+ g: ?% {
    "osd_recovery_max_active": "15",$ v8 ~6 |8 Q: a; S. Z+ a
    "osd_recovery_op_priority": "3",
/ r( Y2 ]! s7 n- f3 b* Y& w, v- i. A, {

% m5 S0 R+ r& J( M4 j  j: O1 W
! a$ t/ T, q  @8 `  `& A+ s+ Oceph tell osd.* injectargs --osd_max_backfills=128' q" O) G& h8 m1 I
ceph tell osd.* injectargs --osd_recovery_op_priority=0
5 q1 |! T, F- Xceph tell osd.* injectargs --osd_recovery_max_active=64" ?' S" K# w. Y
ceph tell osd.* injectargs --osd_recovery_max_single_start=646 Z0 y$ Z+ u2 \3 ~
ceph tell osd.* injectargs --osd_recovery_sleep_hdd=0& v/ o1 y8 \& Y) \+ ?, u7 V& b

" n5 k; h* @* u* R. @( c
  |+ j0 T3 u% j( f核心影响恢复速度的参数0 H2 i3 t" C) o: p: K6 ?9 ~* ~; g
osd_max_backfills
9 p) Q0 p( T! @' Y, Z( |/ P这个参数默认值10. 由于一个osd承载了多个pg,所以一个osd中的pg很大可能需要做recovery.这个参数就是设置每个osd最多能让osd_max_backfills个pg进行同时做backfill.
8 W1 J. ]8 Z) zrecovery做修复,通过pull或者push的backfills的操作数一般是分开的,所以一般会考虑设置这个值大一些,用于primary osd通过push修复replica osd或者primary osd 通过pull方式修复replica osd! G  m$ |" ?7 q% a2 G
osd_recovery_op_priority" `- I8 `- U0 G
默认值10. osd修复操作的优先级, 可小于该值;这个值越小,recovery优先级越高。高优先级会导致集群的性能降级直到recovery结束$ c% r8 }& ^% c" N2 ~2 c
osd_recovery_max_active
6 n2 t2 y1 Q7 \( O; o* V) i默认值15. 一个osd上可以承载多个pg, 可能好几个pg都需要recovery,这个值限定该osd最多同时有多少pg做recovery。
# h; D% |* T5 J( x1 [. |: A& zosd_recovery_max_single_start% ?% A9 [1 i( n
默认值5. 这个值限定了每个pg可以启动recovery操作的最大数。2 E! {* Q# u% w2 Q- f
第一种情况,配置osd_recovery_max_single_start=1,osd_recovery_max_active=3,这代表每个osd在某个时间会为一个pg最多启动1个恢复操作,并且最多可以由3个恢复操作处于活跃状态。0 B! j6 Q7 U- H- p& r
第二种情况,配置osd_recovery_max_single_start=2,osd_recovery_max_active=3,这代表某个时间点osd会为一个pg启动2个恢复操作,并且最多能有3个恢复操作处于活跃状态。
# t5 Y7 H$ x0 w; K  ?  @osd_recovery_sleep_hdd
$ T) h$ [! y) i! y" h' @7 Y每个recovery操作之间的间隔时间,单位是ms
' J. u# V. j7 r) z% B! l
# i1 ^: U$ O/ _: \+ Z! W7 y% `! R9 T5 o6 T9 ~

& p; z! C- J* v0 h
1 {! _  e: M7 t. e
 楼主| 发表于 2022-11-21 09:45:20 | 显示全部楼层
 pg的recovery模式分为两种:
  • 基于pg log的recovery,osd故障时间不长,需要恢复的数据可以通过pg log回放找回来。
  • backfill recovery. 是说无法通过pg log回放找全数据,只能通过全量回填(backfill)拷贝
    ! S' H& M; u2 o0 }- r$ R& i8 D" F# |

* G; J2 z+ A4 v. N6 u8 J. ?* j  T# g. p5 V/ C1 }! \9 Q- _% H
"osd_recovery_max_active": "10",      #一个osd上承载多个pg, 可能好几个pg都需要recover,这个值限定该osd最多同时有多少pg做recover。7 t, K) S' M- e  O3 @% j) ?4 \
    "osd_recovery_max_single_start": "5",   #这个值限定了每个pg可以启动recover操作的最大数。3 u4 s' V& o0 A+ S2 V5 f1 \) c
     "osd_recovery_max_chunk": "8388608",
5 t7 O  _5 d. s" C( R0 i     "osd_recovery_forget_lost_objects": "false",
- T2 V, K, Z+ s4 b     "osd_recovery_op_priority": "4",
& @2 H6 {/ I: U! x9 B4 v' l7 R     "osd_recovery_op_warn_multiple": "16",
" ?, _* w1 k# @7 u8 }/ @
$ V' \# J# U$ e" v     "osd_max_backfills": "4",          #一个osd上承载了多个pg。可能很多pg都需要做第二种recovery,即backfill。 设定这个参数来指明在一个osd上最多能有多少个pg同时做backfill。6 H9 D3 [- ]4 e' ^

5 H; K% e* {- n* }
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

如有购买积分卡请联系497906712

QQ|返回首页|Archiver|手机版|小黑屋|易陆发现 点击这里给我发消息

GMT+8, 2022-12-10 11:08 , Processed in 0.046568 second(s), 22 queries .

Powered by LR.LINUX.cloud bbs168x X3.2 Licensed

© 2012-2022 Comsenz Inc.

快速回复 返回顶部 返回列表