使用 mdadm 构建由大小不等的驱动器组成的 raid 0

使用 mdadm 构建由大小不等的驱动器组成的 raid 0

我想使用 mdadm 从 3 个物理驱动器创建一个 raid0 阵列:8TB、8TB 和 16TB。

在 16TB 驱动器上创建 2 个 8TB 分区,然后简单地从我最终拥有的 4 个 8TB 分区创建 raid0 阵列可以吗?

该阵列的速度是否与由 2 个物理驱动器组成的 raid0 相当?

更新:目标是创建一个比单个 HDD 更快的 32TB 逻辑卷。

答案1

如果您想要一个有用的答案,您应该更详细地描述您的平台和目标。(操作系统、磁盘速度,所有这类的东西)。

你说的“可以吗……?”的意思不太清楚。什么意思?如果你的意思只是“可以吗?”那么答案从技术上来说应该是“可以”。

如果你的意思是“这是 RAID0 的合理功能用途吗?”那么答案肯定是“不”。不要这样做。有效读/写速度是不是不仅基于阵列中的物理磁盘数量,还取决于磁盘的速度。但是,如果所有磁盘不完全匹配,则计算阵列的实际性能会很复杂。

RAID0 真正做的就是将数据的不同部分分配到不同的磁盘,但它以固定的大小进行分配。
假设您要写入 1GB 的数据。阵列会不是将第一个 1/4 给第一个磁盘,将第二个 1/4 给下一个磁盘,依此类推。数据将被分成小块,并按顺序一次将一块交给下一个磁盘。
如果“下一个磁盘”不是不同的物理磁盘,而是同一磁盘上的另一个分区,则 HDD 必须每次调整写入的位置,将其调整到非常不同的位置,然后再调整回来。这比您只使用磁盘上的简单分区要慢得多。16GB 驱动器将表现得好像它是非常慢了,整个阵列就会被拖垮。

你可以认为这种策略是在 16GB 磁盘上引入恒定的高碎片化没有好处。

如果您真正想要的是将这三个驱动器用作一个尽可能快的共享卷,那么您可以从两个匹配的驱动器创建一个 RAID0 阵列,然后使用 LVM 将 16GB 与 16GB 驱动器组合在一起。请记住,单个驱动器发生故障将不是其余数据不会受到影响。只要有一个驱动器发生故障,您就会丢失所有数据。

答案2

在 16TB 驱动器上创建 2 个 8TB 分区,然后从最终得到的 4 个 8TB 分区创建 raid0 阵列可以吗?此阵列的速度与由 2 个物理驱动器组成的 raid0 相比如何?

因此,最终您将在一个磁盘上得到 4 个条带中的 2 个。该磁盘将性能,它必须在读取其持有的两个部分之间不断寻找。

总的来说,我认为在 2022 年,使用硬盘驱动器的 RAID 0 毫无意义。如果您需要 IOPS、吞吐量或两者兼而有之,我们有 SSD。普通的 SSD 随时都会让您的硬盘黯然失色。

答案3

只要您意识到 16Tb 将获得总 IO 负载的一半,即 IO 负载是 8Tb 驱动器的两倍,您就可以使用了。这并不一定是另一个答案中提到的性能严重浪费。RAID0 阵列的持续 R/W 性能由性能最慢的驱动器乘以阵列中的驱动器数量决定。如果您的 16Tb 驱动器比 8Tb 驱动器性能更好,那么从性能角度来看,使用 2:1:1 配置甚至比使用常规 1:1:1 配置更有意义。

也就是说,存在一些交叉点:

speed(16Tb) >= 1.5 *speed(8Tb)

此后,您的 RAID0 配置将使用所有存储,并且运行速度比其他配置更快。

但请注意,由于系统缓冲,您的特定解决方案可能会严重影响性能。作为替代方案,我建议先将 2x8Tb 分组到 RAID0 中,然后配置由 16Tb 驱动器和 2x8Tb 阵列组成的第二个 RAID0 层。

相关内容