卸载nfs服务器已消失的nfs挂载


32

服务器A曾经是NFS服务器。服务器B正在安装该服务器的出口。一切都很好。然后A死了。刚刚关闭。走了 消失了

但是,该文件夹仍安装在B上。我显然无法cd插入它或任何东西。但是umount /mnt/myfolder只是挂起就不会卸载。反正有没有卸载它而不重新启动B?

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


Answers:


45

假设Linux:

umount -f -l /mnt/myfolder

可以解决问题:

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

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

-f 在Solaris和AIX上也存在。


1
我有同样的问题,谷歌搜索并来到这里。是的-懒惰的旗帜真的在这里帮助了我... -f本身并没有做到这一点
wawawawa 2010年

是的,必须具有“ -l”和“ -f”选项“ SAME TIME”。
liuyang15年

2
另外,有时我通过指定远程地址而不是umount的本地路径来获得更好的成功。umount -f -l nfsserver:/export/thefolder
奥利弗

18

详细阐述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地址)


这对我有用,除了我必须运行本地nfs服务器。
gak 2015年

6

intr选项添加到/etc/fstab可能最终挂起或崩溃的所有条目中可能是明智的。如果不使用softintr选项,则当承载NFS文件的服务器关闭时,引导文件的服务器(客户端)可能会挂起。

根据man 5 nfs

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

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


3
请注意,对于较新版本的nfs,不建议使用intr或不进行操作-在这种情况下,应使用软件。
保罗

3

umount -f /mnt/myfolder应该解决这个问题。请参见umount手册页。


2
这与NFS和失效的服务器完全不同。您也需要惰性标记(或添加IfAlias的技巧)。lsof和热熔器全部挂起并挂载-f表示“设备繁忙”。
wawawawa

1

顺便说一句,使用自动挂载将在无法使用的情况下处理正在卸载的NFS共享,这避免了将来陷入这种情况。


2
不必要。如果您尝试以任何方式访问目录,则自动挂载也会在这种情况下挂起,进程将挂起。
卡米尔·基西尔

是的,自动安装器会解决许多问题。
pjc50

1

我从来没有设法umount -f上班。一个有用的技巧是设置另一台安装相同出口的服务器,并为其提供与旧服务器相同的IP地址。您的NFS客户端应该认为一切恢复正常,并且流程将畅通无阻。然后,您可以正常卸载挂载点,并从临时NFS服务器中删除IP地址。


2
如上所述,-l(懒惰)是关键
Matt Simmons

1

对于Solaris,重新启动NFS客户端将解决“死亡的死机”。Solaris 10的命令是“ svcadm restart network / nfs / client”最近没有在Linux机器上尝试过此操作(因为所有这些都带有“ intr”标志,因此它们很少出现此问题),但是它也可能会解决问题。


0

我只是注意到,在NFSv4挂载中,强制在3.2.0内核上的挂载会挂起。NFSv3卸载工作正常。

$ mount [...] -o nfsvers=3

0

只是OS X特定的后续操作,因为挂载命令大多是* nix不可知的:-l(懒惰)标志在OS X中不存在,但是,-f(强制)标志确实存在,并且证明足够了。此外,系统生成的挂载点位于/ Volumes(/ Volumes / myserversexport)中


0

我也遇到过同样的问题。由于已删除NFS服务器,因此无法从客户端卸载nfs。我尝试了以下技巧,看看是否有帮助。由于原来的NFS服务器已消失,因此我创建了一个具有相同IP并导出的新服务器。然后,我尝试umount -f / mnt / nfs_part。我终于可以现在卸载nfs了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.