我是否需要从SSD创建RAID阵列以及为此需要哪些控制器

哈勃! 在本文中,我们将告诉您是否值得组织基于固态解决方案SATA SSD和NVMe SSD的RAID阵列,这是否会带来可观的收益? 我们决定通过考虑允许此操作的控制器的类型和类型以及此类配置的应用范围来理解此问题。



一种或另一种方式,我们每个人至少一生中都听到过“ RAID”,“ RAID-array”,“ RAID-controller”等定义,但是这不太可能引起严重的重视,因为对于普通的PC-boyar来说,几乎没有有趣。 但是每个人都希望每个人都能享受内部驱动器带来的高速度以及工作的可靠性。 毕竟,如果我们谈论PC和服务器的综合速度,那么无论计算机的功能多么强大,驱动器的速度都会成为瓶颈。

直到那时,具有可比的1 TB或更大容量的传统NVMe SSD取代了传统HDD。 而且,如果在PC上较早的时候SATA SSD捆绑包+几个大容量HDD更为普遍,那么今天它们就开始被另一种解决方案-NVMe SSD +几个大容量SATA SSD所取代。 如果我们谈论公司服务器和“云”,则许多公司已经成功迁移到SATA SSD,这仅仅是因为它们比普通的“小工具”更快,并且能够同时处理更多的I / O操作。



但是,系统的容错能力仍然处于较低的水平:就像在“心理战”中一样,我们无法准确预测一个或另一个固态驱动器的使用寿命很长的一周。 如果HDD逐渐“死”,使您能够发现症状并采取措施,则SSD会立即“死”,而不会发出警告。 现在是时候找出为什么所有这些都需要了吗? 基于固态解决方案SATA SSD和NVMe SSD来组织RAID阵列是否值得,并且会从中获得可观的利润?

为什么需要RAID阵列?


“阵列”一词本身已经意味着要使用多个驱动器(HDD和SSD)来创建驱动器,这些驱动器使用RAID控制器组合在一起,并被OS识别为单个数据存储。 RAID阵列可以解决的全局任务是最大程度地减少数据访问时间,提高读/写速度和可靠性,这要归功于在发生故障时能够快速恢复的能力。 顺便说一句,没有必要将RAID用于家庭备份。 但是,如果您有自己的家庭服务器,需要持续24/7的访问权限-那么这是另一回事。

RAID阵列有十几个级别,每个级别使用的驱动器数量各不相同,各有其优缺点:例如,RAID 0允许您在没有容错的情况下获得高性能,RAID 1允许您在不提高速度的情况下自动镜像数据,RAID 10结合在一起本身具有上述可能性。 RAID 0和1最简单(因为它们不需要软件计算),因此最受欢迎。 最终,支持特定RAID级别的选择取决于分配给磁盘阵列的任务和RAID控制器的功能。

家庭和企业RAID:有何区别?


任何现代业务的基础都是必须安全存储在公司服务器上的大量数据。 而且,如上所述,应该为他们提供24/7的持续访问权限。 显然,与硬件相提并论,软件部分也很重要,但是在这种情况下,我们仍在讨论提供可靠信息存储和处理的设备。 如果“硬件”硬件不满足分配给它的任务,那么没有软件可以使公司免于破产。



对于这些任务,任何硬件制造商都提供所谓的公司设备。 金士顿拥有强大的固态解决方案,包括金士顿450R(DC450R) SATA型号和DC500系列 ,以及旨在用于数据中心的DC1000M U.2 NVMe NVMe型号,DCU1000 U.2 NVMe和DCP-1000 PCI-e型号(数据中心)和超级计算机。 来自此类驱动器的阵列通常与硬件控制器一起使用。



对于消费市场(即家用PC和NAS服务器),可以使用诸如Kingston KC2000 NVMe PCIe之类的驱动器,但是在这种情况下,无需购买硬件控制器。 您可以将自己限制在主板内置的PC或NAS服务器上,除非您当然计划为非典型任务构建自己的家庭服务器(例如,为朋友搭建小型家庭托管服务)。 此外,通常,家庭RAID阵列并不意味着存在成百上千个驱动器,而是将自身限制为两个,四个和八个设备(通常是SATA)。

RAID控制器的类型和类型


根据RAID实现的原理,有三种类型的RAID控制器:

1.一种软件,其中阵列控制位于CPU和DRAM上(即,程序代码的执行在处理器上进行)。

2.集成,即内置于PC或NAS服务器的主板中。

3.硬件(模块化),它是用于PCI / PCIe主板连接器的离散扩展卡。

它们之间的根本区别是什么? 软件RAID控制器在性能和容错性方面不如集成和硬件,但不需要专用设备进行操作。 但是,重要的是要确保主机处理器具有足以运行RAID软件的功能,而又不会对也在主机上运行的应用程序的性能产生不利影响。 通常,集成控制器配备有自己的缓存并使用一定数量的CPU资源。

但是硬件具有自己的高速缓存,以及用于执行软件算法的集成处理器。 通常,它们使您可以实现各种RAID级别并同时支持多种类型的驱动器。 例如,您可以同时将SATA,SAS和NVMe设备连接到现代Broadcom硬件控制器,这使您在升级服务器时无需更改控制器:特别是在从SATA SSD迁移到NVMe SSD时,不必更改控制器。



实际上,在此说明中,我们谈到了控制器本身的类型。 如果有三种模式,应该有更多模式吗? 在这种情况下,该问题的答案将是肯定的。 根据功能,RAID控制器可分为几种类型:

1.普通RAID控制器
在整个层次结构中,这是最简单的控制器,可让您将HDD和SSD组合成级别为“ 0”,“ 1”或“ 0 + 1”的RAID阵列。 软件这是在固件级别实现的。 但是,由于此类设备缺少缓存并且不支持级别为“ 5”,“ 3”等的阵列,因此几乎不建议在公司部门中使用此类设备。 但是对于入门级家庭服务器而言,它们非常合适。

2.与其他RAID控制器配对的控制器
这种类型的控制器可以与集成的主板控制器配对。 这是根据以下原则实现的:离散RAID控制器负责解决“逻辑”问题,以及驱动器之间的内置数据交换。 但是有一个细微差别:此类控制器只能在兼容的主板上并行运行,这意味着它们的范围正在严重缩小。

3.独立RAID控制器
这些分立的解决方案在板上包含了用于与企业级服务器一起工作的所有必要芯片,这些芯片具有自己的BIOS,高速缓存和用于快速错误纠正和校验和计算的处理器。 此外,它们在制造方面符合高可靠性标准,并具有高质量的存储模块。

4.外部RAID控制器
不难猜测,上述所有控制器都是内部控制器,它们通过主板的PCIe连接器供电。 这是在说什么 而且主板故障可能导致RAID阵列操作错误和数据丢失。 外部控制器可以避免误解,因为它们被安置在带有独立电源的单独外壳中。 在可靠性方面,此类控制器可提供最高级别的数据存储。

Broadcom ,Microsemi Adaptec,Intel,IBM,Dell和Cisco只是目前提供硬件RAID控制器的一些公司。

SAS / SATA / NVMe RAID控制器模式


三模式HBA和RAID控制器(或具有三模式功能的控制器)的主要任务是创建基于NVMe的硬件RAID。 在Broadcom,9400系列控制器可以执行此操作:例如, MegaRAID 9460-16i 。 它属于独立类型的RAID控制器,配有四个SFF-8643连接器,并且由于具有Tri-Mode支持,因此您可以同时连接SATA / SAS和NVMe驱动器。 此外,它还是市场上最节能的控制器之一(它仅消耗17瓦的电能,而16个端口中的每一个都消耗不到1.1瓦的电能)。



连接接口是PCI Express x8版本3.1,它允许您实现64 Gb / s的带宽(2020年,预计将出现PCI Express 4.0控制器)。 16端口控制器基于2核SAS3516芯片和72位DDR4-2133 SDRAM(4 GB),并且能够连接多达240个SATA / SAS驱动器或多达24个NVMe设备。 关于RAID阵列的组织,支持级别“ 0”,“ 1”,“ 5”和“ 6”以及“ 10”,“ 50”和“ 60”。 顺便说一下,可选的CacheVault CVPM05模块可保护MegaRAID 9460-16i和9400系列中其他控制器的缓存存储器免受电压故障的影响。

三模式技术基于SerDes数据转换功能:将SAS / SATA接口中的串行数据表示形式转换为PCIe NVMe中的并行形式,反之亦然。 即,控制器协商速度和协议以与三种类型的存储设备中的任何一种无缝地工作。 这提供了不间断的扩展数据中心基础架构的方式:用户可以使用NVMe,而无需对其他系统配置进行重大更改。



但是,在计划使用NVMe驱动器进行配置时,值得考虑的是NVMe解决方案使用4条PCIe线进行连接,这意味着每个驱动器都使用所有SFF-8643端口线。 事实证明,只有四个NVMe驱动器可以直接连接到MegaRAID 9460-16i控制器。 或者在同时连接八个SAS驱动器时将自己限制为两个NVMe解决方案(请参见下面的连接图)。



该图显示了用于NVMe连接的连接器“ 0”(C0 /连接器0)和连接器“ 1”的使用,以及用于SAS连接的连接器“ 2”和“ 3”的使用。 这种布置可以颠倒,但是每个x4 NVMe驱动器必须使用相邻的线连接。 通过StorCLI配置工具或在UEFI环境中运行的人机界面基础架构(HII)设置控制器的操作模式。



默认模式是“ PD64”配置文件(仅支持SAS / SATA)。 如上所述,总共有三个配置文件:SAS / SATA only模式(PD240 / PD64 / PD 16),NVMe only模式(PCIe4)和混合模式,在其中所有类型的驱动器都可以工作:PD64 -PCIe4“(支持具有4个NVMe驱动器的64个物理和虚拟磁盘)。 在混合模式下,指定配置文件的值应如下所示-“ ProfileID = 13”。 顺便说一下,即使您通过“设置出厂默认值”命令回滚到出厂设置,所选的配置文件也将另存为主文件,并且不会重置。 只能手动更改它。

我应该在SSD上创建RAID阵列吗?


因此,我们已经意识到RAID阵列是实现高性能的关键。 但是,值得为家庭和企业使用固态硬盘构建RAID吗? 许多怀疑论者说,速度的提高并不明显,以至于NVMe驱动器破产了。 但是真的是这样吗? 几乎没有 在RAID(在家中和公司级别)中使用SSD的最大限制只能是价格。 不管怎么说,HDD上1 GB的空间成本要便宜得多。

将多个固态“驱动器”连接到RAID控制器以在某些配置中创建一系列SSD会对性能产生巨大影响。 但是,请不要忘记,最高性能受RAID控制器本身的带宽限制。 提供最佳性能的RAID级别是RAID 0。



具有两个SSD驱动器的常规RAID 0的组织使用将数据分成固定块以及固态存储之间交替的方法,将导致性能提高一倍(与一个SSD产生的速度相比)。 在这种情况下,具有四个固态驱动器的RAID 0阵列将比阵列中最慢的SSD快四倍(取决于RAID SSD控制器级别的带宽限制)。

根据简单的算法,SATA SSD的速度大约是传统SATA HDD的3倍。 NVMe解决方案更加有效-达到或超过10倍。 假设两个RAID级别为零的硬盘驱动器的性能提高了一倍,提高了50%,则两个SATA SSD的速度将提高6倍,而两个NVMe SSD的速度将提高20倍。 特别是,一个金士顿KC2000 NVMe PCIe驱动器可以实现高达3200 MB / s的顺序读取和写入速度,在RAID 0格式下将达到令人印象深刻的6 GB / s。 随机4 KB块的读/写速度将从350,000 IOPS变为700,000 IOPS。 但是……同时,“零” RAID并不能为我们提供冗余。

您可以说在家中通常不需要存储冗余,因此RAID 0实际上是最适合SSD的RAID配置,这是可靠地提高性能的可靠方法,可以替代使用诸如Intel Optane SSD之类的技术。 但是SSD解决方案在最流行的RAID类型(“ 1”,“ 5”,“ 10”,“ 50”)中的行为方式-我们将在下一篇文章中进行讨论。

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

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

Source: https://habr.com/ru/post/zh-CN482068/


All Articles