关于服务器:技术实践-如何给NVMe做RAID

29次阅读

共计 3249 个字符,预计需要花费 9 分钟才能阅读完成。

1 传统 RAID

硬盘阵列(Redundant Arrays of Independent Disks,RAID),是由很多块独立的硬盘,组合成一个容量微小的硬盘组。

1.1  阵列卡

现如今,根本所有的服务器都通过 RAID 卡对硬盘进行治理。硬盘插入到服务器的槽位后由背板的线缆连贯 RAID 卡进行一个对立的治理,而后提供给操作系统,操作系统不能间接应用硬盘。

以下为一些常见的 RAID 级别:

  • RAID 0

    将数据分成若干相等大小的数据块,把他们写在不同的硬盘上,以独立的形式实现多块硬盘的并读拜访,并发执行 I / O 操作。根本可能施展出所有硬盘的性能,然而 RAID0 没有冗余机制,硬盘越多诚然性能越好,然而呈现故障导致卷组不可用的概率也越高。倡议配合下层利用可能提供冗余的场景一起使。

  • RAID 1 
    当下层数据下发时,会将数据完全一致地写在两块硬盘上,实现数据冗余,能够用两块硬盘中读取数据,晋升读性能。当一块硬盘产生故障,零碎主动从另一块硬盘读取数据,进步可靠性,然而老本更高,实用于对数据可靠性要求高的利用,如:将系统盘放在 RAID 1 下面。
  • RAID 5 
    将数据和绝对应的奇偶校验信息别离存储在不同的硬盘上,奇偶校验信息占一个硬盘的空间,容许损坏一个硬盘。当一个硬盘损坏时,能够依据残余的数据和绝对应的奇偶校验信息计算出损坏的数据,复原数据时性能会受到较大的影响。RAID 5 写性能偏低,尤其是随机写性能,倡议在读写不太频繁的场景上应用,如:用作数据备份。
  • RAID 6 
    与 RAID 5 类似,领有两套独立的奇偶校验信息,能够容许损坏两块硬盘。

1.2  缓存策略

RAID 卡除了将硬盘组建不同 RAID 级别的性能之外,还能提供减速读写的缓存性能。

每张 RAID 卡都领有大小不等的缓存。

  • Read Policy 
    1、Read Ahead:预读缓存模式,将以后读取的后续块数据也事后读取保留在缓存中,能够疾速对应后续的读取操作。当第二次读取雷同的数据时,不须要再次从硬盘外面读取数据,频繁读取的热点数据保留在缓存中,能够大大晋升读性能。
    2、No Read Ahead:不通过缓存进行读取操作。

<!—->

  • Write Policy 
    1、Write Back:WB 回写模式,该模式会将下层的数据先写入 RAID 卡缓存当中,再将缓存中的数据写入硬盘中,对于下层利用而言,当数据写入缓存中时就曾经认为落盘胜利了,因而 WB 模式能够晋升写性能。
    2、Write Througt:WT 直写模式,该模式会间接将数据写入到硬盘当中。

开启 WB 模式的前提是 RAID 卡带有电池,确保在服务器断电的状况下仍然能将缓存外面的数据写入硬盘中。当服务器的 RAID 卡电池呈现故障或者电量有余的状况,WB 模式会被强制切换成 WT 模式,防止出现数据失落,然而读策略不会受到任何影响,这是因为写到缓存外面的数据是脏数据,与硬盘外面的数据不统一,而读到缓存外面的数据与硬盘外面的数据完全一致,即便失落了也没有任何关系。

WB 模式可能晋升写性能,这有个前提是下层下发的数据量不大,能够被 RAID 卡缓存所包容,然而当下层下发大量数据时,缓存很快就会被击穿。咱们能够通过一个试验去验证,将一块硬盘的写策略调整为 WB 模式,而后利用 fio 工具去模仿下层数据下发

能够看到,当下层有大量数据下发时,缓存很快就被击穿,写性能出现断崖式下划

1.3  性能比照

上文提到了各个 RAID 级别的特点及优劣势,上面咱们通过 fio 工具测试,直观的感受一下不同 RAID 的性能。

一块盘 RAID0 根本能够施展这块盘的所有性能,通过以上测试数据能够发现:

  1. RAID1 应用两块盘,读能施展出两块盘的性能,而写性能根本与单块盘统一,阐明能够同时从两块盘读取不同的数据内容,而写时须要将雷同的数据写在两块盘中。
  2. RAID5 应用三块盘,读能根本能施展出三块盘的性能,然而写性能不高,尤其是随机写性能更是惨不忍睹

2 VROC

现如今,对硬盘的性能要求越来越高,SATA、SAS 因为自身的缺点,性能根本不会超过 600MiB/s,因而对 NVMe 盘的需要越来越多,尤其是数据库等对底层硬件性能要求比拟高的行业。

NVMe 盘直通到 cpu,无奈通过 RAID 卡进行治理,因而也不能通过 RAID 卡去创立不同的 RAID 级别。目前给 NVMe 做 raid 的形式有两种,一种是软 RAID,另一种是 Intel VROC

  • 软 RAID

    软 RAID 的实现没有硬件参加,齐全通过软件模拟磁盘阵列的形式来实现,通过 CPU 内核计算 RAID 逻辑

  • Intel VROC

    Intel VROC 是一种混合 RAID 解决方案。它的属性与硬件 RAID 相似,是因为英特尔卷治理设施(英特尔 VMD)的一项要害芯片性能是通过新的英特尔至强可扩大处理器提供的。英特尔虚构 RAID on CPU(VROC)利用英特尔 VMD 来聚合 NVMe 固态盘,从而实现可疏导 RAID。英特尔 VROC 还具备软件 RAID 等属性。例如:它应用一些 CPU 内核来计算 RAID 逻辑。因为这种软件与芯片相结合,英特尔 VROC 称为混合 RAID 解决方案。

2.1  VROC 的应用形式

目前,英特尔至强可扩大处理器根本都反对 VMD,然而并不是 cpu 反对就能够应用 VROC 了,须要满足以下几个条件:

1.VMD 是一个比拟新的技术,须要将服务器的疏导模式调整为 UEFI 疏导模式。

2. 须要 VROC Key,Intel VROC 是一种通过 OEM 或 ODM 与反对服务级别协定一起销售的许可产品。Intel VROC 硬件密钥是获取 Intel VROC 软件许可的机制。某些 OEM/ODM 通过在其主板上增加密钥标头,构建了反对 Intel VROC 的服务器和工作站。每个 VROC Key 的售价在 100 美金左右。

VROC Key 有几个不同的型号,每个型号 Key 的性能都有一些差异,有些型号的 Key 能够反对其余品牌的 NVMe 盘,然而出于兼容性思考,还是不倡议应用其余品牌的 NVMe 盘。

3. 服务器反对,并不是每一台服务器都能够装置 VROC Key,须要服务器的主板有相应的槽位能够插入 VROC Key。

2.2  VROC 与软 raid

VROC 的治理形式以及零碎下面的展现与软 RAID 十分类似。\
VROC 与软 RAID 都应用 mdadm 的命令进行治理,VROC 须要装置绝对应版本的 mdadm rpm 包。

rpm –U mdadm-4.0-13.1.IntelVROC6.0.el7.x86_64.rpm

VROC 与软 RAID 这么类似,那么在性能上有什么差距吗?咱们能够通过试验看一下

  • RAID 0

为了成果更加显著,应用了三块盘创立 RAID0,结果显示 VROC 与软 RAID 没有显著的性能差距

  • RAID 1

VROC 与软 RAID 组建 RAID1 各项性能基本一致

  • RAID 5

VROC 与软 RAID 组建的 raid5 各项性能基本一致,然而两者的写性能都是偏低的,通过观察 cpu 的使用率能够发现,VROC 与软 RAID 都是单核过程,所在 core 的使用率也曾经被打满了,cpu 的性能也是制约 RAID5 写性能的一项因素

通过以上的测试能够发现,VROC 与软 RAID 的性能根本是统一的,因为两者都须要应用 cpu 内核去来计算 RAID 逻辑。而 VROC 有硬件的反对,具备了一些其余的性能

2.3  VROC 其余性能

1 可疏导 RAID

VROC 能够作为系统盘应用,VROC 有硬件的反对,在没有装置操作系统之前就能够在 BIOS 外面应用 NVMe 盘创立 RAID,而后再将零碎装置在这块 raid 卷组下面。

2 备份性能

VROC 领有热备性能,当检测到设施故障时,热备盘可用于重建 RAID

3 NVMe 盘定位

NVMe 盘始终没有很好的形式去定位,而 VROC 能够精确定位到 NVMe 盘

ledctl locate=/dev/nvme0n1

通过以上命令能够使指定的 NVMe 盘闪灯

3 总结

性能方面,VROC 与软 RAID 基本一致。软 RAID 的劣势是不须要额定的老本,而 VROC 劣势是有硬件的反对,具备一些个性(可疏导 RAID、NVMe 盘定位等),以及有 Intel 的技术服务。两者各有劣势,所以,能够依据理论的需要去抉择应用哪一项技术

正文完
 0