# 使用rbd的客户端需安装ceph-common
yum install ceph-common -y
# 创建存储池rbd_pool
ceph osd pool create rbd_pool 128
# 初始化RBD使用的存储池rbd_pool
rbd pool init rbd_pool
# 创建一个5000M大小,名称为image1的镜像
rbd create image1 -p rbd_pool --size 5000
# 查看RBD存储池下的镜像
rbd ls -p rbd_pool
rbd list -p rbd_pool
# 查看镜像的详细信息
rbd info image1 -p rbd_pool
# 在客户端将创建的镜像映射成块设备
# rbd device map {pool-name}/{image-name}
rbd device map rbd_pool/image1
# 因为RBD镜像的一些特性,操作系统内核并不支持,因此需禁用掉相关特性并重新映射
rbd feature disable rbd_pool/image1 object-map fast-diff deep-flatten
rbd device map rbd_pool/image1
# 取消块设备映射
# rbd device unmap /dev/rbd/{poolname}/{imagename}
rbd device unmap /dev/rbd/rbd_pool/image1
# 查看映射的镜像
rbd device ls
#rbd showmapped 命令与上一条等同
lsblk
# 客户端格式化并挂载使用
# 注:块存储设备不能实现同时读写
mkfs.xfs /dev/rbd0
mount /dev/rbd0 /mnt/
# 块存储扩容
rbd resize --size 8000 rbd_pool/image1
rbd info rbd_pool/image1
xfs_growfs -d /mnt/
# 块存储缩容
# 风险操作,不能在线缩容,缩容后需要重新格式化挂载才能重新使用
rbd resize --size 5000 rbd_pool/image1 --allow-shrink
umount /mnt/
mkfs.xfs -f /dev/rbd0
mount /dev/rbd0 /mnt/
# 取消映射并删除存储池
umount /mnt/
rbd device unmap /dev/rbd0
rbd device ls
ceph osd pool delete rbd_pool rbd_pool --yes-i-really-really-mean-it