在服务器节点上,可以访问导出的文件夹.但是,重新启动(服务器和客户端)后,无法再从客户端访问该文件夹.
在服务器上
# ls /data Folder1 Forlder2
和/ etc / exports文件包含
/data 192.168.1.0/24(rw,no_subtree_check,async,no_root_squash)
在客户端
# ls /data ls: cannot access /data: Stale NFS file handle
我不得不说来自客户端的共享文件夹没有问题,但是在重新启动(服务器和客户端)之后,我看到了这条消息.
有办法解决这个问题吗?
解决方法
重新启动的顺序很重要.客户端可能导致这种情况后重新启动服务器.过时的NFS句柄表示客户端已打开文件,但服务器不再识别文件句柄.在某些情况下,NFS会在超时后清理其数据结构.在其他情况下,您需要自己清理NFS数据结构,然后重新启动NFS.这些结构所在的位置有些O / S依赖性.
尝试首先在服务器上重新启动NFS,然后在客户端上重新启动NFS.这可能会清除文件句柄.
建议不要使用从其他服务器打开的文件重新启动NFS服务器.如果在服务器上删除了打开的文件,则这尤其成问题.服务器可以保持文件打开,直到重新启动,但重新启动将删除服务器端的内存中文件句柄.然后客户端将无法再打开该文件.
确定从服务器使用了哪些安装是困难且不可靠的. showmount -a选项可能会显示一些活动的挂载,但可能不会报告所有挂载.锁定的文件更容易识别,但需要启用锁定并依赖客户端软件来锁定文件.
您可以在客户端上使用lsof来标识在挂载上打开文件的进程.
我在NFS挂载上使用hard和intr挂载选项.硬选项会导致IO无限期地重试. intr选项允许进程在等待NFS IO完成时被终止.