Intel VROC(NVMe RAID)技术

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者 白丁

 

原文链接:https://www.pcper.com/reviews/Storage/Intel-VROC-Tested-X299-VROC-vs-Z270-RST-Quad-Optane-vs-Quad-960-PRO

 

这几个月以来,我们已经听说了英特尔的VROC(NVMe RAID)技术。从5月份开始,华硕开始在他们的X299主板上发布相关线索。 这个想法是非常令人兴奋的,因为之前在Z170和Z270平台上的NVMe RAID性能受到了连接CPU和芯片组之间的PCIe 3.0 x4 DMI的限制,还必须把SATA换成M.2 PCIe端口。 X99主板支持SATA RAID,甚至有四个附加端口,但是它们完全没有NVMe引导的RAID。 如果英特尔推出其高端工作站级平台的后续产品,而前两代(即将到来的是三代)消费级平台却没有增加功能,那将是愚蠢的。

 

为了掌握VROC的全部内容,先看看Intel的幻灯片:

 


 

首先,列出缩写词的含义:

VROC = Virtual RAID on CPU

VMD = Volume Management Device


 

因此VMD是Intel Skylake-SP CPU上的额外逻辑,使处理器能够将16个PCIe lane上的4个PCIe x4 PCIe SSD分组成单个PCIe盘。 每个CPU有三个VMD控制器。

 


虽然引导RAID盘支持仅限于单个VMD,但可以把PCIe交换芯片添加到下游,创建可能超过4个SSD的可引导RAID。如果不做系统盘,那么,VROC还能继续扩展,在多个VMD之间,甚至跨越CPU!

 

与英特尔之前发布的存储技术的不同,VROC的发布说好听点是零碎的,说难听点是矛盾的。 我们最初听说VROC只支持英特尔固态硬盘,但英特尔后来回答了一个常见的问题,表示”选定的第三方固态硬盘”也将得到支持。他们一直坚持一件事,要求一个硬件key来解锁RAID-1和RAID-5模式,这是一个看似愚蠢的要求,因为他们的消费级芯片组支持可引导的RAID-0,1,5而没有任何key的要求(只有VROC 通过Z170 / Z270 / Z370支持一个额外的SSD,可以从3个驱动器阵列启动)。

 

在”零碎”的话题中,VROC需要三件事情来工作:

(1)BIOS支持为选定的PCIe通道组启用VMD域。

(2)用于将一组NVMe SSD连接到该组PCIe通道的硬件。

(3)操作系统挂载和管理阵列的驱动程序。

 

BIOS支持?


 

将多个SSD连接到一个PCIe转接卡,如下图,4个M.2接口的Intel Optane PCIe SSD组成了一个PCIe 3.0×16的大号SSD。

 


 

再来一张搭配三星960 PRO M.2 NVMe SSD的图。

 


请注意,上图中的华硕Hyper M.2 X16卡只能在支持PCIe分叉的主板上工作,就是CPU可以在不需要PLX Switch芯片的情况下将PCIe x16通道拆分成4组x4 lane。 在上面的BIOS屏幕截图中可以看到两个分叉模式,一个用于VMD / VROC,而另一个(数据)选择启用分叉而不启用VMD控制器。这样系统直接看到4个SSD,而不需要任何特殊的驱动程序。

 

通过以上硬件安装,以及在BIOS中配置VROC配置,但是却得到了令人失望的结果,识别不到SSD:


 

为了那个烦人的驱动,在网上找了一些资料后,搞定了:

 


好吧,在我通过阵列创建快速点击之后,这就是它的样子。

 

首先观察两个相互冲突的信息。 首先从Intel VROC FAQ:


 

然后,第二个来自华硕Hyper M.2 X16的幻灯片。

 


 

英特尔说’没有RAID支持’,但华硕说RAID-0’不需要’硬件钥匙。 但在这里我正盯着这个:

 


 

我可以任意选择这些选项。 他们都工作。 他们都可以创建可用的阵列,报告为可启动,虽然接口报告说,我处于90天的”试用模式”。 虽然一切似乎工作,除了启动盘的支持(我们只能假设是由于BIOS需要一个key来启动这个功能)外,还有一些额外的困惑:

 


 

一旦VROC启用,BIOS允许您直接配置阵列。 请注意,一对英特尔600P固态硬盘可以选择,而一对三星960 PRO不能。 现在您可能会预料到这一点,因为英特尔最初表示只支持英特尔固态硬盘,但是:

 


 

VROC Windows驱动程序GUI中的阵列配置了相同的两个SSD。 请注意,他们也显示为可启动(右窗格)。 这个阵列实际上也工作并且完全可用。 毕竟,我们还在想,如果我们是否在这里使用真正的VROC。 “for”列中有多个点(需要安装驱动程序才能看到此模式下连接的SSD等),但”against”列中也有很多点(SSD不应该工作等)。 我们甚至还有另一个”WTF”列(即使使用英特尔产品,启动也会中断)。 也许这一切都只是半成熟和不完整的,但是,嘿,它似乎运作得很良好,以便进行一些测试,所以我想我们可以看看它是怎么样的,呃?

 

我们已经在这里介绍了很多基础知识,除了配置BIOS、将SSD安装到卡上、安装卡等之外,还需要执行一些额外的步骤:

 


 

虽然你可以在BIOS中配置阵列(假设你有一个VROC key,它可以正常工作),你可能需要在Windows安装过程中加载’F6驱动程序’来查看阵列。 我们都被内置了许多通用RAID驱动程序的操作系统所宠坏,但VROC是一个新事物,所以一定要将这些驱动程序复制到您的USB安装程序。

 

如果您在将Windows直接安装到VROC阵列时使用了简单的”F6驱动程序”,或者如果您的操作系统足够新可以查看阵列,您仍然需要在Windows中安装一次完整的VROC驱动程序包,在RSTe GUI中检查阵列状态并配置阵列。

 

为了这些测试,我们使用了下面的两个平台:


 

为了更好地表示真实世界的QD = 1的性能,在两个平台上都禁用了c状态。 在某些平台上,QD = 1的基准测试不会充分加载CPU,以便观察整个系统的响应能力,因为较低的时钟速率会对存储性能产生负面影响。 发生这种情况是因为存储基准测试只关注存储,而没有其他的东西。 真实世界的应用程序将执行计算或以其他方式对访问的数据执行操作,导致系统以更高的时钟速率运行。 禁用c状态让我们在运行这些更简单的测试时更接近现实世界的状态。

 

为了速度的起见,在图表中只选取了随机和顺序读取。 请注意,在测试之前,每个阵列都完全按顺序写入(刚出厂的SSD从未被写入过,可能会”作弊”并立即返回零,甚至没有接触到闪存,所以唯一的真实结果可以通过读取以前写过的区域来获得)。

 

使用一套匹配的四个Optane Memory 32GB模块来评估IOPS和延迟,同时使用一组四个Samsung960 PRO 512GB SSD来评估最大吞吐量。

 

4KB随机读

IOPS:


 

直接进入这些结果,我们有两组IOPS曲线。 底部集合显示了添加到RAID-0的960 PRO SSD越来越多时的IOPS响应。 最上面的集合使用不同数量的Optane内存模块代替960 PRO时的IOPS。 请注意,Optane的IOPS性能远远优于我们迄今测试过的最快的NAND SSD。 四台960 PRO只能打败一个32GB的Optane内存模块,但是只能在QD = 32的时候这样做,只是因为在QD = 8时Optane部分饱和了,所以三星有时间赶上。Optane在较低的队列深度上有一个特殊的地方,那就是在RAID阵列上,任何RAID配置都会损失近一半的性能优势。 如果我们以不同的方式分解结果,则更加清楚,更加关注较低的队列深度:

 


 

请注意最近左边的深蓝色(QD = 1)的条形柱,开始时大约为100,000 IOPS,但接下来的三个蓝色条中都下降到50,000 IOPS。三个颜色分别是QD=1,2,4.

 

延迟:


 

先关注左下角。 10微秒符合Optane Memory的预期延迟。 不幸的是,似乎任何形式的VROC RAID都会增加6微秒的延迟时间。 我们已经在Z170平台的三重M.2 RAID测试中看到了这个数字,但是我希望对这个新平台没有什么负面影响,特别是VMD控制器处于CPU /硬件级别。 不过,请记住,我们正在处于预发布,以及这里的所有内容,所以显然需要进行优化和改进。

 

对上面的图表做一个总体的说明。 请注意,添加固态硬盘时,延迟曲线会顺时针旋转,有效地扁平化,并在向上弯曲之前使其达到较高的QD(由于增加了控制器/媒体负载,延迟会开始猛增)。

 


 

QD = 1-4的柱状图表使得Optane和960 PRO之间的延迟差异变得很明显。

 

128KB顺序

 

请注意,我们选择128KB顺序测试,是因为内核会将大于128KB的请求拆分为多个并发的128KB的块(并且QD的值比预期更高)。

 


 

现在我们到了有趣的部分。 地下的几条曲线(从1GB / s点开始并跨越增加)都是Optane。 这些仅在PCIe 3.0 x2上链接,但并不意味着在顺序性能上表现突出。 尽管如此,按照QD = 8测试,我们看到它们的吞吐量增长到接近6GB/s。 960 PRO的x4链接和一个控制器通道布局能更好地优化Optane的顺序吞吐量。 其余配置的960 PRO在顺序性能上能轻易击败Optane。

 


 

QD = 16,与我们在Windows批量文件复制操作的trace中看到的一样高,所以我已经结束了在该深度的柱状图的展开。 无论如何,QD = 32时并没什么意义,因为所有配置在QD = 8时,已经接近饱和度。

 


 

在这里,我们只关注Optane下QD = 32的配置以及从单个SSD到四个SSD的RAID-0的960 PRO。 理想情况下,我们期望在这里进行线性缩放,而这看起来正像是发生了什么事情。 Quad Optane Memory 32GB达到了5.6GB/s,而960 PRO 512GB达到了13.2 GB / s!

 

性能对比: X299 VROC vs. Z270 RST

 

好吧,现在我们已经看了X299 VROC,看看它是如何与Z270的RST实现相结合的。 请注意,我们手头没有通过PCH支持三个M.2 RAID 的Z270主板,,但是我们可以只使用两个快的SSD来使DMI达到饱和,并且可以估算三个RAID的数据。 为了使这些比较容易理解,前三个图表将评估这两个芯片组的单个SSD性能:

 

单个SSD比较

 

4KB 随机IOPS

 

 

X299和Z270(通过PCH连接以及直接连接到CPU)的Samsung 960 PRO SSD性能几乎完全相同,不过Z270平台确实有一点小小的优势。 Optane(32GB)部件的高端部分都达到了相同的最大值,但是看起来像是低QD的性能更好。 、直接连接到7700K CPU的Optane部件在QD=1时的IOPS的起始值超过了93k! 这怎么能比全新的X299平台快得多呢?

 

4KB延迟

 

 

这里最重要的是在QD = 1栏的前三位数字。 首先,我们看到来自X299测试的10.7us的图形。 在把SSD安装到M.2插槽中(M.2位置将很可能连接到PCH,因此RST RAID是可能的)的Z270上,这个数字跳转到了12.2us, 将SSD安装到标准PCIe插槽(通过插入器)可将延迟降至10.1us。 这告诉我们两件事情:

 

(1)与7960X相比,7700K的更快的时钟和更低的核心的DRAM延迟削减了0.6us的事务延迟。

(2)对于通过PCH进行通信的SSD,Z270平台每条事务延迟惩罚约为2.1us。

 

128KB顺序测试

 

 

Z270有一点扩展,在Optane(橙色)上QD序列较高时表现出奇数衰减,而PCH和直接连接的Z270(绿色+隐藏在它后面的浅蓝色)的表现明显优于在X299平台上(黄色)的表现。 通常情况下,三星的测试结果是相同的,但是在完成这些测试之后,我们发现三星NVMe驱动程序在无意中安装到了我们的Z270测试系统上,从而提高了单个SSD的连续测试结果。 我将使用标准的NVMe驱动程序重新运行这些测试,并在可能的情况下进行更新。 现在我们转向在两个平台上比较RAID性能。 为了使图表合理可读,我将坚持QD = 1为随机测试,QD = 32为顺序测试。

 

多SSD RAID-0比较

 

4KB随机IOPS

 

 

对于960 PRO,与X299(橙色)相比,Z270(黄色)增加了几个IOPS。

对于Optane Memory,X299(蓝色)在单SSD配置中击败Z270(灰色),但是X299在RAID中的更高的延迟损失使其落后。 请注意,如果单个SSD直接连接到CPU(93k IOPS),则Z270可以在整个板上击败X299。

 

4KB随机延迟

 

 

这并不奇怪,因为这实际上是上面看到的IOPS的倒置。 直接连接到CPU的Z270单个SSD SSD Optane Memory将为10.1微秒,迫使灰色线上的所有点上低于蓝色。

 

128KB顺序测试

 

 

这是我们完成的上一页的图表,但Z270的数据已被添加。 x3的估计吞吐量就是960 PRO的x2饱和吞吐量。 消除DMI瓶颈当然有很大帮助,因为X299数字只是略高于Z270,特别是使用960 PRO SSD时!

 

在我们包装之前,让我们仔细看一下精心构建的华硕Hyper M.2 X16卡:

 

 

漂亮的拉丝铝散热器。

 

 

 

删除了几个螺丝钉

 

 

布局非常简单,因为不需要PCIe交换。 每个M.2 x4插座直接连接至x16连接器上的一组四个PCIe通道上。 没有大惊小怪,没有麻烦。

 

 

在背板上,我们有四个插座的电源/活动指示灯,以及一个关闭鼓风机的开关。 有了这么大的散热器,而且M.2的SSD在满负载时每次都不会超过6W,所以大多数用户在风扇关闭时可能会很好。

 

包装

总结起来,我们已经从VROC早期的视角中提取了尽可能多的有用的测试数据,我们可以得出一些概括性的观点:

(1)英特尔Optane Memory在IOPS和延迟上获得巨大成功。

(2)三星960 PRO在连续性能上赢得了巨大的成功。

(3)Z270看到尽可能低的NVMe延迟,但需要绕过PCH。

(4)Z270在RST阵列中具有最低的NVMe延迟。

(5)X299 VROC可实现最高的连续性能(无DMI瓶颈)。

(6)X299 VROC不能轻松使用。

(7) X299 VROC随机性能足够。

 

请记住,我们正在这里以非正式发布的形式测试VROC。 在达到最终状态之前可能会做出重大的优化。

 

 

总结

 

预发布X299 VROC正在迈出步伐,并与Z270 RST进行比较。就目前来看,两种解决方案都有其优缺点。 Z270在IOPS和延迟方面有优势,而X299看起来有更好的顺序性能,直到你用坏了固态硬盘扔掉它。如果你想从VROC阵列启动,那么不要太得意,因为这仅限于单个VMD(目前在华硕Hyper M.2 X16卡上安装了4个NVMe SSD)。用户将不得不购买的令人讨厌的VROC密钥只是为了正式启用Z270的用户已经免费获的功能。我们不知道最终的VROC是否会享受更低的延迟,但是目前Z270赢得了这场比赛 – 即使DMI限制在3.6GB / s,而可启动的VROC容量也能达到13GB / s(如果Intel决定支持从960 PRO启动,即)。

 

分类目录 SSD.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。