如何调试 nfs 客户端连接超时?

如何调试 nfs 客户端连接超时?

我有 1 个 nfs-server(10.192.244.109)和 2 个 nfs-client。

v3在一个客户端上,使用&挂载 nfs-server 目录都可以v4,而在另一个客户端上,只有使用 挂载 nfs-server 目录才可以v4,如果使用 客户端会报告连接超时v3

  • 客户端 1 适用于 v3 和 v4:
root@shubuntu1:~# mount -t nfs -o nfsvers=3 10.192.244.109:/var/lib/lava/dispatcher/tmp delete
root@shubuntu1:~# umount delete
root@shubuntu1:~# mount -t nfs -o nfsvers=4 10.192.244.109:/var/lib/lava/dispatcher/tmp delete
root@shubuntu1:~# umount delete
  • 客户端 2 对于 v4 没问题,但是对于 v3 就不行:
root@LAVA-Debug:~# mount -t nfs -o nfsvers=4 10.192.244.109:/var/lib/lava/dispatcher/tmp delete
root@LAVA-Debug:~# umount delete
root@LAVA-Debug:~# time mount -t nfs -o nfsvers=3 10.192.244.109:/var/lib/lava/dispatcher/tmp delete
mount.nfs: Connection timed out

real    2m5.713s
user    0m0.079s
sys     0m0.061s

如果有帮助的话,请提供其他信息:

shubuntu1@shubuntu1:~$ mount.nfs -V
mount.nfs: (linux nfs-utils 1.3.3)
root@LAVA-Debug:~# mount.nfs -V
mount.nfs: (linux nfs-utils 1.3.3)

这可能是什么原因?我可以去哪里查看?

答案1

我可以去哪儿看看?

使用数据包捕获工具(例如 tcpdump/tshark、Wireshark/termshark)查看连接尝试,即从客户端发送到服务器的网络数据包。查找那些多次重新发送但从未得到回复的数据包。

您也可以尝试使用该命令在客户端机器的内核上启用详细的 RPC 调用日志记录(消息将发送到dmesgsysctl sunrpc.rpc_debug=0xFFFF

这可能的原因是什么?

对于 NFSv3,这可能是一个到端口映射器(rpcbind 服务)或动态端口之一(用于 NFS 本身或其辅助 mountd/statd 服务)。NFSv4 没有此问题,因为它仅使用单个 TCP 连接。

相关内容