NFS挂载显示来自其他挂载的文件

时间:2012-03-14 19:53:37

标签: linux nfs nfsclient

我有一台服务器,它保存了我通过NFS导出到他们备份的服务器的ZFS快照,因此您可以通过内部编写的自定义应用程序进行恢复。问题如下:

注意:由于某种原因,我没有使用ZFS内置NFS,所以请不要告诉我使用它!

这是所有NFS v4
主机正在运行CentOS 6.2 客户端正在运行CentOS 5.7

我在主机上默认启动了8个nfs服务器。

在保存NFS共享的备份服务器上,我可以根据需要遍历目录结构并查看所有预期的文件。

在客户端上,我可以遍历文件系统,但有时,它看起来很随机,当我深入2个或更多目录时,我最终看到来自另一个服务器的文件。

以下是一个例子:

[NFSSERVER /nfs/share]#  ls -l
total 60
drwx--x--x 30 root root 4096 Feb 25 00:15 20120225
drwx--x--x 30 root root 4096 Feb 26 00:05 20120226
drwx--x--x 30 root root 4096 Feb 27 00:06 20120227
.....

等等

[NFSCLIENT /app/backups]# ls -l
total 60
drwx--x--x 30 nobody nobody 4096 Mar  2 00:25 20120225/
drwx--x--x 30 nobody nobody 4096 Mar  2 00:25 20120226/
drwx--x--x 30 nobody nobody 4096 Mar  2 00:25 20120227/
......

等等

你可以看到它们应该是相同的。

这是问题的开始。如果我进入:

[NFSCLIENT /app/backups/20120225/home] #  ls -l

当我在客户端上运行此ls -l有时时,我会看到正确的文件,有时我会看到另一台服务器的主目录。

如果我到了[NFSSERVER /nfs/share/20120225/home]# ls -l

当我运行这个ls -l时,我看到了正确的文件。如果我删除/ nfs / share /中的文件夹,我可以立即在客户端上看到结果。只有当我深入了解时,才能看到这些“交叉安装”的文件系统。

以下是我的/ etc / exports(主机名已更改)的一部分

/nfs *.domain.com(fsid=0,ro,nohide,no_root_squash)
/nfs/server1/20120308 *.domain.com(ro,nohide,no_root_squash)
/nfs/server1/20120309 *.domain.com(ro,nohide,no_root_squash)
/nfs/server1/20120310 *.domain.com(ro,nohide,no_root_squash)
/nfs/server1/20120311 *.domain.com(ro,nohide,no_root_squash)
/nfs/server2/20120308 *.domain.com(ro,nohide,no_root_squash)
/nfs/server2/20120309 *.domain.com(ro,nohide,no_root_squash)
/nfs/server2/20120310 *.domain.com(ro,nohide,no_root_squash)
/nfs/server2/20120311 *.domain.com(ro,nohide,no_root_squash)
/nfs/server3/20120204 *.domain.com(ro,nohide,no_root_squash)
/nfs/server3/20120205 *.domain.com(ro,nohide,no_root_squash)
/nfs/server3/20120206 *.domain.com(ro,nohide,no_root_squash)
/nfs/server3/20120207 *.domaincom(ro,nohide,no_root_squash)

如果我从etc导出中移除所有行除了交叉挂载之外,然后重新加载导出文件(即,只在/ etc / exports中留下一个条目),它会显示客户端机器上的所有正确目录

那么,陈旧的NFS处理?默认运行更多NFS服务器?别的什么?有任何想法吗?我已经在这个问题上敲了几个星期了。

0 个答案:

没有答案