|
|
检查ceph 状态:5 Z; |6 Z: a& R6 a z
[root@compute01 ~]# ceph -s' G$ T! p. ?1 p9 h
cluster:2 P0 h1 j; i* v9 o. ^9 n
id: a6d0359e-8295-4e62-8620-54273462e79f
) P4 Q' s9 F: J5 N" O v" p health: HEALTH_WARN
! g- \: a" w4 y! C9 g9 ]- W' F! _: e noout,nobackfill,norecover flag(s) set
5 X8 c q0 {1 B* s1 {! s. K Degraded data redundancy: 3793/96483 objects degraded (3.931%), 876 pgs degraded, 512 pgs undersized
4 i+ Z0 m- `% ~5 p& {5 u 6 pgs not deep-scrubbed in time
/ L1 l, n8 k7 s5 U* Q! p clock skew detected on mon.compute02, mon.compute03' Y7 ]+ y5 s" _ r; o
7 Y, ^. l# ^: H- W4 I( _( u services:" ~# v3 u4 u' T& Y4 p7 r( x, R
mon: 3 daemons, quorum compute01,compute02,compute03 (age 22m)
/ @1 J! v1 I& ~ mgr: compute02(active, since 4d), standbys: compute03, compute01" E0 t0 @1 g' q5 f" J+ U
osd: 6 osds: 6 up (since 22m), 6 in (since 2w); 512 remapped pgs
3 n; i( k! ?4 }- P3 u3 v flags noout,nobackfill,norecover
5 h: n! c8 F; e7 C% H
# _- t4 u' L# u# n: U data:1 P. ?& h1 h' G$ m' I$ q2 N7 D6 b5 L
pools: 5 pools, 1408 pgs0 X; D; H6 }: G: h5 E8 A
objects: 32.65k objects, 132 GiB
9 y0 r; r# \& O3 G9 G, w' ^- Z usage: 381 GiB used, 4.9 TiB / 5.2 TiB avail8 |3 [: d- b1 ?; @0 q1 J
pgs: 3793/96483 objects degraded (3.931%)4 N" a8 Y% |* j( D) j7 C
450 active+recovery_wait+undersized+degraded+remapped6 D% ]$ [) W2 Q3 I& v3 H& Y2 `
444 active+clean
: b( |8 g, g- b5 \& [) u2 t7 k/ J, Q2 q" U 362 active+recovery_wait+degraded
1 r8 i+ `0 b! S 87 active+recovery_wait4 S" v4 t/ X7 I% {" ~+ C
62 active+undersized+degraded+remapped+backfill_wait
4 c9 F f) w; e. l z. H' U 2 active+recovering+degraded5 g9 {! I- b0 b4 b: m+ W$ e
1 active+recovering5 S% j( I' R( o4 ~& x& T5 o
5 [5 f+ S4 X$ L: C io:: E. L: f2 c1 R9 Y' F5 e
client: 156 KiB/s rd, 78 KiB/s wr, 14 op/s rd, 8 op/s wr
% A$ J" e, k" x0 [7 ~3 ^# W. x+ ]4 O
. I, C- W# q. W" [0 U L! }0 h
) R& z5 {1 H& E$ y) N设置ceph osd 开启recover和覆盖同步配置:
6 k! g1 d3 u# e; x/ [
6 Y# d5 k) V5 l4 f/ q2 r
5 d8 O* X5 y, S* G$ a3 b, v[root@compute01 ~]# ceph osd unset norecover
) S% u! r1 L5 k; s( R' V% b4 S- mnorecover is unset2 V0 u8 }; t* m, W ]/ @
[root@compute01 ~]# ceph osd unset nobackfill ( w7 v3 @ ]. \
nobackfill is unset2 }) k- b: H! j4 c: k
1 d* M) P8 M' W3 j$ o: U8 p
查看状态:
3 |3 H; [$ `: H[root@compute01 ~]# ceph -s
6 O, f ^! N% I9 m" g3 n# R% o" O! C7 _) C cluster:8 n& h3 L0 v* Z7 J: D
id: a6d0359e-8295-4e62-8620-54273462e79f4 i, A6 Q6 M0 b
health: HEALTH_WARN
' K. W) s; D' x6 O# W1 F noout flag(s) set
( [/ ?3 C: l$ X( d Degraded data redundancy: 3537/96486 objects degraded (3.666%), 705 pgs degraded, 512 pgs undersized* x6 P; `4 q0 k
6 pgs not deep-scrubbed in time" I, {& o0 g" Y; _& q
clock skew detected on mon.compute02, mon.compute03 v: D3 c( ?- e/ T; a9 q @( }
# {/ Y" e( J2 E5 a
services:
$ U6 J0 v" U( @1 G' T mon: 3 daemons, quorum compute01,compute02,compute03 (age 23m)
$ T U. d E* w. z w1 \ mgr: compute02(active, since 4d), standbys: compute03, compute01. n6 o, T9 U6 r+ \4 @9 B5 d
osd: 6 osds: 6 up (since 23m), 6 in (since 2w); 512 remapped pgs0 e* z1 \ j/ e# \
flags noout
+ Q# C& p6 g: ]; m) [: {8 w2 n [; S% R9 t' a' U
data:
% c1 N+ Y* ] S1 i! | pools: 5 pools, 1408 pgs
- C9 d: ?* n/ f" i1 r2 p7 h0 \+ f objects: 32.65k objects, 132 GiB
F( W0 f# W3 V6 o usage: 382 GiB used, 4.9 TiB / 5.2 TiB avail/ [" M: G7 M* N. Q; i! n
pgs: 3537/96486 objects degraded (3.666%)% R5 |1 v# {, P0 X5 a) ?
649 active+clean% R2 w/ g7 S' w$ r
450 active+recovery_wait+undersized+degraded+remapped
9 K" W8 u) u8 s# W6 m& t 191 active+recovery_wait+degraded
0 y' J7 _0 R- K 62 active+undersized+degraded+remapped+backfill_wait( z( o) i8 B5 d: e
54 active+recovery_wait w& U) R% u9 ]/ z3 x1 u! u
2 active+recovering+degraded' `% U8 X7 f7 O2 v- J
9 _5 \" g1 K. l9 v1 [' B
io:
2 n6 F, Q3 E: r( ~- {: p0 ]5 J3 F client: 204 KiB/s rd, 797 KiB/s wr, 147 op/s rd, 42 op/s wr8 ]7 M7 |" u$ K/ K
recovery: 89 MiB/s, 21 objects/s
, _" r1 l& X" D' ?/ X, }+ k4 R 上面看到数据开始在同步了,覆盖了。( [0 j- G. c- O/ F) _8 k# l4 X
I0 B0 r$ R& o9 K' N
查看osd是否都正常:
9 \/ J4 a: u' I! u9 a[root@compute01 ~]# ceph osd tree* z7 Z u4 U3 c5 `7 Y
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
! n: X' e& e% T0 g# Y3 s-11 0 host ssd-compute05
; t; c( Y; J% F* P: n. x -3 6.00000 root ssd # ^' D0 }. e& _+ f& Z3 m% k
-4 2.00000 host ssd-compute01 $ \7 K# i4 b; Q* q5 _5 B' L7 D; F
0 ssd 1.00000 osd.0 up 1.00000 1.00000
, L* u, R0 S5 @( N 1 ssd 1.00000 osd.1 up 1.00000 1.00000 . B6 G" O5 x! l6 ]
-5 2.00000 host ssd-compute02
/ v5 C1 @; `6 O {5 R 2 ssd 1.00000 osd.2 up 1.00000 1.00000 ) C( Z, P9 y" j1 l( J+ ~9 _- M1 |- r
3 ssd 1.00000 osd.3 up 1.00000 1.00000
- O+ D" T0 T0 {( @* J" H/ _" O3 H: O _ -6 2.00000 host ssd-compute03 8 Q v& |( R& f7 Q8 y
5 ssd 1.00000 osd.5 up 1.00000 1.00000
2 O$ _- q6 o+ T R: q( w# l, ?& O 6 ssd 1.00000 osd.6 up 1.00000 1.00000
" ^2 u l* _0 q% n -1 0 root default
8 o1 w7 u" V6 M9 V; F7 K. [3 M7 \/ o0 m/ \6 H8 M& C
[root@compute01 ~]# ceph -s
' U+ d" F4 _5 J% O8 B cluster:7 x* \! r; y* Q1 S3 B
id: a6d0359e-8295-4e62-8620-54273462e79f' Q& [2 D* v7 c$ N. u. U D) {
health: HEALTH_WARN
& i% k; l. `, _8 }, X noout flag(s) set. l' [, A- y6 q6 D
Reduced data availability: 3 pgs peering+ @1 M/ D6 r/ \4 c; e/ U6 J
Degraded data redundancy: 2173/96486 objects degraded (2.252%), 125 pgs degraded, 133 pgs undersized
1 {' z' d4 i! e2 w0 @+ q3 y 6 pgs not deep-scrubbed in time5 Y. Q! W$ C6 X1 O9 u' o4 d& N% M
clock skew detected on mon.compute02, mon.compute03
3 s" a9 B- ^! q: j5 p
! T" Z7 E* y' D6 y services:' z! J: b: K; L @2 {8 Z
mon: 3 daemons, quorum compute01,compute02,compute03 (age 24m)
( i4 E, h1 X6 ~# X" u3 F) M mgr: compute02(active, since 4d), standbys: compute03, compute01 m6 E7 X9 {! K& k, p; ]$ k
osd: 6 osds: 6 up (since 24m), 6 in (since 2w); 104 remapped pgs% B9 N& [4 c7 B" u& ~' y j
flags noout' { V( ^8 e7 ]# r& S+ h. q
+ l: [: m3 z/ U A
data:
& X" S' e) \) C3 A7 W* ` pools: 5 pools, 1408 pgs
$ p7 z) G; Z2 [$ ?* [- s objects: 32.65k objects, 132 GiB- {- h- V! o" c# m0 h5 e
usage: 383 GiB used, 4.9 TiB / 5.2 TiB avail
: D2 H3 @3 `; U" z pgs: 0.568% pgs not active
" G7 m) ~& n) c 2173/96486 objects degraded (2.252%)
7 t; E% G- w$ @' O( s7 @- ^ 1267 active+clean3 r1 M$ G" U1 L6 Z0 K! K" X3 ]
62 active+undersized+degraded+remapped+backfill_wait0 m5 D1 a% M: M
62 active+recovery_wait+undersized+degraded+remapped0 S& n9 h9 c i+ J
8 active+undersized+remapped
8 {' j$ H4 M! u" k. Y 8 peering
. [0 b% s' D7 I$ |7 J$ i 1 active+recovering+undersized+degraded+remapped
( H0 P4 p( `- R' E$ ]
4 M- M- |$ b% v! M9 R# n io:
: _1 K: C8 G, E' H client: 407 KiB/s rd, 792 KiB/s wr, 34 op/s rd, 52 op/s wr$ i* S; B! m* w, |
recovery: 72 MiB/s, 2 keys/s, 22 objects/s
$ B- Q8 O/ D. B" e: f9 K' n) g/ y6 _1 V8 z4 ]' |
j$ c2 v' c" e# I! q% ?! j查看时间:( {% D! }9 N" N) E& _: K& X/ Y8 \2 ^
[root@compute01 ~]# date7 d0 U8 ]' z9 w
Mon Dec 20 10:32:23 CST 2021
% x6 D( X1 l. C# E[root@compute01 ~]# date
' G2 u2 Z4 K1 O, q6 P c( XMon Dec 20 10:32:38 CST 2021% s0 l- j4 k. f& ?& O6 i* \
[root@compute01 ~]# date
( o1 l" S4 B$ ^1 x6 y8 pMon Dec 20 10:33:00 CST 2021# [) Y" r- B& H) a
" ~4 _* _, q3 @3 E2 J[root@compute01 ~]# chronyc sources
- z/ J2 x! p+ j210 Number of sources = 25 n8 Z* r2 p+ E; [: k$ c
MS Name/IP address Stratum Poll Reach LastRx Last sample
, q2 D8 f, d) `! a: a- P8 c===============================================================================6 r' I" K2 s# O
^? compute01 0 9 0 - +0ns[ +0ns] +/- 0ns
; o- h4 K- n+ p: ?8 [+ _^? compute02 0 9 0 - +0ns[ +0ns] +/- 0ns) O7 m1 U2 S4 a. n. f
[root@compute01 ~]# vim /etc/chrony.conf + R; V( x2 L& L" B ~! t; z0 r! V
6 P& y" s0 B. Q: y6 X[root@compute01 ~]# systemctl restart chronyd.service
; ?) _& Q! b1 p4 u8 C% j[root@compute01 ~]# chronyc sources
2 L2 D- g/ B& f! f) x210 Number of sources = 2
9 R; m5 o. o- h2 A1 f; KMS Name/IP address Stratum Poll Reach LastRx Last sample : D3 S$ e3 g9 h/ L
===============================================================================) l) t$ q. ~& @2 p6 w4 D
^* compute01 10 6 17 3 +2667ns[-7752ns] +/- 28us
( f3 k6 r$ d1 c2 Z" K! t9 l% w^? compute02 0 6 0 - +0ns[ +0ns] +/- 0ns; L* q8 p) ? W. P. e& R% r
[root@compute01 ~]# 4 d! b; i$ b+ R: b+ m3 Z
[root@compute01 ~]# + m' o' t) ?9 `. p# D3 W
[root@compute01 ~]# vim /etc/chrony.conf
+ e1 L1 A( t5 _+ }6 Y[root@compute01 ~]# date% s/ J8 j ~$ ^( x
Mon Dec 20 10:36:29 CST 2021
3 Y7 @9 A2 p6 j6 M, U) s4 i% h6 S) S5 p0 w' u p4 m3 w5 R
; T/ Z8 a+ q8 M6 f! H
时间同步即可:
9 ]% ~, ^* C! r$ U6 x. f4 o/ A0 e7 [( e" L, C: g0 d3 k
[root@compute01 ~]# ceph -s
; D0 Y% k! w7 r+ t$ a& c cluster:8 U/ S+ I9 _" Q) Q/ R# Z( k
id: a6d0359e-8295-4e62-8620-54273462e79f' u. S( Q- ]( [, j6 b. t7 x
health: HEALTH_WARN
6 {( ~% a) G! T+ [( f noout flag(s) set
6 Z9 }( q) L B- X+ V* T 1 pgs not deep-scrubbed in time+ X% S$ I t2 ^3 }" j; Y/ W
3 P9 I, o/ m+ u( q6 \: D
services:5 t* O& y b% V% g* f* o& S
mon: 3 daemons, quorum compute01,compute02,compute03 (age 48s)
( B: N+ k2 n/ q mgr: compute02(active, since 4d), standbys: compute03, compute01
4 a* d/ _& g7 ` ^ osd: 6 osds: 6 up (since 28m), 6 in (since 2w)3 l$ j+ `4 j0 E: c/ Y
flags noout
8 c d6 [ W n
1 U/ }0 T& @4 w8 d9 | data:
( M' Z% T& ]) f pools: 5 pools, 1408 pgs3 n3 e \2 a4 L G6 E) z* \
objects: 32.65k objects, 132 GiB# P. I* |! N. ?* u1 v
usage: 384 GiB used, 4.9 TiB / 5.2 TiB avail
+ |. H3 w( ]* U9 M2 U pgs: 1407 active+clean
2 ]7 E1 Q3 a9 e2 \; d 1 active+clean+scrubbing+deep
- {# W! b4 X1 P" u/ P
1 \2 w, n5 r* } y io:
3 E' `8 P1 S6 V( T) S3 @* u client: 20 KiB/s rd, 499 KiB/s wr, 4 op/s rd, 18 op/s wr
' d3 x' Y, b4 j) @: r. p. f4 G! n4 v/ C
查看ceph存储是否正常:
/ E* m9 l5 I0 u" h) y7 G+ }+ P% i' I8 g3 N+ o# H
[root@compute01 ~]# ceph -s- ]/ o# U, K7 k. D- r+ \' C
cluster:
; Y; r2 [% ?! \+ h+ C( n+ N$ w6 _ id: a6d0359e-8295-4e62-8620-54273462e79f; s; U: \: C, y. \, H4 y
health: HEALTH_WARN7 s. }- G8 A+ ^: k) v
noout flag(s) set
# p4 m8 |- j2 B0 t 1 pgs not deep-scrubbed in time
) e/ {1 W; p0 w) I5 \$ z
8 P9 H* A1 M" W. r services:
) ]: q5 ~# w4 B mon: 3 daemons, quorum compute01,compute02,compute03 (age 60s)
$ N; Q$ r- D2 H7 u mgr: compute02(active, since 4d), standbys: compute03, compute01
* W* D# c" W, F% }! V) ]% q/ v+ v osd: 6 osds: 6 up (since 28m), 6 in (since 2w)2 r) q0 r. |. U6 B4 R& o, I
flags noout4 B k5 s4 F4 q: E7 ~- C; u9 ]
* r: M. ^2 B$ j
data:
/ \% O2 b" {4 ^: u* Q; S pools: 5 pools, 1408 pgs1 Q/ T" W4 p; E
objects: 32.65k objects, 132 GiB
. I7 {9 q3 X5 ] usage: 384 GiB used, 4.9 TiB / 5.2 TiB avail
) X& h; i K# _ pgs: 1407 active+clean
3 t W2 A3 `7 r* f( K M) n 1 active+clean+scrubbing+deep8 b1 P- D% @- G8 Y
2 ^3 s0 L+ Z' D1 B% g/ |/ g io:
) @" G( {6 h6 U$ N/ a5 w0 ^ client: 120 KiB/s rd, 595 KiB/s wr, 13 op/s rd, 33 op/s wr0 k |* y- i, w
+ H, C- W' P1 u! {, D: L2 h% G$ l* \# J. g! }/ c
[root@compute01 ~]# ceph osd unset noout2 H5 O+ v5 C( E j8 O$ E
noout is unset
d5 E$ d. b% ]$ D. z7 x& h6 E7 m5 n! G8 N. z5 K& ]/ `+ @
检查状态:
! I c3 U* G9 d2 M: @: k+ X% h[root@compute01 ~]# ceph -s
4 g0 c- G7 S$ W cluster:
* o- V, F/ k$ |/ z id: a6d0359e-8295-4e62-8620-54273462e79f( m+ @& K" C" a$ b8 I: ^
health: HEALTH_OK
5 B2 c# x1 z' n
/ M) \2 `1 a! w& b( x3 c services:- g3 q+ J4 U# T4 d; U. |
mon: 3 daemons, quorum compute01,compute02,compute03 (age 100s)4 O: m! ~- H& n3 o1 @2 m& L% W
mgr: compute02(active, since 4d), standbys: compute03, compute01( ]5 Y! D8 P: v" t" @
osd: 6 osds: 6 up (since 29m), 6 in (since 2w)
8 Q8 H- `) z; V& s( E
7 k! j+ |( t; g2 v data:
) f; M- }$ S& p7 d1 _ pools: 5 pools, 1408 pgs
3 j# n' D( ~# Y0 d3 F D* j objects: 32.65k objects, 132 GiB
+ j/ E3 v6 k$ q usage: 384 GiB used, 4.9 TiB / 5.2 TiB avail0 c0 m# i2 l3 \/ R, `
pgs: 1408 active+clean
) ]- b' I% P& o* U9 t f; A6 w
# E3 s. T: J' z' V1 L io:9 _" P' s5 B; l# w% h3 t8 Q5 e
client: 539 KiB/s rd, 285 KiB/s wr, 191 op/s rd, 26 op/s wr
) k! b) `9 i8 T, e( D) l! i( s h5 @
[root@compute01 ~]# ceph -s
: f* F$ I! D8 K9 O! u cluster:
7 ?0 @1 {! d( P+ W! e: Z id: a6d0359e-8295-4e62-8620-54273462e79f4 ], \( T, i' I8 U$ Y
health: HEALTH_OK! ^6 H$ O3 |& K' n. N
5 J0 t# d9 p) t. g services:2 y6 Q2 ~0 P! V. T% G$ M
mon: 3 daemons, quorum compute01,compute02,compute03 (age 102s)9 X ?% Y% g) U4 {" u2 [& D. h
mgr: compute02(active, since 4d), standbys: compute03, compute018 g8 K) O% q1 O5 q
osd: 6 osds: 6 up (since 29m), 6 in (since 2w)3 Y. B# j2 c5 @9 d8 j. V
6 |# u6 [) E& y" [" Z9 V, \ data:/ k, g8 n$ U5 h6 J! C
pools: 5 pools, 1408 pgs3 `' {8 B2 Q0 c3 ^- ?/ ^9 P* c
objects: 32.65k objects, 132 GiB
# O4 ~" I) \9 C# | }5 `5 |" H* X usage: 384 GiB used, 4.9 TiB / 5.2 TiB avail
3 F6 X( |, e4 T" k) D) h pgs: 1407 active+clean
# }. w, F" M& [! p: v/ A 1 active+clean+scrubbing+deep% A5 B/ O, Q" `
" T* P) |: _; Y) u# h" S io:7 b v U8 o" V' S
client: 110 KiB/s rd, 196 KiB/s wr, 12 op/s rd, 18 op/s wr
3 @7 a1 B& V* X/ Y }% @% @& ~! [* Q
[root@compute01 ~]# ceph -s
. r( J% `' }' D. j9 x% _/ c9 I cluster:
5 a' v$ D9 b* }* o# F }! w3 i id: a6d0359e-8295-4e62-8620-54273462e79f
8 K+ E6 v9 k X7 {+ x4 y/ z health: HEALTH_OK
. F0 i' J( I- }
2 W# l. _2 ^7 L& Y/ I( ^4 L& x services:
V: t3 V9 G/ j; O" c mon: 3 daemons, quorum compute01,compute02,compute03 (age 105s)
& C2 G3 o8 p: q7 v9 j7 [( B mgr: compute02(active, since 4d), standbys: compute03, compute01
$ [9 N( d% j, |, l( l) Y osd: 6 osds: 6 up (since 29m), 6 in (since 2w)
S( Y4 l: b! I% Z+ ]( o7 D8 @: [
data:
* [6 L. m$ w6 v pools: 5 pools, 1408 pgs
1 n; r3 T$ N u. L: T( | objects: 32.65k objects, 132 GiB
' F/ q! K$ T% M2 l2 G) X) q& Q usage: 384 GiB used, 4.9 TiB / 5.2 TiB avail! J3 R& D0 a5 O& }
pgs: 1407 active+clean
i, r* }7 U6 G' Q 1 active+clean+scrubbing+deep
8 j9 S& x+ ]7 F5 n. u5 f$ y6 c7 l& t3 k
io:/ H9 U* k* {5 T- l' m, K+ d- n
client: 74 KiB/s rd, 193 KiB/s wr, 10 op/s rd, 18 op/s wr- e* Y3 L7 h5 o
" J, q2 |- Y' u5 B" `. c- c1 B
[root@compute01 ~]# ceph -s, ~; }- g. I9 E: a
cluster:
7 e. g1 t2 b4 N, R8 y% Q! _: @, P id: a6d0359e-8295-4e62-8620-54273462e79f
' e7 c# `" O& Q M health: HEALTH_OK
. o8 }! f+ `7 p! {6 y$ U
1 L4 X- t7 r4 k3 M1 p+ \ services:; f) K( R7 w2 z* I! e; m. X
mon: 3 daemons, quorum compute01,compute02,compute03 (age 3m)+ \7 h- K2 k T5 \
mgr: compute02(active, since 4d), standbys: compute03, compute01" w8 R; \" \& f4 u
osd: 6 osds: 6 up (since 30m), 6 in (since 2w)
$ B: _! [( J' P; w2 ~' s- Z. k' @! `; a4 o; Z9 r& J2 F, R# k
data:
# o, ~0 B; \6 b: B! Z pools: 5 pools, 1408 pgs3 v2 |- d) h0 T) d
objects: 32.65k objects, 132 GiB+ [' x3 p' @( Y
usage: 384 GiB used, 4.9 TiB / 5.2 TiB avail
E# ?7 W2 y1 _" J# W; J" _ pgs: 1408 active+clean
* c5 @ N# w E; O6 Y* d0 B: ]8 w7 Z n: M' q, _( F" ]& j
io:
$ T8 b. n! F2 ?9 a. D! \ client: 840 KiB/s rd, 1.4 MiB/s wr, 63 op/s rd, 43 op/s wr$ E: N! T$ I$ h2 K' a
- d& Z) U4 I5 o) d
5 D2 o' B: k, U# d4 Q, b
9 p. Z/ q" K3 \: i4 ~- x! T0 @
6 M( h C, h# [3 I) M总结,此过程中出现的问题,一是时间同步服务器有问题,二是ceph 设置了不剔除osd,不同步,不分配问题。$ n4 z: C; q: L2 b- x, x5 |
" t! c- y2 _% }5 W+ \* b) n3 y1 D; P* ]8 F. t
|
|