|
|
楼主 |
发表于 2022-11-10 13:51:53
|
显示全部楼层
情况
5 ~* p: k; z3 \ceph 在一次掉盘恢复后, 有 pg 出现 state unknown 的状况. 运行 ceph health detail, 显示: ~3 [+ w$ h, ?9 y ^4 g
9 x! \5 v' L( w8 p/ f+ m3 k' X$ u[root@storage02-ib ~]# ceph health detail
9 l0 Q2 i3 J! l, S; h$ T+ WHEALTH_WARN 211801/3035471 objects misplaced (6.978%); Reduced data availability: 4 pgs inactive( Y7 ]- W8 U4 B
OBJECT_MISPLACED 211801/3035471 objects misplaced (6.978%)
0 `/ b8 S, p) ~" LPG_AVAILABILITY Reduced data availability: 4 pgs inactive
, z/ I# ]- }4 i& Q- I9 e pg 20.16 is stuck inactive for 12365.100778, current state unknown, last acting []) {6 B1 J+ E: @- N5 b9 P
pg 20.29 is stuck inactive for 12365.100778, current state unknown, last acting []! d F3 k3 q6 ^
pg 20.2d is stuck inactive for 12365.100778, current state unknown, last acting []
/ l& T C" q0 M% `" y pg 20.37 is stuck inactive for 12365.100778, current state unknown, last acting []4 R2 J- V7 I0 N9 Y& w% g1 \9 b9 |
显示这4个 pg 卡住了.4 n8 q: T5 Z8 A3 E2 N0 d
. E1 J' @, a. q% d运行 pg query, 查看该 pg 的具体信息, 显示:
# b% V2 i! v& R) [6 H9 x
9 W2 Z: E, @5 D# g8 a% T+ Croot@storage01-ib:~# ceph pg 20.16 query& C: b' ?: U5 |$ M" g
Error ENOENT: i don't have pgid 20.161 K6 e6 G/ Q* J2 y& O7 J/ h
无法找到该 pg id.
0 a4 j, t! N7 t3 q% d/ ?
U% S9 Q' H" s, U运行 pg dump_stuck unclean, 显示:
$ v( z. ^6 G6 T5 R" M
1 v8 P; V+ z+ |. E* lroot@storage01-ib:~# ceph pg dump_stuck unclean
8 u8 v6 K3 Z9 [! ?( V* w. Lok
8 P8 ]! N* t: e, @! B2 tPG_STAT STATE UP UP_PRIMARY ACTING ACTING_PRIMARY
8 ^( [& e3 L/ Q# j9 y+ X" W21.f9 active+remapped+backfill_wait [7,4] 7 [4,9] 4 * M1 a& A& }3 A- c& k- } Q9 u
21.f7 active+remapped+backfilling [4,8] 4 [4,2] 4 9 e; [" C9 w3 {
21.d9 active+remapped+backfill_wait [10,0] 10 [0,9] 0 6 ?* f n* l4 l6 t* L# ?. @% o
21.c9 active+remapped+backfill_wait [8,4] 8 [4,7] 4
( R# S( }8 y. p7 i5 W. n7 V21.b8 active+remapped+backfilling [2,7] 2 [6,7] 6
6 U% G; i' a* g/ i I7 D21.af active+remapped+backfill_wait [0,5] 0 [0,8] 0
% |4 N0 o# q5 x; y& Q21.a3 active+remapped+backfill_wait [4,8] 4 [4,9] 4 6 _ P; G$ f$ q+ O6 r
21.9c active+remapped+backfill_wait [9,10] 9 [5,10] 5 0 p4 d& _& }; c2 u6 P, r5 ^
21.cb active+remapped+backfill_wait [5,3] 5 [2,3] 2 9 p( A( ]* Z! \1 E: n6 d
21.95 active+remapped+backfilling [10,4] 10 [10,7] 10
3 L! l' p# v. z2 ~3 C21.f3 active+remapped+backfill_wait [2,10] 2 [2,5] 2
/ V4 @/ C# @+ t B- c5 ], \21.3f active+remapped+backfill_wait [4,2] 4 [2,6] 2 5 t" @: X; y* `% C
21.3a active+remapped+backfill_wait [3,6] 3 [6,9] 6 ) G" o* ?* l( _! \
20.37 unknown [] -1 [] -1 2 m8 \1 r# `9 I6 S
21.b4 active+remapped+backfill_wait [2,7] 2 [2,10] 2 ) `* y! \! z9 e& ^& G9 L+ L
21.56 active+remapped+backfill_wait [8,7] 8 [8,5] 8
# ]- A' N# [ k- T# k# V21.68 active+remapped+backfilling [7,2] 7 [0,2] 0
3 X. b3 V) q. h; f; v, k9 B1 c9 T21.2e active+remapped+backfill_wait [10,6] 10 [5,6] 5 6 G6 ~# r T( }# C
21.7f active+remapped+backfill_wait [9,8] 9 [9,7] 9 / I- Q1 `: a# a
21.e9 active+remapped+backfill_wait [4,9] 4 [9,10] 9
4 q* e2 O" I8 C8 j/ s6 P' ~21.55 active+remapped+backfill_wait [9,4] 9 [9,6] 9 * `: X: K! V6 Q: r
21.5e active+remapped+backfill_wait [0,6] 0 [0,9] 0 ! v: _* j1 P0 R2 \
21.87 active+remapped+backfill_wait [7,8] 7 [7,4] 7
4 }; h$ y6 y- N: m21.76 active+remapped+backfill_wait [10,8] 10 [4,8] 4
+ U4 U0 ~( F' V2 z9 L' H21.a1 active+remapped+backfill_wait [2,5] 2 [5,6] 5 # j1 |2 i u1 ]0 }+ [4 t
21.43 active+remapped+backfill_wait [3,0] 3 [0,5] 0 5 L9 w2 e) a4 p( m
21.82 active+remapped+backfill_wait [7,3] 7 [7,9] 7 5 U. z% K; W! J/ o
20.2d unknown [] -1 [] -1 & C k/ t; [. d* i5 d# X. s3 U! J. l
21.2d active+remapped+backfill_wait [4,8] 4 [4,2] 4
- n2 ]2 R+ Z6 R& C$ T. m9 J# k4 \. u. }21.1c active+remapped+backfill_wait [8,0] 8 [0,6] 0 : Z; z+ M. d" c6 K+ [
21.22 active+remapped+backfill_wait [4,9] 4 [4,7] 4
0 \" P/ c( ] Y1 w C! }21.79 active+remapped+backfill_wait [4,6] 4 [4,0] 4
: a1 ^0 b/ C0 M% I% m3 M/ ~- \% o0 k21.28 active+remapped+backfill_wait [7,4] 7 [0,4] 0 $ R9 F3 L) Q, U" U; M, {
20.29 unknown [] -1 [] -1 $ r" n5 X" E+ y. S- R- ~
20.16 unknown [] -1 [] -1
! ^6 ?& @( s+ G, [/ a7 a) S* b) r29.4 active+remapped+backfill_wait [6,1] 6 [6,4] 6 " J7 l$ P: f% \* a4 S, o
21.23 active+remapped+backfill_wait [10,0] 10 [0,3] 0 " U* p d8 m# Z9 P j1 ~( V) Q, @
21.63 active+remapped+backfill_wait [9,0] 9 [0,2] 0
2 L" @0 s* L i3 e! c, h- b29.5 active+remapped+backfill_wait [1,9] 1 [0,9] 0 $ B, v) P4 U+ J1 j% I' `/ W- S
21.6c active+remapped+backfill_wait [6,5] 6 [6,8] 6
- ~/ ?& a9 i0 @$ i21.e active+remapped+backfill_wait [0,7] 0 [4,7] 4 . m) c! M) `. O$ T
分析
, ~3 j0 P7 {! A看来是这几个 pgid 彻底找不到了. 我的 osd pool 有三个, 分别叫 l1 (1副本), l2 (2副本), l3 (3副本).+ k9 i+ t( j! s' D, m
! d0 A) I9 E7 L$ L- z0 K
估计可能是之前写入 1 副本的数据由于硬盘挂掉导致的数据丢失.- O* ~, l3 e9 N# h0 }
1 R: D- b2 y" ]9 X. I. a3 y
既然是1副本, 也不要求数据可靠性了. 并且本身存储的也是一些下载到一半的数据, 也没什么关系.7 y G' W/ S; o0 F
# T' A+ I! }$ P7 ?0 f* x) ]
修正; Z/ t9 U( D! y/ ?. g) v; o& E
通过阅读 CEPH 官方 PG troubleshooting 文档 , 发现了解决方案:
! n& W6 g( j7 e
' q5 z) v- {; A, x) oPOOL SIZE = 1
; B" p z% _7 g3 c! ^
; A5 A$ Q+ X% U* T1 ^If you have the osd pool default size set to 1, you will only have one copy of the object. OSDs rely on other OSDs to tell them which objects they should have. If a first OSD has a copy of an object and there is no second copy, then no second OSD can tell the first OSD that it should have that copy. For each placement group mapped to the first OSD (see ceph pg dump), you can force the first OSD to notice the placement groups it needs by running:& p+ ]) Y6 [9 K y- C
2 c! g/ q% F2 L6 sceph osd force-create-pg <pgid>6 \% U& U* t- L' w: V( j2 ~. X
4 W$ {- h* I* W8 } x% K! A即, 多 osd 副本可以互相通知 pg 信息, 但是单副本就会丢, 为了恢复这个pg, 我们可以强行创建它.7 o' _, w3 m( d
" ^2 E6 m% B+ P: R6 G
root@storage01-ib:~# ceph osd force-create-pg 20.37! p7 \& Q8 b1 ^
Error EPERM: This command will recreate a lost (as in data lost) PG with data in it, such that the cluster will give up ever trying to recover the lost data. Do this only if you are certain that all copies of the PG are in fact lost and you are willing to accept that the data is permanently destroyed. Pass --yes-i-really-mean-it to proceed.
* G0 g* `0 `3 S运行创建命令, 提示, 运行会永久的丢失该 pg 的数据, 需要加上 --yes-i-really-mean-it.0 u; ?7 C4 u9 e% A# D
" c5 l4 F V/ Z* L# m
root@storage01-ib:~# ceph osd force-create-pg 20.37 --yes-i-really-mean-it
' W: w2 s$ `0 O2 z/ f7 \pg 20.37 now creating, ok7 f5 I' {" ?& p0 X$ j2 S
执行成功.# n: p) W1 x# Q, X( ?
# Y* z4 G0 i4 R. L7 z6 G查看新创建的 pg.- l, A* N. ^1 J9 N& X; ^) D
, E" V+ E" G H7 g* ~' s
root@storage01-ib:~# ceph pg 20.37 query4 G! F7 ?1 g5 x3 L. m
{) E4 i" W4 ?* W/ f% m
"state": "active+clean",
1 h# }5 w+ y- F0 b5 d "snap_trimq": "[]",
9 M- p8 \( k0 i "snap_trimq_len": 0,3 z; r/ ?1 H' x3 x; D S" v
"epoch": 814,
+ D: S; I- X; e; n5 v% X' C "up": [
+ d$ J2 `+ j+ p- ~# _: E. {# b/ H 69 q& ~2 m7 @* {1 Z
],
2 p; X& ^' ]" E1 [: w9 \# l) _ "acting": [' v$ b% x7 y' ~3 Y4 x6 R/ K+ P
6
4 k. O% E; [7 s! O% s ],
" b S4 N4 r$ W0 U! T "acting_recovery_backfill": [% A1 C% ^* u; o1 y7 s
"6"
5 h* b4 i; U" ^% n ],
. b0 h7 {, N8 V "info": {
% `: S; a+ Y* \$ V; \5 [ "pgid": "20.37",$ Q5 m j' E, i4 k
"last_update": "0'0",
4 G C- o R4 b* D1 u* v "last_complete": "0'0",
! _* n: R W, w: e% C( i "log_tail": "0'0",6 n% u1 H, S$ ]% W
"last_user_version": 0,- v) j" ~# m- x6 @* O( G
"last_backfill": "MAX",7 a1 L6 u1 Z# g0 d3 q9 n
"last_backfill_bitwise": 0,/ {6 ]+ i) ^1 G# k
"purged_snaps": [],
9 K, V5 [6 ]8 }- f" Z8 `/ F" G "history": {
& P; i4 _7 ?$ u "epoch_created": 795,, `3 X# R. }7 X6 K4 M0 P0 r
"epoch_pool_created": 795,
! |" ~4 A% I/ V- S. {3 Z9 Q "last_epoch_started": 797,& O% |5 ?5 U" T) v* b
"last_interval_started": 795,* L- e; d2 Z& d* Z
"last_epoch_clean": 797,1 G+ N6 `+ A' _# t# _2 n% M9 [5 \4 U
"last_interval_clean": 795,/ ~) y$ u7 _& b) ~1 B( H9 z
"last_epoch_split": 0,
, f, r" N( y: {2 ^1 y0 A "last_epoch_marked_full": 0,
6 }% |6 U9 Y- Z4 B) U, Y3 i "same_up_since": 795,# [* v. k m2 s
"same_interval_since": 795,0 K( u7 S, Z/ H
"same_primary_since": 795,% B% X6 s7 z- R/ H: }! i1 Q
"last_scrub": "0'0",- G3 L; G2 m* n! C6 Q
"last_scrub_stamp": "2019-03-05 03:02:04.611341",8 F9 R R3 |* r' W
"last_deep_scrub": "0'0",1 u/ r) I6 q2 T4 m9 @& K& m
"last_deep_scrub_stamp": "2019-03-05 03:02:04.611341",# {4 Q- |$ p [
"last_clean_scrub_stamp": "2019-03-05 03:02:04.611341"
3 K- T4 c# y3 u7 X9 a },. m' W" p3 h) p2 b2 c
"stats": {
$ P* \4 K H! ^1 ]# Z "version": "0'0",
$ n& |: d9 F) S1 R1 l! | "reported_seq": "25",
$ x1 Q2 ^" _; g- ^3 p "reported_epoch": "814",
2 ?7 w5 r" B: F: J# w; v "state": "active+clean",
% |- d; |6 G6 m; {/ [% R "last_fresh": "2019-03-05 03:07:59.418140",
1 s/ k Q- [5 \8 X3 s7 e "last_change": "2019-03-05 03:02:06.260474",& D6 G( a: j1 L+ C: z
"last_active": "2019-03-05 03:07:59.418140",
$ g8 `- t5 }! D( s A" E$ }! I0 Y& Q "last_peered": "2019-03-05 03:07:59.418140",( I( _0 E% `/ U2 v5 E, h7 d
"last_clean": "2019-03-05 03:07:59.418140",& n# h1 h( V2 _! Y5 |/ z' q+ p
"last_became_active": "2019-03-05 03:02:06.260323",
, M# @ `; f( M n& n# m "last_became_peered": "2019-03-05 03:02:06.260323",
% `4 k+ @) b) i) x- d/ ~ "last_unstale": "2019-03-05 03:07:59.418140",7 |8 s4 o- J, _- Q
"last_undegraded": "2019-03-05 03:07:59.418140",1 d8 @* M+ L/ U7 j, C) L
"last_fullsized": "2019-03-05 03:07:59.418140"," q: U2 O2 Y7 ?% i9 C
"mapping_epoch": 795,% m; x, ]5 B; r
"log_start": "0'0",; a2 ~. }4 B; \7 e+ Y- _% ]
"ondisk_log_start": "0'0",# e: n9 f: N ~8 @+ B W
"created": 795,
. Q& H9 _$ X( `8 K# z: P" V "last_epoch_clean": 797,! v$ A# W$ p! C w2 @
"parent": "0.0",/ P- X! o. |$ l
"parent_split_bits": 0,: w- }0 F% x& S5 c
"last_scrub": "0'0",
* [. q: m" M* V- T* j) z. U7 g% a "last_scrub_stamp": "2019-03-05 03:02:04.611341",
; l6 ]( Q- P( o "last_deep_scrub": "0'0",
# E! r) N9 d# r2 Z% } "last_deep_scrub_stamp": "2019-03-05 03:02:04.611341",
( f- h y2 ^( R7 ?( j" |6 E4 I "last_clean_scrub_stamp": "2019-03-05 03:02:04.611341",
, T4 W. g7 h3 D) v. R9 `1 |7 ^ "log_size": 0,/ K0 r$ B) i7 N
"ondisk_log_size": 0,5 j9 v, K; J( Y
"stats_invalid": false,2 G* n' D0 W* }9 t+ u; Z- I
"dirty_stats_invalid": false,
- K; t+ _( i' l( `& ]4 w8 H "omap_stats_invalid": false,# n+ j2 @# X. {
"hitset_stats_invalid": false,
' V8 {; N) `. a7 Z6 d* O, x "hitset_bytes_stats_invalid": false,/ Q7 o" X+ M, x2 {, T! p9 _7 |
"pin_stats_invalid": false,9 m- N; F5 I) N9 g7 t; e7 e( Y
"manifest_stats_invalid": false,) y$ f) \! m. `3 F* |, o
"snaptrimq_len": 0,; Y( U' @! b( b+ J, x
"stat_sum": {
5 h2 Y( p& m3 J& e- r+ j! ` "num_bytes": 0,
" ~, x7 q' X9 G2 j: J "num_objects": 0,4 U; i& y+ H7 u/ o5 z/ ^
"num_object_clones": 0,( n2 r# `! T, o' k- }6 ~) i
"num_object_copies": 0,7 b8 Y! I+ F, O* O- n+ p
"num_objects_missing_on_primary": 0,9 C: ^' ]! p9 f& h4 a
"num_objects_missing": 0,
0 o7 `/ m3 g( Y/ h; k) o5 u "num_objects_degraded": 0,
* m: ~, {8 d7 l: j8 R$ } "num_objects_misplaced": 0,. K3 g/ q, _6 L( ^# Y4 @0 a
"num_objects_unfound": 0,
D3 l, B; K F. H- u8 y4 M "num_objects_dirty": 0,
/ i& [3 z: e* ~4 c% c* p3 [ "num_whiteouts": 0,4 r% {" y, ]/ p5 l
"num_read": 0,
" X: y; V# C( m8 D3 M4 C "num_read_kb": 0,
, f' L0 e* ]* d, u& h "num_write": 0,) Q2 \$ X1 P0 }& O
"num_write_kb": 0," p! D! e; [) }- k0 D! H
"num_scrub_errors": 0,
3 Z) c/ b0 P2 O/ ~/ u* k: y4 R "num_shallow_scrub_errors": 0,
# f6 T2 r# N' O/ e. c# E8 a, e "num_deep_scrub_errors": 0,* U3 T/ g& h* |& A+ `# d
"num_objects_recovered": 0,
& @5 Y [2 E- W "num_bytes_recovered": 0,
3 F) }0 U1 z, ]4 T "num_keys_recovered": 0,- g2 O7 r* O. P4 {- S. n
"num_objects_omap": 0,
8 \& `1 U. x; v# ] {( F "num_objects_hit_set_archive": 0,
; g+ O+ I ]9 o! q" Z/ u "num_bytes_hit_set_archive": 0,
* t- U' y- ]! _3 A, ~ "num_flush": 0,
1 s7 e4 H; l9 J, t' {, P* r "num_flush_kb": 0,* Z( f2 o2 e, q1 b8 a
"num_evict": 0,
: n% ~* S" w0 k6 W4 c& b "num_evict_kb": 0,% [5 k1 g0 @. F9 h) y
"num_promote": 0,* a: S0 z: H' @% g; N9 n y
"num_flush_mode_high": 0,
. \* D* |+ ?) R& y! ` "num_flush_mode_low": 0,5 B- H# O5 \" C/ \) N W1 H6 a9 K
"num_evict_mode_some": 0," p' E5 _" X6 g( n- d
"num_evict_mode_full": 0,! g" c2 k/ G- _0 i! [
"num_objects_pinned": 0,8 B- |1 R* t0 \) i7 o g& ~4 Z
"num_legacy_snapsets": 0,
4 I0 N6 O4 ^: G& e "num_large_omap_objects": 0,
+ m4 o4 M+ y2 T6 j% O "num_objects_manifest": 0$ R5 e+ F3 G& w6 ?/ x
},3 d4 R! g0 ?. D" ^$ d+ q+ B- I8 x
"up": [( q, U4 _. x$ a% H, ` t( `4 y
6/ h; [% L* \3 n+ Y! r# z
],
. w& }! m" X# n3 ~ "acting": [
! k) C' P, E( p 6) @5 F0 x) u7 c f/ {2 }
],/ |% G! _& |) U) t9 u
"blocked_by": []," @/ J! g. ^, J+ s. p3 F9 B/ F8 d5 V
"up_primary": 6,* C& i( C, f* ^# z; ]; \7 ^8 W
"acting_primary": 6,- N6 h6 K# D/ f+ S6 D
"purged_snaps": []
. u; F2 N N7 B$ l2 `5 H& N' Y },7 F+ I# b4 n: c+ G! s3 q+ L
"empty": 1,
& H, t) Q8 R5 Q7 H; j# u "dne": 0,
8 F6 J7 k' G; y7 q% ~8 _ "incomplete": 0,' A$ q) S& \4 Z0 u% l9 @
"last_epoch_started": 797,
9 F: p( s8 Q. d/ F; C "hit_set_history": { t+ B/ G `4 [$ Y
"current_last_update": "0'0",
5 s# e! |8 g/ w: h; r. Y "history": []4 n1 z$ y) E. V5 z0 F* Z& K
}) z2 R3 N* T$ Z3 X2 M( o0 W% Y* T, @
},
. n1 \( r% H! V* a: M "peer_info": [],& E; z, j" Z7 n* A0 P' A
"recovery_state": [+ B! }8 y! X7 j# [1 l* }
{# i- V9 J+ p3 E2 Y
"name": "Started/Primary/Active",
2 T) i3 H2 H; Q, J "enter_time": "2019-03-05 03:02:06.252112",- j3 c/ @3 @+ k
"might_have_unfound": [],
0 C( i" S/ x7 Z "recovery_progress": {
) y3 r( g* q1 Y4 I "backfill_targets": [],; z$ _" t9 `9 v+ y- C
"waiting_on_backfill": [],3 Q- V- D6 l$ {% w$ B! }( |6 w
"last_backfill_started": "MIN",
( p$ s& M- U) u7 l' F "backfill_info": {
. `& V6 N! G4 m& l6 |1 C "begin": "MIN",
) B( h1 r* \" }, P2 G. E "end": "MIN",
- C8 u! @# }* { "objects": []' Z+ w5 T; H3 Z
},/ m' \8 g- g2 k' ^
"peer_backfill_info": [],3 z6 ~$ H3 t6 F3 s. L
"backfills_in_flight": [],
" G# R, `5 E: T1 S; c5 L "recovering": [],
* q# _6 z. \% a% D "pg_backend": {
. |$ ^4 x) k# F "pull_from_peer": [],1 ^ Q% [5 [+ x' B
"pushing": []7 d. b/ m( L! \7 s" c0 g: H3 K
}* \( G0 @1 A% ^) s1 l
},
, a! R# j: p" \, b' b$ i "scrub": {
% {! R" i1 D; L' Y! V' Y* ]* z! w "scrubber.epoch_start": "0",
1 G+ o' R& N$ @! Y "scrubber.active": false,- G$ U5 |- z2 X% |! t8 {
"scrubber.state": "INACTIVE",' T' s* w. u& o9 Y) d
"scrubber.start": "MIN",% K& `! B# C# g" H& r4 U. e6 i0 x
"scrubber.end": "MIN",
, }8 ~2 P9 w6 p7 m* j+ B "scrubber.max_end": "MIN",
; [3 P8 n5 i/ m+ z. F( o% ? "scrubber.subset_last_update": "0'0",- \5 @/ Q2 {" q. T6 X: c, l7 G
"scrubber.deep": false,; j+ E/ A' w) K3 C" F' Z
"scrubber.waiting_on_whom": []
8 a0 d# n6 L+ m' ]2 Y }
: K( ^' [* P, n5 y8 S$ F9 Q },) n+ { r* h8 a/ ?
{
# P/ l, `7 e& n "name": "Started",6 b! x! j4 M* n& G/ [. K1 B
"enter_time": "2019-03-05 03:02:05.356513"* O: g0 t5 M0 K2 I
}1 u. E ?# Q( q1 ~& ?& \
],& K+ }2 m! y* g( W- |) V1 n. o' l
"agent_state": {}
- j0 z% |' y- Y}
& e- W8 d0 f" i- X" l% Q4 z& }0 n3 @& ]
2 e/ \: P; v; A' v1 N8 i* j
结论
: V7 P; O4 v1 c; q至此, 修复完毕.) I- |7 |5 K3 ?) L; `7 h2 z
1 i+ Z4 h3 |1 R. s7 k2 ]7 e2 N/ }. i后续检查, 1 副本的下载文件夹丢了几个小姐姐【手动滑稽】8 y) z4 {7 D3 p) c* E
2 m, e0 ]3 y; v0 H建议在直到具体是什么问题的情况下才进行这样的操作. 如果是重要的数据, 请不要使用 1 副本, 并做好备份后再进行操作./ F2 `7 x7 o$ m! l: K
2 c: H1 I2 H/ k, f# b
如果是2,3 副本情况下的 pg stat unknown, 建议做好心理准备... 很可能就是没了.
3 l W, _( T/ W: Z) ?+ ]! V9 b
4 {' m8 e+ Q: g, m' B Z6 G如果是其他 pg stuck 的情况, 建议仔细分析再进行操作.
+ v8 O0 U3 x! f( w
1 j2 j. b- e( u以上. |
|