访问位于 NFS 挂载点的底层文件系统上的文件

访问位于 NFS 挂载点的底层文件系统上的文件

这可能是一个奇怪的要求,但它与以下详细问题相反:

是否可以在不卸载 NFS 内容的情况下查看底层 NFS 挂载的内容?

我有一个安排,多个远程站点的 Linux 服务器从中央服务器 (所有 CentOS 5.x) 安装 NFS 共享。想想:/opt/software或类似的东西。

如果一切顺利,客户端系统会挂载主服务器的 NFS 导出并顺利运行。共享中包含的数据不会频繁更改(可能每周更改一次)。

我担心与主 NFS 服务器失去连接的情况(NFS 服务器中断、光纤切断等)。由于共享数据不经常更改,我希望这些系统在失去 NFS 挂载时能够独立运行。

假设挂载消失,我想使用位于/opt/software同一位置的 NFS 挂载下的本地文件。此外,我会每天同步这些文件。

NFS 挂载是读/写的,因为需要可以从任何客户端站点对挂载的卷进行更改。

这可能吗?如何访问(或覆盖)底层目录中的文件?可能会出现超时问题吗?是否有任何挂载选项/提示可以帮助解决此问题?

答案1

mount -o bind / /mnt

当您查看 /mnt/opt/software 时,您会发现 /opt/software 中安装的文件(如果有)。

答案2

通过使用该选项可以实现这一点mount --bind

Since Linux 2.4.0 it is possible to remount part of the file hierarchy somewhere else. The call is
   mount --bind olddir newdir
After this call the same contents is accessible in two places.

所以我可以mount --bind /opt/software /foo

然后应用 NFS 挂载/opt/software,保留查看底层文件的能力/foo

答案3

由于文件相对静态,您可能需要的是 rsync。除非多个远程客户端能够更改文件。如果数据本质上是只读的,为什么不每天通过一些类似 cron 的作业在每台机器上 rsync 几次呢?同样,我可能没有抓住重点,但如果 NFS 上的数据基本上是只读的,那么这可能会奏效。

相关内容