• ceph的jewel新支持的rbd-nbd


    jewel版本新增加了一个驱动NBD,允许librbd实现一个内核级别的rbd

    NBD相比较于kernel rbd:

    • rbd-ko是根据内核主线走的,升级kernel
    • rbd需要升级到相应的内核,改动太大
    • rbd-ko的开发要慢于librbd,需要很多的时间才能追赶上librbd

    rbd-nbd是通过librbd这个用户空间通过nbd的内核模块实现了内核级别的驱动,稳定性和性能都有保障

    怎么理解用户态和内核态?

    • librbd就是用户态,一般的kvm对接的就是librbd的
    • kernel rbd就是内核态,这个是一个内核模块,是内核直接与osd交互的,一般来说内核态的性能会优于用户态

    下面来做下基本的操作:

    创建一个image

    [root@lab8106 ~]# rbd create testnbdrbd -s 10G
    

    映射这个image

    [root@lab8106 ~]#  rbd-nbd map rbd/testnbdrbd
    /dev/nbd0
    

    查询已经映射的nbd

    [root@lab8106 ~]#  rbd-nbd list-mapped
    /dev/nbd0
    

    上面说了这么多,那么来点直观的认识,nbd带来的好处
    查询下image的信息

    [root@lab8106 ~]# rbd info testnbdrbd
    rbd image 'testnbdrbd':
    	size 10240 MB in 2560 objects
    	order 22 (4096 kB objects)
    	block_name_prefix: rbd_data.10ad2ae8944a
    	format: 2
    	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
    	flags: 
    

    jewel版本默认开启了features: layering, exclusive-lock, object-map, fast-diff, deep-flatten这么多的属性,而这些属性是kernel-rbd还不支持的

    所以做rbd map的时候就会出现下面的问题:

    [root@lab8106 ~]# rbd map  testnbdrbd
    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_default_features = 3

    那么现在开启属性还行想用块设备方式怎么用,就可以用nbd了

    [root@lab8106 ~]#  rbd-nbd map rbd/testnbdrbd
    /dev/nbd0
    

    这样就可以用了。不用担心接口的问题了,因为只要librbd支持的属性,nbd就默认支持了

    查询rbd和nbd对应关系

    [root@lab101 mnt]# rbd-nbd list-mapped
    /dev/nbd0
    [root@lab101 mnt]# cat /sys/block/nbd0/pid 
    93059
    [root@lab101 mnt]# ps -ef|grep 93059
    root      93059      1  0 14:30 pts/1    00:00:00 rbd-nbd map testnbd
    root      97346   8580  0 14:36 pts/1    00:00:00 grep --color=auto 93059
    

    rbd几种常用的模式和新模式图:
    nbd.png-40.5kB

    本篇ceph版本

    ceph version 10.2.1 (3a66dd4f30852819c1bdaa8ec23c795d4ad77269)

    变更记录

    Why Who When
    创建 武汉-运维-磨渣 2016-05-19
    增加映射关系查询方法 武汉-运维-磨渣 2018-03-27
  • 相关阅读:
    多进程
    NoSQL-memcached相关
    NoSQL-redis相关
    DB相关复习
    算法
    SQLAlchemy
    Mysql相关
    Python DB-API
    正则习题
    python的正则——re模块
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575348.html
Copyright © 2020-2023  润新知