今天下午早些时候,客户端机器能够连接到我们的 NFS 服务器,一切运行正常。该设置已经运行良好好几年了。服务器上没有进行任何配置更改。
NFS 服务器因“打开文件过多”错误而挂起,无法通过 ssh 进入,我们通过 ACPI 关闭了它。重新启动 NFS 服务器后,客户端连接它的所有尝试都永远挂起。
迄今采取的措施:
验证 NFS 守护程序是否正在运行
service nfs-kernel-server status
nfsd running
重新启动 NFS 守护进程。这是我遇到一些奇怪事情的地方
当我跑步时:
service nfs-kernel-server stop
它说:
* Stopping NFS kernel daemon [ OK ]
* Unexporting directories for NFS kernel daemon... [ OK ]
然后我运行:
service nfs-kernel-server status
上面写着:
nfsd running
所以不知道它是否真的停止了服务,因为它声称要停止,但又说它仍然在运行。此外,多次运行 stop 不会产生错误 - 它只是在Stopping NFS kernel daemon
我每次运行 stop 命令时都显示错误。
当它应该停止时,ps aux | grep nfsd
显示:
root 761 0.0 0.0 0 0 ? S< Apr04 0:00 [nfsd4]
root 762 0.0 0.0 0 0 ? S< Apr04 0:00 [nfsd4_callbacks]
root 763 0.0 0.0 0 0 ? D Apr04 0:00 [nfsd]
root 764 0.0 0.0 0 0 ? D Apr04 0:00 [nfsd]
root 765 0.0 0.0 0 0 ? D Apr04 0:00 [nfsd]
root 766 0.0 0.0 0 0 ? D Apr04 0:00 [nfsd]
root 767 0.0 0.0 0 0 ? D Apr04 0:00 [nfsd]
root 768 0.0 0.0 0 0 ? D Apr04 0:00 [nfsd]
root 769 0.0 0.0 0 0 ? D Apr04 0:00 [nfsd]
因此看起来停止命令实际上并没有停止该进程。
再次重启 NFS 服务器
如果不这样做,我们使用 重新启动了 NFS 服务器reboot
。每次重新启动时都会遇到同样的问题,挂载尝试仍然超时,即使我们尝试停止它,NFS 似乎仍在继续运行。
验证端口映射是否正在运行
root@nfs:~# service portmap status
portmap start/running, process 540
停止并重新启动端口映射和 NFS
我做了如下动作:
service nfs-kernel-server stop
service portmap stop
service portmap start
service nfs-kernel-server start
但是由于 nfs-kernel-server 服务在您命令时实际上并没有停止(参见上文),所以除了重新启动 portmap 之外它没有执行任何其他操作。