使用Docker的NFS-Ganesha镜像搭建nfs服务器的详细过程
导读
目录
一、NFS-Ganesha的简介二、NFS-Ganesha的配置三、NFS-Ganesha容器的使用3.1 NFS-Ganesha的服务端搭建3.2 NFS-Ganesha的客户端使用四、参考资料
NFS-Ganesha3镜像的说明及使用
一、NFS-Ganesha的简介
NFS-Ganesha是一个用户态的支持NFS协议(NFSv3/NFSv4,NFSv4.1)的文件服务器,它为Unix和类Unix的操作系统提供了FUSE(Filesystem in Userspace)兼容的接口FSAL(File System Abstraction Layer) 。这样用户通过NFS Client可以访问自己的存储设备。NFS-Ganesha 服务允许用户通过FSAL在用户态访问数据而不需要和内核频繁的交互,大大的减少了数据读取的响应时间。
二、NFS-Ganesha的配置
· GANESHA_LOGFILE: log file location
· GANESHA_CONFIGFILE: location of ganesha.conf
· GANESHA_OPTIONS: command line options to pass to ganesha
· GANESHA_EPOCH: ganesha epoch value
· GANESHA_EXPORT_ID: ganesha unique export id
· GANESHA_EXPORT: export location
· GANESHA_ACCESS: export access acl list
· GANESHA_ROOT_ACCESS: export root access acl list
· GANESHA_NFS_PROTOCOLS: nfs protocols to support
· GANESHA_TRANSPORTS: nfs transports to support
· GANESHA_BOOTSTRAP_CONFIG: write fresh config file on start
· STARTUP_SCRIPT: location of a shell script to execute on start
三、NFS-Ganesha容器的使用
3.1 NFS-Ganesha的服务端搭建
1. 若主机存在nfs服务,首先要关闭主机本机的nfs服务
systemctl stop nfs systemctl disable nfs 及rpc相关服务 或者 直接 yum remove nfs-utils
2.运行容器
docker run -d --net=host --privileged=true --restart=always --name=nfs_server -v /data/k8s:/export elimuzi/nfs-ganesha
run 运行容器
-d 表示后台运行
–net=host 表示共用主机ip
–privileged=true 使用该参数,container内的root拥有真正的root权限
–name=nfs_server 将容器名命名为nfs_server
-v /data/k8s:/export 建立磁盘映射,/data/k8s为本机需要作为nfs需要共享的目录,/export为容器的目录,配置文件中固定
elimuzi/nfs-ganesha 为镜像名
–restart=always 表示开机自启动
3.可选:若要修改默认配置
配置文件可以使用默认的,但是若要修改默认配置,ganesha镜像中,nfs-ganesha的启动脚本为/start.sh,若需要对其进行修改,可以先将这个文件拷贝出来
docker cp nfs_server:/start.sh .
修改完后再重新复制回容器之中
docker cp start.sh nfs_server:/start.sh
docker restart nfs_server # 重启容器
3.2 NFS-Ganesha的客户端使用
查看服务端的主机ip地址
查看客户机的ip地址
3.showmount查看
showmount -e 192.168.18.143
4.nfs3的挂载
mount命令默认使用的是nfs3
mount 192.168.18.143:/export /mnt
mount #查看挂载
5.nfs4的挂载
mount.nfs4 192.168.18.143:/ /mnt #nfs4使用的是/,而不是/export