像缓存一样工作的可堆叠文件系统

像缓存一样工作的可堆叠文件系统

我正在寻找一个可堆栈文件系统(如 UnionFS、aufs和 OverlayFS),其工作原理与bcache或类似lvmcache,但在文件级别 - 而不是在块级别:

  • 读取将从顶层完成。如果该文件不存在,则从底层读取该文件并将其存储到顶层。
  • 写入将完成到顶层。写入完成后,也会写入底层(类似write-back/write-behind缓存)
  • 当顶层达到一定大小时,文件将从顶层被删除(就像 LRU 缓存)。只有写入底层的文件才会被删除。

对于我的使用,底层将比顶层大 10-1000 倍 - 换句话说:底层将不适合顶层(再次类似于bcache)。

这样的可堆叠文件系统是否存在?可以用aufs或类似的方法来做吗?

背景

文件系统,并使用各种基于 Fuse 的文件系统。但是像这样的文件系统sshfs可能会相当慢,如果您知道底层只能通过该系统进行更改,那么有一种加快速度的方法会非常方便。

使用sshfs已安装的目录作为底层只是一个示例,因此我并不是在寻找一种处理sshfs.我正在寻找一种通用方法,其中顶层和底层仅被视为目录。

答案1

您所描述的内容可以通过使用标准 LVM 缓存卷来处理。通常顶层由更快的设备(例如 SSD)处理。 LVM 缓存卷是高度可配置的,例如,您可以指定 writethrough 缓存(同时写入较低层 = 无数据丢失)或 writecache(延迟写入较低层 = 更好的性能)。

lvmcache(7) 描述了如何将标准逻辑卷 (LV) 转换为使用快速设备作为缓存顶层的卷。

相关内容