我已经在 NFS 服务器上设置了共享。我可以毫无错误地挂载共享。“df”报告的共享大小比服务器上的共享大小小得多,例如,服务器报告 1 TB,但从客户端来看,共享大小为 3.8 G。我可以从客户端在 nfs 共享上创建一个测试文件,并且这个测试文件在所有客户端上都可见,但是当我转到服务器上的共享目录时,该文件不存在。同样,服务器上预先存在的文件对任何客户端都不可见。在服务器上,我运行了命令“updatedb”并搜索了新创建的测试文件;但是,在服务器上的任何地方都找不到它。因此,我正在访问一些共享,我可以从客户端在共享上创建文件,但在服务器上的任何地方都看不到这些文件。我在 /var/log/messages 中没有看到与 nfs 相关的重大错误。服务器是 CentOS 5.8。客户端是 CentOS 6.4。服务器和客户端上的 Iptables 都已关闭以进行测试。
我没有发现名称解析或 DNS 存在任何问题。
服务器:
[root@vmappp04 /]# cat /etc/exports
/data 192.168.1.0/24(fsid=0,rw,sync,no_root_squash)
[root@vmappp04 /]# rpm -qa |grep nfs-utils
nfs-utils-1.0.9-66.el5
nfs-utils-lib-1.0.8-7.9.el5
nfs-utils-lib-1.0.8-7.9.el5
[root@vmappp04 /]# rpm -qa |grep nfs4-acl-tools
nfs4-acl-tools-0.3.3-3.el5
[root@vmappp04 /]# rpm -qa |grep portmap
portmap-4.0-65.2.2.1
服务器上不存在 hosts.allow 或 hosts.deny 文件。
客户:
cat /etc/fstab
vmappp04:/ /data/filer_01 nfs4 noauto,defaults 0 0
[root@vmappp11 ~]# rpm -qa |grep nfs-utils
nfs-utils-lib-1.1.5-6.el6.x86_64
nfs-utils-1.2.3-36.el6.x86_64
[root@vmappp11 ~]# rpm -qa |grep nfs4-acl-tools
nfs4-acl-tools-0.3.3-6.el6.x86_64
客户端未安装 portmap
客户端上的 mount 命令的输出看起来正确:
[root@vmappp11 ~]# showmount -e vmappp04
vmappp04:/ on /data/filer_01 type nfs4 (rw,addr=192.168.1.16,clientaddr=192.168.1.84)
vmappp04 的导出列表:
[root@vmappp11 ~]# showmount -d vmappp04
/data 192.168.1.0/24
vmappp04 上的目录:
[root@vmappp11 ~]# showmount -a vmappp04
vmappp04 上的所有挂载点:
[root@vmappp11 ~]# showmount -a 192.168.1.16
192.168.1.16上的所有挂载点:
我在服务器和客户端尝试了各种排列组合。不确定如何继续,请提供建议;非常感谢您的帮助。
答案1
我不清楚服务器和客户端上挂载的文件系统的层次结构,但您必须小心挂载目录和子目录,以及何时何地挂载它们。在我看来,您挂载的东西不正确。
挂载到子目录或父目录将产生您所看到的结果。您可能正在服务器上的挂载点“下”保存文件。例如,如果 /data 挂载到磁盘,则您通过客户端保存的文件将转到挂载 /data“之前”存在的 /data,即 / 上。服务器上的 / 有 3.8 G 吗?
您不会想要挂载挂载点的子目录,因为它们的处理方式不同。您应该分别导出要挂载的每个目录。
此外,根据该 fstab,您似乎正在安装 vmappp04:/ 而不是 vmappp04:/data - 这也会导致这种情况。