来自我的 nfs 服务器的数据:
zfs set share=name=opt_media,path=/opt/media,prot=nfs,sec=sys,root=iphostclent,public,rw=* rpool/media
来自我的 nfs 客户端的数据:
mount -F nfs -o bg,soft,retry=5,timeo=5 iphostserver:/opt/media /opt/media
我使用选项:
bg
soft
retry=5
timeo=5
更多信息:
nfsstat -m
/opt/media from iphostserver:/opt/media
Flags: vers=4,proto=tcp,sec=sys,soft,printed,intr,link,symlink,acl,rsize=1048576,wsize=1048576,retrans=5,timeo=5
Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
但是,如果我关闭 nfs 服务器,在我的 nfs 客户端中 /opt/media/ 目录将被阻止。
添加:
问题是应用程序,例如 df -h 它会冻结,或者依赖于 /opt/media/ 目录的应用程序也会冻结,这是因为 nfs 客户端试图无限地重新连接,因此参数 bg, soft,retry=5,timeo=5停止重试,但是不起作用。
答案1
来自 mount_nfs(1M) 手册页:
硬|柔软的
继续重试请求,直到服务器响应(硬)或
放弃并返回错误(软)。默认值是硬的。
请注意,NFSv4 客户端不支持软安装。
解决方案是安装:
mount -F nfs -o vers=3,soft,timeo=10 iphostserver:/opt/media /opt/media
现在我们看到属性:
nfsstat -m
/opt/media from iphostserver:/opt/media
Flags: vers=3,proto=tcp,sec=sys,soft,intr,link,symlink,acl,rsize=1048576,wsize=1048576,retrans=5,timeo=10
Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60