一些背景信息:
两台 RHEL 7 主机。
第一个是 NFS 服务器,以相同的方式导出两个目录:
> cat /etc/exports
/first/dir otherhost(rw,sync,no_subtree_check,no_root_squash)
/second/dir otherhost(rw,sync,no_subtree_check,no_root_squash)
第一个目录 /first/dir 会比较小,而第二个目录会比较大,会随着时间推移而增长,其 LVM 卷大小为 300Go,但目前 FS 是空的。
第二位主持人其他主机是 NFS 客户端。两个 FS 在 fstab 中的挂载方式如下:
> grep nfs /etc/fstab
nfsserver:/first/dir /here nfs nfsvers=4,minorversion=1,_netdev 0 0
nfsserver:/second/dir /somewhere nfs nfsvers=4,minorversion=1,_netdev 0 0
服务器端使用并公开了 2049 TCP 端口。经过分析,防火墙中没有记录其他网络连接(甚至没有 2049 UDP)。网络方面一切似乎都正常。
我们看到的情况:
- 如果我们在 /etc/fstab 中挂载这两个目录(使用安装 -a例如)按“第一”然后“第二”的顺序,第二次挂载因超时而失败
- 如果我们以相反的顺序挂载这两个目录(“second”,然后“first”,或者通过在 /etc/fstab 中反转它们或者手动),那么这两个挂载都没有问题......
显然这不是正常行为。
我来这里是想问一下,是否有人遇到过这种疯狂的 NFS 行为。如果没有,您对如何分析此问题有什么建议吗?非常感谢您的帮助。
答案1
我会进一步调查网络。针对 NFS 服务器执行 tcpdump(使用端口和 IP/名称进行过滤)。
否则,您可以尝试使用bg
&timeo
选项,看看是否能有所收获。
答案2
找到了解决方案。虽然看起来很奇怪,但使用完全合格的服务器名称设置 /etc/exports 可以解决此问题!就这么简单。但仍然令人困惑。