当服务器丢弃设备时如何使 NFS 更加健壮

当服务器丢弃设备时如何使 NFS 更加健壮

我有一个案例,其中一台机器有多个 NFS 挂载。偶尔,其中一个 NFS 服务器会因为硬件问题而丢失其设备,需要重新启动才能修复。

然后,用户通过 ftp 之类的东西进来,对目录执行 ls,然后挂起。然后他们通常会感到沮丧并重试。这最终会因为耗尽所有 ftp 会话而导致客户端计算机挂起。

有没有办法让 NFS 放弃挂载,这样当他们执行 ls 时,他们只会得到一个空目录?或者有什么方法可以让我检测 NFS 主机何时没有正确响应并将其删除?... 或者当驱动器消失时,我可以从服务器端以某种方式执行此操作吗?

答案1

首先,您需要将您的 nfs 挂载更改为使用可中断选项(大多数情况下为 intr)。这将允许您按 Ctl-C 退出通常会挂起等待内核返回的应用程序,而这永远不会发生。

答案2

如果您在客户端上使用 autofs、软挂载和较短的 timeo 值,这将会有所帮助。

答案3

从客户端的角度来看,上述答案非常好,但您还应该考虑服务器端。

在我们的环境中,我们使用 nfs 服务器在多台机器之间共享 Web 内容。这些机器还使用 pacemaker/openais 来确定谁应该运行 NFS 服务器进程、挂载光纤通道卷以及 nfs 服务器的 IP 地址。

当我们需要重新启动一台机器时,pacemaker 会检测到这一点,并将活动的 NFS 服务器移动到另一个节点,以免服务中断。

相关内容