易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 2105|回复: 0
收起左侧

ceph rbd map failed

[复制链接]
发表于 2021-7-12 09:33:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
探索 kernel RBD map 失败的问题。* V' }' Z* P, b: r6 c
场景6 g9 U0 x/ I' k* F" |# w: [; ^
搭完 rbd mirror后,想通过client往image里写一些数据,所以在client端map rbd设备,结果失败了。
$ D0 m+ y6 m0 m3 x% @rbd mirror的image 需要两个属性:exclusive-lock, journaling3 P+ M  l% M1 F! K$ [6 {$ l
原因7 w+ L! P5 E, l
查看rbd image info5 ?3 s" `% A4 `# Q. N, H5 I
% A. P% Y3 V1 T: m
# rbd info rbd/image-1+ \" q* \6 C3 q1 j! f1 I: l
rbd image 'image-1':6 P6 `& g: a5 j* C" X
size 1024 MB in 256 objects
9 r' u" Y8 x, t6 y order 22 (4096 kB objects), e7 E4 F$ D9 F4 S$ _- Q: m2 r
block_name_prefix: rbd_data.108b238e1f293 @5 O6 l0 ^7 K& H
format: 2
/ U. I1 N" ~7 t: a3 N) X features: exclusive-lock, journaling
8 B$ ~0 A  t2 z1 v2 \2 j flags:6 u( N- i( y. c
journal: 108b238e1f290 X/ @8 M% e! ]1 ?( w
mirroring state: enabled' J! ~; }# S6 T, q* o
mirroring global id: c603d9dc-6f8d-49e0-ab68-5944d348e5274 J2 C( o* G+ S( E2 l
mirroring primary: true% t0 i5 S9 _6 F9 h2 S: Z
输出  z  t8 v( X$ e0 i% `

& t# r3 [& y7 V  w. i# rbd map rbd/image-1
+ S" z# E+ @& R2 vrbd: sysfs write failed
+ B+ `! q% F3 o* |/ JRBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
) ]0 n/ q) g: e6 xIn some cases useful info is found in syslog - try "dmesg | tail" or so.* u& o, A' M! ~
rbd: map failed: (6) No such device or address4 W& _! o7 }8 Q
然后dmesg看一下
- A% B' p8 c) l' l$ p. C+ F  A6 J% R, L  a% ?
# dmesg | tail
/ i8 v% Z+ [/ u" k; g[   64.808315] rbd: loaded (major 251)2 ~6 o* t# ]6 U" J
[   64.818369] libceph: mon2 172.20.2.160:6789 session established
) u: h# f* A7 P5 F0 J7 o; |1 _' s[   64.819187] libceph: client14167 fsid 4c7ec5af-cbd3-40fd-8c96-0615c77660d4
& y1 n( }0 I5 ~[   64.836328] rbd: image image-1: image uses unsupported features: 0x404 @! D$ A9 c. D
[  443.658569] libceph: mon1 172.20.2.161:6789 session established
; B9 [0 F6 H2 [( @: ]3 {[  443.659143] libceph: client4313 fsid 4c7ec5af-cbd3-40fd-8c96-0615c77660d4, d2 y. u. H) h2 Z
[  443.683178] rbd: rbd0: capacity 10737418240 features 0x1
2 B$ a  s% C/ D[  978.502132] rbd: image image-1: image uses unsupported features: 0x40
( i/ U' g4 Q# q0 _错误原因
: N+ r* j0 l$ \7 A$ Y! Nimage uses unsupported features: 0x40
, i; [% o  b$ {8 g1 H1 F  ^# W不支持特性 0x40 = 64,也就是不支持特性 journaling: s  z' f* K" _
关于内核支持的特性分析
9 C1 B. E7 M3 W查看内核版本
9 o" y3 T6 a' _+ C2 @4 K
7 W) p8 G+ v* `( c; z. M# uname -r
- a5 ~$ N" \6 J3.10.0-327.el7.x86_64
* Q7 U$ c( t) k/ A根据查阅资料和实践,发现:
* x, {* X% I7 cCentOS的3.10内核仅支持其中的layering 和 exclusive-lock,其他feature概不支持
4 i9 I: |8 }1 k3 t内核4.6仍然只支持:layering、exclusive-lock和 striping 属性# Z$ C' W* U3 |( j! ~2 @5 n) _) E

4 Q# g: C3 D- w6 j/ i# rbd info rbd/test-map1 Y% S; E/ w6 i; t# E/ J( P
rbd image 'test-map':0 C* S& u3 ^( o, O
size 512 MB in 128 objects3 S3 e% p8 E$ V7 n0 t7 S7 A6 _
order 22 (4096 kB objects)$ f. B- t4 X, m. B; O% S) v
block_name_prefix: rbd_data.10ca238e1f29
: L6 Z+ P* x& t format: 2& c+ C8 R$ p6 Q/ I: y
features: layering, exclusive-lock7 Y: ?2 q% [" ^& D! g$ `
flags:
- V' V; \4 n& _% kmap7 I- n4 p8 U4 R5 \
2 C2 I) ~0 Y. g( W, `. H
# rbd map rbd/test-map( J2 c  A0 C- H; f4 d' m; l: ~
/dev/rbd1
9 L% J: H& h6 e5 b; J此时可以map成功。
$ p1 x+ z. `, |RBD特性解析
- H' k8 H6 s6 q7 N, |' n! k特性一览表. J2 _, M" m' q9 N4 c9 l
RBD支持的特性,及具体BIT值的计算如下
4 e; e7 z  W" D' l属性 功能 BIT码
( D& X8 Y0 w9 {$ olayering 支持分层 19 A$ p( a  U  U- ^9 ?# ^
striping 支持条带化 v2 2: l3 u) C; b' X' A3 w
exclusive-lock 支持独占锁 47 o% J0 I- v" y
object-map 支持对象映射(依赖 exclusive-lock ) 8, P" d: W& W' t, Y
fast-diff 快速计算差异(依赖 object-map ) 16. a+ r) r! B" T; z" N$ e& }
deep-flatten 支持快照扁平化操作 32: G; y, n9 ]" w
journaling 支持记录 IO 操作(依赖独占锁) 64
/ m  w# F) j+ x( O7 |, J+ wceph kraken版本默认属性值
% w5 i  k5 x4 G9 q/ b/ d+ k8 x6 m  t, [" v) I* h- S
# ceph --show-config|grep rbd|grep features# ?6 V& C! N5 ^$ P
rbd_default_features = 61
+ P( `" H  b1 I+ P# j/ |) C为啥是61?我们创建一个默认配置的rbd看看
+ x8 h. W8 }. f3 O2 J
; R1 G. [- M. l3 N4 \) L: b6 ~# rbd create test-feature --size 648 X, b; i7 a, y* t7 g7 g  e
# rbd info rbd/test-feature) X. e* W- |  @1 ^1 _
rbd image 'test-feature':
3 \2 Q$ ]- l9 T; {+ C7 M% Q size 65536 kB in 16 objects5 \( ?$ H0 X, B, \
order 22 (4096 kB objects)
1 z+ [1 D9 M- ]. o. m. J$ v block_name_prefix: rbd_data.107d238e1f29
" z, e. N8 i' j, E; ] format: 2
1 X# ]0 Y1 q% s$ u/ n features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
* F6 \. R  \3 a. N5 o flags:- z' q& J% f$ _# Q6 j
1+4+8+16+32 = 615 O8 g$ B7 a" w; G5 f4 y9 h! n
就是说除了特性:striping 和 journaling 外都开启了。
9 F: H% c( a5 t0 f% }6 O4 W. h控制属性
# x- t5 F5 B" }" @. }有三种方法来开启需要的特性
4 F3 z  Z. R* f: D$ P1、在创建image时,通过 --image-feature 来指定需要开启的特性
. ]/ J6 M1 c! |2、对已存在的image可以通过如下命令开启和关闭3 \5 {. O) J# J/ x& t3 T) z8 p
10 z# I. r/ W4 O. V6 W6 L
2+ X. f( H$ x  q" g. I, {
rbd feature enable <pool-name>/<image-name> <feature-name>- G) ?9 u% }8 K) Z
rbd feature disable <pool-name>/<image-name> <feature-name>
# z/ C' _* ]3 D9 r; d, V/ I3、当然,每次通过enable和disable来不是很便捷,可以通过修改配置文件来解决
& E7 C" l, \, W' N* R- m, j, a5 Y9 m13 V% ]' s/ G: j3 r4 @; x9 N# u
2
8 O6 a/ Q% X2 O4 Y0 l7 p3; e: T6 \! E# I$ l& C# S
4' V9 l% C' b) b
vim /etc/ceph/ceph.conf, \3 V; O7 a6 E; V( C9 ~
...$ m  K3 e  y+ `! O% C% [1 N
rbd_default_features = 1
3 G4 d( x: x2 i7 ]( a...# ?, A# Z0 T- k$ Q2 D( b) j
具体该设为多少可以通过上面BIT值查表计算得出。
4 ^! T" d0 d  H7 E" S
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 点击这里给我发消息

GMT+8, 2026-4-9 09:20 , Processed in 0.041736 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表