将设为首页浏览此站
开启辅助访问 天气与日历 收藏本站联系我们切换到窄版

易陆发现论坛

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

ceph rbd map failed

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

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

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

x
探索 kernel RBD map 失败的问题。$ k  v& Z6 o, u! c. m' _$ M
场景
' h; X5 o7 q4 k0 t) x* Z" E0 ?搭完 rbd mirror后,想通过client往image里写一些数据,所以在client端map rbd设备,结果失败了。
; O" n" e% K0 n! frbd mirror的image 需要两个属性:exclusive-lock, journaling
# J! j/ ~5 W* z- u2 A) d原因- G) c: F/ l: E: d* J
查看rbd image info% N/ q1 M. F) L8 d4 \7 U" o! ~

' [  h* a  r- P- r2 s# rbd info rbd/image-1
' B* {6 U: N# ~3 A  vrbd image 'image-1':
: U& c1 X2 ^% w3 J3 o; M size 1024 MB in 256 objects
7 V# @4 o4 X. P6 b order 22 (4096 kB objects)
8 V) H* G8 N8 _6 X# |% O) X- u block_name_prefix: rbd_data.108b238e1f291 p# U) g" t9 u
format: 2
- ]: G2 W* E6 X- X# U! @& y# ?' O features: exclusive-lock, journaling) O  V- y* O; @. M3 K; m, I) M
flags:
! M' @+ H" ~% C' }) ?0 [ journal: 108b238e1f29: ]% c  S& v! q6 C6 Z( s
mirroring state: enabled- U" f; o! e. K
mirroring global id: c603d9dc-6f8d-49e0-ab68-5944d348e5271 f  N0 H: w/ T5 p% e3 B
mirroring primary: true
1 P; A2 d( a/ m2 ^: |输出
! C. N& ]# v# i& A* V. q4 q! }2 o* r
# g1 ?/ N! `, v2 p! G4 r4 \6 L& C7 u# rbd map rbd/image-1
3 s. Y9 n1 z/ k9 [rbd: sysfs write failed" E6 i& K: C: t9 H  w9 Z
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".7 \# \8 Z" G/ a7 _0 T0 y$ E+ h- o% K
In some cases useful info is found in syslog - try "dmesg | tail" or so.
, J2 e  z+ i% s8 hrbd: map failed: (6) No such device or address
) [* C' o: v0 Z) B# W然后dmesg看一下/ {' F, u* g2 e( U% @
0 w7 ~' a( m9 A9 s! h
# dmesg | tail2 C' `0 H( j2 H6 S& ?
[   64.808315] rbd: loaded (major 251)
5 Y2 g2 o! E6 S/ G[   64.818369] libceph: mon2 172.20.2.160:6789 session established2 c' w" A2 J) X
[   64.819187] libceph: client14167 fsid 4c7ec5af-cbd3-40fd-8c96-0615c77660d47 p! v8 K. E  p3 g0 Q" A, E
[   64.836328] rbd: image image-1: image uses unsupported features: 0x40
4 ?, ~" ]) {/ \' k2 _5 W" L% \0 e/ g[  443.658569] libceph: mon1 172.20.2.161:6789 session established) d4 ]* h* y& [+ |8 X' W( ]! k% ?
[  443.659143] libceph: client4313 fsid 4c7ec5af-cbd3-40fd-8c96-0615c77660d41 S- ]2 q/ b6 W2 V
[  443.683178] rbd: rbd0: capacity 10737418240 features 0x1" J5 m; n0 [! u9 a! G9 W! ^( {
[  978.502132] rbd: image image-1: image uses unsupported features: 0x40
9 }* C8 p1 d3 U& p) G错误原因+ k* M* {9 D( a, G7 }
image uses unsupported features: 0x40+ Z  Y; U1 s0 C: C7 p& s' _
不支持特性 0x40 = 64,也就是不支持特性 journaling
) f1 M; T  ?% M" o, z关于内核支持的特性分析$ a8 d7 z& J4 Q2 n' H, s$ k
查看内核版本
. E7 g3 T; M0 r+ C; L& {2 r, V5 Q3 ]5 F# l: z; `$ H6 l' ^: R
# uname -r( v, S: ?$ j8 P
3.10.0-327.el7.x86_642 w; r! s* `5 }0 c+ s8 z/ T* Y
根据查阅资料和实践,发现:/ `( y0 o3 B+ t) i+ b9 d
CentOS的3.10内核仅支持其中的layering 和 exclusive-lock,其他feature概不支持+ J! H6 u, P0 |' F2 C/ Y# h
内核4.6仍然只支持:layering、exclusive-lock和 striping 属性
) R5 T/ H1 P3 X- l6 z6 L
' R. R! N! `) F) W. G# rbd info rbd/test-map
, I8 ?* K2 h+ {. J8 _rbd image 'test-map':
# h4 C& ?, n  h% x3 S size 512 MB in 128 objects$ a2 b2 ]6 w* I5 N. n, z3 z% o
order 22 (4096 kB objects)# }* I& R' n: k7 P& T4 I* P
block_name_prefix: rbd_data.10ca238e1f293 p3 c  @. o. e% |6 r9 f
format: 2
0 h# \" p; W2 K( K! }( x features: layering, exclusive-lock
8 n/ q1 c& H% X flags:4 }1 f5 G- p" D1 z+ H! m' W
map
( P5 ^4 S% W; k+ h( @0 E9 [- y. W3 g5 u: I2 |1 @$ Z7 Y$ k3 x+ @
# rbd map rbd/test-map7 ?, E+ _) }5 g% \+ {
/dev/rbd1
) b4 x$ G3 A3 H; [8 X" G% m' Q此时可以map成功。
. X0 C6 p; v/ U# b* PRBD特性解析
) P# b: C- ^2 `- Z+ b( r特性一览表; {* K4 {5 N" {: u1 ~
RBD支持的特性,及具体BIT值的计算如下
( x# L4 y7 p: c2 s  l" ]属性 功能 BIT码
2 [5 w0 t6 d/ D: [0 w% g' Flayering 支持分层 16 d9 g4 t# T/ m6 G  H' |
striping 支持条带化 v2 24 D' L$ a& s$ G* J! K) e) h
exclusive-lock 支持独占锁 4
9 s- V1 {* ~( K/ v3 Fobject-map 支持对象映射(依赖 exclusive-lock ) 80 O# ?: c/ A9 }1 B
fast-diff 快速计算差异(依赖 object-map ) 16/ m/ i+ C6 P( z% t4 G6 r& z
deep-flatten 支持快照扁平化操作 32
# v3 x* O. b1 ?journaling 支持记录 IO 操作(依赖独占锁) 649 l2 J3 k9 V. ^, @7 o
ceph kraken版本默认属性值
8 N' [; f8 X/ |) m* M( o+ z2 d( `5 U
# ceph --show-config|grep rbd|grep features0 i0 n3 {7 k1 Z5 z& ]
rbd_default_features = 61
6 D& R; B; k5 V6 n8 F* \" f为啥是61?我们创建一个默认配置的rbd看看8 x: Q7 {8 E# d* F) `. r3 k! n" |
8 E7 B- a5 [8 f$ p- Z3 ~" B& h* B, p
# rbd create test-feature --size 64
: l, N/ ~# A; a5 \5 g! E# rbd info rbd/test-feature& P9 ^: G8 B% T8 b3 P
rbd image 'test-feature':$ K* r8 W- }* m( D7 S
size 65536 kB in 16 objects
0 ]' P& G0 j" q$ N+ o order 22 (4096 kB objects)
8 }! }; h* M- `5 a; k+ J block_name_prefix: rbd_data.107d238e1f298 u: X1 g+ f# O/ |0 W1 z3 o
format: 2
% _* k# f# L# l9 O1 o. z% W features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
$ \1 P. `& [) Z8 y; [ flags:
0 {8 |# L2 h' `0 I0 j1+4+8+16+32 = 61
% F5 b1 ]( Q! }3 @4 p" j就是说除了特性:striping 和 journaling 外都开启了。
* H, z& w+ O% p: O8 `控制属性' h3 a9 |; S* Z$ x. o" I* N  [- B1 M
有三种方法来开启需要的特性
4 R5 p. M: S( i& c1、在创建image时,通过 --image-feature 来指定需要开启的特性$ ]5 F: \. C* z
2、对已存在的image可以通过如下命令开启和关闭
# o$ X) T6 X& j0 A; g1
$ E; E( w' v0 _; D9 d2) o1 m9 m2 a5 P: |7 O1 S: E4 e; E9 z
rbd feature enable <pool-name>/<image-name> <feature-name>- G. N" M$ T: c' z$ ~# F! r
rbd feature disable <pool-name>/<image-name> <feature-name>, R3 F3 S; x- s
3、当然,每次通过enable和disable来不是很便捷,可以通过修改配置文件来解决
' `4 V8 y- y3 k9 ^1
% `# ~' t4 @& M4 p" T2; Z) e2 k% o+ x9 L( S& u' A+ r. e- k
36 i( E" S: @# {, \/ O" J# o
4. |4 X5 @& C2 I6 \- ?2 ]% P! G& `
vim /etc/ceph/ceph.conf% |5 o' W+ L1 p1 X
...
& g8 ~3 K7 d9 ^' T- |: krbd_default_features = 1, ~7 R8 N; A/ @% w/ w5 `
...
, `9 R" H3 A& Q+ V% Q8 F# ^, \具体该设为多少可以通过上面BIT值查表计算得出。
1 {0 `7 E+ q" Q. q& r: \/ o+ K3 t
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

QQ|返回首页|Archiver|手机版|小黑屋|易陆发现 点击这里给我发消息

GMT+8, 2021-10-18 12:26 , Processed in 0.174047 second(s), 23 queries .

Powered by LR.LINUX.cloud bbs168x X3.2 Licensed

© 2012-2022 Comsenz Inc.

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