使用 NFS 在已挂载文件夹上挂载内部目录

使用 NFS 在已挂载文件夹上挂载内部目录

我面临以下情况:

/data我正在从安装一个文件夹host1

该文件夹有一个子目录:/data/internal/config

我想覆盖该目录的挂载路径host2

我正在使用 NFSv4,可以吗?

动机:我正在安装/data到多台机器,因此每台机器都需要/config从远程主机获取文件夹,/config文件夹非常大,因此会给系统带来严重负载(目录大小 * 机器数量)。我想将此文件夹安装到更近的位置,并覆盖所有机器到这个更近位置的安装,以减少网络负载。

答案1

/data从挂载后host1,您可以挂载其他内容/data/internal/config(即使 上的目录host1不为空):

mount -t nfs host2:/foo/bar/config /data/internal/config

两个问题:

  1. 您需要安装config 挂载时。卸载前应先data卸载。使用configdata这种方法或正确配置systemd单位依赖关系(如果适用)。
  2. 您需要在每台机器上运行/配置此附加安装。

第一个问题可以规避。不要从 挂载host2/data/internal/config,而是挂载到本地肯定存在的空目录(只需创建它),让它保持/mnt/config。然后在 上准备一个正确的符号链接host1

mv /whatever_the_share_is/internal/config /elsewhere  # just to free the name 'config'
ln -s /mnt/config /whatever_the_share_is/internal/config

这个符号链接可以被断开host1(或者不能;您应该知道host1那里是否需要这个配置;如果是这个问题,则将配置放在/mnt/confighost1或者从 上挂载它host2,这样符号链接才是有效的)。

在每台挂载共享的机器上,符号链接都将在本地解析。它将指向/mnt/config已挂载host2或最终将挂载的本地。现在挂载顺序无关紧要。


第二个问题仍然存在。也许你希望你可以重新配置仅有的 host1重新定向所有安装机,以便它们config 直接地来自host2。我认为这是不可能的(但我会赞成任何证明我错了的合理解决方案)。

相关内容