在同一文件夹下添加本地文件夹和 NFS 共享

在同一文件夹下添加本地文件夹和 NFS 共享

我的存储库服务器包含大量文件和数据,由几个节点使用。最近,我遇到了由于节点读取量大而导致存储库负载过高的问题。

我想要做的是,在节点上本地存储一些最常用的最新数据(滑动窗口),幸运的是,我在节点上有一些 SSD 空间。在节点上运行的作业中,只有少数需要存储库本身的旧数据。现在的问题是,是否有任何选项可以将来自 NFS 共享的数据与本地存储在同一文件夹下的数据结合起来。使用数据的应用程序没有完全转到不同文件夹的选项。结构如下:

> Share: /data/YYYY/YYYYMM/.....
> Local: /local/YYYY/YYYYMM/.... (But only last 3 months)

我想将其安装在同一文件夹下,/mnt例如,该文件夹/mnt/2015/201512位于本地 SSD 上,/mnt/2015/201511并可从存储库服务器获取

答案1

可以使用类似 overlayfs 的东西: https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt

有类似的 SW 包,如 aufs 或 UnionFS。据我所知,aufs 已经过时了。

我没有使用这些软件包的经验,而且这似乎是一件很难做的事情。我会尝试通过在 NFS 服务器中添加读取缓存来解决问题。只要将它设置得足够大并让它运行一段时间,从您的描述来看,您应该会获得不错的命中率。

答案2

Linux 中的 nfs 客户端本身支持在本地磁盘上缓存数据 - 即所谓的高速缓存文件系统。在大多数缓存中,您只需配置存储数据的位置,并使用挂载选项告诉客户端启用本地缓存。检查CentOS / RHEL CacheFS:加速 NFS 访问了解详情。

相关内容