如果想通过内核模块来挂载Ceph RBD块设备,要求您的内核版本要在2.6.32版本以上。
1 要挂载块设备,先要查看当前集群中的镜像列表:
# sudo rbd ls
2 映射块设备:
通过内核模块用 rbd 把镜像映射到主机。必须指定镜像名、存储池名和用户名。若 RBD 内核模块尚未加载,rbd命令会自动加载。
# sudo rbd map {pool-name}/{image-name} --id {user-name}
例如
# sudo rbd map rbd/test1 --id admin
如果你启用了 cephx 认证,还必须提供密钥,可以用keyring文件或密钥文件指定密钥。
# sudo rbd map rbd/myimage --id admin --keyring /path/to/keyring
# sudo rbd map rbd/myimage --id admin --keyfile /path/to/file
3 查看已经map了的块设备
当然在做进一步操作时,需要先确认,对应的rbd是否mount在某个目录下面。通过如下命令可以查看所有的镜像。
# sudo rbd showmapped
4 rbd镜像map到系统之后,您就可以在系统中看到对应的块设备,并且像访问普通块设备一样访问它,比如我们使用dd往块设备中写一些数据。
# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sr0 iso9660 config-2 2016-06-21-03-05-51-00
vda
└─vda1 xfs 0afec14b-7c9f-4d75-943f-c0150922568d /
vdb
├─vdb1 xfs 1fa7cd05-2d7c-4176-a21c-1b9add0f4b1c /var/lib/ceph/osd/ceph-3
└─vdb2
rbd0
# dd if=/dev/zero of=/dev/rbd0 bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 2.31578 s, 45.3 MB/s
5 取消已经映射的块设备
要取消块设备映射,用 rbd 命令、指定 unmap 选项和设备名(即为方便起见使用的同名块设备映像)。
# sudo rbd unmap /dev/rbd/{poolname}/{imagename}
例如:
# sudo rbd unmap /dev/rbd/