根据导出文件的手册页,可用于管理导出和子导出如何交互的选项是 crossmnt、nohide 和 hide。
我有三台服务器 A、B 和 C,其中 A 是 nfs 服务器,B 和 C 是客户端。A 上的导出文件如下所示:
/export -no_subtree_check,fsid=0,sec=sys B C
/export/sub1 -no_subtree_check,sec=sys B
/export/sub2 -no_subtree_check,sec=sys C
服务器上的所有目录都属于本地根目录,客户端上的挂载和与挂载的交互也由本地根目录完成。挂载使用以下命令完成
mount -t nfs4 A:/ /mnt/A
如果 /export 安装在 B 或 C 上,即使未指定 crossmnt 或 nohide,客户端也可以看到两个子目录。即使我将 hide 添加到子导出,行为仍然相同。有没有办法实现导出文件手册页中描述的行为?
答案1
hide
/ nohide
NFS 服务器上的导出选项文件系统挂载,而不仅仅是子目录。因此,如果/export/sub1
等是不同的文件系统,但您指出它们位于同一文件系统上,则它将起作用。在这种情况下,您需要重新排列目录结构,以便所有客户端都不需要挂载的子目录根本不存在。例如:
/export/sub0 -no_subtree_check,sec=sys B C
/export/sub1 -no_subtree_check,sec=sys B
/export/sub2 -no_subtree_check,sec=sys C