我使用 NFS 将多个 Linux 服务器互连。有一段时间一切进展顺利,但由于某种原因变得越来越不稳定
示例:将 4 GB 文件从客户端复制到 NFS 服务器,在完成之前失败并出现 IO 错误。dmesg
充满了
[1525450.884071] nfs: server quackron not responding, timed out
[1525451.384072] nfs: server quackron not responding, timed out
[1525451.884072] nfs: server quackron not responding, timed out
[1525452.384086] nfs: server quackron not responding, timed out
[1525452.884065] nfs: server quackron not responding, timed out
[1525584.112127] nfs: server quackron not responding, timed out
[1525669.492066] nfs: server quackron not responding, timed out
[1525930.544062] nfs: server quackron not responding, timed out
挂载选项(许多额外选项是为了防止消失的 NFS 服务器锁定整个目录,直到重新启动或卸载技巧)
rw,intr,soft,timeo=5,retrans=5,actimeo=10,retry=5,vers=4,addr=10.0.0.20,clientaddr=10.0.0.1
转到服务器,我在 dmesg 中得到这个
[1384141.237197] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[1384141.237237] NFSD: starting 90-second grace period
[1439491.137710] nfsd: last server has exited, flushing export cache
[1439492.461197] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[1439492.461236] NFSD: starting 90-second grace period
我无法在此 dmesg 或日志中找到它,但我知道我看到了“nfsd 最后一个服务器已退出信号 15”错误。谷歌搜索似乎找不到任何有用的信息
知道什么会导致 nfs 不断崩溃吗?
注意:此服务器正在运行 Ubuntu Server 11.10 并且是完全最新的
答案1
作为测试,将客户端的安装修改为:
sudo mount -t nfs -o intr,hard,timeo=14,rsize=8192,wsize=8192
或者,如果您将其放在fstab
客户端:
remoteserver:/remote/path /local/path nfs rsize=8192,wsize=8192,hard,timeo=14,intr 0 0
我在工作中使用这些设置,我们通常每周传输几个 TB。
使用这些设置时,除了您的特定路径变量之外,不要添加任何其他设置。
答案2
如果它是专用 NFS VLAN,请仔细检查网络上没有任何重复的 IP。我刚刚调试了一个非常类似的问题,结果发现 kickstart 文件中存在一些拼写错误,并且在 40 台主机中,我们有 5 台使用了重复的 IP 地址。 NFS 会工作得很好,并且复制会在一段时间内很快,但性能会逐渐下降,然后完全挂起。