Ceph rbd可以为主机提供块设备,利用块设备我们可以自己实现一套简单的文件共享服务。本文介绍基于rbd的文件共享环境搭建,原理很简单,将ceph client主机作为NFS服务器(类似NAS机头),将rbd映射的块设备作为共享文件目录,然后通过NFS协议共享给网络中其他主机。
依赖环境
1.首先ceph client主机内核支持rados block driver,如不支持请参考。 2.检查client主机是否已经支持NFS。
# rpm -qa | grep nfs
3.安装NFS
# yum -y install nfs-utils rpcbind# yum install nfs-utils
ceph-clinet创建rbd块设备
# rados mkpool shareimage //创建单独共享的pool# rbd create shareimage/share1 --size 10240 # rbd map shareimage/share1# rbd showmapped# mkfs.ext4 -m0 /dev/rbd/shareimage/share1 # mkdir /mnt/nfs-share# mount -t ext4 /dev/rbd/shareimage/share1 /mnt/nfs-share
NFS服务器端配置
# vim /etc/exports /mnt/nfs-share 10.20.*.*(rw,no_root_squash,no_all_squash,sync)
配置文件说明:/mnt 为共享的目录,即rbd所挂目录,使用绝对路径。10.20.*.*允许客户端访问的IP,()里面为权限控制。
启动NFS服务
# service rpcbind start# service nfs start
客户端挂载(网段为10.20.*.*的任意主机)
# mkdir /mnt/remote-share# showmount -e 10.20.16.177 //10.20.16.177:nfs-server ip# mount -t nfs /mnt/nfs-share /mnt/remote-share
多个主机挂载成功便可测试文件的共享。
参考
1: