|
|
楼主 |
发表于 2022-8-23 09:53:54
|
显示全部楼层
index pool的 large omap 处理
& M# S# v; G$ E8 g向单个bucket压测2000W个object,默认设置shard数为16,压测到1800W出现large omap,介绍一下错误定位和如何处理。& h( b) U& v3 B% ^( r# [ l5 }, d" b
$ R3 s5 [6 W- O5 D2 V异常定位+ u; B0 i/ D# P' `
集群状态如下9 V3 q! d, Z# R
: V5 J5 B4 ?- y[root@demo123 cephuser]# ceph health detail& ?7 d' n/ w' C7 _7 m9 ?( x
HEALTH_WARN 16 large omap objects' g* R4 Y4 z5 N" R% V R
LARGE_OMAP_OBJECTS 16 large omap objects
$ J& f3 v# L$ O! \& [- J 16 large objects found in pool 'cn-bj-test2.rgw.buckets.index'! u$ K8 A0 `, \. e9 @. E
Search the cluster log for 'Large omap object found' for more details.
8 O' N3 l S3 k. f- j8 E复制+ \- D8 U( e# Z3 S" K% H
通过脚本找到对应的pg信息,脚本请查看之前一篇omap large处理的文章。8 m# s6 J( s7 X
: r( S$ s; f& F* R[root@demo123 cephuser]# python large_omap.py
1 S0 l2 B3 f7 n2 O, TLarge omap objects poolname = cn-bj-test2.rgw.buckets.index
9 z @, N- Q3 K+ @7 ^3 opgid=13.1f OSDs=[78, 9, 59] num_large_omap_objects=1
1 d6 X9 q) ?" R4 D5 @8 Zpgid=13.33 OSDs=[59, 79, 19] num_large_omap_objects=13 r" K' {7 Q5 V! n7 B6 a; `
pgid=13.3c OSDs=[49, 29, 78] num_large_omap_objects=1! s. \# r" ?7 H: I9 p$ Y
pgid=13.3d OSDs=[48, 69, 9] num_large_omap_objects=1* r6 X( k7 l. H. M
pgid=13.45 OSDs=[88, 39, 28] num_large_omap_objects=1
8 \ \. ]" ~0 d- _% qpgid=13.4d OSDs=[38, 29, 89] num_large_omap_objects=1
6 s- P( `0 M% ~: H# q; t* `pgid=13.50 OSDs=[68, 19, 59] num_large_omap_objects=1
3 H; c% M' L& P; {pgid=13.6b OSDs=[39, 79, 8] num_large_omap_objects=1
" Q G- I# O* r) F$ N& j- _* o' p- ipgid=13.8e OSDs=[38, 9, 78] num_large_omap_objects=1
; i! c! f: y7 A0 h' p- u7 `pgid=13.d1 OSDs=[9, 88, 38] num_large_omap_objects=1
9 _& ^& `/ {5 `pgid=13.d2 OSDs=[59, 88, 28] num_large_omap_objects=1; B3 |8 v. u. U* J
pgid=13.e1 OSDs=[19, 88, 49] num_large_omap_objects=1
# T7 d8 B- \7 x& ~/ X- ppgid=13.e4 OSDs=[38, 19, 89] num_large_omap_objects=17 v b0 @" O* Q1 T. A) ~
pgid=13.e7 OSDs=[19, 89, 38] num_large_omap_objects=1. t1 u- ?, L, o: D8 R2 }( f
pgid=13.ec OSDs=[89, 28, 48] num_large_omap_objects=1$ V; z- K/ h0 T# [6 z- q
pgid=13.f5 OSDs=[38, 88, 19] num_large_omap_objects=1/ ]% q. i& l9 c# h, Q
复制, Z/ `7 L5 a2 t* P
查找OSD日志,确定object名称(".dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.11"),发现omap条目数达到了2378492,超过默认告警值
@) C% S% R9 w F3 C/ m# I n+ J9 T$ J
$ Q- G6 Q( k9 x5 K+ v, L[root@demo123 cephuser]# zcat /var/log/ceph/ceph-osd.19.log-20181231.gz |grep "omap"
9 j" G' F/ a+ ~2018-12-30 23:00:42.334766 7f6583f44700 0 log_channel(cluster) log [WRN] : Large omap object found. Object: 13:87443b2d:::.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.11:head Key count: 2378492 Size (bytes): 4917227583 d' M9 d$ z& K% i
复制/ T# S' G I! a1 _' q' q3 o, I
默认告警值为2000000,2378492>2000000,不建议去修改这个默认值,因为改得过大会加大集群出现异常的风险,属于掩耳盗铃。, L3 n; s& }/ P6 T+ h' Y
: ]+ w" s5 S( p2 L7 i) ^0 G
[root@demo123 cephuser]# ceph daemon /var/run/ceph/ceph-osd.19.asok config show |grep large0 @6 l0 y4 J( W
"osd_bench_large_size_max_throughput": "104857600",
Q! r, n& @' c "osd_deep_scrub_large_omap_object_key_threshold": "2000000",
1 h1 F8 O7 {. S, b "osd_deep_scrub_large_omap_object_value_sum_threshold": "1073741824",, l8 D2 [' T' s( p# J
复制
0 N: a- @6 M. x& s/ _& l查看一下发生omap过大的bucket,确定相关信息* m0 u9 t8 j$ I( g
1 F9 g' e. i9 [3 X[root@demo123 cephuser]# radosgw-admin bucket stats --bucket=demo1
% o- R' y f- N, f{
+ ]: E% L9 f+ }8 A" f* k" t "bucket": "demo1",' I7 _4 D ^+ A
"zonegroup": "68f1dcf5-0470-4a48-8cd2-51c837a2cafb",% c( E% s6 |9 ]' L+ O
"placement_rule": "default-placement",
8 m$ C( j; k# v7 d "explicit_placement": {& K5 O# x$ H9 c8 M6 d f. r& ~ x$ l
"data_pool": "",
6 a+ J, f. v) q5 b$ \ "data_extra_pool": "",# h; x& Q1 H/ J, e( k; G! y/ u5 f
"index_pool": ""
3 I& b$ E* V& w, j, N! D },
& `: x& s4 ?. [7 D [ "id": "afd874cd-f976-4007-a77c-be6fca298b71.34209.1", #当前bucket instance ID,! u' \2 @2 H0 \
"marker": "afd874cd-f976-4007-a77c-be6fca298b71.34209.1",
/ t8 B- H" F z( V "index_type": "Normal",
9 U/ J) b* i. m$ ^6 {% G "owner": "s3test",; I8 R: ]; D2 `0 ~7 b
"ver": "0#2638037,1#2637965,2#2632835,3#2632869,4#2632799,5#2632597,6#2633289,7#2633175,8#2637227,9#2637609,10#2637997,11#2632455,12#2631337,13#2631624,14#2631983,15#2632359",
( B5 e- e$ J! z9 v1 l, [" _* E+ f( n "master_ver": "0#0,1#0,2#0,3#0,4#0,5#0,6#0,7#0,8#0,9#0,10#0,11#0,12#0,13#0,14#0,15#0", #16个shard- h( `& g7 L& I- t
"mtime": "2018-11-28 16:47:45.560039",' L$ {# x+ u; A; m
"max_marker": "0#00002638036.2638608.5,1#00002637964.2638536.5,2#00002632834.2649479.5,3#00002632868.2633634.5,4#00002632798.2633370.5,5#00002632596.2633168.5,6#00002633288.2633860.5,7#00002633174.2633747.5,8#00002637226.2637798.5,9#00002637608.2638181.5,10#00002637996.2638569.5,11#00002632454.2633026.5,12#00002631336.2631914.5,13#00002631623.2632195.5,14#00002631982.2632554.5,15#00002632358.2632930.5",/ _- H( n4 Y8 t2 D( e t
"usage": {2 ]! K4 e8 i# J# i7 V! ]1 n
"rgw.main": {
5 z8 n) f& c7 G; { "size": 1975757355553,0 q K- R# |, z9 M' F
"size_actual": 2047893610496,
) R1 M" N) w8 s* R/ D9 N4 k$ P "size_utilized": 1975757355553," s' B4 A7 c+ c. F9 \! [. Z, m
"size_kb": 1929450543,
# n( | r7 }$ I- ?6 U% K "size_kb_actual": 1999896104,. D8 R' C0 }3 m9 b
"size_kb_utilized": 1929450543,: J b+ q3 r, i* L) ^
"num_objects": 19998962 #近2000Wobject
% Z" U* _. R, d }
; A" U Q7 U( Q- R, [' R( A7 B g },
% w5 j* ]1 x# z* X5 J2 q "bucket_quota": {" u' g9 B: t9 q
"enabled": false,
5 h% c7 `9 i$ K "check_on_raw": false,/ _+ R1 k) b% @5 z8 R1 L4 m" M
"max_size": -1,! y4 C/ C( @( j( x- v$ h
"max_size_kb": 0,6 f8 v6 u* s- q/ t4 l+ ]" s
"max_objects": -1& P' ^3 q. {7 T/ B
}
# O* e8 U: e$ j5 K! R+ Y+ u* m}% j5 Q( H7 o c7 @8 L
复制
, ?8 a1 l2 m' W0 C7 I- Q8 w异常处理
$ M( f( V" H/ G$ G# F8 [3 b; b通过bucket reshard操作,将原来的bucket 重新划分shard,shard数量从16->64。注意reshard有风险,最好停掉客户端的读写操作以后再进行,同时如果你使用了multisite,请根据官方说明立即关闭Dynamic resharding特性。4 a0 A9 l5 }3 A# G
$ j% ^4 G( ~9 e
Dynamic resharding 说明: http://docs.ceph.com/docs/mimic/radosgw/dynamicresharding/4 Z; U1 x0 D8 x) m4 a
' V+ |# `# F8 o/ x6 _7 o做完reshard需要手工删除之前的索引数据,工具也提示了下面的内容。
, E9 z$ p# d; A8 I# K+ i' o
, L' g2 J% R" {- x[root@demo123 cephuser]# radosgw-admin bucket reshard --bucket demo1 --num-shards 64
$ u1 w4 _ {( N& ]8 R, s*** NOTICE: operation will not remove old bucket index objects ***
7 h9 e5 V. I) {1 E*** these will need to be removed manually ***
0 S$ N( h* D# ^9 e3 g1 itenant:
1 O0 N: M' V) s1 ]' { b# c; z9 U) y4 jbucket name: demo1: u# O9 c& t6 A8 x
old bucket instance id: afd874cd-f976-4007-a77c-be6fca298b71.34209.1) N* W, s- \/ ~# m' h
new bucket instance id: afd874cd-f976-4007-a77c-be6fca298b71.45786.1
) \, J* a9 W, ?% Vtotal entries: 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 19998962* A5 ?* I: d: c; K. {
2019-01-03 11:42:33.741314 7f74d15c6dc0 0 WARNING: RGWReshard::add failed to drop lock on demo1:afd874cd-f976-4007-a77c-be6fca298b71.34209.1 ret=-2) n7 Q7 g O2 u" x; U1 k
复制- |# m4 S, O" A; X
检查reshard结果
8 S# X+ Q" S* L2 `* D% V' a, D# ]6 A/ ^ M7 v7 Z6 C. q! Y
[root@demo123 cephuser]# radosgw-admin bucket stats --bucket=demo1
& K- x$ M: {/ n{* t. y% [( r7 z% l# A) [
"bucket": "demo1",2 k' h' o5 _1 X* \; L n
"zonegroup": "68f1dcf5-0470-4a48-8cd2-51c837a2cafb",' |) r& a9 o0 W8 F4 a" u/ p
"placement_rule": "default-placement",) T. g) ^4 O. m; q3 W
"explicit_placement": {6 ?% ?3 x1 M" U- {
"data_pool": "",
1 g% E4 i9 c4 i' O \ "data_extra_pool": "",) @5 |0 x+ h( M4 [( K& T
"index_pool": "": {1 {/ q: _, V! r, h3 ^" y2 n
},: A& e% Z) r( m- T" o. L
"id": "afd874cd-f976-4007-a77c-be6fca298b71.45786.1", #bucket instance ID发生变化
* P- N1 [3 x. O6 e$ e "marker": "afd874cd-f976-4007-a77c-be6fca298b71.34209.1",
1 D0 u& Y) _9 j "index_type": "Normal",- {8 _$ S- e! F. p6 G$ V4 ?* z
"owner": "s3test",+ { v$ q; x E6 i5 |* }9 a
"ver": "0#4920,1#4920,2#4883,3#4877,4#4882,5#4883,6#4885,7#4880,8#4882,9#4880,10#4878,11#4883,12#4923,13#4883,14#4882,15#4874,16#4878,17#4880,18#4884,19#4881,20#4882,21#4881,22#4876,23#4922,24#4883,25#4887,26#4881,27#4879,28#4879,29#4879,30#4882,31#4884,32#4880,33#4879,34#4917,35#4876,36#4883,37#4885,38#4884,39#4879,40#4883,41#4880,42#4880,43#4882,44#4884,45#4877,46#4879,47#4877,48#4881,49#4880,50#4881,51#4881,52#4883,53#4876,54#4880,55#4884,56#4881,57#4885,58#4882,59#4881,60#4881,61#4881,62#4883,63#4882",#shard 数量变为了64
& `. _) L% W1 ~4 [# P' T "master_ver": "0#0,1#0,2#0,3#0,4#0,5#0,6#0,7#0,8#0,9#0,10#0,11#0,12#0,13#0,14#0,15#0,16#0,17#0,18#0,19#0,20#0,21#0,22#0,23#0,24#0,25#0,26#0,27#0,28#0,29#0,30#0,31#0,32#0,33#0,34#0,35#0,36#0,37#0,38#0,39#0,40#0,41#0,42#0,43#0,44#0,45#0,46#0,47#0,48#0,49#0,50#0,51#0,52#0,53#0,54#0,55#0,56#0,57#0,58#0,59#0,60#0,61#0,62#0,63#0",3 P0 {) a- A! J$ F
"mtime": "2019-01-03 11:32:50.349905"," I4 T/ E, t5 i4 w) D( j0 l
"max_marker": "0#,1#,2#,3#,4#,5#,6#,7#,8#,9#,10#,11#,12#,13#,14#,15#,16#,17#,18#,19#,20#,21#,22#,23#,24#,25#,26#,27#,28#,29#,30#,31#,32#,33#,34#,35#,36#,37#,38#,39#,40#,41#,42#,43#,44#,45#,46#,47#,48#,49#,50#,51#,52#,53#,54#,55#,56#,57#,58#,59#,60#,61#,62#,63#",- `6 w8 |) t; n' |0 O! i6 Z4 {
"usage": {: r. h& d$ R9 y% i! X6 k- y
"rgw.main": {% g1 D. |/ J1 |" ^9 j" M+ e
"size": 1975757355553,) k$ @/ U' ~, g/ }0 H. y2 ?
"size_actual": 2047893610496,( K) d' A" c) c! `3 M) G
"size_utilized": 1975757355553,5 I9 Q! P5 h9 @+ F5 x5 g. Y
"size_kb": 1929450543,& b' M8 _; H- c4 t1 N$ U( I/ ?( W
"size_kb_actual": 1999896104,5 L) j' b% J( D8 z
"size_kb_utilized": 1929450543,
3 U' {$ @9 ]0 c& q& o& P( z "num_objects": 19998962
$ _ b$ I \6 h1 w }
4 |" T% x) T9 j$ H },
. S/ R- o* J4 Z "bucket_quota": {
6 y1 @( @& K4 ], R {0 s "enabled": false,
/ |/ b0 u8 ?5 U" k" O "check_on_raw": false,0 B, R# q! o- J7 J' f
"max_size": -1,
0 y' w' V3 F6 g$ Y "max_size_kb": 0,
( \( t3 g! B* ? "max_objects": -1
% A9 N. z4 o3 B }
9 _, A+ A0 a, W" ?+ {8 A}
8 M+ Y/ V& }' W# U" V3 y复制( s, K- v7 A* z$ o1 s' S
回收旧数据5 v. [% P6 t9 C) Q# A. r# |
根据之前工具的提示需要回收index和meta两个pool里面的残留数据9 z4 x w+ M) `. N
( Z+ |8 o9 p0 y2 [7 _回收index pool数据
6 K3 J" i' L2 x# h0 H, a h- J- l% I, k e$ |& Q
[root@demo123 cephuser]# rados ls -p cn-bj-test2.rgw.buckets.index|grep "afd874cd-f976-4007-a77c-be6fca298b71.34209.1"
8 V$ h0 x% B% f0 p2 k; ?9 {& b- n.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.5
8 @4 J M$ s# s# k.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.15
$ H6 |! Q+ h/ `.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.2
3 I0 Z( D' n- ?: j- s.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.1
' Y8 f# W3 r6 {. I. u.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.0) r5 Y8 E# `# d- k& Q. r
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.4 [) @( |/ q7 @( ^9 K/ ]
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.11
! S& [1 t0 K# P( C.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.13
0 B7 ~1 ^6 G( z9 h+ L. w8 K( t- T.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.6
5 f- C" y- n7 B$ C" U( H.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.32 h: A0 D7 x' n; a1 ]$ h
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.72 H/ H$ R9 w5 F3 h& c3 y
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.9) A# t! V6 W/ C( h% X
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.14
7 X& r+ X) [) H( k; w! f1 f.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.100 E* A7 |1 P# L8 u T9 B2 @( u v. t
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.12
/ B% m l: L: C, O9 |.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.80 U" G5 A( y+ }. Y" T7 @/ {
复制
! \ `; N- ?6 D5 o: p使用rados rm命令删除数据
& a( X" d" \+ u, g
: z4 P3 _- E5 Z" M( C9 p! }[root@demo123 supdev]# rados ls -p cn-bj-test2.rgw.buckets.index|grep "afd874cd-f976-4007-a77c-be6fca298b71.34209.1"|awk '{print "rados rm -p cn-bj-test2.rgw.buckets.index "$1}'|sh -x
! C, H. r2 J% U \$ J+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.55 x9 o- j1 Y$ o& K% m
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.15
' ^1 K; ~7 j4 ?( Q$ h+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.20 j0 [+ z' y' N1 V* c0 o9 u2 {
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.1 |9 m. V! E* d( J! N6 A
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.0
) g+ l3 Y! }0 S R5 ^" h+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.4& S2 a1 [% c3 q: R! T
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.11( D0 @5 \4 ^5 r/ o& w
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.13/ z5 N' ~( [* L% F
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.6
: q/ R; t, g) Q+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.3( M0 u* ]4 L! k5 ?; l! `, d. y
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.7
9 L* u8 n$ ?9 Q+ @" a0 I+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.99 \* I: n/ ]" K+ ]& N+ s
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.14
c& a# D2 D8 s8 b1 s7 u+ B/ y( S+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.10
" ? ]9 N% I7 v* l3 j$ D( V% }+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.12
- M# a- p# C2 N# T+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.82 H+ X7 d0 i# f& M) c+ F* K6 r
复制 [- f' A, @8 y; e& t, }
回收meta pool的数据' g1 s; y0 w7 @" { W
& V$ I8 O& o7 l! {[root@demo123 cephuser]# rados ls -p cn-bj-test2.rgw.meta --all
3 D: \0 w7 f! v! n6 iroot demo1
: z1 i; k; w5 [3 {/ M) xroot .bucket.meta.demo1:afd874cd-f976-4007-a77c-be6fca298b71.45786.12 U2 Z5 M6 c; s! H
root .bucket.meta.demo1:afd874cd-f976-4007-a77c-be6fca298b71.34209.1 #残留, q! B8 y6 H) Y9 U& [
root my-new-container_segments
6 q, g, o( @4 d# i! _6 ?root .bucket.meta.demo2:afd874cd-f976-4007-a77c-be6fca298b71.34353.15 Q' U6 Z- m7 N1 x3 N+ ]
root .bucket.meta.my-new-container:afd874cd-f976-4007-a77c-be6fca298b71.7991.13 |8 Y" \4 i) q7 I
users.uid s3test.buckets6 L" ?# U7 a) K+ k3 K
users.uid swiftuser
8 f9 h' v; p9 i; t E% lusers.swift swiftuser:swiftuser1
: G5 b- s/ d" P; ]1 eusers.keys SNACA4LX9DS21NGMSRX4
: }/ Z9 z6 h: X9 iroot .bucket.meta.my-new-container_segments:afd874cd-f976-4007-a77c-be6fca298b71.7991.4
0 |- P" P4 F5 x1 Musers.uid s3test; j0 k8 J4 j/ }
root demo2
0 ~. ?. U# r2 ?9 [; \4 E# zusers.keys XP8E2452AB6EBU3RPD0C
$ m+ m; C! q$ l i1 o5 G; G1 G. D2 }root my-new-container! _( ^2 q4 X9 O, e( ]! J. U9 b
users.uid swiftuser.buckets
4 `; ]- s; \0 i+ u" ~# H! musers.uid synchronization-user
8 V( u2 `( s" w' E' h2 `复制
# o8 c. ^7 ~8 K6 }4 v% D注意这里用的ceph L版本,使用了namespace,所以要指定namespace才能删除
7 S- `8 z1 L9 i- C3 T4 E8 Z- w: |, v Z+ s
[root@demo123 cephuser]# rados rm -p cn-bj-test2.rgw.meta .bucket.meta.demo1:afd874cd-f976-4007-a77c-be6fca298b71.34209.1 --namespace=root; l* q" h' x n0 Q I+ q- Z
[root@demo123 cephuser]# rados ls -p cn-bj-test2.rgw.meta --all
) u) K8 Y+ z l. _! h* Froot demo1* _6 [* N, A+ h0 E8 Y; s* y, U
root .bucket.meta.demo1:afd874cd-f976-4007-a77c-be6fca298b71.45786.1# e( b8 C# Z( W, ]- v+ n# N0 d) w( ~
root my-new-container_segments
1 B! F- J+ o+ T& n3 R% Uroot .bucket.meta.demo2:afd874cd-f976-4007-a77c-be6fca298b71.34353.1
; i z3 o! c/ c& Y# p- zroot .bucket.meta.my-new-container:afd874cd-f976-4007-a77c-be6fca298b71.7991.1: t3 s( @8 T; `5 t* r8 q. n. F% d
users.uid s3test.buckets( ~+ i% e; `0 Q% U( {7 g
users.uid swiftuser# I' M, F G4 p. d$ `" h6 S
users.swift swiftuser:swiftuser16 v, b7 S& J/ m$ R1 s$ {! W
users.keys SNACA4LX9DS21NGMSRX4" N+ h! P( F& v Q( G: V" ]
root .bucket.meta.my-new-container_segments:afd874cd-f976-4007-a77c-be6fca298b71.7991.4
8 y2 o) T5 ?7 |! Yusers.uid s3test3 i' Y/ s, x V5 Q- X$ _& U
root demo2
. _; S4 s+ j8 G9 Ausers.keys XP8E2452AB6EBU3RPD0C
1 F" I' X8 o/ G# [' O! Kroot my-new-container
- C5 a' g* l5 x1 @9 _; Jusers.uid swiftuser.buckets3 ^. N( F% k$ l" u8 D( v. U9 x, {& Q0 a
users.uid synchronization-user
3 i# s0 F5 O8 g1 Q w+ t6 e! }复制6 o$ p, @ f [/ q7 i6 c
清除large omap告警
+ U' G* @; Z% T8 F. k p4 z删完了object并不会恢复告警,需要手工对相应的pg进行deep-scrub操作,具体如下. ], A e0 J! B8 m
* ^ Q9 N: I; l8 h, F- d1 ?
[root@demo123 cephuser]# python large_omap.py. g) b8 O" V1 B
Large omap objects poolname = cn-bj-test2.rgw.buckets.index
o4 g" y( h* rpgid=13.33 OSDs=[59, 79, 19] num_large_omap_objects=1
2 C0 W( h' @8 jpgid=13.3c OSDs=[49, 29, 78] num_large_omap_objects=15 ?7 ^: g: z( m: _ z) r$ |9 Y
pgid=13.3d OSDs=[48, 69, 9] num_large_omap_objects=1( V1 f) w6 [% }. x/ j( H
pgid=13.45 OSDs=[88, 39, 28] num_large_omap_objects=1
: K, l, m) Q. y1 ~pgid=13.4d OSDs=[38, 29, 89] num_large_omap_objects=1" |, q3 Z1 |/ Z4 G$ d
pgid=13.50 OSDs=[68, 19, 59] num_large_omap_objects=1
! Z" O5 `) Z: p" |! Fpgid=13.6b OSDs=[39, 79, 8] num_large_omap_objects=18 C4 a1 {, s. I9 B! q
pgid=13.8e OSDs=[38, 9, 78] num_large_omap_objects=18 b/ m9 K g4 q& _4 K* D; q
pgid=13.d1 OSDs=[9, 88, 38] num_large_omap_objects=1
# G- t- v* }3 G" o9 H* y$ vpgid=13.d2 OSDs=[59, 88, 28] num_large_omap_objects=1
, E) P( k6 h: L7 Vpgid=13.e1 OSDs=[19, 88, 49] num_large_omap_objects=1
$ \) s8 k2 s' n/ Kpgid=13.e4 OSDs=[38, 19, 89] num_large_omap_objects=1
# {5 L; |0 S1 N' Ipgid=13.e7 OSDs=[19, 89, 38] num_large_omap_objects=1
/ | g, R8 l( x# z% G: p5 @pgid=13.ec OSDs=[89, 28, 48] num_large_omap_objects=1
5 E, {; M; f# t" c5 B7 b' [( hpgid=13.f5 OSDs=[38, 88, 19] num_large_omap_objects=19 I" Q s5 {1 |2 O8 f3 [
[root@demo123 cephuser]# ceph pg deep-scrub 13.33
4 U) d# e! ^3 f2 E; @instructing pg 13.33 on osd.59 to deep-scrub6 A2 G- N" b' ~' Q# }
复制
. O0 H3 J( _' H; h8 b5 }操作完可以看到有pg进行dep-scrub,之后状态恢复
& ^4 a; m. M/ r/ A- x3 W5 [5 W, f; |6 g; S& B# x; u8 v
[root@demo123 cephuser]# ceph -s
+ f0 ]- w( y$ z5 D+ M cluster:
# a- \% G1 f2 {! x: s% M id: 21cc0dcd-06f3-4d5d-82c2-dbd411ef0ed91 K! {" E7 S3 K
health: HEALTH_WARN* _* V9 O5 c% m; S+ Q: j) \6 ~( r5 e
16 large omap objects: }3 B2 c* k/ y. f2 c, Y5 y
% S- q$ w/ G' B9 X5 L' l x3 m
services:
; K6 ?0 s. ~: U( } mon: 3 daemons, quorum demo122,demo131,demo141, L9 E6 @0 [* M# r. v
mgr: demo141(active)3 h0 _: ^: U" {
osd: 90 osds: 90 up, 90 in& M4 v8 q. h/ K3 p% q
rgw: 1 daemon active
/ A! k$ L8 t! A6 n+ B: G* r
7 X' K2 R( T* D4 @8 y- j data:4 a5 `7 K* E- j- {/ G X1 K3 \% A
pools: 7 pools, 3712 pgs
9 K. b- b- l; [$ U1 ^ c) R# F objects: 20.13M objects, 1.80TiB7 A% S1 V6 [, i$ |( n0 q
usage: 7.28TiB used, 408TiB / 415TiB avail
: T+ E9 a& i% ]6 [ F pgs: 3711 active+clean, J) K/ n1 N! `
1 active+clean+scrubbing+deep #开始deep scrub" }- e/ }0 e% ?$ a5 a) W- k e
) J6 h8 \1 e9 O: a% } io:! X8 V5 c$ N/ X! q2 `1 o/ b
client: 5.29MiB/s rd, 935B/s wr, 69op/s rd, 28op/s wr, f7 b. n0 _5 ]% f
7 k y4 y$ f0 t2 g* `% w
[root@demo123 cephuser]# ceph -s& W. ^( L+ K, H/ y* N: z$ K9 K4 T
cluster:
$ O }+ ^) G/ e. M0 f. F id: 21cc0dcd-06f3-4d5d-82c2-dbd411ef0ed9& H" a# B' w, m
health: HEALTH_WARN
. |$ p, m0 l# S6 v0 v7 X J 15 large omap objects #减少了1个
5 D; e8 ^! Q, Y5 f% {3 u2 U: \; G2 @# a" C0 s# p3 a
services:0 r! _ i& u) e8 P' \, V1 P
mon: 3 daemons, quorum demo122,demo131,demo141
& P5 N$ X3 v. o" O mgr: demo141(active)4 p( Y/ d; @; U9 f+ M
osd: 90 osds: 90 up, 90 in
. {; N% d- c8 p; P5 s3 \+ c: C rgw: 1 daemon active4 v* ]6 `0 t1 L0 {" I0 O+ W8 ?2 E) {
. g H9 _+ X! U: j8 U0 g* v/ } d0 g data:
) O7 D% d! N/ _! r5 K0 O pools: 7 pools, 3712 pgs1 T* f) s% o" Y# U% |9 N# a
objects: 20.13M objects, 1.80TiB4 m/ L: C8 e3 O1 S( \8 o
usage: 7.28TiB used, 408TiB / 415TiB avail$ s/ e' y8 P9 e# l+ Z( N- |& M
pgs: 3712 active+clean
; b, T; _# `2 W4 g" v8 X# }' e; _+ A$ }) v: W
io: w5 x1 r$ d4 `# D1 k
client: 5.33MiB/s rd, 680B/s wr, 36op/s rd, 6op/s wr2 N+ K2 H2 f- x3 N. j0 q' D
复制
" ~8 ^4 q/ m: t! n总结
1 W% v# ?! H( l3 e! W2 j5 Hindex pool的omap告警一般就分为两类:
( |1 G. j7 Z/ O# ?* b& R6 O& Q8 @! t
一类是object条目数过多,导致对应的index 元数据条目数过多,可以用上面的方法处理。, z9 `, d2 }+ s! {7 C6 ~
另外一类是bilog过多,这里的方法就不适用了,需要手工进行bilog清理,关于bilog后续会有详细章节介绍。
) c. g0 r& O/ M. j/ a+ W& Z, ~; A' |7 }3 c
|
|