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. 为什么C语言是最适合单片机编程的高级语言!

    为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言. 这个问题的意思应该是:现在有很多很好用的高级语言,如java,python等等,为什么这些语言不能用来编写单片机程序呢?那么这个问 ...

  2. 【Linux教程】Linux系统零基础编程入门,想当大神?这些你都要学

    ✍ 文件和文件系统 文件是Linux系统中最重要的抽象,大多数情况下你可以把linux系统中的任何东西都理解为文件,很多的交互操作其实都是通过文件的读写来实现的. 文件描述符 在Linux内核中,文件 ...

  3. 【CF1428D】Bouncing Boomerangs 题解

    原题链接 题意简介 毒瘤大模拟 给你一张n*n的图,在图上摆有一些物体.从每一列的底端往上扔回旋镖,每镖中一个东西,回旋镖就会向右转九十度.现在我们知道从每列i底端往上镖时撞上的物体个数ai,试构造出 ...

  4. Spring Boot使用Mybatis实现增删改查

    java.com.wms.model.Admin.java 1 package com.wms.model; 2 3 import java.sql.Timestamp; 4 5 public cla ...

  5. C++学习笔记---指针

    1.基本概念 作用:可以通过指针直接访问内存 内存编号是从0开始记录的,一般用16进制数字表示 可以利用指针变量保存地址 2.定义和使用 定义指针 他们的关系就是这样的 运行输出 使用指针 运行输出会 ...

  6. GO-数据类型

    目录 数据类型 1.分类 2.布尔类型 3.整型 4.浮点型 5.字符类型 6.字符串 7.复数类型 数据类型 1.分类 Go语言内置以下这些基础类型: 类型 名称 长度 零值 说明 bool 布尔类 ...

  7. IDEA配置类和方法注释模板

    1定义java文件头部的注释 2给java类中的方法添加上注释 2.1第一步勾选Enable Live  Templates 2.2第二步新建一个Group 2.3第三步新建一个Template 2. ...

  8. 赛门铁克和DigiCert证书有什么区别?

    在众多国人眼里,赛门铁克Symantec名气更胜于DigiCert证书.但是,我们知道2017年赛门铁克因一系列原因被DigiCert收购,品牌名称也被更新为DigiCert Secure Site. ...

  9. jdk1.8特性2

    public class User { private Long id; private String userName; private String roleName; private Strin ...

  10. WrapperClass

    * 测试包装类的基本用法: * 包装类就是把基本属性也变成对象,方便有时候用: * 八种基本属性,其他类型类似于integer,除了int-integer和char-character:其他都是原样: ...