![nfsroot 偶尔会冻结,大概是由于网络故障](https://linux22.com/image/55302/nfsroot%20%E5%81%B6%E5%B0%94%E4%BC%9A%E5%86%BB%E7%BB%93%EF%BC%8C%E5%A4%A7%E6%A6%82%E6%98%AF%E7%94%B1%E4%BA%8E%E7%BD%91%E7%BB%9C%E6%95%85%E9%9A%9C.png)
设置
我已经根据以下内容设置了一个运行 gentoo 的瘦客户端这些说明。它似乎工作得很好,只是偶尔会冻结。
我发现我可以通过拉出网络,运行 ls,然后重新插入网络来重复该问题。无论出于何种原因,它都无法从网络丢失中恢复。我认为操作系统应该能够处理瞬时 I/O 丢失(假设硬盘驱动器需要一两秒的时间来响应),所以我认为这不仅仅是文件系统中的故障,而是nfs 连接根本没有恢复。文件系统安装为 nfs4,具有以下选项:
rw,relatime,vers=4.0,rsize=4096,wsize=4096,namlen=255,hard,proto=udp,port=0,timeo=11,retrans=3,sec=sys,clientaddr=xxx.xxx.xxx.xxx,local_lock=none,addr=yyy.yyy.yyy.yyy
以前,我没有使用原型规范(默认为 tcp),但效果并没有更好。我发现从启动中删除 udp 标志后,它仍然作为 udp 启动,所以现在我想我可能一直在查看挂载/home
而不是挂载/
。
我认为当我不拔电源线时发生的情况是网络出现一秒钟的故障,有东西试图访问文件(当我编译某些软件时似乎冻结了),然后它就无法恢复。
来自 dmesg 的信息
我进行了一系列测试,发现显然断开/重新连接电缆并不总是会导致问题,但有时会导致问题。在 dmesg 日志中,发生这种情况时,最后一行是:
nfs: server yyy.yyy.yyy.yyy not responding, still trying
问题
我该怎么做才能使系统对网络问题具有鲁棒性?