BTRFS Raid 1 与 MDADM Raid 1

BTRFS Raid 1 与 MDADM Raid 1

我目前正在设置 NAS 系统,主要用于备份我的计算机,也可能用于将媒体文件流式传输到我的设备。

出于这些目的,我决定将 OpenMediaVault 与两个新的 4GB 驱动器一起使用,因为它似乎是一个稳定运行的软件,并且它已经内置了所有需要的功能。

但目前还不清楚选择哪个文件系统。我目前倾向于使用 BTRFS 而不是 ext4,因为我真的想要拥有“自我修复”以及简单的快照。

除此之外,我想在 RAID 1 中设置我的驱动器,这样我就可以从更高的数据可用性中受益。

现在,当谈到 BTRFS 时,有两种关于如何设置 RAID 1 的选项。

一种是使用带有 mdadm 的标准 Linux 软件 raid,另一种是“本机”btrfs raid。

各自的优点/缺点是什么?

答案1

主要的权衡很容易理解:

  • BTRFS 具有更好的数据安全性,因为当只有一个块出错时,校验和可以让它识别出块的哪个副本是错误的,这意味着它可以判断两个副本是否都坏了。
  • MD RAID 具有更好的性能,因为它在并行写入和条带读取方面做得更好。

实际上,raid1 模式是 BTRFS 提供的各种多设备配置中经过最充分测试的,因为它是受支持时间最早的配置之一,也是使用最广泛的配置之一。大多数开发人员认为它足够稳定(如果您不使用复杂的功能),可以作为生产使用中的现实选择,当然前提是您保持最新状态。

答案2

btrfs的当前状态可以在btrfs wiki 的“状态”文章。 btrfs RAID1 已经稳定了一段时间,并且具有 mdraid 所没有的一些有用功能(例如,镜像是针对每个文件的,因此如果您愿意,您也可以拥有未镜像的文件,尽管实现此目的的工具并不现成)。此外,使用 btrfs 添加第三个驱动器(当您需要更多空间时)比 mdraid 更容易。

mdraid 的主要优点是远的更成熟。所以mdraid+ext4可能更安全一点。更容易找到文档和专家。但是,如果您无论如何都在其之上运行 btrfs(因为,例如,您想要快照)……。

就我个人而言,我有一组外部驱动器用于一层备份;他们使用 btrfs。我一开始使用一个驱动器(早在 2014 年),后来添加了第二个(更大的)驱动器以实现冗余。后来第一个驱动器出现故障,所以我用另一个更大的驱动器替换了它。然后我的空间即将耗尽,所以我添加了第三个驱动器,其大小是其他两个驱动器的两倍。在明年左右的某个时候,我将不得不添加另一个。使用 mdraid 来完成所有这些都会比使用 btrfs RAID1 更加痛苦(或者至少耗时)。

因此,对于您的应用程序,我建议 btrfs RAID1 是更好的选择。如果您运行的是关键任务、正常运行时间要求接近 100% 的服务器,情况就会有所不同。当然,一如既往,保留备份(你的媒体文件,至少如果你关心它们是否丢失的话——你不想知道我有多少份音乐收藏副本......)

答案3

mdadm raid 的优点之一是它易于理解且稳定。此外,grub 以前无法从多设备 btrfs 文件系统启动。此类设置可能存在其他软件错误。您还可以使用 mdadm 创建 raid10 而不是 raid1。使用具有较大块大小的偏移布局可以获得 raid0 的大部分性能和 raid1 的冗余。

本机 btrfs 方法的优点之一是您可以决定稍后从 raid1 转换为 raid0。另一个理论上的优势是,您可以混合搭配并将一些文件放入 raid0 中,将一些文件放入 raid1 中,但至少在我上次检查时,这些工具还达不到这一要求。

相关内容