我想使用 Linux 上 SSD 上的 100GB 缓存分区来加速 4TB HDD。我只需要只读缓存,因此数据损坏应该不是问题。我知道 bcache 为这种用例提供了一个相对简单的解决方案。但是,解决方案(将 SSD 分区设为缓存分区,将 HDD 分区设为缓存分区并链接它们)需要创建一个“超级块”来包装 HDD 上的实际数据分区,同时需要重新格式化驱动器。分区本身与非缓存分区没有区别,但不直接位于 HDD 的分区表中,该分区表仅包含指向超级块的指针,以确保该分区被识别为缓存分区。现在回答我的问题:
我也希望能够使用 Windows 读取该分区。它将是一个 NTFS 分区。据我所知,Windows 无法理解 bcache 分区。我有什么选择?
对于只缓存读取的设备来说,超级块应该不是必需的,对吧?有没有办法在没有它的情况下设置 bcache?如果没有,以下是我的两个想法:
- 将超级块写入文件并使用 mdadm 将其与实际分区进行 RAID,欺骗 bcache 认为它正在处理缓存分区。
- 操纵硬盘的分区表以包含重叠分区,一个从超级块开始,另一个从实际分区开始。这可能吗?
哪种方法更明智?有没有更好的方法来实现我的用例?