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几种常用的模式和新模式图:

本篇ceph版本

ceph version 10.2.1 (3a66dd4f30852819c1bdaa8ec23c795d4ad77269)

变更记录

Why Who When
创建 武汉-运维-磨渣 2016-05-19
增加映射关系查询方法 武汉-运维-磨渣 2018-03-27

ceph的jewel新支持的rbd-nbd的更多相关文章

  1. yum安装Ceph指定Jewel版本

    前言 通过yum安装指定的rpm包,这个一般是 yum --showduplicates list ceph | expand ,然后去通过yum安装指定的版本即可,这个在hammer下是没有问题的, ...

  2. Tapdata Cloud 版本上新 | 支持通知自配置,支持GP、MQ数据源,界面更友好!

    Tapdata Cloud https://cloud.tapdata.net Tapdata Cloud 是国内首家异构数据库实时同步云平台,目前支持Oracle.MySQL.PG.SQL Serv ...

  3. 使用HTML5新支持的搭建WebRtc环境来作为视频通讯

    发现如果再重新设计这块的话,又会有不同的思路.对于可定位能力,我们可以全息日志采集,将每个用户在整个系统的走向异步的抓取下来,再同步到专门的日志分析系统,在这个系统中可以根据用户号码.订单号进行过滤分 ...

  4. Spring3.1 对Bean Validation规范的新支持(方法级别验证)

    上接Spring提供的BeanPostProcessor的扩展点-1继续学习. 一.Bean Validation框架简介 写道Bean Validation standardizes constra ...

  5. ceph集群jewel版本 rbd 块map 报错-故障排查

    测试信息如下: [root@ceph_1 ~]# ceph osd pool lsrbdchy_123swimmingpool #新建rbd 块: rbd create swimmingpool/ba ...

  6. SUSE Ceph RBD Mirror - Storage 6

    Ceph采用的是强一致性同步模型,所有副本都必须完成写操作才算一次写入成功,这就导致不能很好地支持跨域部署,因为如果副本在异地,网络延迟就会很大,拖垮整个集群的写性能.因此,Ceph集群很少有跨域部署 ...

  7. Ceph Jewel 10.2.3 环境部署

    Ceph 测试环境部署 本文档内容概要 测试环境ceph集群部署规划 测试环境ceph集群部署过程及块设备使用流程 mon节点扩容及osd节点扩容方法 常见问题及解决方法 由于暂时没有用到对象存储,所 ...

  8. Ceph RBD 的实现原理与常规操作

    目录 文章目录 目录 前文列表 RBD RBD Pool 的创建与删除 块设备的创建与删除 块设备的挂载与卸载 新建客户端 块设备的扩缩容 RBD 块设备的 Format 1 VS Format 2 ...

  9. 如何统计Ceph的RBD真实使用容量

    前言 ceph的rbd一直有个问题就是无法清楚的知道这个分配的空间里面到底使用了多少,这个在Jewel里面提供了一个新的接口去查询,对于老版本来说可能同样有这个需求,本篇将详细介绍如何解决这个问题 查 ...

随机推荐

  1. allure安装

    allure是一个通用的测试报告框架 下载地址:http://allure.qatools.ru/ 第一步:进入该页面,右上角有个download,点击进入github页面,选择最新版本下载到某个路径 ...

  2. vm虚拟机设置共享文件夹不显示

    1. 确认VMtools已经装好,开启共享文件夹,设置好共享目录 2.执行命令 sudo mount -t vmhgfs .host:/ /mnt/hgfs如果出现错误: Error: cannot ...

  3. rpm|yum安装的查看安装路径

    [root@localhost src]# rpm -qa|grep grafanagrafana-7.1.0-1.x86_64[root@localhost src]# rpm -ql grafan ...

  4. laravel设置excel高度

    <?php use App\Services\UploadService; use Maatwebsite\Excel\Facades\Excel; class ExcelTest extend ...

  5. c++ qsort的使用

    c++ qsort的使用 qsort函数定义在头文件algorithm中,使用时需要include该头文件 void qsort (void* base, size_t num, size_t siz ...

  6. *新阿里镜像maven配置流程

    解决idea中maven仓库下载jar包慢的问题 配置阿里镜像 设置idea 配置阿里镜像参考链接:https://blog.csdn.net/redhat0921/article/details/1 ...

  7. 入门 第一个python可视化程序 基于pyqt5

    不得不说 py的GUI实在是太难上手了 我现在突然很怀念MFC VB c#这些东西了 因为控件的代码你只要一点就能进入查看 而pyqt5 pyside2 都不可以 你要看就看全部的代码 你要改你也只能 ...

  8. requests请求获取cookies的字典格式

    python中requests请求的cookies值一般是jar包,如何将cookies值改为字典,此处运用了方法.举例如下: import  requests response = requests ...

  9. 从创建进程到进入main函数,发生了什么?

    前几天,读者群里有小伙伴提问:从进程创建后,到底是怎么进入我写的main函数的? 今天这篇文章就来聊聊这个话题. 首先先划定一下这个问题的讨论范围:C/C++语言 这篇文章主要讨论的是操作系统层面上对 ...

  10. Excel基础—为什么学习Excel

    吾生也有涯,而知也无涯 点赞再看,养成习惯 自从个人计算机开始普及以后,Excel就得到了广泛的传播,工作学习生活中不处不存在Excel的影子,不论是考勤,工资还是其他的统计等等,都离不开Excel. ...