找回密码
 注册
查看: 682|回复: 1

ceph 报pg incomplete处理方法和步骤

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-8-16 10:05:48 | 显示全部楼层 |阅读模式
记录初始pg状态记录下初始pg现状,防止osd服务down掉之后,主、从、历史副本发生变化
5 m5 u: s9 G- H. V, O' oceph pg dump|grep incom > pgincom.txt6 _3 I2 ~& K6 q. B! x' A" f. f3 [
ceph pg 1.5 query > 1.5query4 \5 p( C, c6 n* t  s" H5 O5 w- h

1 R  Y6 v, g* c; c) q. g3 S6 ^设置osd noout 防止处理时间过长,剔除集群:
# F$ P% L- Y4 P" D4 Gceph osd set noout
3 ~+ F# n0 v: f( U: L6 Z
) U: U1 P1 p% K9 p* s% A( p停止pg对应osd
$ M/ u) ]) v$ h  A  m8 \2 [) r9 j2 s3 a3 c; u
systemctl stop ceph-osd@$OSD_NUM4 ^* ]" {+ w# V( F$ q
9 ^6 ]: a" M9 W; }" k; G% ]
导出备份pg和导入pg查找历史pg所在osd和其他副本pg所在osd,查看pg中的对象,先对比pg的主副本之间 pg里面的对象数 哪个对象数多 就把哪个pg export出来,然后import到对象数少的pg里面,选择完整对象的pg导出,再导入到主pg中(导入前备份)6 {# R3 U0 `+ I/ J9 l# i
4 D5 A+ Q8 w. z8 _. T! Q
然后再mark complete
  P( Z1 p/ k( L' W9 L# e9 {& D! P/ M; M( j; b$ y
查看对象& A! \5 b9 A" [8 N: k. d$ p
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6 --pgid 2.28 --op list
8 V( e$ g1 A" f: ^导出ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op export --file 2.28
6 o. O. s0 O/ ~0 ^* ~导出并删除:ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op export-remove --file 2.289 t* S2 H0 O" I5 Q$ b: c6 B

0 s' T- G6 Q  e+ H* D导入3 c+ g; R: A1 s( w  K( x
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/ --pgid 2.28  --op import --file 2.28; N. B8 _& _. A
  `/ k3 l# u4 a% i: z3 H. H$ D" Y
删除pg对于数据不完整的pg,实在无法修复的,执行删除操作* S' I0 [+ H- \1 h$ b. B

- _" ]& J1 k- J9 S2 Vceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op remove  --force
7 x  w2 u4 t3 l2 B8 B& o2 i7 M% j% ?3 M) C9 i! g
8 R5 ^" E9 Z& ]
标记pg状态为complete
& J7 i" m3 o+ g$ K( C修复完的pg进行cpmplete标记
4 d5 }: X9 ^% r7 [& L" h! I0 S8 R6 z
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op mark-complete3 e" x: ~$ Y: a4 {

: A) w) M3 Q2 h4 X2 i
7 l6 c7 ?, J& s- e# S! \. w6 ]2 r3 E. e7 h, Q, V9 v  L
启动服务systemctl start ceph-osd@$OSD_NUM
/ U0 u) p, `4 Z3 Q/ i
  U5 w6 h' A; A' R% ]8 a( m取消osd noout ,保证监控能告警。9 p- B* e7 x$ l( |- h3 S+ \
ceph osd unset noout
# T2 u5 p$ Q3 `" I6 c* j& m6 ^, A; O) e+ E
5 d9 \' O* k* D$ x% _
3 T- c  ?4 ]6 Y9 |" D* p
4 d4 |/ O6 c) Y6 r

0 g5 R+ ?4 L! Q8 c
5 a+ p; h7 m+ i1 g
  Q* x3 A* n) i: W7 p

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-11-21 14:19:37 | 显示全部楼层
#1. 查看pg 1.1主副本里面的对象数,假设主本对象数多,则到主本所在osd节点执行! J# W4 n  U8 }
$ ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-0/ --journal-path /var/lib/ceph/osd/ceph-0/journal --pgid 1.1 --op export --file /home/pg1.17 H3 Z" j2 m6 j+ N% Y

$ L4 j- }2 X& k/ S0 M#2. 然后将/home/pg1.1 scp到副本所在节点(有多个副本,每个副本都要这么操作),然后到副本所在节点执行9 k2 H. U- I% G0 B: A1 G
$ ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-1/ --journal-path /var/lib/ceph/osd/ceph-1/journal --pgid 1.1 --op import --file /home/pg1.1: U$ v4 J% a$ C

: s" b$ ]7 V2 x* e0 s$ q* Q& n. Z: P#3. 然后再makr complete
. w# B+ _% K' [* R) u$ ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-1/ --journal-path /var/lib/ceph/osd/ceph-1/journal --pgid 1.1 --op mark-complete
0 u5 T9 v# M  n5 S6 B; @- q, l# o* W# w% ^$ ?& u+ W; m7 \+ }
#4. 最后启动osd7 g3 Y# I  y. ]2 l" w7 L
$ start osd3 }/ J$ E2 k8 H0 X: G
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:12 , Processed in 0.012533 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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