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

Vad*_*dim 6 linux filesystems cache

我们有一台 Linux 服务器,可以从网络驱动器读取文件并进行处理。在常见的情况下,用户会一遍又一遍地登录并访问相同的文件。文件的大小各不相同,但较大的文件可能在 50+ Mb 左右。文件很少更改。

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

我读过 Bcache,但不知道它是否是我需要的。

你有什么建议吗?

谢谢,瓦迪姆。

Cel*_*ada 10

查看cachefilesd。它几乎自动工作。您需要做的就是:

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

  2. 将此文件系统挂载到/var/cache/fscache. 把它放进去,/etc/fstab让它在启动时总是挂载。

  3. 安装cahefilesdDebian 软件包 cachefilesd

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

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