我有四台电脑,其中两个(比如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都具有相同的configuration,我可以在任何计算机上安装和卸载这些资源(在/ home / n1和/ home / n2中),但是我只能访问n1中的资源。 当我尝试从n2的ls目录时,我得到错误:“陈旧的NFS文件句柄”。
我的networking工作正常,我没有防火墙,他们都有相同的configuration和相同的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主机。
任何想法?
对于每个导出,fsid都应该不同,并且在您的configuration中设置为0。
您应该尝试为每个服务器上的每个导出设置一个不同的fsid。
它看起来像是在fstab错误绑定的问题。 早些时候,当我把它绑定到/home/n2时,我意外地在n2的fstab中交换了src和dest,然后我移动了一些主目录,并且改变了这个绑定。 但是可能我没有重装它(我一定忘了这么做)。
我尝试更新软件包,重新启动后,我注意到/export/home是空的,所有的数据都在/home/n2上。 所以我再次将其移动到/export/home ,一切工作正常。
所以我猜NFS在导出从其他目录绑定的目录时遇到问题。