RBD(RADOS Block Device):Ceph块设备,使用精简置备策略,大小可调且将数据”条带化“存储到集群内的多个 OSD。对外提供持久性块存储,通过内核模块或librbd库与Ceph集群进行通信,RBD块设备可以像磁盘一样被挂载到服务器上。
补充:什么是条带化技术?我们都知道单个磁盘的I/O(读写)和TPS(每秒数据的传输量)都存在瓶颈,当使用到这个瓶颈时,就会导致后面的进程访问需要等待。条带化技术就是将多个物理磁盘I/O的负载进行自动均衡,从而最大化提升I/O的并行能力,从而获得更好的性能。
1、创建池
1 |
ceph osd pool create ceph-whsir |
查看当前所有池
1 |
ceph osd lspools |
修改ceph-whsir池的分类为rbd
1 |
ceph osd pool application enable ceph-whsir rbd |
查看ceph-whsir池的类型
1 |
ceph osd pool application get ceph-whsir |
2、调整池的副本数
调整ceph-whsir池的副本数为2
1 |
ceph osd pool set ceph-whsir size 2 |
查看ceph-whsir池的副本数
1 |
ceph osd pool get ceph-whsir size |
查看ceph-whsir池的pg数
1 |
ceph osd pool get ceph-whsir pg_num |
查看ceph-whsir池的pgp数
1 |
ceph osd pool get ceph-whsir pgp_num |
3、创建rbd
使用ceph-whsir池创建一个名称为rbd-whsir.img的块文件,大小设置为10G
1 |
rbd create -p ceph-whsir --image rbd-whsir.img --size 10G |
创建命令另一种写法:rbd create ceph-whsir/rbd-whsir.img --size 10G
查看ceph-whsir池中rbd
1 |
rbd -p ceph-whsir ls |
查看ceph-whsir池中rbd-whsir.img块文件详细信息
1 |
rbd info ceph-whsir/rbd-whsir.img |
另一种写法:rbd info -p ceph-whsir --image rbd-whsir.img
删除ceph-whsir池中的rbd-whsir.img块文件
1 |
rbd -p ceph-whsir rm --image rbd-whsir.img |
4、内核级别挂载使用块设备
执行块设备映射
1 |
rbd map ceph-whsir/rbd-whsir.img |
rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable ceph-whsir/rbd-whsir.img object-map fast-diff deep-flatten".
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (6) No such device or address
通过上面报错信息可以注意到rbd feature disable ceph-whsir/rbd-whsir.img object-map fast-diff deep-flatten由于某些不支持的特性导致报错,需要执行下面命令删除
1 |
rbd feature disable ceph-whsir/rbd-whsir.img object-map fast-diff deep-flatten |
查看features是否还存在以上这些特性
1 |
rbd info ceph-whsir/rbd-whsir.img |
再次执行块设备映射
1 |
rbd map ceph-whsir/rbd-whsir.img |
查看块设备
1 |
rbd device list |
此时就可以把/dev/rbd0当成本地磁盘来使用了
5、格式化挂载/dev/rbd0
1 2 3 |
mkfs.xfs /dev/rbd0 mkdir /data mount /dev/rbd0 /data |
6、rbd块设备扩容
查看当前块设备大小
1 |
rbd -p ceph-whsir info --image rbd-whsir.img |
扩容至20G(注意只能扩容不能缩容)
1 |
rbd resize ceph-whsir/rbd-whsir.img --size 20G |
如果是按照本文进行磁盘挂载的,可以使用以下命令扩容
1 |
xfs_growfs /dev/rbd0 |
原文链接:ceph存储之RBD块存储,转载请注明来源!