btrfs raid1有多个设备

时间:2014-05-13 00:21:18

标签: linux btrfs

我有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
  • 3TB的其余2.25镜像在剩余的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丢失相同的磁盘具有相同的自由度?

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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

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

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