带有 BTRFS 的三磁盘 RAID0+1 阵列

带有 BTRFS 的三磁盘 RAID0+1 阵列

是否可以在 RAID0 阵列中拥有两个或三个磁盘,并拥有一个与 RAID0 磁盘组合大小一样大的单独磁盘?

或者,是否最好只对较小的磁盘进行 RAID0 并定期备份到较大的磁盘?(这样做的问题是,你不能真正确定你备份的数据是否正确)

据我了解,BTRFS 在 RAID 设置方面更灵活一些,但文档对这一点的说明并不十分清楚 — — 至少在我看来是这样。

答案1

是吗不可能执行以下操作。

我和OP有类似的想法。

  1. 购买两个 3 TB 硬盘和一个 6TB 硬盘。
  2. 在两个 3TB 上构建 RAID0 BTRFS
  3. 在新的 6TB(2*3)和单个 6TB 上创建 RAID1 BTRFS。

无论如何,这就是我要用 mdadm 做的事情。

答案2

尽管 BTRFS 的大多数术语都是按照传统 RAID 模型处理的,但它并不完全适合传统的 RAID 模型。

使用 BTRFS,您可以为元数据(目录和校验和)以及文件数据指定单独的“RAID 级别”。默认情况下,BTRFS 使用“RAID1”(两个副本)元数据和“RAID0”(一个副本)文件数据运行 - 即使在同一个磁盘上(两个元数据副本分别存储在同一磁盘上)。如果您添加另一个磁盘并重新平衡,冗余元数据副本将移动到另一个磁盘。

由于您关心冗余,因此您将希望至少对文件系统和元数据使用 RAID1 模式。这将确保您的数据在各个驱动器上存在两个副本以实现冗余,并且读取速度会略有加快,因为只需读取一个设备(最不繁忙的设备),并使用元数据中的校验和而不是奇偶校验进行完整性检查。

如果您至少有 4 个设备,则可以启用行为类似的“RAID10”模式 - 将数据分成两个条带,并且每个条带镜像到两个磁盘上。

如果您决心获得所需的确切信息,并且不介意添加另一层,那么您可以使用 LVM 来实现。使用 LVM 在较小的磁盘上构建条带卷,然后在其上和较大的磁盘上构建 BTRFS 镜像文件系统...但这会产生相当不可预测的性能,因为写入会受到较大磁盘速度的限制,并且读取会不稳定,具体取决于 BTRFS 是选择从 LVM 集还是较大的磁盘读取。

相关内容