zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    深入浅出了解OCR识别票据原理(Applying OCR Technology for Receipt Recognition)
    OCR技术浅探:基于深度学习和语言模型的印刷文字OCR系统
    Python 3.6.4 / win10 使用pip安装keras时遇到依赖的PyYAML安装出错
    简单http代理服务器搭建
    Socket之心跳包实现思路
    设计模式之访问者模式
    设计模式之责任链模式
    设计模式之策略者模式
    C#将.spl剥离成.emf文件格式
    设计模式之状态者模式
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575348.html
Copyright © 2011-2022 走看看