ceph集群---使用RBD块存储


块存储接口是一种主流的存储访问接口,也是常见的存储形态,比如服务器下的/dev/sdx都是块存储设备。你可以像使用磁盘一样来使用Ceph提供的块存储设备。

在创建块存储设备之前,先创建一个池。在创建池之后,对存储进行定义,并创建属于该池的块存储设备。

创建和删除池

查看池
在这里插入图片描述

创建池rbd-bak ,包含24个PG
删除池的时候需要将池的名称写两次,并且加上 --yes-i-really-really-mean-it参数

在这里插入图片描述

可以直接向池中写文件
在这里插入图片描述
查看pg_num和pgp_num,副本数size大小
在这里插入图片描述

RBD设备的配置及使用

创建完池之后,可以在池中创建rbd设备,设备大小可以指定。

[root@ceph-1 ~]# rbd create rbd-bak/image1 --size=256M
[root@ceph-1 ~]# rbd info rbd-bak/image1

在这里插入图片描述
块设备创建完毕后保存在池中。如果想要使用,就需要在客户端执行映射操作。
rbd map时候,exclusive-lock, object-map, fast-diff, deep-flatten的features不支持,因此需要先disable,否则会提示RBD image feature set mismatch报错信息
在这里插入图片描述

修改rbd块设备特征

在这里插入图片描述
在这里插入图片描述
BD块设备已映射到本地的/dev/rbd0设备上,可以对其格式化并挂载文件系统
在这里插入图片描述

写文件测试:

在这里插入图片描述
通过rbd info可以看到块设备存储对象的前缀为rbd_data.1094238e1f29,即存储被切割为多个object,object的前缀以rbd_data.1094238e1f29开头,可以通过rados查看存储池中的obejct,这些object会随着真实使用空间的增长而自动增长
在这里插入图片描述

在这里插入图片描述
可以在rbd映射的磁盘中写入更多的数据,然后再通过rados查看object的情况,会发现创建了更多的object用于存储数据。object最大数量不会超过2560个,即10G(每个object 4M*2560)

然后取消挂载、取消映射的命令如下:
在这里插入图片描述

RBD快照

为rbd块设备创建快照

rbd snap create rbd/image2@v1

然后映射快照设备
原设备映射为/dev/rbd0
快照设备映射为/dev/rbd1
在这里插入图片描述
设置设备为只读设备:

[root@ceph-1 ~]# blockdev  --getro /dev/rbd0
0
[root@ceph-1 ~]# blockdev  --getro /dev/rbd1
1

快照设备和原始设备使用相同的UUID ,
如果需要同时挂载 /dev/rbd0 和 /dev/rbd1,那么方法一是:使用nouuid选项

在这里插入图片描述在这里插入图片描述
方法二是先取消挂载原设备,再挂载快照
在这里插入图片描述 -o noatime: 不更新文件访问时间
使用快照还原rbd设备中的内容

[root@ceph-2 ~]# rbd showmapped
id pool image  snap device
0  rbd  image2 -    /dev/rbd0
1  rbd  image2 v1   /dev/rbd1

在这里插入图片描述
删除快照
删除快照、取消挂载、取消映射

[root@ceph-2 ~]# umount /snap
[root@ceph-2 ~]# rbd snap rm rbd/image2@v1
[root@ceph-2 ~]# rbd snap ls rbd/image2
[root@ceph-2 ~]# rbd showmapped
id pool image  snap device
0  rbd  image2 -    /dev/rbd0
1  rbd  image2 v1   /dev/rbd1
[root@ceph-2 ~]# rbd unmap /dev/rbd1
[root@ceph-2 ~]#
[root@ceph-2 ~]# umount /mnt
[root@ceph-2 ~]# rbd unmap /dev/rbd0
[root@ceph-2 ~]#
[root@ceph-2 ~]# rbd showmapped
[root@ceph-2 ~]#

RBD块设备的克隆

在这里插入图片描述在这里插入图片描述取消映射、删除克隆、取消快照的保护

[root@ceph-2 ~]# rbd unmap /dev/rbd0
[root@ceph-2 ~]#
[root@ceph-2 ~]# rbd rm rbd/clone1
Removing image: 100% complete...done.
[root@ceph-2 ~]#
[root@ceph-2 ~]# rbd snap unprotect rbd/image2@v1
[root@ceph-2 ~]#

RBD 块设备数据的导出和导入

RBD块设备数据的导入、导出常常用于块设备的简单备份和恢复。

下面简单模拟一下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用ceph块的两种途径

通过Kernel Module

创建了rbd设备之后,把它映射(map)到内核中,成为一个虚拟的块设备。这时这个块设备同其他通用块设备一样,设备文件一般为/dev/rbd0。后续直接使用这个块设备文件就可以了。可以把/dev/rbd0格式化后挂载到某个目录,也可以直接作为裸设备进行使用。

创建rbd块设备
在这里插入图片描述映射rbd块设备
在这里插入图片描述
格式化映射后的块设备并挂载文件系统
在这里插入图片描述生成文件测试
在这里插入图片描述
先取消挂载mount,再取消映射
在这里插入图片描述

通过librbd

创建了rbd设备后,通过librbd、librados库访问和管理块设备。这种方式直接调用了librbd提供的借口,实现了对rbd设备的访问和管理,不会在客户端产生块设备。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值