我正尝试让 nfs4 在这里工作。
机器 1(服务器)我有一个文件夹,其中还有另外 2 个文件夹,我正尝试独立共享。/shared/folder1 /shared/folder2
问题是,我似乎无法弄清楚如何在客户端上独立安装文件夹。
(机器 1 - 服务器)/etc/exports:
/var/shared/folder1 192.168.200.101(rw,fsid=0,sync)
/var/shared/folder2 192.168.200.101(rw,fsid=0,sync)
...
exportfs -ra
...
exportfs
/var/shared/folder1
192.168.200.101
/var/shared/folder2
192.168.200.101
(机器 2 - 客户端)/etc/fstab:
192.168.200.201:/folder1/ /home/nfsmnt/folder1 nfs4 rw 0 0
...
mount /home/nfsmnt/folder1
mount.nfs4: 192.168.200.201:/folder1/ failed, reason given by server: No such file or directory
文件夹就在那儿。我很肯定。我想我漏掉了一些简单的东西,但我完全没有注意到。
似乎应该在 fstab 中有一种方法来告诉 nfs 我想要挂载服务器上的哪个文件夹。但我只能找到对看起来像根挂载点(例如192.168.1.1:/
)的引用,我假设它由服务器上的导出处理。但即使在导出中设置了文件夹,似乎也没有明显的方法来挑选要挂载哪个文件夹。
是否不能将同一台服务器上的单独文件夹挂载到客户端上的不同挂载点?
任何帮助均感激不尽。
编辑:
服务器上的错误日志显示以下内容:
/var/shared/folder1 and /var/shared/folder2 have same filehandle for 192.168.200.101, using first
不确定这是什么意思或如何更改它。谷歌搜索似乎只会显示有关 nfs 安全的信息。
答案1
为了共享子目录,我必须先使用 fsid=0 共享父文件夹。因此在服务器上 /etc/exports 如下所示:
/var/shared 192.168.200.101(rw,fsid=0,sync)
/var/shared/folder1 192.168.200.101(rw,sync)
/var/shared/folder2 192.168.200.101(rw,sync)
则客户端上的 /etc/fstab 如下所示:
192.168.200.201:/folder1 /home/nfsmnt/folder1 nfs4 rw 0 0
192.168.200.201:/folder2 /home/nfsmnt/folder2 nfs4 rw 0 0
然后我可以按预期挂载文件夹:
mount /home/nfsmnt/folder1
答案2
问题是您有fsid=0
两个导出的文件系统。这是您收到的错误消息。fsid=0
用于在 nfsv4 中设置导出的文件系统树的顶部。只需设置一次。通常,您会在服务器上的 /etc/exports 中看到类似以下内容:
/var/shared 192.168.200.101(rw,fsid=0,sync)
/var/shared/folder1 192.168.200.101(rw,sync)
/var/shared/folder2 192.168.200.101(rw,sync)
看http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-nfs-server-config-exports.html
答案3
在 /etc/fstab 中,两种语法都可以
192.168.200.201:/var/shared/folder1 /home/nfsmnt/folder1 nfs4 rw,defaults 0 0 192.168.200.201:/var/shared/folder1 /home/nfsmnt/folder1 nfs rw,nfsvers=4,defaults 0 0