易陆发现互联网技术论坛

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

ceph rbd map failed

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

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

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

x
探索 kernel RBD map 失败的问题。! ~& V2 _* E( {$ ^: |# V9 r* y
场景! l/ N5 [- U7 r' F2 I
搭完 rbd mirror后,想通过client往image里写一些数据,所以在client端map rbd设备,结果失败了。
3 W; w2 d' T4 X+ H( Trbd mirror的image 需要两个属性:exclusive-lock, journaling; z- v$ O. _8 V+ G
原因
( u; _3 q* _& |( L5 O9 y4 R; E查看rbd image info' P- S1 p5 o0 H4 H$ H
1 `$ Q; H/ Y; |8 ^: K
# rbd info rbd/image-1
" O: M2 U0 \; |( ?0 O& prbd image 'image-1':
9 I0 H, E8 s- Y7 H% F size 1024 MB in 256 objects
0 v, B2 {) R9 \- [8 H, H: t order 22 (4096 kB objects)) n( q6 M' x  ]$ g8 I, V" D
block_name_prefix: rbd_data.108b238e1f29
( M! Z4 d( R- W( {7 H' M2 C format: 2
+ ~* f- g3 ]! M; V features: exclusive-lock, journaling
+ Z" W/ U! y  k! X, J. b' o0 g flags:
! i  o7 C2 c4 T# b* ~& h journal: 108b238e1f291 T4 Z; M1 b5 J3 Q1 p+ Z
mirroring state: enabled8 v2 Q2 w" u* h0 F" k
mirroring global id: c603d9dc-6f8d-49e0-ab68-5944d348e527: |4 M% W6 ~9 j/ Y4 h; Q3 X3 B
mirroring primary: true& _3 n+ L( z! ]9 ~; ^( i; P( I
输出! u* R0 F) N8 n. V1 P
6 ~1 G, |$ b6 \( ^8 F+ F, k# e
# rbd map rbd/image-1
3 r, m4 Q6 I& T( ^rbd: sysfs write failed
. S2 z- r( f- F, S8 wRBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
7 A6 h; ]4 e5 a. Y* U+ e7 X2 V' @% @In some cases useful info is found in syslog - try "dmesg | tail" or so.
0 i3 d2 J" Q' k# Arbd: map failed: (6) No such device or address5 r) {2 {, p, ^% b' G: s
然后dmesg看一下
7 V/ f6 J2 d: l1 y3 s* K" g1 t8 P6 {4 Z5 q
# dmesg | tail7 |' i2 b/ U& f( k, u& d8 T. ?5 {
[   64.808315] rbd: loaded (major 251)
# T$ O' @3 S8 t0 q# i[   64.818369] libceph: mon2 172.20.2.160:6789 session established
6 B% {" L' w9 M: h0 `! K7 Q5 j( [[   64.819187] libceph: client14167 fsid 4c7ec5af-cbd3-40fd-8c96-0615c77660d4
+ _- N: ~9 S2 B5 i) [5 j" i' B, u[   64.836328] rbd: image image-1: image uses unsupported features: 0x40$ F! Q# B! J( t0 J4 B
[  443.658569] libceph: mon1 172.20.2.161:6789 session established$ h$ j+ Y# a) W/ b' @
[  443.659143] libceph: client4313 fsid 4c7ec5af-cbd3-40fd-8c96-0615c77660d4& k# ?/ s" y5 O& D
[  443.683178] rbd: rbd0: capacity 10737418240 features 0x1
% ~. H/ p( U; |[  978.502132] rbd: image image-1: image uses unsupported features: 0x40
# c( [( F  E  L! v错误原因
" x. n& A7 H/ J- H, ]  t1 B) ?image uses unsupported features: 0x40- ~% ^* y( K- A* Y2 J& w5 o, ~
不支持特性 0x40 = 64,也就是不支持特性 journaling
; t5 a% Z& J" @( b关于内核支持的特性分析) z5 C; P' O3 t0 ^3 ]  W5 X, g7 K3 g
查看内核版本& O. k, }* W) [- G2 }0 Y

+ l/ u9 ^# o; x& M# uname -r
! m! T, b. f+ b- \3.10.0-327.el7.x86_64
" R& Y5 ~5 Q$ |% k. `& J$ t5 A根据查阅资料和实践,发现:
. I5 n7 u. m2 e- p4 vCentOS的3.10内核仅支持其中的layering 和 exclusive-lock,其他feature概不支持
+ h. D( I% ~: d  ~4 c内核4.6仍然只支持:layering、exclusive-lock和 striping 属性
/ y. M5 ?# b7 p# Y
/ a! K) A1 _0 Z+ K# rbd info rbd/test-map
* O) Y1 t& t0 `1 N5 Grbd image 'test-map':
% K3 E" `$ K6 E& f5 V( t" ` size 512 MB in 128 objects
' D' ?$ c$ c% W' c0 |. |& t order 22 (4096 kB objects)+ [) v8 k8 |4 R9 J7 J, s
block_name_prefix: rbd_data.10ca238e1f29" A  N. g8 h& K5 C3 I0 A. h
format: 2
8 Y: c5 N& \8 X: b features: layering, exclusive-lock% j. G, g! ]$ q% B1 n: o$ J
flags:) G1 L+ w0 t  q' g. L0 h' R3 {1 L# ?
map
& i  _5 v% V: c0 T+ g, k3 y9 `9 k$ |2 E% o6 u! j' i
# rbd map rbd/test-map
* r2 x8 v' [# I- ^) B- d( u/dev/rbd1
8 m1 c) o6 l9 ?此时可以map成功。
( E! V! S: X0 g3 ]. RRBD特性解析0 A- z* ^3 N- ], G. n. s: X/ g
特性一览表
, Q) K; u. y% J. k0 V2 YRBD支持的特性,及具体BIT值的计算如下
7 y$ C" @; R+ F6 h: u1 J8 t属性 功能 BIT码
. Z- V: S: {: r; r, z; w# wlayering 支持分层 1. m0 Y) O) U3 b4 a' s
striping 支持条带化 v2 2
! [+ w9 n1 r  |3 Y: ]exclusive-lock 支持独占锁 4
) {% Z  E% ~- S' b2 f! [object-map 支持对象映射(依赖 exclusive-lock ) 8
9 c0 q% [3 {8 w# Cfast-diff 快速计算差异(依赖 object-map ) 160 N& T6 b& C& M* q7 ?" B$ \# y
deep-flatten 支持快照扁平化操作 32
1 D" [5 v6 W! Y/ y1 b4 Jjournaling 支持记录 IO 操作(依赖独占锁) 64( J8 J: J+ y" x" R3 M+ c1 V4 m
ceph kraken版本默认属性值9 I- P# R, O. f5 v% g
, J& q% k6 F) }( M( [5 E" G& Z6 x; _
# ceph --show-config|grep rbd|grep features
1 e! u+ Q7 b" d+ V2 u  y9 u8 rrbd_default_features = 61
: _" r) e1 b6 ?* M) u为啥是61?我们创建一个默认配置的rbd看看% x5 W" K4 V8 _! w# L8 S' `- X
' V4 f4 x) d; i+ ]; T; L! ~
# rbd create test-feature --size 64
$ n! b2 R: H! ]) z8 N; G# rbd info rbd/test-feature/ E. ]5 g7 g/ o
rbd image 'test-feature':
) l8 g8 D1 j5 T: w! I5 _ size 65536 kB in 16 objects
8 v/ I, \; c; r& e4 q3 Z order 22 (4096 kB objects)4 l* {( V  R" c
block_name_prefix: rbd_data.107d238e1f29
) Y6 g/ W0 ^& K2 E9 g format: 2
4 r# r5 S7 e5 x+ v9 S6 Q features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
% a# @1 p; F% b  H/ m/ t/ x. t flags:7 d7 V( `+ a/ O$ X' R6 v
1+4+8+16+32 = 61! l* O% D' H" F( G" x6 X
就是说除了特性:striping 和 journaling 外都开启了。, b* a' a7 r4 F" @# f1 n/ [
控制属性- g5 C4 R' E1 r% o) T+ L6 s
有三种方法来开启需要的特性
% j0 H" `/ Y9 |* G8 o% s3 M1、在创建image时,通过 --image-feature 来指定需要开启的特性. ]1 V1 t4 C- I$ o# y% e
2、对已存在的image可以通过如下命令开启和关闭1 s; l# a6 a" d; @( g$ [% u
1
2 n- D+ t, X3 e1 O2/ `- Y% j. [( Z; {5 [
rbd feature enable <pool-name>/<image-name> <feature-name>
3 g' {- v5 L/ |. Erbd feature disable <pool-name>/<image-name> <feature-name>
/ ~! J% p" l. {: r  {/ @0 J& m" R3、当然,每次通过enable和disable来不是很便捷,可以通过修改配置文件来解决
# n& {9 C$ k# G5 _1
/ e" F+ H+ t4 u" V- K  U" C0 W" H! z2
, f" [) p+ E7 V/ p% L+ q3
6 u0 t" O- b6 O, V- M4: f0 t0 l/ N8 S' C
vim /etc/ceph/ceph.conf
+ m$ K1 q; [* X- f1 b2 w  P...
$ o1 ]/ W  k% t& A; v4 }$ Krbd_default_features = 1
, R! Z4 M- {9 O7 c...0 A7 C, }4 M4 T' a) R5 _1 [
具体该设为多少可以通过上面BIT值查表计算得出。
" g! j: f2 W! q0 N' X( @2 s4 D
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

GMT+8, 2026-4-9 10:38 , Processed in 0.040290 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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