|
|
当我们执行ceph health detail 命令时报错:
0 y' h- l. d$ [& v[root@mon1 ~]# ceph health detail J p7 Y5 g4 w/ h+ J/ C2 `2 ?
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" Q5 a, ^* {& R: \/ e5 N8 ?; N
FS_DEGRADED 1 filesystem is degraded
+ |6 g* m4 Y* u' x( s; z fs cephfs is degraded
) B% b: o( J( O- L$ x1 O, n$ tMDS_DAMAGE 1 mds daemon damaged2 p6 v8 `4 g% C$ U! t
fs cephfs mds.0 is damaged
8 A! U; `; f0 U' R6 g1 ]! ?OSDMAP_FLAGS noout flag(s) set6 {7 h* }# d3 U- P5 \
OBJECT_UNFOUND 1/16745475 objects unfound (0.000%)
; V$ v4 |/ Z1 }* c W% [6 V4 P pg 7.123 has 1 unfound objects* [1 i; \# ^" X* B
PG_DEGRADED Degraded data redundancy: 2/33490950 objects degraded (0.000%), 1 pg degraded, f" t& ~- E' P2 A8 X
pg 7.123 is active+recovery_wait+degraded, acting [5,15], 1 unfound
9 J% [6 q5 G: a2 C7 C8 h6 l) y* @& {8 l T2 c
确认哪些对象找不到了:7 y; H! B7 m! \" s$ u
[root@mon1 ~]# ceph pg 7.123 list_missing o6 }. r; w6 b5 ^" ~; ?
{5 F3 O3 b6 @6 x. {' @# t+ O& l8 s& ]/ A
"offset": {9 D1 d6 n4 k- |$ w) ~
"oid": "",
, } Z0 X) I1 f; R% r "key": "",
) R5 C2 |9 I, W! I* Q# p "snapid": 0,4 ~2 F" }4 D: n+ _( w( w
"hash": 0,
& K: ~) g7 q2 K; Y "max": 0,) n4 {" [1 ?- V1 a# L
"pool": -9223372036854775808,, ~# r( F! O( I3 R
"namespace": ""
! E- q* j( ]& m4 O, Y) \8 J },
# L7 t& l# P; W6 g: h "num_missing": 1,
8 c5 V$ y) Y" ~6 `* O4 d "num_unfound": 1,( @+ V2 t) [- |8 \6 H P- S- A
"objects": [' N* N$ }. |0 \6 L, o
{1 m o5 i% N0 w0 e. r& M3 T( ?
"oid": {; `) l9 w5 k2 o: r( X" e+ @
"oid": "1000b73777d.00000000",
! ~9 r) ?3 N! z# u "key": "",
% f9 T$ B& i- E0 v ?0 ^ "snapid": -2,
3 k/ B& p6 Y( ]1 q "hash": 4108226851,! z( S8 D6 k- m4 R. y' w* R
"max": 0,
+ M7 q7 t ^# U$ w& L "pool": 7,5 j2 r6 y3 A& a8 R/ E8 ~. M5 {
"namespace": ""
' b0 \: x9 }# M1 Z },( m) \, P: p* T& l
"need": "13279'1",
0 l1 g# ~& _. N9 `7 p5 D6 ?! C) e "have": "0'0",
7 A( `7 G: b+ I+ W5 Y' t' v "flags": "none",
; [) {" c9 ?8 w0 J# |) K "locations": []6 z1 n2 l8 f% e+ u5 d ?0 h* p2 q
}; X* V& g9 F3 N% A/ k
],: H$ u$ k& _( U2 |% @ g( x' _
"more": false$ E! \$ p( |. U. A2 s6 G- E
}
7 J$ |2 g" s" e/ o+ W) N& I' D+ x5 e( d8 w, u4 e& z
如果在一次查询里列出的对象太多, more 这个字段将为 true ,你就可以查询更多。
8 J- [2 s: ~) o! g% Q3 Q. }8 d0 z* O其次,你可以找出哪些 OSD 上探测到、或可能包含数据:
: K6 {) r) G _
* Z0 B, c+ E! q6 |% H% W6 Z) o- W# ^! d h* z4 m. d6 I, ]! _
ceph pg 7.123 query
9 w" j( I& E. |" Q4 k( V! Q- B% h
; j% D$ }/ m, s9 `* Y4 G7 c0 @# \4 ]1 C. i! {4 L( e' y" k
, P. A3 P( [; ]# }9 ][root@mon1 ~]# watch ceph -s8 r9 U' ]; i' s
还无法恢复,只有放弃丢失的对象。执行如下命令回滚或删除对象:
; C+ ~8 S* h0 Z: z$ a7 }! C& h! D) p3 b( l! Q7 {2 {& d
ceph pg {pgname} mark_unfound_lost revert|delete
' `1 G+ e) o8 y4 v' [2 @ K( j
) _, i% J% c: r% f- revert选项:回滚到对象的前一个版本
- delete选项:完全删除这个对象3 T6 T* F& D) _
& Z& v V q) i: u
7 n: n4 W- A, n! {这里采用删除的方式解决:
9 B7 f7 F: A6 i# U( ~5 m[root@mon1 ~]# ceph pg 7.123 mark_unfound_lost delete8 j& V8 t& q9 B, o4 M6 a4 S
pg has 1 objects unfound and apparently lost marking
/ E- p9 S) H' I z4 i[root@mon1 ~]#
5 D* d% y' [1 W ^2 h& M: J) X( B8 E9 z4 W6 a
1 J- n, H7 n. F; U
|
|