rados块设备

创建rbd设备

rbd create ceph-client1-rbd1 --size 10240

默认情况下,RBD镜像会保存在ceph集群的rbd存储池中。可以使用-p参数指定其他的池。

rbd create ceph-client1-rbd2 --size 10240 -p test

可以使用-p参数指定test池将镜像保存在test池中,注意这里列出块设备和查看这个块设备的详细信息时也需要加-p指定test池。

列出rbd的镜像

[root@ceph01 ~]# rbd ls
ceph-client1-rbd1
[root@ceph01 ~]# rbd ls -p test
ceph-client1-rbd2

查看rbd镜像的详细信息

[root@ceph01 ~]# rbd --image ceph-client1-rbd2 info -p test
rbd image 'ceph-client1-rbd2':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.3b9da6b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags: [root@ceph01 ~]# rbd --image ceph-client1-rbd1 info
rbd image 'ceph-client1-rbd1':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.2f8ee6b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:

客户端挂载rbd设备

客户端的ip地址为192.168.240.200

加载rdb模块

modprobe rbd

安装ceph客户端

配置好ceph的yum源
安装epel源

yum -y install epel-release

安装ceph客户端

yum -y install ceph

如果是ceph-deploy部署的ceph集群也可以在ceph节点上执行如下命令安装客户端

ceph-deploy install  192.168.240.200

从ceph节点复制ceph.conf和ceph.client.admin.keyring到客户端的/etc/ceph/文件夹下

scp /etc/ceph/ceph* 192.168.140.200:/etc/ceph/

客户端映射rbd

rbd map --image ceph-client1-rbd1
输出
/dev/rbd0

或者也可以指定池的名称加镜像名称

rbd map --image rbd/ceph-client1-rbd1

查看映射对应的操作系统设备名

rbd showmapped
输出
id pool image             snap device
0  rbd  ceph-client1-rbd2 -    /dev/rbd0

或者直接lsblk查看

[root@controller ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  200M  0 part /boot
└─sda2            8:2    0 19.8G  0 part └─centos-root 253:0    0 19.8G  0 lvm  /
sdb               8:16   0   20G  0 disk
└─sdb1            8:17   0   20G  0 part
sr0              11:0    1  4.3G  0 rom
rbd0            252:0    0   10G  0 disk

格式化该设备

mkfs.xfs /dev/rbd0

挂载该设备

mkdir /rbd
mount /dev/rbd0p1 /rbd

映射RBD报错

错误

[root@controller ~]# rbd map --image ceph-client1-rbd1
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

出现这种错误的原因是OS kernel不支持块设备镜像的一些特性,所以映射失败。查看该镜像支持了哪些特性:

[root@ceph-node1 ~]# rbd info ceph-client1-rbd1
rbd image 'ceph-client1-rbd1':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.121876b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:

解决

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

rbd  feature disable ceph-client1-rbd1  exclusive-lock object-map fast-diff deep-flatten

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

rbd create ceph-client1-rbd1 --size 10240 --image-feature layering

方法三:
如果还想一劳永逸,那么就在执行创建rbd镜像命令的主机中,修改Ceph配置文件/etc/ceph/ceph.conf,在global section下,增加:

rbd_default_features = 1

注意:该方法需要先删除之前创建过的镜像,再创建该镜像。

调整ceph RBD大小

注意:格式化块设备的文件系统也支持调整容量才可以。

扩容rbd

rbd resize rbd/ceph-client1-rbd1 --size 20480
输出
Resizing image: 100% complete...done.

查看镜像容量

rbd info rbd/ceph-client1-rbd1
输出
rbd image 'ceph-client1-rbd1':size 20480 MB in 5120 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.121876b8b4567format: 2features: layeringflags:

查看文件系统容量大小

[root@controller ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   12M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   20G  3.8G   17G   19% /
/dev/sda1                197M  167M   31M   85% /boot
tmpfs                    378M     0  378M    0% /run/user/0
/dev/rbd0                 10G   33M   10G    1% /rbd

扩展文件系统容量

扩展文件系统容量,xfs文件系统支持在线调整扩容。

xfs_growfs /rbd
输出
meta-data=/dev/rbd0              isize=512    agcount=16, agsize=163840 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=2621440, 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 2621440 to 5242880

确认

df -h
输出
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   12M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   20G  3.8G   17G   19% /
/dev/sda1                197M  167M   31M   85% /boot
tmpfs                    378M     0  378M    0% /run/user/0
/dev/rbd0                 20G   34M   20G    1% /rbd

ceph RBD快照

ceph完全支持快照,它是一个基于时间点的、只读的RBD镜像副本。可以通过创建快照并恢复其原始数据,保存ceph RBD镜像的状态。
为了测试ceph RBD的功能,往RBD上复制一些数据
查看rbd上的数据

[root@controller ~]# ll /rbd/
总用量 41912
-rw-r--r-- 1 root root      266 11月  2 12:47 admin-openrc
-rw------- 1 root root     1567 11月  2 12:47 anaconda-ks.cfg
-rw-r--r-- 1 root root 13287936 11月  2 12:47 cirros-0.3.4-x86_64-disk.img
-rw-r--r-- 1 root root      262 11月  2 12:47 demo-openrc
-rw-r--r-- 1 root root 41126400 11月  2 12:47 image.img
-rw-r--r-- 1 root root     2392 11月  2 12:48 init-openstack-pike-controller-manual.sh
-rw-r--r-- 1 root root    36132 11月  2 12:48 set-openstack-pike-controller.sh
-rw-r--r-- 1 root root    35891 11月  2 12:48 set-openstack-pike-controller.sh.bak

创建rbd镜像快照

语法

rbd snap create <pool-name>/<image-name>@<snap-name>

创建命令

rbd snap create ceph-client1-rbd1@snap1

查看rbd镜像快照

[root@controller ~]# rbd snap ls ceph-client1-rbd1
SNAPID NAME      SIZE 4 snap1 20480 MB

测试快照

删除rbd中的文件

rm -rf /rbd/*
[root@controller ~]# ll /rbd/
总用量 0

卸载

umount /rbd/

恢复快照
语法

rbd snap rollback <pool-name>/<image-name>@<snap-name>

恢复命令

rbd snap rollback ceph-client1-rbd1@snap1
输出
Rolling back to snapshot: 100% complete...done.

注意:执行快照回滚前一定要先umount,(网上有教程说还需要umap,umap也可以,这里没有umap)否则回滚后再umount,mount会报错
mount: 文件系统类型错误、选项错误、/dev/rbd0p1 上有坏超级块、
缺少代码页或助手程序,或其他错误
有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。

删除镜像快照

删除rbd的某个image的某个快照
语法

rbd snap rm <pool-name>/<image-name>@<snap-name>

命令

rbd snap rm  ceph-client1-rbd1@snap1

删除rbd的某个image的所有快照
语法

rbd snap purge <pool-name>/<image-name>

命令

rbd snap purge ceph-client1-rbd1

复制ceph RBD

ceph存储集群可以从RBD的快照中创建写时复制(COW)副本。这就是ceph的快照分层。ceph的这个分层特性允许客户端创建ceph RBD的多个即时副本。这个特性对云平台和虚拟化平台非常有用,例如OpenStack、CloudStack和Qemu/KVM。这些平台通常以快照的形式保护含有OS/VM镜像的ceph RBD镜像,然后通过不断复制这个快照来创建新的虚拟机/实例。快照是只读的,但是COW副本则是完全可写的。COW复制的镜像与RBD是一样的。
他们都非常灵活,类似于RBD,也就是说,它们可写,可调整容量,可以创建新的快照,将来还可以复制。

RBD镜像的类型定义了它所支持的特性。在ceph中,有两种类型的RBD镜像:format-1和format-2。format-1和format-2类型的镜像都支持快照特性,然后COW特性只有format-2类型的RBD镜像支持。高版本的RBD镜像默认为format-2。

创建format-2类型的RBD镜像

rbd create ceph-client1-rbd2 --size 10240 --image-format 2

创建该RBD镜像的快照

rbd snap create rbd/ceph-client1-rbd2@snap_for_clone

将快照置于保护状态

rbd snap protect rbd/ceph-client1-rbd2@snap_for_clone

复制快照

语法

rbd clone <pool-name>/<parent-image>@<snap-name> <pool-name>/<child-image-name>

命令

rbd clone rbd/ceph-client1-rbd2@snap_for_clone test/ceph-client1-rbd3

查看新镜像信息

rbd info test/ceph-client1-rbd3
输出
rbd image 'ceph-client1-rbd3':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.3c9ca6b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags: parent: rbd/ceph-client1-rbd2@snap_for_cloneoverlap: 10240 MB

扁平化该镜像

要让这个镜像不依赖他的父镜像,需要扁平化该镜像

rbd flatten test/ceph-client1-rbd3
输出
Image flatten: 100% complete...done.

查看扁平化后的镜像
可以看到他的父镜像/快照的名字消失,这就使得这个复制的镜像成了一个独立的镜像,即使删除父镜像也不会造成影响。

[root@controller ~]# rbd info test/ceph-client1-rbd3
rbd image 'ceph-client1-rbd3':size 10240 MB in 2560 objectsorder 22 (4096 kB objects)block_name_prefix: rbd_data.3c9ca6b8b4567format: 2features: layering, exclusive-lock, object-map, fast-diff, deep-flattenflags:

删除父镜像

如果不需要父镜像的快照,可以删除它,删除之前解除保护状态

rbd snap unprotect rbd/ceph-client1-rbd2@snap_for_clone

删除

rbd snap rm rbd/ceph-client1-rbd2@snap_for_clone

ceph rbd(rados block device)配置与挂载相关推荐

  1. ceph(2)--Ceph RBD 接口和工具

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  2. 理解 OpenStack + Ceph (3):Ceph RBD 接口和工具 [Ceph RBD API and Tools]

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  3. SPDK简介(其与Ceph rbd的关系)

    转载:SPDK简介 SPDK(Storage Performance Development Kit)是Intel发布的存储性能开发工具集. 简介 固态存储设备正在取代数据中心.目前这一代的闪存存储, ...

  4. k8s1.18 StorageClass 使用rbd-provisioner提供ceph rbd持久化存储

    rbd-provisioner为kubernetes 1.5+版本提供了类似于kubernetes.io/rbd的ceph rbd持久化存储动态配置实现. 一些用户会使用kubeadm来部署集群,或者 ...

  5. Ceph Block Device块设备操作

    2019独角兽企业重金招聘Python工程师标准>>> 使用ceph block device需要如下三个步骤: 1. 在ceph 集群的pool中创建一个Block Device ...

  6. Mount 挂载错误mount:block device /dev/sr0 is write – protected , mounting read-only

    Mount 挂载错误mount:block device /dev/sr0 is write – protected , mounting read-only 安装虚拟机出现以下提示: mount:b ...

  7. mtd block device和block device区别,MTD设备的一般不宜挂载fat,ext2,ext3等文件系统原因

    文章系转载:https://dolaameng328.iteye.com/blog/1502547 本文添加自己理解: 1.可以解释为什么MTD设备的一般不宜挂载fat,ext2,ext3等文件系统- ...

  8. kubernetes挂载ceph rbd和cephfs

    微信公众号搜索 DevOps和k8s全栈技术 ,关注之后,在后台回复 k8s视频,就可获取k8s免费视频和文档,也可扫描文章最后的二维码关注公众号. 目录 k8s挂载Ceph RBD 创建secret ...

  9. CEPH集群操作入门--配置

    https://www.cnblogs.com/luxiaodai/p/10006036.ht CEPH集群操作入门--配置l CEPH集群操作入门--配置 阅读目录(Content) 概述 配置 存 ...

最新文章

  1. 如何设计一个端计算架构?
  2. 【Python】list和tuple 区别比较
  3. webStorm关闭自动保存
  4. fat32硬盘格式能在苹果系统里读写操作吗?
  5. 重庆计算机一级跟全国计算机一级都考什么,全国计算机等级考试一级都考什么内容?...
  6. 希捷移动硬盘linux,[转载]强列建议不要买seagate希捷移动硬盘!!!
  7. 51 Nod 一维战舰
  8. [原创]网站文章页面添加分享按钮,百度按钮代码复制使用时不显示问题解决!
  9. 弦截法 解高次方程 C语言/C++
  10. 一文详解Type C-CC引脚的作用
  11. 能够正常加入域但无法实施域策略
  12. 2023第5届中国(济南)国际福祉及残疾人用品展览会开启招商
  13. java rds 数据库_Java程序如何连接RDS MySQL
  14. PTA 3+2 转段考试 数据库mysql(3篇)
  15. wp8手机用得真憋屈
  16. G7波澜不惊,非美反弹缺乏力度
  17. el-table 树形表格 自定义展开图标_Icon Slate for mac(图标制作工具) v4.5.0
  18. 二级mysql选择题要对一半才能拿证书_计算机二级选择题需要达到多少分才能及格...
  19. 游戏邦成立以来部分游戏设计观点回顾
  20. 关于字节,半字,字到底有多多少位

热门文章

  1. 怎么选择爬虫代理ip
  2. 【远程访问和支持软件】上海道宁为您提供简单、安全、随时可用的远程访问解决方案
  3. python并发处理list数据_python之并发基础(进程)
  4. 1.7. Apache Bloodhound
  5. 二战失败的落魄人(有些开心可很落魄)
  6. WordPress-Light Year简洁小清新风格网站主题
  7. Java—面向对象三大特征(封装,继承)
  8. 天猫代运营靠谱不靠谱?
  9. 迈克尔杰克逊过世 医学中心外大批民众聚集
  10. SSL连接中握手协议及握手过程