1

我有 6 台设备:4TB、3TB、2TB、2TB、1.5TB、1TB(/dev/sda 到 /dev/sdf)。

第一个问题:

使用 RAID-1,我将拥有:

  • 2TB 镜像到 2TB
  • 1TB 镜像在 0.5@4TB + 0.5@3TB
  • 1.5TB 镜像在 1.25@4TB + 0.25@3TB
  • 其余 2.25 的 3TB 镜像在其余的 2.25TB 的 4TB 中。

在这种情况下,我的总大小将是 (4 + 3 + 2 + 2 + 1.5 + 1) = 13.5/2 = 6.75TB

$ mkfs.btrfs --data raid1 --metadata raid1 /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf为我提供大约 6.75TB 吗?如果是,我可以承受丢失多少磁盘(以及哪些?)?

第二个问题:

例如,使用 RAID-1,我可以承受丢失三个磁盘:

  • 一个 2TB 磁盘,
  • 1TB 磁盘和
  • 1.5TB磁盘,

不丢失数据。

如何在使用 btrfs 丢失相同的磁盘时拥有同样的自由?

谢谢!

4

1 回答 1

3

Btrfs 以块为单位分配数据(及其 RAID 1 副本),因此可以很好地处理不同大小的硬盘。您将收到所有硬盘的总和,除以 2 - 并且不需要考虑如何将它们放在相似大小的对中。

如果不止一个磁盘发生故障,您总是有丢失数据的危险:RAID 1 无法处理同时丢失两个磁盘。在上面给出的示例中,如果错误的两个磁盘死了,您总是会丢失数据。

如果多个磁盘发生故障,Btrfs 会增加丢失数据的机会,因为它会随机分配块,某些块仅存储在发生故障的两个设备上的可能性更高。另一方面,如果您丢失数据,由于同样的原因,您可能会丢失更少的数据。平均而言,它总计丢失 n 位的机会相同,但是如果您对仅丢失一位的机会感兴趣,那么使用 btrfs 会更糟。

再说一遍,您还应该考虑使用校验和的优势,这有助于防止磁盘上的数据损坏。

于 2014-05-13T00:44:32.683 回答