在 nfs 服务器消失的情况下卸载 nfs 挂载

在 nfs 服务器消失的情况下卸载 nfs 挂载

服务器 A 曾经是 NFS 服务器。服务器 B 正在挂载该服务器的导出。一切都很好。然后 A 死了。就这么关掉了。消失了。消失了。

但是该文件夹仍然安装在 B 上。我显然无法cd进入它或做任何事情。但是umount /mnt/myfolder只是挂起并且不会卸载。有没有办法在不重新启动 B 的情况下卸载它?

客户端和服务器都是Linux机器。

答案1

假设Linux:

umount -f -l /mnt/myfolder

将解决问题:

-f 强制卸载(如果无法访问 NFS 系统)。(需要内核 2.1.116 或更高版本。)

-l 延迟卸载。立即将文件系统从文件系统层次结构中分离出来,并在文件系统不再繁忙时立即清除对文件系统的所有引用。(需要内核 2.4.11 或更高版本。)

-f也存在于 Solaris 和 AIX 上。

答案2

详细说明提示由 David Pashley 提供

除非“umount -l”能解决你的问题,否则你可以设置一个与已经消失的服务器具有相同地址的假服务器 -你实际上不必设置新的服务器或任何东西。摆脱阻塞/挂起卸载情况的最简单方法是设置本地别名 IP 接口, 如下:

ifconfig eth0:nfstmp 11.22.33.44 netmask 255.255.255.255
umount -l /mnt/deadnfsmount    # -l or -f or whichever that gets the job done
ifconfig eth0:nfstmp down

(显然 11.22.33.44 是(现已停止使用的)NFS 服务器的(前)IP 地址)

答案3

intr为任何/etc/fstab可能最终挂起或崩溃的条目添加该选项可能是明智之举。如果您不使用softintr选项,那么当托管 NFS 文件的服务器发生故障时,安装文件的服务器(客户端)可能会在启动时挂起。

根据man 5 nfs

软硬
确定 NFS 请求超时后 NFS 客户端的恢复行为。如果未指定任何选项(或者指定了 hard 选项),则 NFS 请求将无限期重试。如果指定了 soft 选项,则 NFS 客户端在发送重传后将无法再发送 NFS 请求,从而导致 NFS 客户端向调用应用程序返回错误。

...然后它继续说intr优于soft,但它具有类似的防止挂起的效果。

答案4

顺便说一下,使用自动挂载当 NFS 共享不可用时,将处理卸载,以避免将来陷入这种情况。

相关内容