强制卸载无响应的nfs挂载目录

在日常的运维中, 经常有需要使用 nfs 挂载远程服务器目录的需求, 但是照我个人实际使用的经验来看, nfs 并不是”一劳永逸”, 故障率还是蛮高的, 其中最长遇到的就是由于网络原因/远程 nfs 服务器原因或其他原因导致的 nfs 客户端与 nfs 服务器失联. 失联并不可怕, 可怕的是它并不会自动重连. 这个时候需要我们手动介入到重连的操作中

nfs 客户端与服务端失去连接, 最直观的现象就是在 Linux 命令行中,执行 df -h 命令, 整个 terminal 终端就会卡在那里一动不动(挂起), 你可以参考以下方案解决该问题

新开一个 session

也许你当前的 session 已经被卡住了, 这时需要打开一个新的 session, 如果你是直接登录到 linux 系统界面的, 可以同时按下 “Ctrl+Alt+F2” 切换到第二个 terminal

查询之前挂载的路径

1
2
3
4
➜  ~ nfsstat -m
nfsstat -m
/webserver/page from 192.168.1.112:/webserver/page
Flags: rw,relatime,vers=4.0,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.4,local_lock=none,addr=192.168.1.112

以上命令不仅仅会显示出当前的挂载点信息, 还会显示出详细的 nfs 属性信息

当然, 你也可以通过 mount 命令来查询 nfs 的挂载点, 前面写着 IP 的就是 nfs 的挂载信息

使用 umount -f PATH 卸载

1
2
➜  ~ cd
➜ ~ umount -f /webserver/page

先 cd 到家目录, 再强制卸载, 如果执行此命令后, 还是提示磁盘”busily” 就使用以下命令卸载

使用 umount -l PATH 卸载

1
2
➜  ~ cd
➜ ~ umount -l /webserver/page

注意: 这里是使用的小写的L