nfs服务端异常导致客户端df -h卡死

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nfs服务端异常导致客户端df -h卡死相关的知识,希望对你有一定的参考价值。

一、问题解决

1、问题描述
同事在nfs服务端进行其他压力测试,导致nfs服务端异常
客户端执行df -h直接卡死,执行df -l倒是能显示,但是nfs的挂载盘也没了

2、原因分析
hard:使用硬挂载的方式挂载系统,该值是默认值,重复请求直到NFS服务器回应
当nfs的服务器端出现异常的时候,linux服务器的底层有重发机制,nfs客户端一直去向服务器端请求,判断服务器是否正常,一直阻塞。
当客户端挂载的时候采用hard模式,服务器端出现异常,则客户端会一直发请求,直到服务器正常。

3、网上解决办法
umount -f /nfsdir
fuser -ck /nfsdir
#执行完卡主,并不能解决办法

4、有效办法
确定挂载目录,使用以下命令查询
nfsstat -m
找到挂载目录后,取消挂载
umount -l 路径 #l 表示立即断开文件系统,所有清理以后执行

二、补充nfs挂载方式soft和hard

1、下面列出mount关于nfs相关的参数
(1)-a:把/etc/fstab中列出的路径全部挂载。
(2)-t:需要mount的类型,如nfs等。
(3)-r:将mount的路径定为read only。
(4)-v mount:过程的每一个操作都有message传回到屏幕上。
(5)rsize=n:在NFS服务器读取文件时NFS使用的字节数,默认值是4096个字节。
(6)wsize=n:向NFS服务器写文件时NFS使用的字节数,默认值是4096个字节。
(7)timeo=n:从超时后到第1次重新传送占用的1/7秒的数目,默认值是7/7秒。
(8)retry=n:在放弃后台mount操作之前可以尝试的次数,默认值是7 000次。
(9)soft:使用软挂载的方式挂载系统,若Client的请求得不到回应,则重新请求并传回错误信息。
(10)hard:使用硬挂载的方式挂载系统,该值是默认值,重复请求直到NFS服务器回应。
(11)intr:允许NFS中断文件操作和向调用它的程序返回值,默认不允许文件操作被中断。
(12)fg:一直在提示符下执行重复挂载。
(13)bg:如果第1次挂载文件系统失败,继续在后台尝试执行挂载,默认值是失败后不在后台处理。
(14)tcp:对文件系统的挂载使用TCP,而不是默认的UDP。

2、soft和hard模式
当nfs的服务器端出现异常的时候,linux服务器的底层有重发机制,nfs客户端一直去向服务器端请求,判断服务器是否正常,一直阻塞。
当客户端挂载的时候采用hard模式,服务器端出现异常,则客户端会一直发请求,直到服务器正常。
当客户端挂载的时候采用soft模式,我们可以配置timeo和retry参数,配置超时时间,服务器端出现异常,客户端也会向服务器端发请求,
当超过我们配置的时间,则会返回错误,不会一直阻塞。

hard模式挂载:
mount -t nfs -o rw 192.168.1.2:/home/nfs /mnt local_path
soft模式挂载
mount -t nfs -o rw,soft,timeo=30,retry=3 192.168.1.2:/home/nfs /mnt local_path
timeo的单位是0.1秒,配置为30就是隔3秒客户端向服务器端请求。

以上是关于nfs服务端异常导致客户端df -h卡死的主要内容,如果未能解决你的问题,请参考以下文章

共享文件

8.27 exports命令NFS客户端问题FTP介绍使用vsftpd搭建ftp服务

NFS客户端mount挂载深入

Linux学习总结(四十七)NFS服务配置 下篇

exportfs命令NFS客房端问题ftp

exportfs命令NFS客房端问题ftp