实际的RAID性能?


8

我一直认为以下是RAID的一般经验法则:

  • RAID 0:从剥离中读取和写入的最佳性能,最大风险
  • RAID 1:冗余,适合读取(我相信它可以从不同的硬盘驱动器读取文件的不同部分),而不是最适合写入
  • RAID 0 + 1(01):将RAID 1的冗余与RAID 0的性能相结合
  • RAID 1 + 0(10):RAID 0 + 1的稍好版本
  • RAID 5:良好的读取性能,较差的写入性能,冗余

这是正确的假设吗?(以及它们如何与R / W IO性能的JBOD设置相比)

某些实用的RAID设置是否更适合不同的应用程序:游戏,视频编辑,数据库(访问或SQL)?

我当时在考虑硬盘驱动器,但这是否也适用于固态驱动器?


我对每个RAID类的冗余都有很好的理解,只是不确定读写I / O性能。
wag2639'6

至于JBOD,我知道它不提供性能或冗余,我只是将其作为基本参考。
wag2639 2010年

Answers:


12

突袭0。出色的读写速度。故障风险随着成员磁盘数量的增加而增加。没有平价。

突袭1仅在正确实施驱动程序的情况下,才能实现出色的读取速度-如果使用Areca和LSI RAID控制器,它们可以为RAID 1集提供与RAID 0集几乎相同的读取功能(在10%之内)。请注意,对于软件突袭解决方案,有两种类型,操作系统软件和主板软件。

大多数主板类型的Raid都无法提供良好的Raid 1读取性能。上次我检查Windows和Linux时Raid 1读取的实现也不是很好。BSD有使用轮循读取方法的正确实现的Raid 1实现。

简而言之,如果使用高级控制器,则将Raid 1用于冗余,并用于读取速度。

突袭1/0和突袭0/1。这是组合的东西。假设您有10个磁盘。突袭1/0是每组中都有镜像:组A(1 + 2),组B(3 + 4),组C(5 + 6),组D(7 + 8),组E(9+ 10),然后在5组(AE)上做一组试纸。这样,每个集合都可能有一个驱动器发生故障,但是如果两个驱动器在同一个集合中发生故障,那么您就完成了。

团队0/1的攻击是拥有条带集合A(1 + 2 + 3 + 4 + 5)和集合B(6 + 7 + 8 + 9 + 10)并镜像这两个集合。这样,如果驱动器2和驱动器9发生故障,大多数控制器的确会将其视为完全故障(实际上,您仍然拥有所有数据)。

两者之间几乎没有性能差异,但我认为您通常不会从Raid控制器中获得两者。

突袭5。一个非常混杂的包:对于顺序读取,它比raid 1/0更快,对于随机读取,它的速度稍慢一些。请注意,突袭5的性能非常取决于控制器的速度(例如,您对板载突袭的期望不高)。

突袭6。与Raid 5相比,冗余增加了。两个驱动器随时可能发生故障,并且在1个驱动器发生故障后重建阵列时,仍然存在冗余(请注意,当RAID 5驱动器发生故障时,阵列类似于RAID 0-任何驱动器发生故障=总损失)。

JBOD。我没有想到的优势。


谢谢..因此,根据我的阅读,使用具有性能游戏目标的普通消费级主板,RAID 0最好是没有单独的专用RAID控制器?(我不在乎是否必须重新安装OS +程序,并且数据将在其他位置,可能会出现RAID 5阵列)
wag2639 2010年

2
你说得很对。尽管我担心使用主板RAID的性能与使用基于OS的软件RAID不会有很大的不同(尽管,当然,区别在于您的系统驱动器不能在基于OS的软件RAID中被突袭)。此外,在主板上RAID RAID5的性能是可悲(向下15-20MB / s的在某些情况下!)
布布

2

就像您的问题所暗示的那样,实际上并没有“最佳” RAID配置,仅在特定情况下才是最佳配置,而成本通常是最重要的因素之一。

如果不涉及控制器和软件的细节,这就是我的经验法则。

RAID 0是最快的,因为您可以一次读取和写入多个磁盘,并且没有“浪费”空间以实现冗余。丢失任何磁盘都会丢失该磁盘集,因此RAID 0应该仅在您不关心的机器上使用,或者易于还原并且不包含您所重视的数据。游戏机可能适合这种情况,尽管说实话,速度差异并不那么明显,以至于我愿意接受必须重建机器的增加的风险。如果您有需要这种东西的软件,它对于真正快速的“临时”区域也很有用。

RAID 1是非常常见的镜像设置,通常包含2个磁盘。读取速度通常比单个磁盘快两倍,而写入速度仅比单个磁盘慢一点。在服务器上,RAID 1是操作系统文件的绝佳选择。当您需要冗余,存储需求不至于需要RAID 5且您可能会从额外的读取速度中受益时(数据库日志文件通常放置在RAID 1上),它也是一个不错的选择。

除了企业侧某些供应商的产品外,通常不使用RAID 2到RAID 4(不是问题)。

RAID 5是在不浪费太多冗余空间和仍然获得额外磁盘额外性能之间的折衷方案。读取速度非常好,因为所有磁盘都可以参与。RAID 5有时可能会导致写入速度出现问题,尽管我认为根据情况有时会夸大其词。即使使用进行奇偶校验计算的硬件,RAID 5也会遭受少量随机写入,因为每个逻辑写入操作需要4个I / O(从数据磁盘读取,从奇偶校验磁盘读取,写入数据磁盘,写入奇偶校验磁盘)。当您想要最大程度地利用磁盘集获得的存储量同时仍具有良好的安全性时,请选择RAID 5。当您的应用程序具有高性能需求并且需要大量小的随机写入(虚拟机硬盘,数据库数据文件)时,请避免使用。还应注意,当现代大型磁盘作为RAID 5集的一部分发生故障时,重建需要花费大量时间,这会使您的数据遭受第二次磁盘故障的风险更长。RAID 6可以降低此风险,但会带来更差的随机写入性能。

RAID 1/0和0/1具有几乎相同的性能特征。尽管最好是1/0,因为失败意味着仅重建涉及的一对磁盘,而不是整个磁盘带。RAID 1/0是问题中提到的最快的通用配置。读写性能都很好(本质上可以一次从所有磁盘读取数据,必须对多个磁盘进行写操作,但是不需要像RAID 5那样的读/读/写/写周期),尽管RAID 5在某些情况下可以胜出。RAID 1/0在几乎所有情况下也是最昂贵的(毫不奇怪)。仅在性能至关重要,数据具有很高的价值并且应用程序无停机时间时才应使用它。通常,数据库服务器(或至少它们的数据文件)是RAID 1/0的良好候选者。

确实可以将固态驱动器置于RAID配置中,特别是因为其冗余值。但是,许多SSD的性能要优于其所连接的总线(SATA),特别是对于读取操作而言,因此RAID的性能影响不那么吸引SSD。


0

如果您购买硬件RAID控制器,请使用RAID5。它具有最少的开销,并且硬件RAID控制器几乎可以消除写开销损失,因为它可以计算硬件中的奇偶校验位。Raid5还读取多个磁盘,从而同时提高了读写速度。

是的,这也适用于固态驱动器。在Raid0中对SSD进行的测试显示出几乎线性的速度增加。

Raid5是迄今为止服务器领域使用最广泛的技术,但是对于仅配备2个硬盘驱动器的笔记本电脑,我建议使用raid1进行镜像。

如果硬盘驱动器发生故障,JBOD没有冗余,但是根据设置可以对数据进行条带化以提高性能,如RAID。


1
JBOD通常无法分条,因为它是为与不同大小的磁盘一起使用而设计的-如果大小相同,则应该已经使用RAID 1或RAID 0。
达斯Android
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.