NFS挂载问题

2021年2月25日 作者 Felix

环境介绍:

Server:10.0.0.1,Centos6.5

Client:10.0.1.1,Centos7.9

exports配置:/home/share/userfiles 10.0.1.1(insecure,rw,sync,no_root_squash)

挂载方法:mount -t nfs 10.0.0.1:/home/share/userfiles /home/share/userfiles

问题:

NFS之前挂载和访问一直正常。突然有一天出现NFS能够正常挂载,但挂载后访问、下载或写入子目录中的文件第一次正常,之后均被拒绝。

解决过程:

刚开始一直在纠结exports配置或服务问题,使用sysctl -w sunrpc.nfs_debug=65535(参数为0时为关闭,下同)命令打开客户端日志,未发现异常。使用ysctl -w sunrpc.nfsd_debug=1023打开服务器端日志,由于共享目录访问频繁,很难发现异常。

中间也考虑过网络及防火墙问题,但在做N次mount和umount后,中间可能有一次能够访问、下载和写入不受影响,因此网络问题的可能性不大。因此考虑是Centos系统版本或NFS版本差异。

后在挂载正常后使用nfsstat -m查看时,发现挂载信息如下:

/home/share/userfiles from 10.0.0.1:/home/share/userfiles
Flags: rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.0.0.1,mountvers=3,mountport=30003,mountproto=udp,local_lock=none,addr=10.0.0.1

这里挂载用的NFS vers=3。突然间恍然大悟,是由于NFS版本问题导致。

解决方法:

将挂载方法修改为:mount -t nfs -o vers=3 10.0.0.1:/home/share/userfiles /home/share/userfiles ,重复umount和mount了几次再测试一直正常,问题得到解决。

后续:

将mount加入fstab,实现开机挂载分区表时自动挂载。

vi /etc/fstab

增加如下配置:

10.0.0.1:/home/share/userfiles /home/share/userfiles nfs defaults,vers=3 0 0

重启测试可正常挂载。

初次碰到这个问题,网上也一直没搜到解决方案,体会到搜索不易,Mark一下并Share给有碰到同样问题的同学。