代码改变世界

小知识:NFS卡死问题处理

2022-01-28 17:51  AlfredZhao  阅读(128)  评论(0编辑  收藏  举报

现象:
df -h发现长时间卡住,无法显示结果。

根据以往运维经验,通常df -h这种操作都无法显示时,首先就要确认是否有NFS挂载的目录,如果有,确认NFS目录是否正常。
这是最常见的情况,最近又遇到一次就是NFS的挂载目录异常,cd这类命令也无法进入到挂载目录的案例,下面简单记录下。

查看系统资源,唯一可疑的是kworker进程占用了100%的cpu,而且无法kill -9杀掉。
一般尝试关闭正在跑的程序,试着umount 有问题的NFS目录,基本这种情况下不会成功umount,尝试去加 -f 参数强制umount,也会报资源忙。
那么这个时候就需要尝试fuser -ck NFS挂载目录,通常大概率能杀掉恢复正常,但可能会造成一些影响,要评估是否可以接受/解决,主要要看你杀掉的是什么进程,这里就不做展开。

直观一些,举个例子,比如NFS挂载目录是 /nfsdir ,遇到df卡住的这种情况,
如果关闭使用的程序还是无法解决,多数情况可以通过下面的方式解决:

umount -f /nfsdir
fuser -ck /nfsdir

会有极少数情况下,这样操作也无法解决,那最后的杀手锏就是主机层面申请重启彻底释放资源了。