类似的问题已经被问过多次了...
- 如何使用 SSD 进行缓存,以便我的硬盘可以降速?
- 在 SSD 上缓存写入更改以避免 HDD 旋转? ZFS,但(可能)不是 L2ARC
- https://superuser.com/questions/664400/ssd-cache-to-minimize-hdd-spin-up-time
- Unionfs、Aufs、Overlayfs、mhddfs,我该使用哪一个
- 将 Linux Overlay (OverlayFS) 挂载中对上层文件系统的更改合并到下层文件系统
……但他们都没有答案。由于大多数问题都是旧问题(2012-2015 年),因此我再次尝试。
我有一个 6 GB ZFS 池,大部分时间处于闲置状态。但仍然太忙而无法让磁盘降速,因为服务器上总是有一些小写入。通过长时间关闭磁盘电源,我希望将能源浪费保持在最低限度。我想强调的是,性能是不是我关心的是(游泳池足够快),而是能源消耗。
我的想法是在系统中添加一个 1 TB SSD 作为“持久缓存”(不确定这个词是否正确)。更具体地说,系统应该执行以下操作:
- 读取最初是从池中应答的,但有问题的文件(或块)应存储在 SSD 上。后续读取应从 SSD 上的副本得到响应。
- 写入内容存储在 SSD 上。很少(例如每三天)应将新文件写入池中。
这个问题有解决办法吗?根据我的研究,我发现
- AUFS 也许能够解决我的问题,但它不包含在内核中。我不知道是否有用户空间驱动程序以及它有多好。
- 相反,OverlayFS 是由 Linux 社区推动的。对我来说,似乎我的用例明确不受支持(因为无论出于何种原因,上层文件夹都无法合并到下层文件夹中)。如果我理解正确的话,OverlayFS 实际上将其视为一个功能而不是缺点 - 这意味着对我的用例来说毫无用处。
- bcache:写回模式下的 bcache 具有较长的写回时间,看起来确实很有前途。然而,文档指出“默认情况下它将允许在 HDD/Raid 设备上进行顺序读/写”。有没有办法关闭这种行为?另外,我不希望过早回信,这似乎是有问题的。
- MergerFS:我不知道它是否能满足我的需要。
有没有我还没有看到的工具/解决方案/建议?