我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

В 过去的材料 我们已经以金士顿硬盘为例考虑过“我们是否会在 SSD 上应用 RAID”的问题,但我们只是在零级别内做到了。 在本文中,我们将分析在最流行的 RAID 阵列类型中使用专业和家用 NVMe 解决方案的选项,并讨论控制器兼容性。 博通 配备金士顿硬盘。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

为什么 SSD 上需要 RAID?

与 HDD 存储阵列相比,基于 SSD 的存储阵列的优势包括对驱动器上数据的访问速度更快,并且具有卓越的读/写性能。 然而,基于 SSD 的理想 RAID 性能需要处理器、缓存、软件和硬件的最佳组合。 当所有这些因素完美结合时,SSD RAID 的性能将大大优于使用传统 HDD 的同类配置。

典型的 SSD 比 HDD 消耗更少的电量,因此当您在 RAID 阵列中组合大量 SSD 时,与 HDD RAID 阵列相比所节省的能源也可以转化为更低的企业能源费用成本。

然而,SSD RAID 也有局限性和缺点,特别是与同等容量的硬盘相比,每 GB 空间的价格更高。 并且闪存故障之间的时间被限制在一定数量的重写周期内。 也就是说,SSD驱动器有一定的使用寿命,这取决于操作:上面覆盖的信息越多,驱动器失效的速度就越快。 另一方面,企业级SSD的使用寿命与机械硬盘相当。

金士顿 SSD 如何与 Broadcom 控制器一起工作在 RAID 模式下

在 SSD 的早期,RAID 设计有许多细微差别。 包括由于使用容错性较差的 HDD。 固态驱动器比基于磁盘的同类驱动器可靠得多。 众所周知,SSD 解决方案中没有移动部件,因此机械损坏降至零。 考虑到家用电脑和任何服务器、UPS、浪涌保护器,甚至电源都可以保护您,固态硬盘因电涌而发生故障的可能性也很小。

同时,固态硬盘还有另一个显着的优点:即使存储单元因写入而磨损,仍然可以从中读取数据,但如果磁盘损坏了,唉。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

如今,在不同级别的 RAID 阵列中使用 SSD 解决方案已是很常见的做法。 最重要的是选择合适的 SSD,延迟最小。 理想情况下,使用同一制造商和同一型号的 SSD,这样您就不会得到支持不同类型负载并且基于不同类型内存、控制器和其他技术构建的驱动器的大杂烩。 也就是说,如果我们决定从金士顿购买 16 块或 XNUMX 块 NVMe SSD 来创建 RAID 阵列,那么如果它们都来自同一系列和型号范围会更好。

顺便说一下,在 上一篇文章 当我们谈论金士顿的 NVMe SSD 时,我们引用 Broadcom 控制器是有原因的。 事实上,这些设备的手册立即规定了兼容的驱动器(包括上述美国 SSD 制造商的解决方案),控制器可以完美地工作。 选择用于 RAID 的控制器-SSD 捆绑包时应依赖此信息。

我们分析金士顿SSD在最流行的RAID类型“1”、“5”、“10”、“50”中的工作情况

因此,“零”RAID 级别不提供数据冗余,而仅提高性能。 RAID 0 根本不提供任何数据保护,因此我们不会在企业领域考虑它。 另一方面,RAID 1 提供完全冗余,但只能带来适度的性能提升,因此,如果在构建 SSD RAID 阵列时性能提升不是主要考虑因素,则应考虑使用 RAID XNUMX。

基于金士顿 SSD 和 Broadcom 控制器的 RAID 1

因此,基于 Broadcom MegaRAID 9460-16i 控制器的第一级 RAID 阵列结合了 32 到 1000 个金士顿驱动器,这些驱动器互为副本,并提供完全冗余。 如果使用传统硬盘时,写入和读取数据的速度保持在该硬盘的水平,那么使用NVMe SSD解决方案,我们的性能将获得十倍的提升。 特别是在数据访问时间方面。 例如,在服务器 RAID 2 中使用两个金士顿 DC1M U.350 NVMe SSD,我们可以获得 000 次随机读取 IOPS 和 75 次写入 IOPS。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

在顺序读取速度方面,结果将与驱动器的特性相匹配 - 3200 MB/s。 但由于两个 NVMe SSD 都处于工作状态,因此可以同时从它们读取数据,这使得读取操作相当快。 但写入速度(号称2000MB/s)会慢一些,因为每次写入操作都会执行两次。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

RAID 1 非常适合小型数据库或任何其他需要容错但容量较低的环境。 驱动器镜像在灾难恢复场景中特别有用(性能略有下降),因为如果阵列中的一个驱动器发生故障,它可以立即“复苏”重要数据。 但由于这种级别的保护需要将镜像数据的存储容量加倍(100 TB 需要 200 TB 的存储),因此许多企业系统使用更经济的存储选项:RAID 5 和 RAID 6。

基于金士顿 SSD 和 Broadcom 控制器的 RAID 5

要组织第五级 RAID 阵列,我们至少需要三个驱动器,其上的数据是交错的(循环写入阵列中的所有驱动器),但不重复。 在组织它们时,应该考虑到它们更复杂的结构,因为这里出现了“校验和”(或“奇偶校验”)这样的概念。 此概念意味着逻辑代数 XOR 函数(也称为异或“OR”),它规定在阵列中至少使用三个驱动器(最多 32 个)。 在这种情况下,奇偶校验信息被写入阵列中的所有“磁盘”。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

对于由四个金士顿 DC500R SATA SSD(每个容量为 3,84 TB)组成的阵列,我们获得 11,52 TB 的空间和 3,84 TB 的校验和。 如果将 16 个容量为 1000 TB 的金士顿 DC2M U.7,68 NVMe 驱动器组合成一个 115,2 级 RAID,我们将得到 7,68 TB 的容量,并损失 5 TB。 正如您所看到的,驱动器越多,最终就越好。 它还更好,因为 RAID 0 中的驱动器越多,整体写入性能就越高。 并且线性读取将达到RAID XNUMX的水平。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

RAID 5 磁盘组提供高吞吐量(特别是对于大文件)和冗余,并且功耗最小。 这种类型的阵列组织最适合同时执行许多小型输入/输出 (I/O) 操作的网络。 但您不应该将其用于需要对小块或小块进行大量写入操作的任务。
还有一个细微差别:如果至少一个 NVMe 驱动器发生故障,RAID 5 就会进入降级模式,而另一个存储设备的故障可能对所有数据变得至关重要。 如果阵列中的一个驱动器发生故障,RAID 控制器将使用奇偶校验信息来重新创建任何丢失的数据。

基于金士顿 SSD 和 Broadcom 控制器的 RAID 10

因此,RAID 0 为我们提供了速度和访问时间的两倍提升,而 RAID 1 提供了可靠性。 理想情况下,它们应该被组合起来,此时 RAID 10(或 1 + 0)就可以发挥作用。 “十”由四个 SATA SSD 或 NVMe 驱动器(最多 32 个)组装而成,意味着“镜像”阵列,其中驱动器的数量必须始终是四的倍数。 该阵列中的数据是使用固定块分区(如 RAID 0 的情况)和驱动器之间的条带化写入的,从而将副本分布在 RAID 1 阵列中的“驱动器”上。并且能够在同一位置访问多组驱动器。同时,RAID 10展现出高性能。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

由于 RAID 10 能够跨多个镜像对条带化数据,这意味着它可以容忍一对驱动器中的一个驱动器发生故障。 但是,如果两个镜像对(即所有四个驱动器)均出现故障,则将不可避免地发生数据丢失。 因此,我们还获得了良好的容错性和可靠性。 但请记住,与 RAID 1 一样,第十级阵列仅使用总容量的一半,因此是一种昂贵的解决方案。 而且设置起来也很困难。

RAID 10 适用于需要镜像磁盘组 100% 冗余的数据仓库,以及 RAID 0 提高的 I/O 性能。它是中型数据库或任何需要更高容错能力的环境的最佳解决方案比 RAID 5。

基于金士顿 SSD 和 Broadcom 控制器的 RAID 50

类似于5级RAID的组合阵列,是由50级阵列构建而成的5级阵列。 与之前一样,该阵列的主要目标是在保持 RAID XNUMX 阵列数据可靠性的同时实现双倍性能。同时,在发生驱动器故障时,RAID XNUMX 比标准 RAID XNUMX 提供更高的写入性能和更好的数据保护,并且还能够在其中一个驱动器发生故障时更快地恢复。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

RAID 50 驱动器组将数据分割成更小的块,然后将其条带到每个 RAID 5 阵列中。RAID 5 驱动器组又将数据分割成更小的块,计算奇偶校验,对块执行逻辑 OR 运算,然后对磁盘组中的每个磁盘执行数据块写入和奇偶校验操作。

虽然如果其中一个驱动器发生故障,性能将不可避免地下降,但其影响并不像 RAID 5 阵列那么严重,因为一次故障仅影响其中一个阵列,而另一个阵列则完全正常工作。 事实上,如果每个故障“磁盘”位于单独的 RAID 50 阵列中,则 RAID 5 可以承受最多 XNUMX 个 HDD/SSD/NVMe 驱动器故障。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

RAID 50 最适合需要高可靠性、必须处理大量请求、同时保持高数据传输速率和比 RAID 10 更低的驱动器成本的应用程序。但是,由于设置 RAID 50 阵列至少需要六个驱动器,成本并没有完全排除在外。 RAID 50 的一个缺点是,与 RAID 5 一样,它需要复杂的控制器:例如 我们提到的 在上一篇文章中 MegaRAID 9460-16i 来自博通。

还值得注意的是,由于分配了保存奇偶校验记录的容量,因此 RAID 50 的磁盘空间使用量比 RAID 5 少。 然而,它仍然比其他 RAID 级别(尤其是使用镜像的级别)拥有更多的可用空间。 由于至少需要六个驱动器,RAID 50 可能是一个昂贵的选择,但额外的磁盘空间通过保护公司数据证明了成本的合理性。 对于需要高存储可靠性、高请求率、高传输率和高存储容量的数据,建议使用这种类型的阵列。

RAID 6 和 RAID 60:我们也没有忘记它们

既然我们已经讨论了第五层和第五十层的阵列,那么不提RAID 6和RAID 60这样的阵列组织类型就太可惜了。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

RAID 6 的性能与 RAID 5 类似,但这里至少有两个驱动器被赋予奇偶校验,这使得阵列能够在两个驱动器发生故障时幸存下来而不会丢失数据(在 RAID 5 中,这种情况是非常不受欢迎的)。 这导致更高的可靠性。 否则,一切都与第五级阵列中的相同:如果一个或两个磁盘发生故障,RAID 控制器使用奇偶校验块来重新创建所有丢失的信息。 如果两个驱动器发生故障,则恢复不会同时发生:首先,第一个驱动器重新启动,然后是第二个驱动器。 因此,执行了两次数据恢复操作。

我们分享我们的经验,SSD 在 RAID 框架内的表现如何以及哪个阵列级别更有利可图

很容易猜测,如果RAID 50是60级阵列的6级阵列,那么RAID 50就是我们刚才讲的8级阵列的16级阵列。 也就是说,这种 RAID 存储的组织方式可以让您在每组 RAID XNUMX 驱动器中丢失两个 SSD 的情况下幸存下来。其操作原理与我们在 RAID XNUMX 一节中谈到的类似,但一个故障的数量XNUMX 级阵列可承受从 XNUMX 个驱动器增长到 XNUMX 个驱动器。 通常,此类阵列用于在线客户服务,这需要高容错能力。

总结:

尽管镜像比 RAID 50/60 提供了更多的容错能力,但它也需要更多的空间。 由于数据量增加了一倍,您实际上只能获得服务器中安装的用于记录和存储信息的驱动器总容量的 50%。 在 RAID 50/60 和 RAID 10 之间进行选择很可能取决于可用预算、服务器容量和数据保护需求。 此外,当我们谈论 SSD 解决方案(企业级和消费者级)时,成本就显得尤为重要。

同样重要的是,我们现在确信基于 SSD 的 RAID 是一种完全安全的解决方案,也是当今企业的正常做法。 作为家庭使用的一部分,如果预算允许,也有理由切换到 NVMe。 如果您仍然有疑问,为什么需要这一切,请回到文章开头 - 我们已经详细回答了。

本文是在 Broadcom 同事的支持下编写的,他们向金士顿工程师提供控制器,用于企业级 SATA/SAS/NVMe 驱动器的测试。 由于这种友好的共生关系,客户不必怀疑金士顿生产的带有 HBA 和 RAID 控制器的硬盘的可靠性和稳定性。 博通.

有关金士顿产品的更多信息,请访问 官方网站 公司。

来源: habr.com

添加评论