工具推荐一款rbd自动挂载系统的工具
前言
ceph是一个分布式存储系统,以单一的系统提供了块存储、文件存储和对象存储接口,在云计算领域广为使用。目前Linux已经支持直接映射rbd为一个块设备提供存储能力,今天就来聊一聊如何方便地映射rbd到内核中。
rbd自动挂载
在使用rbd的时候,一般来说我们会这样使用,通过rbd map把rbd映射到系统,然后格式化块设备,挂载到一个目录,最后操作目录。但是重启系统后,映射的rbd块设备不会自动挂载到系统,又得重新手动挂载一遍,流程比较麻烦。ceph有没有提供自动挂载的工具呢?答案便是rbdmap工具,掌握了这个工具,烦恼便随风而去。
rbdmap
rbdmap使用非常简单,只有三个操作:map、unmap和unmap-all。虽然说rbdmap可以在任何时候执行,但都是偏向系统启动时加载,系统关闭时卸载,由相应的rbdmap.service管理,所以要使能rbdmap.service开机启动,即systemctl enable rbdmap.service。
把一个rbd添加到rbdmap的步骤为:
1.创建rbd rbd create test/test.rbdmap -s 10G
要注意的是,内核还不支持一些新特性,所以创建完rbd后,可以先用rbd map test/test.rbdmap测试rbd是否能挂载到内核中,如果提示一些特性不支持,可以用rbd feature disable去除这些特性。
2.把rbd添加到/etc/ceph/rbdmap中 # RbdDevice Parameters #poolname/imagename id=client,keyring=/etc/ceph/ceph.client.keyring test/test.rbdmap
主要是添加池名称/rbd名称,其它参数可以按需添加,如id、kerying。
3.格式化
如果需要把rbd格式化为文件系统,可以先执行rbdmap map,通过lsblk便可以看到相应的块设备了,对该设备执行格式化,如mkfs.xfs /dev/rbd0。
4.编辑/etc/fstab /dev/rbd/test/test.rbdmap /mnt/tmp xfs noauto 0 0
块设备的格式为/dev/rbd/池名称/rbd名称,标识设置为noauto或nofail,避免系统过早挂载rbd。
5.挂载
执行rbdmap(在格式化时如果已经执行了rbdmap,要先执行rbdmap unmap),便可以看到映射的rbd和挂载的目录了。
unmap与umap-all的区别
unmap只是取消映射/etc/ceph/rbdmap里面的rbd,而unmap-all是遍历系统取消所有映射的rbd,而不管该rbd是否在/etc/ceph/rbdmap里面。
结束语
通过rbdmap把rbd映射到系统,便能愉快地使用rbd了,再也不用更担心重启系统又得重新映射rbd了,好工具值得推荐。以上就是今天的内容,希望读者朋友看完这篇文章后有所启发。