nfs客户端卡死情况
现象:对一台有nfs的服务器断网后,nfs客户端卡死,直到恢复网络后,依然没有恢复过来
分析:
解决:
改成soft-mount模式
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
timeo的单位是0.1秒,配置为30就是隔3秒客户端向服务器端请求。
断网命令:iptables -A OUTPUT -d 172.16.18.0/24 -j DROP
恢复命令:iptables -F
查看报错:
dmesg | tail -n 40
注意:该问题我猜测nfs低版本和高版本Linux内核不兼容的bug,升级成高版本一些的nfs,问题也能解决