|
|
当我们执行ceph health detail 命令时报错:
9 H4 X+ X3 A# o5 T/ |[root@mon1 ~]# ceph health detail l2 m; h( E _
HEALTH_ERR 1 filesystem is degraded; 1 mds daemon damaged; noout flag(s) set; 1/16745475 objects unfound (0.000%); Degraded data redundancy: 2/33490950 objects degraded (0.000%), 1 pg degraded+ B4 T9 e( j; Z& w$ W
FS_DEGRADED 1 filesystem is degraded
+ e; H+ ]" Z0 t8 Z+ a% C% T% q2 q fs cephfs is degraded
. _. f6 c. J) h9 xMDS_DAMAGE 1 mds daemon damaged
+ S9 k" [; O3 Y0 i fs cephfs mds.0 is damaged
e* n8 n1 |4 I; k2 k* s; c. @" gOSDMAP_FLAGS noout flag(s) set& |, ?- }( `! a3 `
OBJECT_UNFOUND 1/16745475 objects unfound (0.000%)
- a _( _+ E' l/ W0 Y) b6 D pg 7.123 has 1 unfound objects
: f) k/ Y6 _( D/ b# \4 hPG_DEGRADED Degraded data redundancy: 2/33490950 objects degraded (0.000%), 1 pg degraded
6 l4 z. d+ z! w: X3 q pg 7.123 is active+recovery_wait+degraded, acting [5,15], 1 unfound8 |" ?1 T! Y( I& [7 o1 A
! L" ]6 _# r0 x0 T. G# \" c) Z
确认哪些对象找不到了:
8 d+ z/ v2 b" m8 K' Z. [2 S[root@mon1 ~]# ceph pg 7.123 list_missing
( Y$ F( a$ u9 G8 F# k( r{5 C% b- |" ?! D$ O# n$ ?# q
"offset": {) B( ~2 @) y$ o
"oid": "", w) I, a' }0 j% l' f
"key": "",
8 O; u4 o6 j! ?0 ?6 E "snapid": 0,' y" n( M: \% d+ E
"hash": 0,
% j y1 Z! I4 z "max": 0,& x* z8 z5 H. W i. e; u
"pool": -9223372036854775808,2 Y+ d1 d6 x5 q+ Z+ _: k
"namespace": ""
" O) z5 d1 [4 k% m. e },, e+ F( C& t; e
"num_missing": 1,6 n |- r& o7 J
"num_unfound": 1, P( z& z$ c# p" A/ @* i( l. T3 P$ w0 Z
"objects": [
5 x" J2 o; w$ [9 R1 [% J {: o3 V! l- m3 {+ K( G5 p7 H: F" p7 ^
"oid": {
, u |9 x3 k1 R3 M. Q "oid": "1000b73777d.00000000",
: y* U8 n% p& A/ |! S3 G3 A W "key": "",$ V$ y. t9 }) F' _
"snapid": -2,; u( Z/ T0 Q- f3 q2 d. b% I& p3 d* D
"hash": 4108226851,
4 r3 Q$ `) ^3 K( H+ x+ } "max": 0,4 F0 A9 ]+ {- C M
"pool": 7,
0 G/ {' `/ Y! ^6 R "namespace": "". d: H& @' x b$ q# ^
},
' P: j F9 M: N+ S* ] w" @- _% | "need": "13279'1", b5 [6 k) h7 x+ [ W: n* I8 i, Z
"have": "0'0",4 D# [; J3 R0 z! p# ^
"flags": "none",
4 L& O! y, z' z: ]' i0 S "locations": []
, K9 X6 p2 L% p# W$ f }8 W3 d9 W b' {
],1 G- C0 L w4 n, _7 n# T* Y
"more": false
- Q# M( Z4 ^; `2 R7 E6 P0 b}- D5 R z, s( }# n, B
8 k7 Z7 I2 S/ M8 ?
如果在一次查询里列出的对象太多, more 这个字段将为 true ,你就可以查询更多。
* N- G7 h9 p6 R; w- n q; o0 G其次,你可以找出哪些 OSD 上探测到、或可能包含数据:6 N+ _6 z* o! S. _- ?# d
( ?# j. A+ X$ q$ o+ t
- \( z U( ]# X) [& L
ceph pg 7.123 query
2 l3 X- }- K5 {6 n" x1 N- N S( O( }3 X9 c
; I. Y: ~! R7 h1 S I1 h& O8 u. G) n% n T$ d' X$ q) I
[root@mon1 ~]# watch ceph -s$ ?+ U; y4 k1 W
还无法恢复,只有放弃丢失的对象。执行如下命令回滚或删除对象:
: U6 h: \' q9 Z% E- s; G3 m4 B2 o8 w9 a t. J# O9 Y! U" H. [
ceph pg {pgname} mark_unfound_lost revert|delete* z: \" M$ p N; q
0 m" b) J+ h; b, Q- revert选项:回滚到对象的前一个版本
- delete选项:完全删除这个对象6 T3 H- c/ U5 z( D8 ?, H
7 z$ V5 Z; T, B9 F- A, Y( D) A& W9 c* l2 O4 ?
这里采用删除的方式解决: ]& Y: @' u+ h f Q9 e
[root@mon1 ~]# ceph pg 7.123 mark_unfound_lost delete K3 @# K% d0 W8 j0 c
pg has 1 objects unfound and apparently lost marking( z+ K0 H9 i- @
[root@mon1 ~]#
/ j: L6 {+ V ]0 f& C( {! W/ B6 v/ U1 z
5 E% _8 W0 r# ]% E: }* N8 x: r |
|