我以前使用 4 个磁盘设置 RAID10 btrfs。现在我为 sdf 添加了新磁盘(它正在执行平衡):
Total devices 5 FS bytes used 5.73TiB
devid 1 size 3.64TiB used 2.78TiB path /dev/sdd
devid 2 size 3.64TiB used 2.78TiB path /dev/sdc
devid 3 size 3.64TiB used 2.78TiB path /dev/sdb
devid 4 size 3.64TiB used 2.78TiB path /dev/sde
devid 5 size 3.64TiB used 336.00GiB path /dev/sdf
我不明白的是磁盘 5 是如何插入到这个阵列中的?
http://www.easynas.org/wp-content/uploads/2014/05/Raid10.png
通过查看标准 raid10,我会说它进入了图片右侧的第 3 个镜像(存储 A2 A4 A6 块),但我确信对于 BTRFS 来说它的做法不同。
有人可以解释一下吗?
答案1
Btrfs 不会镜像整个磁盘。它镜像单个数据块(“块”)并将它们分散到磁盘各处。
一个块将在磁盘 1 和 2 之间镜像,另一个块将在 3 和 4 之间镜像,还有一个块将在 2 和 5 之间镜像,以此类推。
因此,每个数据块都会在另一个磁盘上有一个备份副本,但并非全部都位于同一个磁盘上。
这样做有两个好处:
- 您的磁盘不必全部大小相同。它会将块分散到任意两个驱动器上的可用空间中。
- 当磁盘发生故障时,一个驱动器不会承担所有冗余和恢复的压力。所有其他具有所需块的磁盘都会被使用,从而加快访问速度。
这是一个非常灵活的系统。我特别喜欢它,因为磁盘不需要大小相同。