什么是 btrfs“5 磁盘 RAID 10”(或具有奇数磁盘的 raid 10)?

什么是 btrfs“5 磁盘 RAID 10”(或具有奇数磁盘的 raid 10)?

这个视频作者说,他从四磁盘 BTRFS raid 10 阵列升级到五磁盘 RAID 10,大约花了一周时间。但我很困惑,五磁盘 RAID 10 如何工作? Raid 10 是条带化在一起的两组或多组(两个驱动器)镜像。五驱动器 RAID 10 是什么意思?

答案1

在 Btrfs 中,“RAID”是块级的,而不是磁盘级的,因此可以拥有比常规数量更多的磁盘,因为每个 1GB 块都可以 RAID 到不同的磁盘组合。

我相信理解 Btrfs 'raid1' 的工作原理是理解 'raid10' 的基础。

例如,raid1配置文件并不意味着整个磁盘都被镜像 - 它意味着“该块的两个副本”。无论阵列中实际有多少磁盘,始终如此其中一个被选择来保存任何特定块的副本:如果您有一个三磁盘“raid1”文件系统,那么一个块可能会复制到 A+B,另一个块复制到 B+C,下一个块复制到 A+C,等等在。 (同样raid1c3意味着正好三份并且raid1c4正好四份。)

因此,与此类似,raid10意味着“两个条带副本”:对于每个新块,选择四个磁盘,该块的一个副本在两个磁盘上条带化,第二个副本在另外两个磁盘上条带化。在您的情况下,第五个磁盘未使用;当。。。的时候下一个不过,块已分配,很可能会选择第五个磁盘来保存它,并且总体而言文件系统应该大致平衡(即您可能拥有 4 个磁盘的所有可能组合)

微软的存储空间“列”也以同样的方式工作(该博客文章有一个形象的以说明布局)。

为什么平衡操作需要这么长时间?

在视频中,磁盘大小相同(每个 4 TB)。让我们假设最坏的情况,即在添加第五个磁盘之前,btrfs 文件系统上几乎没有剩余空间。 (需要少量可用空间来运行平衡操作。)这意味着需要重新分配 16 TB 数据,btrfs filesystem balance以便每个磁盘保存大致相同的数据量,即每个磁盘 3.2 TB。原则上,应该可以通过将每个磁盘的 0.8 TB 复制到新磁盘来实现此目的,但这将涉及就地修改每个 RAID10 块集。 Btrfs 不会实现这一点,而是将每个集合重新分配到所有选定磁盘上的新位置,直到实现平衡。这需要移动大约 80% 的数据,即 16 TB 中的大约 12.8 TB。

相关内容