创建块设备映像

?

1

rbd create --size {megabytes} {pool-name}/{image-name}

实例:

?

1

[ceph-deploy@ceph-admin ~]$ rbd create --size 1024 foo

罗列块设备映像

?

1

rbd ls {poolname}

实例:

?

1

2

[ceph-deploy@ceph-admin ~]$ rbd ls # rbd list

foo

检索映像信息

?

1

rbd info {pool-name}/{image-name}

实例:

?

1

2

3

4

5

6

7

8

[ceph-deploy@ceph-admin ~]$ rbd info foo

rbd image 'foo':

    size 1024 MB in 256 objects

    order 22 (4096 kB objects)

    block_name_prefix: rbd_data.d3a4238e1f29

    format: 2

    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

    flags:

调整块设备映像大小

?

1

2

rbd resize --size 2048 foo (to increase)

rbd resize --size 2048 foo --allow-shrink (to decrease)

实例:

?

1

2

3

4

5

6

7

8

9

10

[ceph-deploy@ceph-admin ~]$ rbd resize --size 2048 foo

Resizing image: 100% complete...done.

[ceph-deploy@ceph-admin ~]$ rbd info foo

rbd image 'foo':

    size 2048 MB in 512 objects

    order 22 (4096 kB objects)

    block_name_prefix: rbd_data.d3a4238e1f29

    format: 2

    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

    flags:

删除块设备映像

?

1

rbd rm {pool-name}/{image-name}

实例:

?

1

2

[ceph-deploy@ceph-admin ~]$ rbd rm foo

Removing image: 100% complete...done.

映射块设备

?

1

sudo rbd map {pool-name}/{image-name} --id {user-name}

实例:

?

1

2

[ceph-deploy@ceph-admin ~]$ sudo rbd map rbd/foo

/dev/rbd0

查看已映射块设备

?

1

rbd showmapped

实例:

?

1

2

3

[ceph-deploy@ceph-admin ~]$ rbd showmapped

id pool image snap device   

0  rbd  foo   -    /dev/rbd0

取消块设备映射

?

1

sudo rbd unmap /dev/rbd/{poolname}/{imagename}

实例:

?

1

[ceph-deploy@ceph-admin ~]$ sudo rbd unmap /dev/rbd0

使用Ceph块设备

创建并挂载一个文件系统:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[ceph-deploy@ceph-admin ~]$ sudo mkfs.xfs /dev/rbd0

meta-data=/dev/rbd0              isize=512    agcount=9, agsize=64512 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0, sparse=0

data     =                       bsize=4096   blocks=524288, imaxpct=25

         =                       sunit=1024   swidth=1024 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal log           bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=8 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[ceph-deploy@ceph-admin ~]$ sudo mkdir /mnt/ceph-disk0

[ceph-deploy@ceph-admin ~]$ sudo mount /dev/rbd0 /mnt/ceph-disk0

[ceph-deploy@ceph-admin ~]$ df -h /mnt/ceph-disk0

Filesystem                 Size  Used Avail Use% Mounted on

/dev/rbd0                  2.0G   33M  2.0G   2% /mnt/ceph-disk0

通过将数据写入块设备来进行检测:

?

1

2

3

4

5

6

7

8

9

[ceph-deploy@ceph-admin ~]$ sudo dd if=/dev/zero of=/mnt/ceph-disk0/file0 count=100 bs=1M

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.779733 s, 134 MB/s

[ceph-deploy@ceph-admin ~]$ sudo ls /mnt/ceph-disk0/file0 -lh

-rw-r--r--. 1 root root 100M Jul 19 15:33 /mnt/ceph-disk0/file0

[ceph-deploy@ceph-admin ~]$ df -h /mnt/ceph-disk0

Filesystem                 Size  Used Avail Use% Mounted on

/dev/rbd0                  2.0G  133M  1.9G   7% /mnt/ceph-disk0

增加块设备映像大小后,扩展文件系统来利用增加了的存储空间

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[ceph-deploy@ceph-admin ~]$ sudo dmesg | grep -i capacity

[17945.781304] rbd: rbd0: capacity 2147483648 features 0x1

[21955.926051] rbd0: detected capacity change from 2147483648 to 4294967296

[ceph-deploy@ceph-admin ~]$ sudo xfs_growfs -d /mnt/ceph-disk0/

meta-data=/dev/rbd0              isize=512    agcount=9, agsize=64512 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=1        finobt=0 spinodes=0

data     =                       bsize=4096   blocks=524288, imaxpct=25

         =                       sunit=1024   swidth=1024 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal               bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=8 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

data blocks changed from 524288 to 1048576

[ceph-deploy@ceph-admin ~]$ df -h /mnt/ceph-disk0

Filesystem                 Size  Used Avail Use% Mounted on

/dev/rbd0                  4.0G  133M  3.9G   4% /mnt/ceph-disk0

可能遇到的错误:

?

1

2

3

4

5

[ceph-deploy@ceph-admin ~]$ sudo rbd map rbd/foo

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镜像的一些特性,OS kernel并不支持,所以映射失败。

查看该镜像支持了哪些特性:

?

1

2

3

4

5

6

7

8

[ceph-deploy@ceph-admin ~]$ rbd info foo

rbd image 'foo':

    size 2048 MB in 512 objects

    order 22 (4096 kB objects)

    block_name_prefix: rbd_data.d3a4238e1f29

    format: 2

    features: layering, exclusive-lock, object-map, fast-diff, deep-flatten

    flags:

可以看到特性feature一栏,由于OS的kernel只支持layering,其他都不支持,所以需要把部分不支持的特性disable掉。

解决方案一:

直接diable这个rbd镜像的不支持的特性:

?

1

[ceph-deploy@ceph-admin ~]$ rbd feature disable foo exclusive-lock object-map fast-diff deep-flatten

解决方案二:

创建rbd镜像时就指明需要的特性,如:

?

1

[ceph-deploy@ceph-admin ~]$ rbd create --size 2048 foo --image-feature layering

解决方案三:

如果还想一劳永逸,那么就在执行创建rbd镜像命令的服务器中,修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加
rbd_default_features = 1,再创建rdb镜像:

?

1

<code><code><code>[ceph-deploy@ceph-admin ~]$ rbd create --size 2048 foo</code></code></code>

通过上述三种方法后,查看rbd镜像的信息

?

1

2

3

4

5

6

7

8

<code><code><code>[ceph-deploy@ceph-admin ~]$ rbd info foo

rbd image 'foo':

    size 2048 MB in 512 objects

    order 22 (4096 kB objects)

    block_name_prefix: rbd_data.d3a4238e1f29

    format: 2

    features: layering

    flags: </code></code></code>

再次尝试映射rdb镜像到本地块设备,成功!

?

1

2

<code><code><code>[ceph-deploy@ceph-admin ~]$ sudo rbd map rbd/foo

/dev/rbd0</code></code></code>

Ceph块设备(RBD)常用命令相关推荐

  1. 教你如何使用Ceph块设备增强OpenStack云环境

    也许Ceph最有意思的部分就是同OpenStack的集成了.libvirt 配置了 librbd 的 QEMU 接口,通过它可以在 OpenStack 中使用 Ceph 块设备镜像.Ceph 块设备镜 ...

  2. ceph常用命令及其使用、ceph集群定位常用命令说明【如ceph osd set norebalance】、ceph官方文档查询地址

    文章目录 ceph集群的监控 查看OSD版本 检查集群的健康情况 监控集群的时间 查看集群的空间利用率 查看集群的状态 查看集群的实时状态 获取秘钥列表 查看ceph特征 查看osd存储引擎 获得所有 ...

  3. H3C 设备自检常用命令

    H3C 设备自检常用命令 dis version | include uptime 检查重启时间 dis version | include Software 检查软件版本 dis cpu histo ...

  4. ceph命令系列(一):ceph-deploy/ceph/rados/rbd 常用命令详解

    ceph-deploy 常用命令详解 命令 描述 ceph-deploy new [mon-node ...] 指定node(s)为monitor,开始部署一个新的ceph集群,并且在当前目录创建ce ...

  5. ceph rbd 常用命令使用

    列出所有pool # rados lspools 或者 # ceph osd lspools 查看mon的状态信息 # ceph mon stat 查看ceph存储空间占用情况 # rados df ...

  6. ceph集群状态检查常用命令

    导读: 1.从零部署一个ceph集群 2.ceph block device与cephfs快速入门 3.ceph 对象存储快速入门 4.Ceph存储集群&配置 5.centos7 通过ceph ...

  7. 【ceph】ceph OSD状态及常用命令

    OSD进程的启动停止:https://blog.csdn.net/bandaoyu/article/details/119894927 1. OSD概念 OSD:Object Storage Devi ...

  8. 初试 Ceph 存储之块设备、文件系统、对象存储

    目录 Ceph 存储介绍 环境.软件准备 Ceph 块设备 Ceph 文件系统 Ceph 对象存储 1.Ceph 存储介绍 Ceph 是一个开源的分布式存储系统,包括对象存储.块设备.文件系统.它可靠 ...

  9. Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)

    一.前言 块设备主要为存储设备设计的框架. 在前面章节Linux下驱动开发_块设备驱动开发(内存模拟存储) 里介绍了块设备驱动编写思路,并且利用内存模拟了硬件存储,完成了块设备驱动开发测试.这一篇文章 ...

  10. Ceph集群搭建系列(六):RBD块设备的使用场景、原理分析及其创建

    一.前言 下图数据出自2018年ceph社区用户调查报告,Ceph RBD接口的使用场景主要是VM和DB数据库. 而使用Ceph RBD的接口方式的用户数据如下,主要是librbd 和 kernel ...

最新文章

  1. 那些年,SDN走过来时的路
  2. python自动化--语言基础一数据类型及类型转换
  3. 在Windows上安装Elasticsearch 5.0
  4. java虚拟机编译文件,理解Java虚拟机(1)之一个.java文件编译成.class文件发生了什么...
  5. 第八节:常见安全隐患和传统的基于Session和Token的安全校验
  6. 启动FastDFS服务,使用python客户端对接fastdfs完成上传测试
  7. 今晚直播丨抢鲜体验-openGauss入门
  8. java加载properties文件的几种方式,java高级面试笔试题
  9. word 代码_怎样在Word 中插入 C/C++ 代码
  10. JavaScript(第七天)【对象和数组】
  11. Hive启动报错: Found class jline.Terminal, but interfac
  12. 辽宁专科php教材用什么,辽宁新高考改革方案的具体内容是什么?
  13. SQL语法基础篇 —— 常用的SQL标准
  14. Android网络框架(三)——iptables
  15. BDrate、BDBR、BDPSNR的计算原理和程序
  16. BP神经网络的非线性曲线拟合和预测(未完)
  17. echarts中国地图飞线图demo
  18. 阿里测试岗,面试官狂问自动化,把我问到哑口无言……
  19. Android之SQLite数据库及SQLiteStudio工具的使用
  20. 研究好vif 和vshow

热门文章

  1. C++中的error C2662,const的this指针问题
  2. 内存图片IOS app启动动画的实现
  3. httpRuntime一使用
  4. AS3 库资源 很多非常有用的类库
  5. 解读《输赢》:输赢在哪里?
  6. FPGA设计中遇到的奇葩问题之“芯片也要看出身”(二)
  7. 高级网络配置+Ipv6
  8. 数字签名和数字证书 流程图 (一目了然)
  9. 跟我一起数据挖掘(19)——什么是数据挖掘(2)
  10. Microsoft Fakes