在
上一篇文章中,我们已经以金士顿驱动器为例解决了“ RAID是否适用于SSD”的问题,但是我们仅在零级框架内进行了此操作。 在本文中,我们将分析在最流行的RAID阵列中使用专业和家用NVMe解决方案的选项,并讨论
Broadcom控制器与Kingston驱动器的兼容性。

为什么在SSD上需要RAID?
与硬盘存储阵列相比,基于SSD的存储阵列的优势包括减少了对驱动器的访问时间以及出色的读/写性能。 但是,为了获得基于SSD的RAID的理想性能,需要处理器,缓存,软件和硬件的最佳组合。 当所有这些因素完美地结合在一起时,SSD的RAID阵列可以大大胜过使用传统HDD的可比配置。
典型的SSD消耗的功率比硬盘驱动器少,因此,当将大量固态驱动器组合到RAID阵列中时,与从HDD的RAID阵列相比节省能源还可以降低支付公司电费的成本。
但是,SSD RAID具有局限性和缺点:与具有类似容量的硬盘驱动器相比,每GB空间的价格更高。 闪存MTBF受一定数量的重写周期限制。 也就是说,SSD驱动器具有一定的使用寿命,具体取决于操作:使用寿命越长,其信息被重写的越多,驱动器发生故障的速度就越快。 另一方面,企业固态硬盘的寿命可与机械硬盘媲美。
金士顿SSD如何通过Broadcom控制器以RAID模式生存
在SSD出现之初,RAID设计充满了许多细微差别。 包括由于使用了较少的容错HDD驱动器。 固态驱动器比基于磁盘的固态驱动器可靠得多。 众所周知,SSD解决方案中没有移动元件,因此机械损伤降低到了零。 考虑到在家用PC和任何服务器的水平上,UPS,配电盘甚至电源保护着SSD,由于电涌而导致的SSD故障也不大可能发生。
同时,固态驱动器还有另一个显着的优点:即使存储单元用完了写操作,仍然可以从其中读取数据,但是如果磁盘损坏,可惜。

如今,在不同级别的RAID阵列中使用SSD解决方案是很正常的做法。 最主要的是选择正确的固态驱动器,其延迟最小。 同样理想的是使用来自同一制造商和相同型号的SSD,这样就不会出现杂乱无章的驱动器,这些驱动器支持不同类型的负载,并且基于不同类型的内存,控制器和其他技术构建。 也就是说,如果我们决定购买四个或16个金士顿NVMe SSD来创建RAID阵列,那么最好是它们全部来自相同的系列和型号范围。
顺便说一句,在
上一篇文章中,当我们谈论金士顿的NVMe SSD时
,我们以Broadcom控制器为例。 事实是,在这些设备的手册中,立即注册了兼容的驱动器(包括上述美国制造商的SSD解决方案),控制器将可以正常使用。 为RAID选择“ controller-SSD”捆绑软件时,有必要依赖此信息。
我们分析了金士顿SSD在最受欢迎的RAID类型中的工作-“ 1”,“ 5”,“ 10”,“ 50”
因此,RAID的“零”级别不能提供数据冗余,而只能提高生产率。 RAID 0根本不提供任何数据保护,因此,我们将不在企业网段内考虑它。 另一方面,RAID 1提供了完全的冗余,但仅适度地提高了性能,因此在从SSD创建RAID阵列时,如果性能提高不是根本因素,则应考虑使用RAID 1。
基于金士顿SSD和Broadcom控制器的RAID 1
因此,基于Broadcom MegaRAID 9460-16i控制器的第一级RAID阵列结合了两个到32个金士顿驱动器,它们是彼此的副本,并提供完整的冗余。 如果使用传统的HDD,则写入和读取数据的速度将保持在此HDD本身的水平,然后使用NVMe SSD解决方案,性能会提高十倍。 特别是在数据访问时间方面。 例如,对于服务器RAID 1中的两个金士顿DC1000M U.2 NVMe SSD,读取随机数据时获得350,000 IOPS,写入时获得75,000 IOPS。

在顺序读取速度方面,结果将对应于驱动器的特性-3200 MB / s。 但是,由于两个NVMe SSD都可以运行,因此可以同时从它们读取数据,这使得读取操作相当快。 但是写入速度(声称为2000 MB / s)将变慢,因为每个写入操作执行两次。

RAID 1阵列非常适合小型数据库或任何其他需要容错但容量较小的环境。 镜像驱动器在灾难恢复情况下特别有用(性能会有所下降),因为如果阵列中的一个驱动器发生故障,它可以提供重要数据的即时“恢复”。 但是,由于此级别的保护要求将存储数据镜像副本的容量加倍(100 TB将需要200 TB的存储空间),因此许多企业系统使用更经济的存储选项:RAID 5和RAID 6。
基于金士顿SSD和Broadcom控制器的RAID 5
要组织第五级RAID阵列,我们至少需要三个驱动器,其上的数据是条带化的(周期性地写入阵列中的所有驱动器),但不能重复。 在组织它们时,应该考虑它们的更复杂的结构,因为此处出现了“校验和”(或“奇偶校验”)这样的概念。 此概念指的是逻辑代数函数XOR(它也是唯一的“ OR”),该函数指示在阵列中至少使用三个驱动器(最大-32)。 在这种情况下,奇偶校验信息会记录在阵列中的所有“磁盘”上。

对于四个容量为每个3.84 TB的金士顿DC500R SATA SSD阵列,我们将获得11.52 TB的空间和3.84的校验和。 如果将16个金士顿DC1000M U.2 NVMe驱动器结合到第五级RAID中,容量为7.68 TB,我们将讲授115.2 TB,而损失7.68 TB。 如您所见,驱动器越多越好。 这样做也更好,因为RAID 5中的驱动器越多,总写入性能就越高。 线性读取将达到RAID 0。

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显示了高性能。

由于RAID 10能够跨多个镜像对分配数据,因此这意味着它可以允许一对驱动器发生故障。 但是,如果两个镜像对(即所有四个驱动器)都发生故障,将不可避免地发生数据丢失。 结果,我们还获得了良好的容错性和可靠性。 但是需要牢记的是,像RAID 1一样,十分之一级阵列仅使用总容量的一半,因此是昂贵的解决方案。 是的,并且很难配置。
RAID 10适用于要求镜像磁盘组100%冗余以及提高RAID 0 I / O性能的数据仓库,这是中型数据库或任何要求容错能力高于RAID的环境的最佳解决方案5,
基于金士顿SSD和Broadcom控制器的RAID 50
类似于第十级RAID的组合阵列,它是从第五级阵列创建的零级阵列。 与以前的情况一样,该阵列的主要目标是在保持RAID 5阵列数据可靠性的同时将性能提高一倍;同时,在发生磁盘故障时,RAID 50可以提供比标准RAID 5更高的写入性能和更好的数据保护。如果其中一个驱动器发生故障,恢复速度更快。

RAID 50磁盘组将数据拆分为较小的块,然后将其分配给每个RAID5。RAID5磁盘组又将数据拆分为较小的块,计算奇偶校验,对这些块执行OR逻辑运算,然后对磁盘组中的每个磁盘执行对数据块和奇偶校验的写操作。
而且,尽管在其中一个驱动器发生故障的情况下性能不可避免地会降低,但它并没有RAID 5阵列那么重要,因为一个故障仅影响其中一个阵列,而另一个故障则可以正常运行。 实际上,如果每个故障驱动器位于单独的RAID 5阵列中,则RAID 50最多可以承受HDD / SSD / NVMe驱动器的八次故障。

RAID 50最适合要求高可靠性的应用程序,它必须处理大量请求,同时保持较高的数据传输速率和比RAID 10低的驱动器成本。但是,由于至少需要六个驱动器来配置RAID 50,成本并未完全排除在外。 RAID 50的缺点之一是,像RAID 5一样,它需要一个复杂的控制器:例如
我们在上一篇文章中
提到的 Broadcom
MegaRAID 9460-16i 。
还值得注意的是,由于为奇偶校验记录的内容分配了容量,因此RAID 50的磁盘空间少于RAID 5。 但是,它仍然比其他RAID级别(尤其是使用镜像的RAID级别)具有更多的可用空间。 RAID 50最少需要六个驱动器,因此可能是一个昂贵的选择,但是额外的磁盘空间可以通过保护公司数据来证明成本。 建议将这种类型的阵列用于需要高存储可靠性,高请求频率,高传输速度和高承载容量的数据。
RAID 6和RAID 60:我们没有忘记它们
由于我们已经讨论了第五层和第五十层的阵列,因此不提及RAID 6和RAID 60这样的阵列组织类型是一个罪过。

RAID 6的性能类似于RAID 5,但此处至少两个驱动器是在奇偶校验下给出的,这使阵列能够在两个驱动器发生故障的情况下幸免于难,而不会丢失数据(在RAID 5中,这种情况极为不理想)。 这样可以确保更高的可靠性。 否则,所有内容都与第五层阵列中的相同:如果一个或两个磁盘发生故障,RAID控制器将使用奇偶校验块来重新创建所有丢失的信息。 如果两个驱动器发生故障,则不会同时发生恢复:首先,恢复第一个驱动器的动画,然后恢复第二个驱动器的动画。 因此,执行两个数据恢复操作。

很容易猜到,如果RAID 50是第五级阵列的零级阵列,那么RAID 60是第六级阵列的零级阵列,我们刚刚谈到过。 也就是说,通过这种RAID存储结构,您可以在每组RAID 6驱动器中丢失两个SSD的情况下幸免于难,其工作原理与我们在RAID 50一节中所描述的相似,但是第60级阵列可以承受的故障数量从8个增加到10个。 16个驱动器。 通常,这些阵列用于在线客户服务,这需要很高的容错能力。
总结一下:
尽管镜像提供了比RAID 50/60更高的容错能力,但它还需要更多空间。 由于数据量增加了一倍,因此实际上您只收到服务器中安装的用于记录和存储信息的驱动器总容量的50%。 在RAID 50/60和RAID 10之间进行选择最有可能取决于您的预算,服务器容量和数据保护需求。 当我们谈论SSD解决方案(公司级和消费者级)时,成本就显得突出了。
同样重要的是,我们现在可以肯定地知道-基于SSD的RAID是一种完全安全的解决方案,是现代企业的常规做法。 如果预算允许,作为家庭使用的一部分,还有理由改用NVMe。 如果您还有一个问题,为什么所有这些都是必要的,请回到文章的开头-我们已经详细回答了。
本文是在Broadcom同事的支持下编写的,该同事将其控制器提供给Kingston工程师,以使用企业级SATA / SAS / NVMe驱动器进行测试。 由于这种友好的共生关系,客户不必怀疑带有Broadcom的HBA和RAID控制器的金士顿硬盘的可靠性和稳定性。
有关金士顿产品的更多信息,请
访问公司的
官方网站 。