|
|
楼主 |
发表于 2022-8-23 09:53:54
|
显示全部楼层
index pool的 large omap 处理
3 I" `8 T2 T" c: r向单个bucket压测2000W个object,默认设置shard数为16,压测到1800W出现large omap,介绍一下错误定位和如何处理。
& ?1 ]( P$ b8 D0 x6 h/ ?7 y
% l! E4 I# i7 F7 z5 y异常定位) }* T; W: [( f, t& H
集群状态如下
. k4 q( y( J, {( X, M) d1 T# O# @) G: S7 W
[root@demo123 cephuser]# ceph health detail
% ]3 P! _$ B. p! t# l- pHEALTH_WARN 16 large omap objects
1 T. B+ n% `# pLARGE_OMAP_OBJECTS 16 large omap objects
7 o6 Y; s; m5 i$ M/ G$ H6 v 16 large objects found in pool 'cn-bj-test2.rgw.buckets.index'2 d @! v! L5 i
Search the cluster log for 'Large omap object found' for more details.
4 R. `3 g' G6 ]' ]! j复制
Q9 D y) \1 i8 t1 f- `9 W1 J通过脚本找到对应的pg信息,脚本请查看之前一篇omap large处理的文章。& L8 X) U) J$ a5 C0 k! m! @
9 `# B! Y/ {- E# k1 Y/ a
[root@demo123 cephuser]# python large_omap.py( Z) T ]! X; e& X6 S
Large omap objects poolname = cn-bj-test2.rgw.buckets.index2 X9 b0 ^) J) `* D" B
pgid=13.1f OSDs=[78, 9, 59] num_large_omap_objects=1$ o3 R }. f8 E2 `1 b$ n0 S! ?" Y( f; V
pgid=13.33 OSDs=[59, 79, 19] num_large_omap_objects=1/ j* V/ w O" d/ k7 Q5 f
pgid=13.3c OSDs=[49, 29, 78] num_large_omap_objects=1
# u0 q8 y5 k. L% C* ?pgid=13.3d OSDs=[48, 69, 9] num_large_omap_objects=1
" J0 Q4 O8 p6 o- E* Dpgid=13.45 OSDs=[88, 39, 28] num_large_omap_objects=1
" h4 Z2 a; \! T" }pgid=13.4d OSDs=[38, 29, 89] num_large_omap_objects=1
: |4 B. R. l2 P2 s/ {pgid=13.50 OSDs=[68, 19, 59] num_large_omap_objects=1
# W% I( `: s1 Xpgid=13.6b OSDs=[39, 79, 8] num_large_omap_objects=1
1 N. S3 Q; J9 X' o" Z9 Upgid=13.8e OSDs=[38, 9, 78] num_large_omap_objects=1
# L7 E2 b. {1 Q- P% ]1 ]* n: j4 A- Ppgid=13.d1 OSDs=[9, 88, 38] num_large_omap_objects=1
) x, [8 O- I8 t8 o- Spgid=13.d2 OSDs=[59, 88, 28] num_large_omap_objects=1. N& m; F3 U3 \/ {. T' Z- w
pgid=13.e1 OSDs=[19, 88, 49] num_large_omap_objects=1
( I% s. ^/ U/ n# `( tpgid=13.e4 OSDs=[38, 19, 89] num_large_omap_objects=12 I3 \* D& I; [3 a/ ~
pgid=13.e7 OSDs=[19, 89, 38] num_large_omap_objects=1
. x7 i: G8 M9 [" O; p$ @pgid=13.ec OSDs=[89, 28, 48] num_large_omap_objects=16 L; V! `* n& E
pgid=13.f5 OSDs=[38, 88, 19] num_large_omap_objects=1
( y5 {' \( }, g' {; ~复制
) p0 @7 N) h8 N% U0 z查找OSD日志,确定object名称(".dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.11"),发现omap条目数达到了2378492,超过默认告警值
$ x: z! K; T/ [1 h9 z
7 u0 u* o- O7 x7 v M[root@demo123 cephuser]# zcat /var/log/ceph/ceph-osd.19.log-20181231.gz |grep "omap" a+ K: Y6 L' u# J/ r& Q; u
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): 491722758! g- |. C6 t* _$ A; a1 @
复制, {! n7 ?. P5 b3 ?+ N% r
默认告警值为2000000,2378492>2000000,不建议去修改这个默认值,因为改得过大会加大集群出现异常的风险,属于掩耳盗铃。
) i5 G# x) {6 K3 X* h8 o- F: X( M. b
" D3 a3 w. V" Z[root@demo123 cephuser]# ceph daemon /var/run/ceph/ceph-osd.19.asok config show |grep large
/ P1 T g; r# |7 ~7 ]' k "osd_bench_large_size_max_throughput": "104857600",* @2 n) `& {2 ^* s {8 ~+ I$ |( V
"osd_deep_scrub_large_omap_object_key_threshold": "2000000"," S9 n7 k4 W9 `* A w
"osd_deep_scrub_large_omap_object_value_sum_threshold": "1073741824",/ P, Q- v/ p$ N* g
复制
9 H: E. y- t. f查看一下发生omap过大的bucket,确定相关信息
. u# j5 L' Y9 }4 Q$ M! @4 H* M5 [- s2 n9 M! M$ U
[root@demo123 cephuser]# radosgw-admin bucket stats --bucket=demo1( V; i8 C. b$ n0 _
{, k, S7 @( d! s5 a8 x& E
"bucket": "demo1",
* i0 r3 F U: M, l "zonegroup": "68f1dcf5-0470-4a48-8cd2-51c837a2cafb",
: F1 C- }/ ^9 X& e, |/ R. ^ "placement_rule": "default-placement",( ]) ]$ V2 l: j5 z2 p# {
"explicit_placement": {
2 m. N; Z! E5 T2 v/ s "data_pool": "",
0 N* o3 L' S1 C% a% a) ~& t "data_extra_pool": "",5 R' o8 n* G, S V r, V' ?8 s
"index_pool": ""
8 I! N6 B) l7 j, F },5 ^" W+ E6 F& c% d4 ]! [3 u0 l
"id": "afd874cd-f976-4007-a77c-be6fca298b71.34209.1", #当前bucket instance ID,
" v- j2 r7 P- R1 [: S5 M1 |0 b& g "marker": "afd874cd-f976-4007-a77c-be6fca298b71.34209.1",2 f I: ]9 D) q2 \1 j
"index_type": "Normal",% F V P0 y" V
"owner": "s3test",7 Q# e4 m7 d0 n% f
"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",
0 y4 u) Q* F3 ~# s4 b. j3 ^7 V "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
% f( M; x) _/ {* T "mtime": "2018-11-28 16:47:45.560039",0 b) l$ g7 j7 j
"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",0 X* S& T8 U: x3 i, |
"usage": {# L* M5 d) r7 p: M
"rgw.main": {
5 A) t2 G0 X: k: R( C "size": 1975757355553,
3 Q/ v$ Y/ ~# g G: I* G8 \! J9 m "size_actual": 2047893610496,* V& ]+ A' X6 } L! a3 Y; f( p& A
"size_utilized": 1975757355553,+ s: f0 A Y0 [- J5 ^
"size_kb": 1929450543,
, u9 B# r4 H: b8 \# n L$ Y- ?7 f "size_kb_actual": 1999896104,4 Z1 ` P, m0 \' y
"size_kb_utilized": 1929450543,
s" A+ R" Z% t: w, [ "num_objects": 19998962 #近2000Wobject2 T% I E3 [, a. w( B0 w
}
, a; [. \5 u3 l! Q# L },9 d) H3 G4 L) B
"bucket_quota": {
5 |% f1 `0 ], C. ]0 u "enabled": false,
! @6 r z) k1 G" j4 E' }! s "check_on_raw": false,
$ k) c9 {0 ?8 d. U3 W0 a! H "max_size": -1,
o a6 @. K# g2 O# ~; z "max_size_kb": 0,
7 C) p/ f3 X1 l* T "max_objects": -1
8 {5 Q9 Y; q2 n+ P3 g7 \; V }* |2 R' t* P7 |1 D
}
4 l. q; p. B* m1 `5 W; I( M复制0 S* M, K4 y& t0 p! M
异常处理
# P. E/ U; r2 {1 B l9 t& u通过bucket reshard操作,将原来的bucket 重新划分shard,shard数量从16->64。注意reshard有风险,最好停掉客户端的读写操作以后再进行,同时如果你使用了multisite,请根据官方说明立即关闭Dynamic resharding特性。
+ Z- s y7 x8 x6 `
4 f6 Y3 ^. |7 G, y k+ L ]Dynamic resharding 说明: http://docs.ceph.com/docs/mimic/radosgw/dynamicresharding/1 i3 V6 [7 e, s4 [% b
~1 ~3 ]% i9 L5 P- K做完reshard需要手工删除之前的索引数据,工具也提示了下面的内容。
$ A1 U5 r" [/ s, U1 d! A; }8 s6 R7 \7 b4 d* ~- s7 ?2 l/ _
[root@demo123 cephuser]# radosgw-admin bucket reshard --bucket demo1 --num-shards 64
: a6 w4 e5 ]$ A/ W9 g' l( u1 X5 b*** NOTICE: operation will not remove old bucket index objects ***
9 }% A8 X _. h+ k4 ]( b6 g: g*** these will need to be removed manually ***4 C% G6 Q: S/ |
tenant: r/ g. k: F& ]
bucket name: demo12 m$ Q) Y. g$ u. Z) B
old bucket instance id: afd874cd-f976-4007-a77c-be6fca298b71.34209.1, J* }/ ?" r* {' g% K# F" J
new bucket instance id: afd874cd-f976-4007-a77c-be6fca298b71.45786.1
0 m( n! F+ h6 h# ^- Ktotal entries: 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 19998962
* v O r* d0 m) q. l: Z2019-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# p4 w: f2 W5 ^ j. @
复制
; _# t2 k" O1 d$ U! k: _# M5 o检查reshard结果, S; a$ z4 M# t0 i! H: V) c
2 f4 x5 _+ A1 b* c( q[root@demo123 cephuser]# radosgw-admin bucket stats --bucket=demo1( D9 n- g, B9 C( O% Z* z
{
- D0 J) r! ~$ R$ N+ {, O "bucket": "demo1",$ ]% S5 f3 V2 j5 M0 p- m& J8 {
"zonegroup": "68f1dcf5-0470-4a48-8cd2-51c837a2cafb",
4 |, w4 |& E! ~" v2 v1 L! ^ "placement_rule": "default-placement",- ^, G- T: y9 Z) t9 c
"explicit_placement": {6 \ f+ Q9 x% D+ d0 b; A* p; F
"data_pool": "",
- c* t" v$ ]1 b1 g4 `. b* X "data_extra_pool": "",' P$ V1 c7 P2 @
"index_pool": ""# d ~# k" }+ H* h; i
},
* L, F/ ^9 j P* E/ F$ ~2 J "id": "afd874cd-f976-4007-a77c-be6fca298b71.45786.1", #bucket instance ID发生变化
. C, h) G* w* k/ h "marker": "afd874cd-f976-4007-a77c-be6fca298b71.34209.1",
- e# i4 X; _5 }8 ] "index_type": "Normal",
1 G* g6 ?- i; N' f0 W6 n2 j "owner": "s3test",0 K" T& m) N$ `/ C5 t
"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
! m; X5 a6 z, z: U3 ^4 m "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 `9 F0 X7 R: L [- ]$ }5 G "mtime": "2019-01-03 11:32:50.349905",
6 r5 h% T+ f8 Q1 z2 m "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#",5 m& X4 A& P' M2 y% M2 N
"usage": {
0 m$ k2 p& U8 P "rgw.main": {' _" N# a0 b6 n+ q! b
"size": 1975757355553,1 P6 S9 V: w5 x; a8 W
"size_actual": 2047893610496,
! q# Z8 X( Q6 d5 c9 `! Y, z "size_utilized": 1975757355553,
9 b) U: z# x( |; l; U& b6 \1 a "size_kb": 1929450543,6 h4 O. @0 R N0 H0 i; r
"size_kb_actual": 1999896104,
/ i& B; i7 ]) h6 M: |, ? "size_kb_utilized": 1929450543,& @5 u5 d% a% ]- ]
"num_objects": 199989622 {; V4 F' E4 S2 F3 m
}1 n8 `3 {+ B! M9 f4 r
},$ M) I5 H: P# m: S5 c+ j* P$ Z
"bucket_quota": { F' v) r9 t7 d8 w
"enabled": false,
/ F0 ]! O6 |7 V1 k2 \ "check_on_raw": false,
2 |2 `1 h! e0 Z! S! w' @ "max_size": -1,
5 ]4 C2 K; o4 x0 ?3 c "max_size_kb": 0,# x( G- }+ h! Q* b3 [3 o; U6 A4 Z
"max_objects": -16 ?) g+ K" U5 d( c$ P2 ]! \
}
: _ [( Y+ h: {9 w5 Z N/ p}
5 v: J2 `1 U2 c) T5 i复制
- `& U# J3 A# M5 T# @: \回收旧数据& M; Z0 ?3 h& _2 t1 R, |
根据之前工具的提示需要回收index和meta两个pool里面的残留数据6 S" u* z: c0 S/ i6 `/ S) \9 _
* W' g$ [0 h: B
回收index pool数据
1 N1 ~; \: d& f. X0 u. H0 q9 U$ ?7 F7 P& I4 `: `$ P; P3 v- X
[root@demo123 cephuser]# rados ls -p cn-bj-test2.rgw.buckets.index|grep "afd874cd-f976-4007-a77c-be6fca298b71.34209.1"
, m t& S- l6 p& o3 D, u.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.5
" K+ d! @! J3 g$ Q( r/ x1 V. E.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.15
/ g D2 g1 }5 x- N O.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.2* R: Z. A6 X, \3 p
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.1! [, b: ^# J1 y* d' O7 K0 d8 o
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.0
* W) J- {: z$ k; i$ x+ D' f0 s.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.4* D5 I# u! h4 f% P# Q8 g! l
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.11: ^" o/ K6 a% j" A o
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.138 ]# f8 q1 R; z
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.6& _* K, z+ ~! {3 f- T+ m5 V8 {
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.30 _! ^" l7 c. l- u0 f, y
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.7( J0 ~8 F+ @1 e% u+ |
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.9
: a; u5 d% F# [) Y* {7 e6 o.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.146 P$ H! X2 y" J% m3 R( S
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.10; U6 ^( l' _/ u T5 S+ s5 d
.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.12
- q1 W: P; d1 ?+ v: x i( H0 m.dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.8" `' l Q# t+ v
复制
% I5 q; h; F# c$ p# f z" z使用rados rm命令删除数据. a, {3 _" E' l
2 x$ O |/ G% r* n$ Y
[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
# f/ ?: j" S ^( z; h) W! ~5 h! ^% n3 c+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.5
, i8 z7 N7 }. ]7 A, z# j0 ^+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.15
9 t' ~: K$ G5 ]3 b3 k- `+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.2 H) O( w/ p- k4 d
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.1
) ?/ a6 f; y) g+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.0
: |3 j7 S! p: [+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.4
( Z" N+ ]( k8 T Y$ M; a. B+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.11
* G F3 K& c" I4 _+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.134 {! e: s2 w$ I J# N0 p
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.6$ W8 k7 B7 O- W% }* U% Y" c
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.3, C; A5 W) X! V5 f
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.7
$ d; H$ ^6 e$ b4 U4 S# J' I A+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.9
! i% _9 a. d/ V: }: J: W+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.14
5 Y6 Q3 L$ K. M2 q0 q4 p5 U x0 ^+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.101 n, \' E! e2 f6 M X
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.124 n% d0 _" u/ a6 y* ?/ A
+ rados rm -p cn-bj-test2.rgw.buckets.index .dir.afd874cd-f976-4007-a77c-be6fca298b71.34209.1.8' Q/ F7 V9 r4 S) j% h6 J, u
复制+ J& \ G0 ^/ h3 t7 g& o- A# D
回收meta pool的数据
& l7 c0 i& m. Z9 E
3 b1 l; N* X& I4 F2 H6 s[root@demo123 cephuser]# rados ls -p cn-bj-test2.rgw.meta --all/ U; k+ M1 v2 O# n9 k
root demo14 I$ s9 I+ g5 f6 x
root .bucket.meta.demo1:afd874cd-f976-4007-a77c-be6fca298b71.45786.19 U, i$ b% s7 t
root .bucket.meta.demo1:afd874cd-f976-4007-a77c-be6fca298b71.34209.1 #残留. g8 a: T3 Y5 p8 s+ A
root my-new-container_segments
% v8 w6 ]; m* a8 G2 T* O9 Z) xroot .bucket.meta.demo2:afd874cd-f976-4007-a77c-be6fca298b71.34353.1
6 b/ C7 e; Z& H, y5 c, g0 l" s froot .bucket.meta.my-new-container:afd874cd-f976-4007-a77c-be6fca298b71.7991.1 S1 i5 L& b, G& c+ p: N$ l
users.uid s3test.buckets
: v2 S2 j* u$ [# f0 Busers.uid swiftuser
- Y4 Z1 c: b8 [; W: wusers.swift swiftuser:swiftuser18 C+ L! Q5 ~" T, F* g" c# A
users.keys SNACA4LX9DS21NGMSRX44 v2 c" G$ O1 s# u2 L D* t
root .bucket.meta.my-new-container_segments:afd874cd-f976-4007-a77c-be6fca298b71.7991.4
; H( r* R3 O4 {0 ^users.uid s3test
+ d% f3 o }. }& r1 Oroot demo2
3 E }, x" E- t5 Tusers.keys XP8E2452AB6EBU3RPD0C4 g# ^! O w. p8 f8 E9 W
root my-new-container5 {5 @, p) q3 Q2 q: N
users.uid swiftuser.buckets
* Y$ ^6 @8 R" Eusers.uid synchronization-user! {* }8 i- a- o. V `
复制2 _+ Z+ F7 [2 W' I$ i1 {
注意这里用的ceph L版本,使用了namespace,所以要指定namespace才能删除! k' w9 m( u5 b' R- C2 i
2 P4 z: d# F0 u4 r# Z* Z* l! i7 q[root@demo123 cephuser]# rados rm -p cn-bj-test2.rgw.meta .bucket.meta.demo1:afd874cd-f976-4007-a77c-be6fca298b71.34209.1 --namespace=root( t: Z6 M6 @; E! V; P$ n0 \
[root@demo123 cephuser]# rados ls -p cn-bj-test2.rgw.meta --all
) [: H! f) @. I5 F% froot demo1
. C3 o* N3 q. h# h0 a2 o. aroot .bucket.meta.demo1:afd874cd-f976-4007-a77c-be6fca298b71.45786.1# g( N. I- W0 O# u' N8 Q
root my-new-container_segments
7 v+ }: M9 f* \5 n, ?: uroot .bucket.meta.demo2:afd874cd-f976-4007-a77c-be6fca298b71.34353.1
& h: W) H! E+ Uroot .bucket.meta.my-new-container:afd874cd-f976-4007-a77c-be6fca298b71.7991.1+ o7 Z: Q! c6 \. [
users.uid s3test.buckets
4 c% }, a0 L% Y/ Busers.uid swiftuser+ G4 K$ k6 J% R- w1 u0 Y0 n
users.swift swiftuser:swiftuser1# p5 x0 Z. a9 i9 H+ a
users.keys SNACA4LX9DS21NGMSRX4: O! m2 u! {5 N: A$ l
root .bucket.meta.my-new-container_segments:afd874cd-f976-4007-a77c-be6fca298b71.7991.4
1 u2 A; l, O7 z, F+ u- Fusers.uid s3test* h0 w2 l/ X; h9 F3 e! A
root demo2 O5 C% o2 x) {/ c5 a0 n/ }- _
users.keys XP8E2452AB6EBU3RPD0C8 g1 t& s! P: Z3 D& H5 L" V7 X
root my-new-container* B2 W9 J9 ? ^
users.uid swiftuser.buckets5 ]8 w1 e! [" G- M$ D
users.uid synchronization-user
! p2 w+ O0 \' n3 D2 M% T2 _复制
* E. g" p# u a* f2 \+ k0 f清除large omap告警
* Y* M, T8 v0 v2 u删完了object并不会恢复告警,需要手工对相应的pg进行deep-scrub操作,具体如下5 G$ l l: N$ J B+ m: c; ^
3 g% p9 ?8 _- e1 z5 O$ y
[root@demo123 cephuser]# python large_omap.py
+ r" u5 b6 ?, n8 [- C' |Large omap objects poolname = cn-bj-test2.rgw.buckets.index/ p; x3 b( q0 o5 f
pgid=13.33 OSDs=[59, 79, 19] num_large_omap_objects=1: h: O. t' C/ L# n
pgid=13.3c OSDs=[49, 29, 78] num_large_omap_objects=12 b! b' {& @3 N) L" j3 h" P
pgid=13.3d OSDs=[48, 69, 9] num_large_omap_objects=1
2 ~$ a1 }( m$ l( tpgid=13.45 OSDs=[88, 39, 28] num_large_omap_objects=1. [0 H4 ?! _5 U6 L* {
pgid=13.4d OSDs=[38, 29, 89] num_large_omap_objects=1, I8 ], ^% K" y* \
pgid=13.50 OSDs=[68, 19, 59] num_large_omap_objects=1
# x+ G, i9 ~( l9 H' [' Y! wpgid=13.6b OSDs=[39, 79, 8] num_large_omap_objects=1
; J" S4 B4 ]- m( @) A8 p! o2 u- ^pgid=13.8e OSDs=[38, 9, 78] num_large_omap_objects=1
8 f8 S0 l4 R7 g0 n7 O" S' G xpgid=13.d1 OSDs=[9, 88, 38] num_large_omap_objects=1- P7 [% y4 \! W
pgid=13.d2 OSDs=[59, 88, 28] num_large_omap_objects=1
: V5 N/ v6 `7 `0 h* J4 k2 gpgid=13.e1 OSDs=[19, 88, 49] num_large_omap_objects=1
' L. h/ S3 O, Q& ]0 G/ p# ]5 Q7 z! Ypgid=13.e4 OSDs=[38, 19, 89] num_large_omap_objects=1( A- C/ B2 @% K$ u% s/ \) T
pgid=13.e7 OSDs=[19, 89, 38] num_large_omap_objects=1 [1 h6 Q2 v- F" e
pgid=13.ec OSDs=[89, 28, 48] num_large_omap_objects=1
- ~, F. T" X* l% n3 w) epgid=13.f5 OSDs=[38, 88, 19] num_large_omap_objects=16 ?" V/ a8 i$ r
[root@demo123 cephuser]# ceph pg deep-scrub 13.33
$ N2 c ~+ J/ Finstructing pg 13.33 on osd.59 to deep-scrub0 O1 V1 Z4 F5 r
复制
0 ? X# }# g; b操作完可以看到有pg进行dep-scrub,之后状态恢复4 \7 f, s% F6 l; k8 O O, E
! ?" e' f3 V6 B5 H& w6 @. O' B
[root@demo123 cephuser]# ceph -s: h1 A" H. b$ r
cluster:
; S# ^( Y8 B% ~ id: 21cc0dcd-06f3-4d5d-82c2-dbd411ef0ed90 ^1 v, Y6 V* c& D8 n! r% V8 ~1 q+ A
health: HEALTH_WARN
?9 ?; M: K, D/ t% q 16 large omap objects
$ W" h7 ~+ p5 X7 r2 t; [3 n, i( v4 b; L" E" u+ }
services:
& V2 z9 c6 B" T# j i$ G. |. r mon: 3 daemons, quorum demo122,demo131,demo1418 S; g* I6 w0 S2 v6 J! E7 v- k
mgr: demo141(active)* q. m: n( c0 L7 Q
osd: 90 osds: 90 up, 90 in
) ^( i5 r! R6 d) @) `3 w rgw: 1 daemon active! g7 }8 a9 v- x3 [
0 o! X2 a7 P6 n% d4 _
data:
, V, @& Q9 ?' @3 L+ X. }) C( m' h pools: 7 pools, 3712 pgs6 n6 {' }( E9 _+ a
objects: 20.13M objects, 1.80TiB2 B+ B/ s' ? e- ~
usage: 7.28TiB used, 408TiB / 415TiB avail
3 [5 g1 j6 M4 y pgs: 3711 active+clean
* U3 q. {1 y$ J 1 active+clean+scrubbing+deep #开始deep scrub
+ [) n Q3 t( ]& R h- y& w8 d1 Q# n: d) V
io:1 H6 c- z" f$ u b U# P) y" `
client: 5.29MiB/s rd, 935B/s wr, 69op/s rd, 28op/s wr
; J% ?# S1 w& Y1 `- b% T2 z5 b
* d: B1 W: v! D[root@demo123 cephuser]# ceph -s, q4 }3 C4 k7 p- r: I
cluster:
) d6 x; H3 V+ [; b id: 21cc0dcd-06f3-4d5d-82c2-dbd411ef0ed9
8 ]% `7 @# S! F0 ] health: HEALTH_WARN
, P6 s; R* F# ~* [- y/ f3 @ j 15 large omap objects #减少了1个- h- h9 A. p. m- y, y( i# @
2 I/ I* r ^6 d% ` services:
4 n5 d. X2 e& \# q$ g7 a mon: 3 daemons, quorum demo122,demo131,demo1416 F+ _+ i! p+ i- n, L0 a
mgr: demo141(active)# q! C0 q6 t. V* P# G# g
osd: 90 osds: 90 up, 90 in
# s' k. j, r" L rgw: 1 daemon active
" r* V0 X* ?8 l& G
1 [* H, w# ` F$ w2 j data:% ?- O2 E* x4 V5 l* \( E
pools: 7 pools, 3712 pgs, G9 X( A* ^) z! B" M
objects: 20.13M objects, 1.80TiB
( c& r/ o1 a9 {; [* P usage: 7.28TiB used, 408TiB / 415TiB avail t2 t; c B3 s
pgs: 3712 active+clean
- o! A7 ` a% x X
6 E7 U& |. ?7 B( Y5 p5 z3 B. y8 _ io:, f( b0 r6 U# K9 n3 l' g% g( c, G9 \ a4 p
client: 5.33MiB/s rd, 680B/s wr, 36op/s rd, 6op/s wr# X; _$ d k# K" R5 |# o
复制- a$ F6 P5 H' I8 p6 c
总结) M/ F9 j. P0 Z' K6 T% y
index pool的omap告警一般就分为两类:
4 m/ |2 C& A! i, f$ r+ b
! b. m9 T1 ?/ C$ K9 C一类是object条目数过多,导致对应的index 元数据条目数过多,可以用上面的方法处理。
* k. }) o+ g' t另外一类是bilog过多,这里的方法就不适用了,需要手工进行bilog清理,关于bilog后续会有详细章节介绍。
' _) K3 A& f* I! i# g9 a, p# _6 I8 k( E2 k2 s
|
|