目前在 SSD 上使用 btrfs RAID 0 并启动是否稳定?

目前在 SSD 上使用 btrfs RAID 0 并启动是否稳定?

从当前 (3.10+) Linux 内核开始,是否支持将 SSD 中的 btrfs RAID 0 作为根挂载并引导到该 RAID 0?这包括几个问题:

  • RAID 0 是否带有 SSD支持TRIM/丢弃块? (根据文档,肯定支持单个驱动器,但不清楚是否支持 RAID)
  • btrfs 是否块对齐在 RAID 0 中可以正常工作吗?
  • 将要grub/grub2 能够启动到 btrfs RAID 0?(好像仅限 grub2但希望确认)
  • 更一般地,如何稳定且得到良好支持这是现在的配置吗?有人用过吗?

有关的:https://serverfault.com/questions/307397/verify-trim-support-with-btrfs-on-ssd

答案1

丢弃工作正常,块对齐没什么特别的,并且 btrfs 多设备支持(配置文件:raid0 raid1 raid10 dup)一直存在从一开始. 尽管如此,还是要准备好使用最新的内核,因为 Btrfs 开发人员并没有做很多稳定的反向移植。

您应该使用单独的/boot;Grub 支持大多数 Btrfs 功能(包括压缩和上述 raid 级别),但 Btrfs 最近添加了您想要启用的瘦范围。

答案2

实际上我在 GPT 模式下的 2xNVME 上使用 Grub2,采用以下设置(根本没有 EFI):

  • NVME0 和 NVME1:带有我的主要 Grub2 的 MBR(其中 grub.cfg 由我手动输入)允许我选择从哪里启动。
  • NVME0 和 NVME1:Grub2 stage2 的主分区 1(BIOS GRUB)。
  • NVME0 和 NVME1:主分区 2(数据和元数据上的 BTRFS Raid1),用于我想要启动的 Grub 和 ISO。
  • NVME0 和 NVME1:Linux 64 位的主分区 3(数据和元数据上的 BTRFS Raid1),在分区引导记录上安装了另一个 GRUB2(由 Linux 发行版配置的 grub.cfg)

因此在启动时:

  1. 读取 MBR(主要 Grub2 代码)
  2. GRUB_BIOS 分区用于加载 Grub2 的第 2 阶段
  3. BTRFS Raid1 主分区 #2 已挂载并读取,因此 Grub2 可以读取其 grub.cfg
  4. 屏幕上的主 Grub2 菜单,我可以选择从多个 ISO 进行 isoloop 启动,也可以选择启动 Linux
  5. 我选择启动Linux
  6. BTRFS Raid1 主分区 #3 已挂载
  7. 分区引导代码从 BTRFS Raid1 主分区 #3 加载
  8. 另一个 Grub2 挂载 BTRFS Raid1 主分区 #3 并读取,以便其他 Grub2 可以读取其 grub.cfg
  9. 可选择是否出现另一个 Grub2 菜单(取决于按下的键)
  10. Linux 加载文件并启动

数据分布:

  • NVME 0 和 1 MBR(Grub2 代码)
  • NVME 0 & 1 MBR(分区 1),8MiB 小空间,用于 Grub2 stage2 代码
  • NVME 0 & 1 MBR(分区 2),16GiB BTRFS,带有 Raid1 中的数据和元数据,用于 Grub2 文件(如 grub.cfg)和 ISO 文件
  • NVME 0 和 1 MBR(分区 3)、120GiB BTRFS,带有 Raid1 中的数据和元数据,用于根目录 '/',以 /boot 作为目录,另一个 Grub2 安装在 PBR(不是 MBR)上...要安装第二个 Grub2,我使用 GParted grub-install(又名 /dev/sd$#,而不是 /dev/sd$),因为 Linux grub-install 有一个不同的 Grub2,不适合并且不允许将其安装到分区上,总是要求 MBR(又名 grub-install /dev/sd$,而不是 /dev/sd$#)

我还在 Raid0、Raid1 和 Raid10 上的 6xSSD 上使用 BTRFS 尝试了相同的结构,并且全部有效。

由于 NVME 我只能插入两个,因此我选择了 BTRFS Raid1,这样任何清理都可以检测并修复错误(如果第二份副本也不是坏的)。

当我使用六个 SSD(每个单元均为单比特,并且 Sata III 能够维持 550MiB/s 的写入速度)启动时,我选择了 BTRFS Raid10 来提高速度(最高可持续写入速度可达每秒略高于 3GiBytes)。

使用两个 NVME,我获得的速度与六个 SSD 相同,因为其中一个位于 PCIe 2.0 x4 插槽上,另一个 NVME 位于 PCIe 3.0 x4 插槽上,速度可以快两倍,但我更喜欢 3GiBytes/s 的冗余,而不是任何 BitRot,并且数据会在 6GiBytes/s 上丢失。

当我有时间时,我计划在我拥有的所有东西上创建一个 BTRFS Raid10(两个 NVME 和 12 个 SSD,6 个在主板上,6 个在额外的 PCIe 控制器上,全部没有任何瓶颈),但我需要计划它以正确平衡速度,最有可能的是:

  • 主板上六个 SSD 上的 LVM Raid 0
  • PCIe 控制器上的六个 SSD 上的 LVM Raid 0
  • 2xNVME 上的 BTRF RAID10 + 主板上的 LVM Raid 0 + PCIe 控制器上的 LVM Raid 0

第一次测试,我使用 Grub2 isoloop 正确启动 GParted,并持续写入速度超过 11GiBytes/s,是的,每秒可写入两张全尺寸 DVD(2x4.7GB),每秒可写入一张以上的双层 DVD,并且具有冗余...成本?最好不要谈论 12 SSD + 2 NVME 高规格成本!!! (> 1000 欧元)!!!

相关内容