服务器A曾经是NFS服务器。服务器B正在安装该服务器的出口。一切都很好。然后A死了。刚刚关闭。走了 消失了
但是,该文件夹仍安装在B上。我显然无法cd
插入它或任何东西。但是umount /mnt/myfolder
只是挂起就不会卸载。反正有没有卸载它而不重新启动B?
客户端和服务器都是Linux机器。
服务器A曾经是NFS服务器。服务器B正在安装该服务器的出口。一切都很好。然后A死了。刚刚关闭。走了 消失了
但是,该文件夹仍安装在B上。我显然无法cd
插入它或任何东西。但是umount /mnt/myfolder
只是挂起就不会卸载。反正有没有卸载它而不重新启动B?
客户端和服务器都是Linux机器。
Answers:
假设Linux:
umount -f -l /mnt/myfolder
可以解决问题:
-f
强制卸载(如果无法访问NFS系统)。(需要内核2.1.116或更高版本。)
-l
懒惰卸载。现在,从文件系统层次结构中分离文件系统,并在不再繁忙时清除对文件系统的所有引用。(需要内核2.4.11或更高版本。)
-f
在Solaris和AIX上也存在。
umount -f -l nfsserver:/export/thefolder
。
详细阐述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地址)
将intr
选项添加到/etc/fstab
可能最终挂起或崩溃的所有条目中可能是明智的。如果不使用soft
或intr
选项,则当承载NFS文件的服务器关闭时,引导文件的服务器(客户端)可能会挂起。
根据man 5 nfs
:
soft / hard
确定NFS请求超时后NFS客户端的恢复行为。如果未指定任何选项(或未指定hard选项),则将无限期重试NFS请求。如果指定了soft选项,则在发送重传重传后,NFS客户端将使NFS请求失败,从而导致NFS客户端向调用应用程序返回错误。
...然后继续说intr
优于soft
,但它具有防止挂起的类似效果。
我从来没有设法umount -f
上班。一个有用的技巧是设置另一台安装相同出口的服务器,并为其提供与旧服务器相同的IP地址。您的NFS客户端应该认为一切恢复正常,并且流程将畅通无阻。然后,您可以正常卸载挂载点,并从临时NFS服务器中删除IP地址。