学习是一个逐步发现自己无知的过程!

RBD介绍

RBD介绍

RBD即RADOS Block Device的简称,RBD块存储是最稳定且最常用的存储类型。RBD块设备类似磁盘可以被挂载。 RBD块设备具有快照、多副本、克隆和一致性等特性,数据以条带化的方式存储在Ceph集群的多个OSD中。

使用场景:

  • 云平台(OpenStack做为云的存储后端提供镜像存储)
  • K8s容器
  • map成块设备直接使用
  • ISCIS,安装Ceph客户端

IO流程

(1)客户端创建一个pool,需要为这个pool指定pg的数量;
(2)创建pool/image rbd设备进行挂载;
(3)用户写入的数据进行切块,每个块的大小默认为4M,并且每个块都有一个名字,名字就是object+序号;
(4)将每个object通过pg进行副本位置的分配;
(5)pg根据cursh算法会寻找3个osd,把这个object分别保存在这三个osd上;
(6)osd上实际是把底层的disk进行了格式化操作,一般部署工具会将它格式化为xfs文件系统;
(7)object的存储就变成了存储一个文rbd0.object1.file;

 

客户端写数据osd过程:

  1. 采用的是librbd的形式,使用librbd创建一个块设备,向这个块设备中写入数据;
  2. 在客户端本地同过调用librados接口,然后经过pool,rbd,object、pg进行层层映射,在PG这一层中,可以知道数据保存在哪3个OSD上,这3个OSD分为主从的关系;
  3. 客户端与primay OSD建立SOCKET 通信,将要写入的数据传给primary OSD,由primary OSD再将数据发送给其他replica OSD数据节点;

RBD常用命令

命令 功能
rbd create 创建块设备映像
rbd ls 列出 rbd 存储池中的块设备
rbd info 查看块设备信息
rbd diff 可以统计 rbd 使用量
rbd map 映射块设备
rbd showmapped 查看已映射块设备
rbd remove 删除块设备
rbd resize 更改块设备的大小

RBD配置操作

查看pool

  1. rados lspools

系统默认的pool

  1. .rgw.root
  2. default.rgw.control
  3. default.rgw.meta
  4. default.rgw.log

1、先创建rbd使用的pool

  1. ceph osd pool create rbd 32 32
  2. ceph osd pool application enable rbd rbd

2、创建一个块设备

  1. rbd create --size 10240 image01

3、查看块设备

  1. rbd ls
  2. rbd info image01
  3. rados -p rbd ls

4、将块设备映射到系统内核

  1. rbd map image01

5、禁用当前系统内核不支持的feature

  1. rbd feature disable image01 exclusive-lock, object-map, fast-diff, deep-flatten

7、格式化块设备镜像

  1. mkfs.xfs /dev/rbd0

8、mount到本地

  1. mount /dev/rbd0 /mnt
  2. umount /mnt

9、取消块设备和内核映射

  1. rbd unmap image01

10、删除RBD块设备

  1. rbd rm image01
赞(0)
未经允许不得转载:劉大帥 » RBD介绍

你的评论可能会一针见血! 抢沙发

登录

找回密码

注册