# 使用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