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

ceph 报pg incomplete处理方法和步骤

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-8-16 10:05:48 | 显示全部楼层 |阅读模式
记录初始pg状态记录下初始pg现状,防止osd服务down掉之后,主、从、历史副本发生变化
, ]! x* ]0 h& r7 Z2 Vceph pg dump|grep incom > pgincom.txt
# R* A2 n  G" E: ^! m" e4 E7 C( t- ^ceph pg 1.5 query > 1.5query* ^$ o$ Y% W9 H  R5 u; Z. `% v) Q' g% b

; E* e3 Q; J- `6 ~设置osd noout 防止处理时间过长,剔除集群:% @+ K/ I; \! L* m
ceph osd set noout
, y9 \& R* t* I  p+ r& m* w5 U% b1 v! [! C
停止pg对应osd5 T2 M, \. c! D; [+ ^* H

* p- X. R3 M# Z8 tsystemctl stop ceph-osd@$OSD_NUM
  _  Q! u5 ?  N" S' }  y: i0 K1 a
导出备份pg和导入pg查找历史pg所在osd和其他副本pg所在osd,查看pg中的对象,先对比pg的主副本之间 pg里面的对象数 哪个对象数多 就把哪个pg export出来,然后import到对象数少的pg里面,选择完整对象的pg导出,再导入到主pg中(导入前备份)
1 y1 u  M5 U. V) @3 |/ ~- j
& j2 a* l3 G! N, a3 K然后再mark complete+ g, `' B" L9 U
5 l# ~! J, [6 t! }: H
查看对象
$ F2 O9 M: U* hceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6 --pgid 2.28 --op list
! Q9 g% X3 k: X8 y1 l3 Z8 I2 A: ^导出ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op export --file 2.28- }) w. ^0 S  f0 \; M& v
导出并删除:ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op export-remove --file 2.28
6 Z( Z, E" g6 l9 X1 b. \/ y8 z# ?) ]3 A  @+ j( i
导入
9 a8 t: ^8 N/ z6 q# N9 N& Rceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/ --pgid 2.28  --op import --file 2.28* L7 s5 G2 b- A( c, \
4 [' g4 R" `/ \1 Q( S
删除pg对于数据不完整的pg,实在无法修复的,执行删除操作
" Q$ Z6 q5 B8 f. O# r; f' b
& h3 N% I1 f: [9 wceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op remove  --force
) b& x8 P6 S! X) h8 L' V2 k5 }4 \6 y/ U6 u+ G# E* L/ i" h; V- P
; u1 V" v( Y! ^3 T2 v- q+ o# W
标记pg状态为complete
. Q# v! n4 J+ g修复完的pg进行cpmplete标记
  W# b& L$ E9 u+ z- w( O) k
. `0 [) @( w7 |! j5 hceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op mark-complete' M3 b: ?1 a* ^4 g6 J
  T& B- q7 a* V
4 y6 i) T; l: u
3 B7 n; x9 A. F& S
启动服务systemctl start ceph-osd@$OSD_NUM& n, W' Q3 _* q' j2 v! o% J
( H) @# l: Q0 j
取消osd noout ,保证监控能告警。
1 P- W; ?8 J# B8 @1 n* Bceph osd unset noout6 o1 N' g6 T; X& W
0 ]2 F( u* i/ v. Q

( e/ p! C9 r8 |0 L0 H+ D2 h4 E: C7 w' S3 x: Z. n1 e' Q4 ]

+ y  c: H6 l* f: j; z! j* i) Z6 l# ?6 Y( G( S& A/ J

9 p# _$ K6 V) \. f( A9 e1 `; K" S+ y! n0 w) O  C. \

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-11-21 14:19:37 | 显示全部楼层
#1. 查看pg 1.1主副本里面的对象数,假设主本对象数多,则到主本所在osd节点执行
9 N0 t& J) s8 f' h$ 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.1& C' C# _; P  Z) w

$ `% _  W4 ?7 h* T2 B& e3 D#2. 然后将/home/pg1.1 scp到副本所在节点(有多个副本,每个副本都要这么操作),然后到副本所在节点执行2 R2 B! V, q! l, k3 E; I
$ 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. k8 \% G, h! N9 K/ i& G( P/ l
$ R" t' D$ A' Q, q! c
#3. 然后再makr complete
/ \% E& [8 S7 R: d! S9 d, _$ 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/ x+ x+ k, d1 H- G9 z

: ?( ~+ s; m& ^) E2 `- p#4. 最后启动osd
# \/ c8 H6 V9 ]$ start osd
/ ]4 h" w$ c# [  b& H) M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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