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

ceph 报pg incomplete处理方法和步骤

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-8-16 10:05:48 | 显示全部楼层 |阅读模式
记录初始pg状态记录下初始pg现状,防止osd服务down掉之后,主、从、历史副本发生变化
, q- c; g3 f- T/ g+ P" Y8 D5 s1 Mceph pg dump|grep incom > pgincom.txt
* u. s6 d# r- t( u: r3 Uceph pg 1.5 query > 1.5query
% V4 a- j. O1 L
6 ]/ x2 C% @: Z: r( S设置osd noout 防止处理时间过长,剔除集群:
8 e% h! }7 C: `8 O1 ^: lceph osd set noout+ E7 ~  N' [1 }& e. G

" B' I1 U+ L3 p& f; S停止pg对应osd
% k3 q* U* U# s' i) H
- H$ `9 u, ^4 X. q- o' O7 |" {systemctl stop ceph-osd@$OSD_NUM
. H6 U" E  z( Y! g& n) o; r9 U" [8 q+ f
导出备份pg和导入pg查找历史pg所在osd和其他副本pg所在osd,查看pg中的对象,先对比pg的主副本之间 pg里面的对象数 哪个对象数多 就把哪个pg export出来,然后import到对象数少的pg里面,选择完整对象的pg导出,再导入到主pg中(导入前备份)9 j6 m" s  \" k  w9 ?& v( D

  B( k6 S( R6 C5 H/ u; A然后再mark complete7 L: k" j7 Z8 N3 J  H# R2 @
$ `6 a' v  H, ]
查看对象/ o; H$ J. ?' W- d' S2 o3 V  Q8 e
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6 --pgid 2.28 --op list9 t4 d+ A5 E- }  H# `9 i
导出ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op export --file 2.28
% G; J# U. o  d' M# v( r导出并删除:ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op export-remove --file 2.289 O/ ^# `( r  s2 R9 u% I8 ^. e
* b5 \5 _$ ~" S# s
导入. ]' K: R8 {3 `, R
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/ --pgid 2.28  --op import --file 2.28
+ J; @$ a! ?/ h* i* p
4 |8 |* c9 J7 ~删除pg对于数据不完整的pg,实在无法修复的,执行删除操作
9 \' o! H. Q  B, a' L( x8 q
: J% P/ [+ a6 x) V3 [ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op remove  --force
- a' f4 ^) G2 w6 w# `" \  ?  x. }, v. N

0 ~  `0 w& G5 j4 j9 V. w标记pg状态为complete
6 n! L0 P3 e. w& o修复完的pg进行cpmplete标记$ u9 }! t; m6 ?; @+ N2 t4 h
2 _% N6 ~& N2 Z& q. u+ b
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op mark-complete
: e! `0 [" y& o" K4 H
1 g. R2 ?3 ^, b# R* D
$ k$ b# o2 h8 X$ ]$ Q: l: E
+ c$ g+ f+ W4 h; M, k5 s( |1 ^启动服务systemctl start ceph-osd@$OSD_NUM
$ w. D( `6 `, e( B. H8 H
5 }8 d9 x: r# E8 \( d7 I# H取消osd noout ,保证监控能告警。
; p! p% f* K! \6 n- Q% gceph osd unset noout
1 @3 v# \% E! p9 I$ k! F5 a
5 e, h' ?( t! \6 c- `0 X9 L' p/ y6 `5 Y1 z0 x
# L+ A8 y) B6 i
. m, l3 W3 B8 e
/ F2 _3 L" O0 {# A% S

5 i4 k" d! V& S8 d( ^8 v# Q: c5 |
, K* [' a8 h3 @3 O

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-11-21 14:19:37 | 显示全部楼层
#1. 查看pg 1.1主副本里面的对象数,假设主本对象数多,则到主本所在osd节点执行
6 C# i$ K( ~" b2 [: S' n* y2 A7 Y4 x$ 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
( |1 @$ y8 h7 L% y% ?
" v2 c6 b- u; N6 h8 O#2. 然后将/home/pg1.1 scp到副本所在节点(有多个副本,每个副本都要这么操作),然后到副本所在节点执行
: k- Q7 Z4 n/ g$ \  H6 I* e4 a$ 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
/ R: N: K2 B, I4 `
2 i6 I( \0 \" u. n#3. 然后再makr complete' k* h5 E0 Z* k6 D1 p# o, z
$ 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-complete7 }& {$ u% ~8 K
  W8 \2 h# g6 y0 O% Y: n3 R' O% V
#4. 最后启动osd
9 ?$ Q. u9 d+ j. j  e3 J/ W$ start osd1 `2 B  J( w2 v, ?+ D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 23:02 , Processed in 0.019552 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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