我面临以下情况:
/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
两个问题:
- 您需要安装
config
后挂载时。卸载前应先data
卸载。使用config
data
这种方法或正确配置systemd
单位依赖关系(如果适用)。 - 您需要在每台机器上运行/配置此附加安装。
第一个问题可以规避。不要从 挂载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/config
上host1
或者从 上挂载它host2
,这样符号链接才是有效的)。
在每台挂载共享的机器上,符号链接都将在本地解析。它将指向/mnt/config
已挂载host2
或最终将挂载的本地。现在挂载顺序无关紧要。
第二个问题仍然存在。也许你希望你可以重新配置仅有的 host1
重新定向所有安装机,以便它们config
直接地来自host2
。我认为这是不可能的(但我会赞成任何证明我错了的合理解决方案)。