尝试访问目录时出现“过时的 NFS 文件句柄”错误

尝试访问目录时出现“过时的 NFS 文件句柄”错误

我有四台计算机,在其中两台(假设是 n1 和 n2)上我安装了 NFS4 服务器并导出:

/export   10.0.0.0/16(rw,fsid=0,no_subtree_check,async,insecure,no_root_squash)
/export/home 10.0.0.0/16(rw,fsid=0,no_subtree_check,async,insecure,no_root_squash)

现在,n1 和 n2 都具有相同的配置,我可以在我的任何一台计算机上(在 /home/n1 和 /home/n2 中)安装和卸载这些资源而不会出现错误,但我只能访问来自 n1 的资源。当我尝试ls从 n2 访问目录时,出现错误:“过时的 NFS 文件句柄”。

我的网络运行正常,没有防火墙,它们都具有相同的配置和相同的 Ubuntu 10.04 服务器版本。

在客户端机器上的日志中我收到此错误:

[585039.584017] NFS: server 10.0.1.4 error: fileid changed
[585039.584019] fsid 0:16: expected fileid 0x1ba54e2, got 0x3f20001

我已经在服务器上检查过了,0x3f20001 是/export目录的 id,而 0x1ba54e2 是/export/home

我的 fstab 如下所示:

10.0.1.4:/home /home/n2 nfs4    _netdev,auto 0 0

IP 10.0.1.4 属于 n2 主机。

任何想法?

答案1

每次导出的 fsid 都应该不同,并且在配置中将其设置为 0。

您应该尝试为每个服务器上的每个导出设置不同的 fsid。

答案2

看起来是 fstab 中的错误绑定问题。之前我在设置它时不小心在 n2 上的 fstab 中交换了 src 和 dest,然后/home/n2我移动了一些主目录并将此绑定更改为正确的绑定。但可能我没有重新挂载它(我一定是忘记这样做了)。

我尝试更新软件包,重启后我发现它/export/home是空的,所有数据都在/home/n2n2 上。所以我再次将其移动到/export/home,一切正常。

因此我猜测 NFS 在导出与其他目录绑定的目录时遇到了问题。

相关内容