从当前 (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)
因此在启动时:
- 读取 MBR(主要 Grub2 代码)
- GRUB_BIOS 分区用于加载 Grub2 的第 2 阶段
- BTRFS Raid1 主分区 #2 已挂载并读取,因此 Grub2 可以读取其 grub.cfg
- 屏幕上的主 Grub2 菜单,我可以选择从多个 ISO 进行 isoloop 启动,也可以选择启动 Linux
- 我选择启动Linux
- BTRFS Raid1 主分区 #3 已挂载
- 分区引导代码从 BTRFS Raid1 主分区 #3 加载
- 另一个 Grub2 挂载 BTRFS Raid1 主分区 #3 并读取,以便其他 Grub2 可以读取其 grub.cfg
- 可选择是否出现另一个 Grub2 菜单(取决于按下的键)
- 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 欧元)!!!