是否增加堆的驱动器到RAID 0提高性能?

是否增加堆的驱动器到RAID 0提高性能? 我知道在条纹RAID中两个驱动器通常会比单个驱动器更快,但是我会注意到在条纹RAID和8个驱动器之间的性能差异? 在你没有得到任何好处之前,在RAID中驱动器的数量是否有一个普遍的限制?

这里也提到了类似的问题

将更多驱动器添加到RAID 10arrays是否可以提高性能?

但我真的问是否增加许多驱动器到一个RAID 0有改善而不是刚刚添加说2或4.性能不断增加?

理论上是的,更多的驱动器在raid0会导致更高的性能,因为负载分享更多的驱动器。 然而在实践中,你将受到RAID控制器带宽,CPU和内存性能等的限制。 性能增加不会是线性的,即4个磁盘不是2个磁盘的两倍。

在任何具有raid控制器的现代系统中,甚至使用Linux mdadm软件,使用8个驱动器都比使用2个驱动器要快,而且不应该被其余​​的系统性能所束缚。 CPU,RAID和/或磁盘控制器,内存,这一切都应该能够处理它。 您可能会看到您添加的驱动器越多,使用的系统资源也越多。 尤其是如果您在软件组合中使用板载SATA控制器。 但是没有任何东西会阻碍整体的可用性。 如果使用linux,则可能需要使用已经configuration的内核,而不是“抢占”,以使面向服务器的任务优先于用户响应。

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

当然,你添加的驱动器越多,其中一个失败的机会就越高,你的整个RAID就会被摧毁。 如果幸运的话,我预计8个驱动器的RAID将不会持续超过一年或两年。 16个驱动器的raid0会要求麻烦,然后我会考虑一个raid10,它仍然是足够快,你有更less的担心。

至于有多less驱动器可以最大化系统资源,除非我有详细的系统规格,否则我不会知道。 我想你会受到更多的失败率的限制,如果你超过16个磁盘(我不想考虑它)。

当然,你只能使用raid0来查看可能会在没有问题的情况下随时丢失的数据。 对于诸如构build服务器之类的东西,或者用于大型科学计算的临时空间,这是非常有用的。 实际上,这些场景就是我经常使用的raid0,这是一个很好的方式,可以从一堆旧的,容量较低且价格低廉的磁盘中挤出更多的生命,否则这些磁盘会被灰尘收集起来。 你甚至可以混合大小,至less与mdadm。

如果使用mdadm,可能需要考虑只使用raid10,因为在某些configuration下它可以接近raid0的性能,即读取raid0的性能,并且已经比其他raid级别(raid0除外)提高了写入性能。 你会得到比其他RAID级别更好的冗余,与raid0相比只有轻微的速度惩罚。 那将是两全其美,你不会经常发现。

https://en.wikipedia.org/wiki/RAID#Non-standard_levels

Linux MD RAID 10提供了一个通用RAID驱动程序,其“近”布局默认为具有两个驱动器的标准RAID 1,以及具有四个驱动器的标准RAID 1 + 0; 不过,它可以包含任何数量的驱动器,包括奇数。 凭借其“远”布局,MD RAID 10可以同时运行分条和镜像,即使只有两个驱动器在f2布局; 这将运行带条纹读取的镜像,从而提供RAID 0的读取性能。由Linux软件RAID提供的常规RAID 1不会进行条带读取,但可以并行执行读取。

正如在注释中所build议的那样,如果使用所有的磁盘空间而不是让最小的磁盘定义数组的大小,那么与mdadm混合的大小将不会提高速度。

另外寻求时间不会在raid0中提高,甚至会变慢一点。 对于基于SSD的RAID 0来说,寻找时间会很短(在0.08和0.16毫秒之间),那么我预期的并不重要。

这取决于工作量,但恕我直言是是增加2个额外的磁盘到现有的2个磁盘arrays应该给更好的整体性能。

你需要知道瓶颈在哪里:

  • CPU – CPU可以处理多less数据stream,
  • 总线/控制器 – 它可以携带多less数据,
  • SSD / HDD – 它可以提供多less数据。

假设有一个Linux软件RAID,那么添加两个额外的磁盘可能会导致:

  • 〜两倍的访问时间,以足够大的数据块,导致;
  • 〜双IOPS,
  • 〜双倍吞吐量,假设控制器有足够的总线和CPU可以处理stream量。

*以下因素决不是两次提升,总是less于10-20%。 它看起来或多或less是线性的。 请不要把它当作权威的答案,我没有做任何研究。