md 上的 bcache 或 bcache 上的 md

13 linux ssd block-device bcache

bcache允许一个或多个快速磁盘驱动器(例如基于闪存的固态驱动器 (SSD))充当一个或多个较慢硬盘驱动器的缓存

如果我理解正确,

  • 可以分配一个 SSD *来缓存多个后备 HDD,然后可以使用 mdadm
    或对生成的缓存设备进行 RAID
  • 多个 HDD 可以 RAID 到一个单一的支持 md 设备和分配给缓存的 SSD

我想知道哪种方法更明智。我突然想到,使用一种或其他技术增加 RAID5/6 可能更简单,但我不确定是哪一种!

选择一种方法而不是另一种方法(对于包含 VM 后备文件的大型非根文件系统)是否有充分的理由(例如增加后备存储或其他任何东西)?


* “一个 SSD”是指某种冗余 SSD 设备,例如两个物理 SSD 的 RAID1

Ada*_*ski 5

我认为缓存整个 md 设备最有意义。

将 bcache 用于缓存整个 md 设备牺牲了整个raid 的想法,因为它引入了另一个单点故障。

  • SSD盘的OTH故障比较少见,bcache可以放到writethrough/writearound模式(与模式相反writeback),这里没有数据只存储到缓存设备,缓存失败不会杀死里面的信息突袭使它成为一个相对安全的选择。

  • 另一个事实是软 RAID-5 的计算开销很大;当分别缓存每个旋转的raid成员时,即使缓存命中,计算机仍然必须重新计算所有奇偶校验

  • 显然,如果您分别缓存每个旋转驱动器,您将牺牲一些昂贵的 ssd 空间。 - 除非你打算使用raid ssd 缓存。

  • 这两个选项相对不会影响增长进程的时间——尽管由于更多的总线流量,单独缓存旋转驱动器的选项可能会更慢

当您需要更换 ssd 驱动器时,配置 bcache 以移除 ssd 驱动器是快速且相对简单的过程。由于这些,应该可以在原地双向迁移raid设置。

您还应该记住,目前大多数(全部?)live-CD 发行版不支持bcache,因此无论您选择bcache-mdraid布局选项如何,您都不能简单地使用此类工具访问您的数据。