【问题标题】:Is it possible to have a Linux VFS cache with a FUSE filesystem?是否可以使用带有 FUSE 文件系统的 Linux VFS 缓存?
【发布时间】:2011-06-01 06:21:55
【问题描述】:

Linux VFS 缓存默认情况下似乎不适用于 FUSE 文件系统。例如,“读取”调用似乎被系统地转发到 FUSE 文件系统。

我在一个 FUSE 特定的远程文件系统上工作。我需要一个非常激进的缓存。

我需要实现自己的页面缓存吗?或者是否可以为这个特定的 FUSE 文件系统激活 Linux VFS 缓存?或者有人知道一个好的代理/缓存 FUSE 文件系统(或一种 C 库来做到这一点而无需重新发明轮子)?

额外问题:

如果我必须实现自己的页面缓存,我想使用 REDIS 守护进程来执行 LRU 的工作。我几乎可以肯定它是缓存元数据的好选择。但是对于页面,我不确定它是否会比简单的本地目录(带有 VFS 缓存)或 /dev/shm 更好。但是我会失去LRU自动清洗。有人知道一种带有自动 LRU 清理功能的 /dev/shm 吗?

一些附加信息:文件系统是只读的,远程端几乎是不可变的;远程端包含非常大的文件,我无法复制到本地目录。

【问题讨论】:

    标签: c linux redis fuse vfs


    【解决方案1】:

    我认为 VFS 缓存不适用于 FUSE。 FUSE 有缓存解决方案,或者您可以实施自己的解决方案。

    通过小搜索,我找到了fuse-cache;他们声称这很简单。

    【讨论】:

    • 感谢您的回复。但是 fuse-cache 对我不好,因为我在远程端有非常大的文件,我不能简单地复制到本地目录。我需要页面级别的缓存,因为 cient 端只打开这些大文件的特定部分。
    • 那么似乎很难找到通用的解决方案。尝试实现你的。
    【解决方案2】:

    您可以使用 FUSE auto_cache 选项。 FUSE 将缓存数据并仅调用几次元数据来检查文件大小或修改时间戳是否已更改。

    【讨论】:

      猜你喜欢
      • 2011-10-30
      • 2012-10-16
      • 1970-01-01
      • 2019-09-04
      • 1970-01-01
      • 2012-06-04
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多