默认情况下,Linux VFS缓存似乎不适用于FUSE文件系统。例如,“读取”调用似乎系统地转发到FUSE文件系统。
我在FUSE特定的远程文件系统上工作。我需要一个非常积极的缓存。
我是否需要实现自己的页面缓存?或者是否可以为这个特定的FUSE文件系统激活Linux VFS缓存?或者有人知道一个好的代理/缓存FUSE文件系统(或者一种C库来做这件事而不重新发明轮子)?
奖金问题:
如果我必须实现自己的页面缓存,我认为使用REDIS守护进程来执行LRU的工作。我几乎可以肯定它可以是缓存元数据的好选择。但对于页面,我不确定它会比简单的本地目录(使用VFS缓存)还是/ dev / shm更好。但我会失去LRU自动清洁功能。有人知道某种带有自动LRU清洁功能的/ dev / shm吗?
一些附加信息:文件系统是只读的,远程端几乎是不可变的;远程端包含非常大的文件,我无法将其复制到本地目录。
答案 0 :(得分:1)
我认为VFS缓存不适用于FUSE。有FUSE的缓存解决方案,或者你可以实现你的。
通过小搜索,我找到了fuse-cache;他们声称这很简单。
答案 1 :(得分:0)
您可以使用FUSE auto_cache
选项。 FUSE将缓存数据并仅进行多次元数据调用以检查文件大小或修改时间戳是否已更改。