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. rpm|yum安装的查看安装路径

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

  2. 每天一个linux命令:ps命令

      Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进 ...

  3. centos 开机启动服务 systemctl

    systemctl 实现开机自启服务 转载起一个好听的名字 最后发布于2018-06-26 13:49:06 阅读数 13473  收藏 展开 systemctl是RHEL 7 的服务管理工具中主要的 ...

  4. 跟我一起学Redis之看完这篇比常人多会三种类型实战(又搞了几个小时)

    前言 对于Redis而言,很多小伙伴只关注其关键的五大基础类型:string.hash.list.set.sorted set(有序集合),其实还有三种特殊类型在很多应用场景也比较适合使用,分别是:b ...

  5. HTML 5标签中<button>的新属性

    <button> 标签HTML5 中的新属性 属性 值 描述 autofocus autofocus 规定当页面加载时按钮应当自动地获得焦点. disabled disabled 规定应该 ...

  6. 测试之-Jmeter使用

    一. 修改语言 修改 在 bin 目录下的 Jemeter.properties 二 . Jmeter主要元件 1.测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器 ...

  7. python第一章:基础

    1.数学操作符: 数学操作符与数学基本类似 最高级:** 第二级:*././/.% 第三级:+ .- 遵循从左到右的顺序 如果想改变优先级 可以使用括号,比如:(3+2)*(5-4)=5*1=5 2. ...

  8. maven 项目问题集锦

    问题1: 新建的maven项目,没有src/main/java 源文件夹,创建时提示已经存在,创建不了 解决方法: 右键build path -> configure build path -& ...

  9. 通过maven创建springboot项目

    1,idea选择创建一个maven项目 2,pom.xml <dependencies> <dependency> <groupId>org.springframe ...

  10. Camera2使用surface支持

    surfaceview是运行在子线程,可以为相机提供不断的刷新 public class MainActivity extends AppCompatActivity { public void on ...