如何为 nfs 配置合理的超时?

SHR*_*SHR 3 linux nfs timeout nfs4

我有 nfs 挂载到远程机器上的目录。当远程机器宕机或断线时,任何在nfs(如:ls,或open file)上的命令都卡住了。

如果 nfs 目录不可用,我希望它在几秒钟内失败。

我该怎么做?

/etc/fstab我看到

<remote-host-ip>:/path/to/origin /shared/point nfs defaults 0 0
Run Code Online (Sandbox Code Playgroud)

当我运行时,mount我看到:

<remote-host-ip>:/path/to/origin on /shared/point type nfs4 (rw,relatime,vers=4.1, rsize=1048576,wsize=1048576,namelen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=<my-ip>,local_loc=none,addr=<remote-ip>)
Run Code Online (Sandbox Code Playgroud)

SHR*_*SHR 8

timeo并且retrans仅对softnfs有效,对nfs 无效hard。需要/etc/fstab像这样改变:

<remote-host-ip>:/path/to/origin /shared/point nfs soft,timeo=30 0 0
Run Code Online (Sandbox Code Playgroud)

timeo是 30 分秒(3 秒)的超时值。还有一种retrans方法是在发生错误时重试多少次。

然后在服务器或服务关闭的情况下,9 秒后发生错误。

  • 为什么有人会使用十分之一秒?设计师的想法是什么? (6认同)
  • 您确定*所有*使用此文件系统的应用程序都经过正确编码以处理软 NFS 挂载将返回的 IO 错误吗?如果没有,您是否能够接受静默数据损坏?您是否从 NFS 挂载的文件系统运行二进制文件?您准备好处理因网络故障而导致的应用程序崩溃了吗?除非您真的知道自己在做什么,否则软安装 NFS 文件系统是邪恶的。**修复**可靠性问题,不要忽视它们。 (2认同)