我正在寻找一个可堆栈文件系统(如 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) 转换为使用快速设备作为缓存顶层的卷。