NFS服务的搭建

1 安装nfs和rpcbind

yum -y install nfs-utils rpcbind

2 配置NFS存储路径

nfs 的配置文件 /etc/expots

默认为空

mkdir -p /opt/nfsdata/

cat >/etc/exports <<EOF
/opt/nfsdata/ *(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)
EOF

注1:设置的路径必须手动建好,不然会报错无目录 注2:配置文件说明:

/opt/nfsdata 为共享目录

rw:read-write,可读写;

ro:read-only,只读;

sync:文件同时写入硬盘和内存;

async:文件暂存于内存,而不是直接写入内存;

no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;

all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

anonuid:匿名用户的UID值,可以在此处自行设定。

anongid:匿名用户的GID值。

如果更新配置文件/etc/expots需要重启nfs.service

3 启动NFS服务

把运行rpcbind.service和nfs.service服务

systemctl restart rpcbind.service
systemctl restart nfs.service

启动起来之后,你会看见他们分别监听了如下端口:

执行命令systemctl enable rpcbind.service nfs.service将上述两个服务设置为开机自启动。

4 客户端挂载NFS

客户端上查看可挂载的目录:

showmount -e <nfs server地址>

客户端挂载

mkdir -p /mnt/nfsdata

mount -t nfs 10.57.26.8:/opt/nfsdata /mnt/nfsdata

挂载完成输入df -h即可看到挂载的目录

5 客户端取消挂载

具体的路径名,可以通过命令df -h查看得到的名称用在umount下

umount 10.57.26.8:/opt/nfsdata

再次用df查看,就可以看到目录已经不存在了。

6 坑

  1. mount.nfs: access denied by server while mountin

方法,先打开debug,-vvvv

mount -vvvv -t nfs 10.57.26.8:/opt/nfsdata /mnt/nfsdata

可以看到如下错误提示

最后勘查发现,是nfsserver设置的路径必须手动建好,不然会报错无目录。