设置
我已经根据以下内容设置了一个运行 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
问题
我该怎么做才能使系统对网络问题具有鲁棒性?