实际的 RAID 性能?

实际的 RAID 性能?

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

  • RAID 0:剥离后读写性能最佳,风险最大
  • RAID 1:冗余,适合读取(我相信它可以从不同的硬盘读取文件的不同部分),但不适合写入
  • RAID 0+1(01):结合了 RAID 1 的冗余性和 RAID 0 的性能
  • RAID 1+0 (10):RAID 0+1 的略好版本
  • RAID 5:读取性能好,写入性能差,冗余

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

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

我正在考虑硬盘驱动器,但这也适用于固态驱动器吗?

答案1

突袭 0。读写速度快。随着成员盘数量的增加,故障风险也会增加。无奇偶校验。

突袭 1. 读取速度很快只有正确实施驱动程序- 如果您使用 Areca 和 LSI RAID 控制器,它们可以为 RAID 1 组提供与 RAID 0 组几乎相同的读取能力(相差 10% 以内)。请注意,软件 RAID 解决方案有两种类型:操作系统软件和主板软件。

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

简而言之,使用 Raid 1 实现冗余,如果使用高级控制器,还可以提高读取速度。

突袭 1/0 和突袭 0/1。这是一个组合。假设你有 10 个磁盘。Raid 1/0 是每个集合中都有镜像:集合 A(1+2)、集合 B(3+4)、集合 C(5+6)、集合 D(7+8)、集合 E(9+10),然后在 5 个集合(AE)上进行条带化。这样,每个集合可以有一个驱动器发生故障,但如果同一集合中有两个驱动器发生故障,你就完了。

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

两者之间的性能差异很小,但我认为通常无法从 Raid 控制器获得这两者。

突袭 5. 好坏参半:对于顺序读取,它比 raid 1/0 快,而对于随机读取,它比 raid 1/0 稍慢。请注意,raid 5 的性能非常依赖于控制器的速度(例如,您不能对板载 raid 抱有太大的期望)。

突袭 6。与 Raid 5 相比,冗余度有所提高。两个驱动器可能随时发生故障,当 1 个驱动器发生故障后重建阵列时,仍然有冗余(请注意,当 raid 5 驱动器发生故障时,阵列与 raid 0 类似 - 任何驱动器发生故障 = 全部丢失)。

磁盘阵列。我想不出有什么优势。

答案2

正如您的问题所暗示的,实际上并不存在“最佳”的 RAID 配置,只有适合特定情况的配置才是最佳的,而成本往往是最重要的因素之一。

无需深入讨论控制器和软件的细节,以下是我的经验法则。

RAID 0 是最快的,因为您可以同时读取和写入多个磁盘,并且不会因为冗余而“浪费”任何空间。丢失任何磁盘,您就会丢失整个磁盘组,因此 RAID 0 应该只用于您不关心的机器,或者易于恢复且不包含您重视的数据的机器。游戏机可能适合这种情况,但老实说,速度差异并不明显,我愿意接受必须重建机器的增加风险。如果您有需要这种东西的软件,它对于非常快的“暂存”区域也很有用。

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

RAID 2 到 4(不在问题范围内)通常不使用,除非企业方面的某些供应商的产品使用。

RAID 5 是在不浪费过多空间实现冗余和仍能获得额外磁盘的额外性能之间的折衷。由于所有磁盘都可以参与,因此读取速度非常好。写入速度有时可能是 RAID 5 的问题,尽管我认为这有时根据情况被夸大了。即使使用执行奇偶校验计算的硬件,RAID 5 上的小随机写入也会受到影响,因为每个逻辑写入操作都需要 4 个 I/O(从数据磁盘读取、从奇偶校验磁盘读取、写入数据磁盘、写入奇偶校验磁盘)。当您想要最大化磁盘组的存储量同时仍具有良好的安全性时,请选择 RAID 5。当您的应用程序具有高性能需求并需要大量小随机写入(虚拟机硬盘、数据库数据文件)时,请避免使用 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 1/0 上。

固态硬盘确实可以放入 RAID 配置中,尤其是其冗余值。不过,许多 SSD 的性能都优于它们所连接的总线 (SATA),尤其是读取操作,因此 RAID 的性能效果对 SSD 来说不那么引人注目。

答案3

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

是的,这也适用于固态硬盘。对 Raid0 中的 SSD 进行的测试显示速度几乎呈线性增长。

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

如果硬盘出现故障,JBOD 没有冗余,但根据设置可以对数据进行条带化以提高像 raid 一样的性能。

相关内容