我有一台服务器,它保存了我通过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服务器?别的什么?有任何想法吗?我已经在这个问题上敲了几个星期了。