将多个 NFS 导出安装到同一客户端目录

tim*_*ers 2 storage nfs

我遇到了 NFS 问题,我不知道如何解决。我花了一些时间试图找到答案,但没有成功。我最终试图实现以下设置,而不必单独安装每个子目录,因为这些子目录可能会随着时间的推移而动态变化,并且该路线不会扩展。

NFS Server1导出/srv/files/并在该目录中包含这些子目录,其中包含客户端所需的实际文件

/srv/files/0001/
/srv/files/0002/
/srv/files/0003/
/srv/files/0004/
Run Code Online (Sandbox Code Playgroud)

NFS Server2导出自己的/srv/files ,并且该目录中的结构类似,但子文件夹的名称相对于 NFS Server1 文件夹是唯一的

/srv/files/0005/
/srv/files/0006/
/srv/files/0007/
/srv/files/0008/
Run Code Online (Sandbox Code Playgroud)

NFS 客户端可以将两个 NFS 服务器共享挂载为只读,但位于同一目录中:

/srv/nfs/0001
/srv/nfs/0002
/srv/nfs/0003
/srv/nfs/0004
/srv/nfs/0005
/srv/nfs/0006
/srv/nfs/0007
/srv/nfs/0008
Run Code Online (Sandbox Code Playgroud)

这可以吗?NFS 是正确的途径吗?同样,我不需要将数据写入 NFS 服务器,只需读取即可。

kof*_*ann 6

这不可能直接使用 NFS 来完成,但您可以使用unionfsoverlayfs来实现。作为overlayfs标准内核的一部分,我建议首先尝试它,例如:

$ mount srv1:/srv/files /srv1
$ mount srv2:/srv/files /srv2
$ mount -t overlay overlay -olowerdir=/srv1:/srv2 /srv/nfs
Run Code Online (Sandbox Code Playgroud)