使用多个 SSD 作为 bcache 的缓存设备?

使用多个 SSD 作为 bcache 的缓存设备?

如果我们在系统中安装了三个 SSD,并为 SSD 上的未使用空间留出一个备用分区(/dev/sda2/dev/sdb2/dev/sdc2)。可以bcache配置为使用所有三个分区来缓存单个支持设备(例如/dev/md10位于 之上的设备/dev/sd[defghij]1)。

根据我在其他地方读到的内容,特定的 SSD 设备可能可用于bcache缓存多个硬盘驱动器或 RAID 阵列。但没有任何证据可以解释一个支持设备是否可以同时由多个 SSD 进行缓存。

例如,您可能拥有三个 100GB SSD,而不是单个大型 300GB SSD,并且您希望将它们用作单个 12TB 阵列的缓存设备。

答案1

bcache 文档明确指出您可以将一个缓存设备用于多个后端,但反之则不然(至少现在还不是)。但您可以自由地将 SSD 排列为 RAID-0、RAID-1 或​​ RAID-5,初始化该卷集上的缓存卷并将后端附加到它。

请记住,如果您更看重可靠性而不是纯粹的速度,您可能希望在 SSD RAID 中至少有一个镜像或奇偶校验。我认为如果您要支持 12 TB 数据量,您会选择可靠的选择。

请考虑到,在 bcache 和硬件之间引入像 LVM 或 MD 这样的存储层可以或可能会修改 bcache 的写入保证 - 因此在这种情况下,您不应该使用 bcache 的回写模式,因为该设置可能会导致服务器结构bcache 在重新启动、关闭和明显断电时会出现问题,并且您不希望在这种情况下出现未完成的写入操作。我建议在使用回写模式之前将 SSD 放入电池支持的硬件 RAID 中。当您在那里时:这样的设置通常允许通过 RAID 控制器使用 SSD 作为 CacheCade 层,从而使 bcache 变得多余。

答案2

你为什么不尝试一下呢?

从文档看来这是可行的:

cache<0..n> 指向构成此缓存集的每个缓存设备的符号链接。

同时它说:

缓存设备以集合的形式进行管理;尚不支持每组多个缓存,但将来允许镜像元数据和脏数据。

相关内容