按需填充的只读文件系统

按需填充的只读文件系统

基本上,我有一个可以通过 NFS 和 ssh 访问的文件系统。我需要在本地复制一份。但我只想提取我需要的文件(基本上是按需缓存它们)。由于我将使用它作为只读文件系统,因此缓存相当于永久副本(即使远程也不会改变)。那么,是否有一个应用程序可以开箱即用,或者我应该为此编写自己的 FUSE 实现?问题是 FUSE 实现适用于 Mac(尽管我有一个正在运行的 Linux 容器,它也可以执行此操作。)

答案1

挂载 NFS 共享。

如果需要,只读。无论是服务器端导出,还是本地使用rdonly安装选项导出。

NFS 固有的特性是仅按需传输文件,您必须打开文件才能获取其内容。缓存(无论是客户端还是服务器端)可保持后续访问速度快。如果出于某种原因您希望预热缓存,只需读取文件即可。

如果不是 NFS,将整个卷同步到本地会很简单。远程不会改变。但不符合仅在需要时才拥有本地副本的要求。

NFS 的优势在于它已经实现。它已作为 macOS 或 Linux 的文件系统,并已作为您环境中的文件共享。在尝试编写自己的缓存文件系统(在我看来为时过早)进行优化之前,请先查看它的性能。

答案2

如果相关文件的数量不是太多,那么您可以为这些文件配置 inotify。在文件写入后(并且文件描述符已关闭),您可以启动rsync该文件。

相关内容