背景:
在过去的半年里,在工作中处理故障时,遇到了好几次nfs server 192.168.*.* not responding,尝试了几次才发现其中的缘由,因此,在这里记录一下,方便自己,也方便一下遇到相同问题的小伙伴。
问题:
nfs-server机器掉线,客户端一直在请求该nfs-server,客户端取消挂载该nfs-server共享目录后,系统内核仍然在请求nfs-server,一直在报该nfs-server not responding(demsg和内核日志均可看到报错日志),尝试过百度到的方法以及重启客户端nfs服务等均无效。
解决办法:
根据nfs通信的原理可知,正常nfs-server服务停止后,nfs客户端将不会向服务端发起任何请求,除非有其他进程仍然在占用nfs-server的共享目录;通过命令
grep 'nfs-server_ip' /proc/*/mounts
可查找到占用共享目录的进程PID,根据进程PID可找到具体进程。我们这里是一个k8s的pod挂载了该nfs-server的共享目录到pod内,因此,客户端虽然取消了挂载,但是pod并没有重启,对于pod内部还是在请求该nfs-server。杀掉该进程后几分钟恢复正常,至此解决了此问题。