在前面的文章 LSI/Broadcom的Tri-Mode 里介绍过Broadcom新推出的Tri-Mode芯片已经可以支持NVMe SSD了,SAS3500 ROC(RAID On Chip)芯片还支持多块NVMe SSD的硬RAID功能,并支持所有常见的RAID类型比如0/1/10/5/6/50/60等。
但是这种基于ROC芯片实现的NVMe硬RAID功能存在一个很大的缺陷,就是处理性能的瓶颈问题,虽然现在的ROC芯片已经具备超过一百万的IOPS处理能力,但这个性能其实也就刚刚超过一块NVMe SSD的极限性能而已,两块NVMe SSD的IOPS性能就可以把ROC芯片的处理性能轻松打爆。
即使在Tri-Mode RAID后面接上4块或者更多数量的NVMe SSD,你所能得到的IOPS性能仍然也就是一百多万,对于NVMe SSD的硬RAID功能来说,超过2块数量以上的NVMe SSD性能其实是浪费了。
怎样才能充分发挥众多数量NVMe SSD的极限性能又能够用上RAID的数据保护功能呢? 答案是使用Intel 基于新一代Xeon SP 处理器实现的NVMe SSD软RAID功能。
Intel在新的Xeon SP处理器上推出的这个新特性叫VROC,也就是Virutal RAID On CPU的缩写,它实际上是Intel几种不同技术的集成应用
-
Xeon SP处理器上的VMD硬件功能支持
-
Intel RSTe RAID功能,支持NVMe SSD的软RAID功能要求版本5.0
-
Intel 提供的NVMe 驱动
VMD是Volume Management Device的缩写,它的作用相当于在Xeon SP处理器的PCIe控制器上将不同的PCIe 通道划分到不同的Domain里,同一个Domain内部PCIe通道上的的MSI/MSI-X IRQ会被映射到同一个VMD IRQ上,类似于传统RAID配置里把多个Physical Disk放到一个Virtual Disk里,通过VMD功能可以实现NVMe SSD的热插拔和LED管理功能。
VMD功能在Linux Kernel 4.5版本里就已经可以支持,配合Intel RTSe就可以实现NVMe SSD的软RAID功能了,当然还需要使用Intel 发布的NVMe 驱动。VROC功能除了支持Intel自有品牌NVMe SSD之外,也能支持其他厂家的NVMe SSD。
VROC功能采用CPU来做RAID计算,凭借Xeon SP处理器超强的计算能力,可以实现非常高的存储性能,比如在搭配4块Intel Optane SSD做RAID0时,就可以轻松实现超过200万的混合读写IOPS和超过8GBps的吞吐性能。
如果我们把Xeon SP和Broadcom Tri-Mode SAS3500 ROC里的ARM15处理器拿来简单比较的话,就能理解为什么VROC可以实现远超ROC的性能了,当然ROC芯片的优势是RAID5校验计算使用硬件完成不需要耗费CPU资源。
VROC | ROC | |
处理器 | Xeon SP | ARM15 |
核心数量 | 最高28核 | 2核 |
主频 | 2.x GHz | 1.2GHz |
DMIPS | >5 | <5 |
除了支持RAID 0/1/10等类型外,VROC也可以支持需要做校验计算的RAID5,通过利用NVMe SSD上具备掉电保护功能的写缓存来保存日志,VROC的RAID5 双容错保护特性甚至可以在无需配置后备电源单元(BBU)的情况下就可以做到掉电时数据不丢失。
同传统意义上的软RAID不一样的是,通过VROC功能实现的RAID Volume支持用作系统启动盘,当然该功能也需要新版本的操作系统才能支持,支持的OS包括Windows2012 R2、Windows2016以及RHEL 7.3 、SLES 12 SP3等。
VROC功能在同样基于Skylake架构的Xeon W和Core i9 平台上也可以支持,但免费开放给用户的仅仅只有RAID0功能,RAID1/10和RAID5功能需要额外购买一个加密狗才能启用,所需费用分别为99美元和249美元。
在Xeon SP服务器平台上,也会区分成3种不同的版本,免费的Pass-through 仅开放对Intel P3608的RAID0功能,支持RAID0/1/10的Standard版本和支持RAID0/1/5/10功能的premium版本也需要额外付费,但不同的服务器厂商在支持该功能时可能会采取不同的策略,比如Dell PERC S140 上目前就还不开放RAID5 功能。