RBD 是 Ceph 的块存储方案,最近需要在一台 Linux 服务器上挂载 Ceph 镜像,做法和 Kubernetes 挂 RBD 很像,但部分操作由于 Kubernetes 在镜像中已经固化了,所以将这次完全自己控制的步骤记录下来,加深对 Ceph 挂载的理解。
# ceph osd pool create test 1024 1024 #两个1024 指定的 pg 和 pgp 的数量
# rbd rm test-image -p test-pool #删除image指令,慎用!!!
# ceph osd pool application enable test rbd
# rbd create test/image --size 1T
rbd resize test/image --size 51200 --allow-shrink
# rbd ls test
# rbd info test/image
接下来为了将远端的 RBD 磁盘挂载到本地,需要将其映射到本地的盘符上,要挂载 RBD 磁盘的 Linux 服务器首先要有 Ceph 的客户端,也就是 RBD 的客户端,以及一些 RBD 专用的 kernel module,毕竟这是要通过网络走特定的协议来完成的磁盘挂载,和本地直接 mount 还是有差别的。
- 安装过程并不复杂,因为环境中已经有了 Ceph 集群,从 Ceph 集群中的主节点使用 ceph-deploy 扩展新节点即可,就不再描述如何安装 Ceph 了。
# ceph-deploy install <Linux-client-IP>
# ceph-deploy admin <Linux-client-IP>
或者手动安装ceph# yum -y install ceph,然后copy ceph集群的ceph.client.admin.keyring,ceph.conf到/etc/ceph/
- 接下来为了将远端的 RBD 磁盘挂载到本地,需要将其映射到本地的盘符上。
# rbd map test/image
/dev/rbd0
# rbd showmapped #查看映射
# rbd unmap /dev/rbd0 # 取消映射
# mkfs.xfs -f /dev/rbd0
# mkdir /data
# mount /dev/rbd0 /data/
# lsblk
# blkid
# fdisk -l
网友评论