在 Linux 中透明地缓存网络驱动器中的文件

在 Linux 中透明地缓存网络驱动器中的文件

我们有一台 Linux 服务器,它从网络驱动器读取文件并对其进行处理。在常见情况下,用户会登录并反复访问相同的文件。文件大小各不相同,但较大的文件可能约为 50+ Mb。文件很少发生变化。

我想知道是否有可能以某种方式透明地缓存文件。我不想(或不能)更改读取文件的程序,也不能控制访问文件的协议。我只想让某个程序检测到我访问了某个路径,在本地复制文件(如果需要),然后从本地驱动器读取文件。

我读过有关 Bcache 的文章,但不确定它是否是我需要的。

你有什么建议吗?

谢谢,瓦迪姆。

答案1

调查缓存文件。它几乎自动运行。您需要做的就是:

  1. 在客户端上创建一个 ext3 文件系统来存放缓存。将其放在您想要的任何本地媒体上(专用分区、LVM LV 等...),并将其设置为您想要的缓存大小。

  2. 将此文件系统挂载到/var/cache/fscache。将其放入/etc/fstab,以便它在启动时始终挂载。

  3. 安装cahefilesdDebian 软件包 cachefilesd

  4. 我认为这已经是默认值,但请确保dir设置/var/cache/fscache/etc/cachefilesd.conf

  5. 将“fsc”添加到要启用缓存的文件系统的挂载选项中。例如:“rw,hard,fsc”。卸载并重新挂载这些文件系统。

相关内容