![使用一个磁盘作为其他磁盘的缓存](https://linux22.com/image/1261174/%E4%BD%BF%E7%94%A8%E4%B8%80%E4%B8%AA%E7%A3%81%E7%9B%98%E4%BD%9C%E4%B8%BA%E5%85%B6%E4%BB%96%E7%A3%81%E7%9B%98%E7%9A%84%E7%BC%93%E5%AD%98.png)
假设有一台具有多个硬盘的 PC:是否可以使用一个快速磁盘作为巨型文件缓存?
即自动将经常访问的数据复制到一个磁盘,并透明地将读写重定向到该磁盘,以便其他驱动器只会偶尔被访问。
(当然,一段时间后写入必须转发到其他磁盘)
优点:
- 其他驱动器可以大部分时间关闭;减少功耗、热量和噪音
- 其它驱动器的速度并不重要。
- 缓存磁盘可以是固态的。
我怎样才能建立这样的系统?
哪些操作系统支持这些选项?使用 Windows 或 Linux 是否可行?
附言
例子:
有 3 个磁盘,每个磁盘 1 Tb。大多数文件很少被访问,但每个磁盘中大约有 5% 的文件经常使用。哪些文件经常使用可能会随着时间的推移而改变。150GB 的固态磁盘应该缓存当前经常访问的文件,这样访问时间会更快,驱动器可以进入省电模式。
答案1
答案2
你在想类似的事情缓存但它并没有给你所有你想要的东西:
其他驱动器可以大部分时间关闭;减少功耗、热量和噪音
不是。如果驱动器是缓存,则写入必须同步回原始磁盘。除非您有一个很大的只读工作流程(大多数人没有),否则您不会看到这一点。
此外,对于这样的缓存,您实际上只想缓存缓存比底层存储做得更好的内容。如果您谈论的是 SSD 和 HDD——小型随机 I/O。HD 已经擅长大型顺序 I/O。
答案3
实际上,只要您不介意对所有磁盘使用 ZFS 文件系统,那么类似的事情就相当容易了。然后,您可以将缓存(L2ARC 缓存)和写入日志(ZIL)放到 SSD 上……因此:无需移动即可快速访问您经常使用的文件!此外,您永远不必担心 SSD 空间不足,也不必在最糟糕的时刻(即当您需要尽快执行某项操作时)重新排列文件/程序。
唯一的问题是 ZFS Fuse 实现速度不够快...zfs.kqinfotech.com 可能稍后会来解决这个问题。