Ceph rbd可以为主机提供块设备,利用块设备我们可以自己实现一套简单的文件共享服务。本文介绍基于rbd的文件共享环境搭建,原理很简单,将ceph client主机作为NFS服务器(类似NAS机头),将rbd映射的块设备作为共享文件目录,然后通过NFS协议共享给网络中其他主机。
依赖环境
1.首先ceph client主机内核支持rados block driver,如不支持请参考ceph-rbd环境配置(一)之Linux kernel。 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
多个主机挂载成功便可测试文件的共享。
参考