![使用 mdadm 构建由大小不等的驱动器组成的 raid 0](https://linux22.com/image/780180/%E4%BD%BF%E7%94%A8%20mdadm%20%E6%9E%84%E5%BB%BA%E7%94%B1%E5%A4%A7%E5%B0%8F%E4%B8%8D%E7%AD%89%E7%9A%84%E9%A9%B1%E5%8A%A8%E5%99%A8%E7%BB%84%E6%88%90%E7%9A%84%20raid%200.png)
我想使用 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 层。