bcache 解决方案适合我的 SSD 用例吗?

bcache 解决方案适合我的 SSD 用例吗?

我最近购买了 240 GB SSD,以使用 1 TB HDD 来加速我的计算机。我双启动 Windows 和 Linux。我想以最有效的方式使用我的新 SSD。通过阅读许多网站,我得出的结论是,对于 Linux,bcache 是最佳选择。我想确保我对 bcache 的理解是正确的。

所以,我想把常用的数据放在SSD上,然后放在HDD上。不过,我在 Windows 和 Linux 上都玩游戏,因此 240 GB 对于两者来说都不够(我还使用多个程序,它们占用了几 GB 的空间)。因此,我想将 SSD 划分为两个约 120 GB 的分区,一个用于 Intel Smart Response(适用于 Windows),第二个用于 bcache 的缓存分区。现在,这是我收集到的有关 bcache 的信息:

  • Bcache 充当 HDD 和 RAM 之间的一层
  • 我可以拥有许多通过缓存分区(在 SSD 上)进行缓存的支持设备/分区(位于 HDD 上)。它们的大小可能大于缓存分区。
  • 最近读取的数据放在SSD上以备后用
  • 我仅安装缓存设备,而不安装任何后备分区,并查看这些后备分区上的文件
  • 将现有分区转换为 bcache 的后备分区很麻烦,但也是可行的
  • 调整支持分区的大小也是可能的,但很麻烦

现在我的问题是:

  1. 我对 bcache 的了解正确吗?
  2. bcache 会忽略顺序 I/O。它如何与加载游戏配合使用?
  3. 我可以打乱分区或移动它们的开头吗? (bcache在选择分区时使用UUID还是/dev/sdxx?)
  4. 我读到,不建议将 /tmp 或 /var 等分区放在 SSD 上,因为不断的读/写会磨损 SSD。我应该将它们放在单独的分区上而不是将它们设置为后备分区吗?
  5. 交换呢?我应该把它放在SSD上吗?
  6. 有没有比 bcache 更适合我的需求的其他解决方案?

最后一个有点复杂。我尝试设置 GPU 到 Windows 客户机的 PCI 直通。我设法在虚拟机中启动系统,该系统通常安装在我的硬盘上。所以我可以本地或通过虚拟机启动相同的窗口。由于我想对 Windows 可见的硬件进行最小的更改,因此我将整个 HDD 传递给了 VM。 Windows 仅使用其 NTFS 分区,而我的 Linux 使用剩余的分区。 bcache 和该设置会有任何问题吗?

作为记录,我使用elementary OS(基于Ubuntu 16.04)。

答案1

广告问题1.

我仅安装缓存设备,而不安装任何后备分区,并查看这些后备分区上的文件

不正确 - 您安装了bcache设备。它内部必须由至少一个硬盘设备组成。 SSD 缓存实际上是可选的 - 因此即使您的 SSD 坏了,您仍然可以访问您的数据。至少如果您使用默认设置的话。

休息才是真实的。

广告问题2.

是的,模块中有一个启发式bcache尝试区分顺序读取和随机读取。但它的工作原理基于单独的系统调用级别 - bcache 与文件系统无关:它甚至不知道它读取文件。因此,这一切都归结为游戏如何实际加载数据以及最终使用哪些系统调用。如果游戏使用,请命名您的游戏,看看是否有人对它进行了基准测试。或者更好的是:自己进行基准测试。 Bcache 确实大大加快了我的系统速度,但我没有在它们上玩游戏。

广告问题3.

是的,bcache选择分区时使用UUID。你读过吗它的文档?拜托,做吧。

广告问题 4 和 5。

这取决于您想要在系统速度与 SSD 降级之间进行多少折衷,以及您拥有多少 RAM(/tmp通常tmpfs是 RAM 支持的)。

广告问题6.

我系统地评估了至少 2 个可行的 bcache 替代方案。我决定投资 bcache - 主要是为了速度、兼容性和受欢迎程度。那是在2014年。

相关内容