Linux 居然无法从 btrfs 的内建 RAID 启动

这段时间有点闲了下来,就想好好的研究下 btrfs,因为虽然我之前认定了 btrfs 的管理功能远不如 ZFS,但是毕竟它是 Linux 的原生文件系统,前途还是不错的。

在这次尝试 btrfs 的过程中,我想深入研究下它的高级特性,比如内建 RAID,而不再是仅仅停留在单盘和子卷的简单组合上。

在开始进行之前,我参考了这个网页:https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices。虽然上面并未提到可从 btrfs 的 RAID 作为根存储池启动,但是我认为应该是可行的。连非原生的 ZFS 都能做到从 mirror,甚至是 raidz 根存储池启动,何况是近几年在大力开发的 btrfs。当然,保险起见,我的 /boot 肯定是单独分出来的。

然后,事实证明,我再一次高估了 btrfs。在内建 RAID10 的组合下,我居然无法从 btrfs 的根存储池启动!即使我已经按照开发人员的说法,生成了一份 initramfs 用于扫描并挂载 btrfs 的根存储池。这样的结果简直让我有啼笑皆非、大失所望的感觉,因为我完全不知道问题出在哪。我大概只能知道,问题还是出在那份 initramfs 或者说也有可能 btrfs 根本不支持从内建 RAID 的存储池启动。

至于具体的原因,我难以考证。只能说,btrfs 再次让我失望了。从我以往的经验来看,至少单盘的 btrfs 是没问题的,可是一旦我做了 RAID,问题就开始不一样了。

总结,看来我将有很长一段时间仍然保留 ZFS,虽然它不是 Linux 原生的,但是 ZFS 却给我感觉很舒服,不像 btrfs 那样,给我感觉充满了未知。