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

ceph 报pg incomplete处理方法和步骤

[复制链接]

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
发表于 2022-8-16 10:05:48 | 显示全部楼层 |阅读模式
记录初始pg状态记录下初始pg现状,防止osd服务down掉之后,主、从、历史副本发生变化
' a! W# U+ p# B1 W# V; f3 Z2 Cceph pg dump|grep incom > pgincom.txt
* ~8 i1 m% m; ?, o. Vceph pg 1.5 query > 1.5query( {. c" K' d# R9 ~7 _7 p

7 t% |# X% B' o. |设置osd noout 防止处理时间过长,剔除集群:
: z  n' ~: J/ S3 Rceph osd set noout
! t$ Q* D% G& P9 U
" x4 X  D4 n' ?& `( X4 j' ]停止pg对应osd
/ i, p' y5 Y# n7 m" j3 [& D; i" I  w. a- o& E+ n0 S. o
systemctl stop ceph-osd@$OSD_NUM
1 p4 c6 f/ T( m7 L' r  t) b  I# k" T# L4 _7 [
导出备份pg和导入pg查找历史pg所在osd和其他副本pg所在osd,查看pg中的对象,先对比pg的主副本之间 pg里面的对象数 哪个对象数多 就把哪个pg export出来,然后import到对象数少的pg里面,选择完整对象的pg导出,再导入到主pg中(导入前备份)& L5 ^$ r1 k- M1 e- V
8 L: B* ?# l) {
然后再mark complete1 a# [. ^. ~* q8 F: A8 G- B

% L$ e) L, Q* L! h0 t' R0 Z0 Q查看对象
# j; K2 e0 A, {  _, n6 f( z' Yceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6 --pgid 2.28 --op list
# }  E4 H: o* V  ]. _, d9 Q. V导出ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op export --file 2.288 i5 ?/ B+ Z3 E( }3 h8 B, l7 F
导出并删除:ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op export-remove --file 2.28
$ G/ Y  j" ]: r" N0 v
( ^/ d: C# ?0 E8 X3 r. i导入
" l9 P. n: j( Sceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/ --pgid 2.28  --op import --file 2.28
$ X9 _* Z, x$ A- Y8 C6 C8 N: _- H' b  X- `4 P- Y9 D) z$ v( c0 i0 C
删除pg对于数据不完整的pg,实在无法修复的,执行删除操作( N: ~9 P) P" R! I! ~4 Z0 P: o
% \- @: Q% [: f3 P/ u- y
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op remove  --force
7 w& m" Y# _1 g1 ]
1 [9 {6 J. g- ?8 j+ R5 m, A, M, t% o, v7 L, ^
标记pg状态为complete+ V2 R, c- V' X7 N3 Y) u0 d* g
修复完的pg进行cpmplete标记2 @0 }. }/ [2 \7 `
* H2 j' l; J7 R* E  c# h
ceph-objectstore-tool --data-path /var/lib/ceph/osd/ceph-6/  --pgid 2.28 --op mark-complete
: V# O9 s  b% c& [6 q
& h6 q9 ~- h2 S: n. [' e- f6 b, o7 Y  k) E# D% ?+ L" S
0 _1 D* _# M$ t; T$ o6 z+ ~3 A
启动服务systemctl start ceph-osd@$OSD_NUM
4 Y% x: n( G/ E+ K8 U- F3 C$ J; Z1 e& W$ b5 V' F' l7 l! Z5 o
取消osd noout ,保证监控能告警。: O' z, m) i9 a' M# y6 |, I
ceph osd unset noout
! H* _2 t# r5 y+ Y) Q& k8 `' [& Q
$ q3 Z( v3 Z; ?4 ?1 g% m
( S; B/ c( I' N3 c- K, z( N

6 [" f  O# z- n
. }. x4 l& P5 W& D3 r0 M+ N$ d5 y+ o  w
& p. C+ ?& |$ v8 _, @6 {

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2022-11-21 14:19:37 | 显示全部楼层
#1. 查看pg 1.1主副本里面的对象数,假设主本对象数多,则到主本所在osd节点执行" p4 \" w: r0 y7 w" a
$ 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% p4 i, a' s) e$ E+ K
+ \/ O* c) H/ c# b
#2. 然后将/home/pg1.1 scp到副本所在节点(有多个副本,每个副本都要这么操作),然后到副本所在节点执行1 d" p; }7 m' T8 B: K
$ 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# m) a+ S* a' b( D/ ^* Q: L, i# y
: y1 p- C% o  a. b( k$ e* C
#3. 然后再makr complete
+ ]* [) F4 f7 U  C$ 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
# K- x9 q) ]2 ^  B  ]# B2 w
6 M" T2 x( _' q, O5 c#4. 最后启动osd
8 b( C8 ]$ r& A$ X, s$ start osd5 U( d0 w0 O- Z  Z3 u; x5 |2 F5 M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 22:58 , Processed in 0.018596 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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