zoukankan      html  css  js  c++  java
  • ceph集群jewel版本 rbd 块map 报错-故障排查

    测试信息如下:

    [root@ceph_1 ~]# ceph osd pool ls
    rbd
    chy_123
    swimmingpool

    #新建rbd 块:

    rbd create swimmingpool/bar  --size 10G --image-format 2 

    #查看块信息:

    rbd ls

    #将rbd 块映射到主机:

    rbd map  swimmingpool/bar  

    #报错内容如下

    rbd: sysfs write failed

    RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".

    In some cases useful info is found in syslog - try "dmesg | tail" or so.

    rbd: map failed: (6) No such device or address

    故障排查:

    rbd 块ceph 支持两种格式:

    rbd create  swimmingpool/bar --size 10G --image-format 2  

    --image-format format-id

    选择用哪个对象布局,默认为 1 。

    format 1 - 新建 rbd 映像时使用最初的格式。此格式兼容所有版本的 librbd 和内核模块,但是不支持较新的功能,像克隆。

    format 2 - 使用第二版 rbd 格式, librbd 和 3.11 版以上内核模块才支持(除非是分拆的模块)。此格式增加了克隆支持,使得扩展更容易,还允许以后增加新功能。

    为使用rbd 块新特性,使用格式2,在map 时发生以上报错:

        查找官网相关资料,找到信息如下:

    笔者安装的是jewel 版本,新建rbd块指定格式2,默认格式2的rbd 块支持如下特性,默认全部开启;

    layering: 支持分层

    striping: 支持条带化 v2

    exclusive-lock: 支持独占锁

    object-map: 支持对象映射(依赖 exclusive-lock )

    fast-diff: 快速计算差异(依赖 object-map )

    deep-flatten: 支持快照扁平化操作

    journaling: 支持记录 IO 操作(依赖独占锁)

    笔者使用系统为centos7.2 ,内核版本 3.10.0-327.18.2.el7.x86_64,根据报错内容提示可知,服务器系统内核版本,不支持有些格式2 的新特性导致。可以使用 

    --image-feature   选项指定使用特性,不用全部开启。我们的需求仅需要使用快照等特性,开启layering即可,配置方式如下:

    rbd create swimmingpool/bar --size 10G --image-format 2 --image-feature  layering

    [root@ceph_1 ~]# rbd map swimmingpool/bar
    /dev/rbd1

     [root@ceph_1 ~]# lsblk
    NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda           8:0    0  100G  0 disk
    ├─sda1        8:1    0    1G  0 part /boot
    └─sda2        8:2    0   99G  0 part
      ├─cl-root 253:0    0   50G  0 lvm  /
      ├─cl-swap 253:1    0  7.8G  0 lvm  [SWAP]
      └─cl-home 253:2    0 41.2G  0 lvm  /home
    sdb           8:16   0  100G  0 disk
    ├─sdb1        8:17   0   95G  0 part /var/lib/ceph/osd/ceph-0
    └─sdb2        8:18   0    5G  0 part
    sr0          11:0    1  680M  0 rom 
    rbd0        252:0    0    1G  0 disk
    rbd1        252:16   0   10G  0 disk    ///可以看到可以映射成功10G

    rbd map  swimmingpool/bar  #可以正常映射;

    #经测试,内核版本 3.10,仅支持此特性(layering),其它特性需要使用更高版本内核,或者从新编译内核加载特性模块才行。

    看看format 1 format 2的区别在哪

     format: 2
     features: layering, exclusive-lock, object-map, fast-diff, deep-flatten       /////格式2 支持的功能较多,但是低内核又不支持那么多,只能把其他的功能禁用掉使用

  • 相关阅读:
    win10+CUDA8.0+vs2013配置
    TX2更新源失败的问题
    并发编程--乐观锁与悲观锁
    并发编程--线程池
    并发编程--多线程基础(02)
    并发编程--多线程基础(01)
    搭建redis集群的过程中遇到的问题
    redis集群搭建(伪集群)
    关于maven项目中修改的JS不生效的解决方案
    【转载】IntelliJ IDEA 2017常用快捷键
  • 原文地址:https://www.cnblogs.com/gzxbkk/p/7715758.html
Copyright © 2011-2022 走看看