![在 nfs 服务器消失的情况下卸载 nfs 挂载](https://linux22.com/image/491732/%E5%9C%A8%20nfs%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%B6%88%E5%A4%B1%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%8D%B8%E8%BD%BD%20nfs%20%E6%8C%82%E8%BD%BD.png)
服务器 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
可能最终挂起或崩溃的条目添加该选项可能是明智之举。如果您不使用soft
或intr
选项,那么当托管 NFS 文件的服务器发生故障时,安装文件的服务器(客户端)可能会在启动时挂起。
根据man 5 nfs
:
软硬
确定 NFS 请求超时后 NFS 客户端的恢复行为。如果未指定任何选项(或者指定了 hard 选项),则 NFS 请求将无限期重试。如果指定了 soft 选项,则 NFS 客户端在发送重传后将无法再发送 NFS 请求,从而导致 NFS 客户端向调用应用程序返回错误。
...然后它继续说intr
优于soft
,但它具有类似的防止挂起的效果。
答案4
顺便说一下,使用自动挂载当 NFS 共享不可用时,将处理卸载,以避免将来陷入这种情况。