企业存储技术 · 2020年06月09日

NVMe SSD RAID几种玩法和测试

本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号、微博 @唐僧\_huangliang,以便更好地与读者互动。

目录

-主板集成的NVMe SSD RAID 5

-“软”RAID 5的性能瓶颈与现实意义

-挂着SATA阵列标签的PCIe RAID?

-初步对比:RAID 5、0读性能接近翻倍

-Iometer测试:SSD写惩罚与性能计算的修正

-测试平台简介、VROC测试预览

主板集成的NVMe SSD RAID 5

前几天有人问我,一款新推出的移动工作站是否支持NVMe SSD做RAID?我的第一反应是看文档——官方规格里没写?不过我手头有台样机啊,实际试一下不是更好吗。

image.png

点开图片双击可放大(以下同):Dell Precision 7740__移动工作站的扩展性设计,主要沿用了上一代7730的规格,比如4个M.2 NVMe SSD安装位。

在笔记本类产品上做RAID的用户不多(Intel Optane Memory那样的缓存盘除外),因为在2.5寸SATA盘时代,能够提供达到3个盘位的产品确实太少。RAID 0牺牲数据安全性,而笔记本用户往往又没有RAID 1那样的可靠性需求。今天更多的双盘组合还是SSD+HDD,只是SATA大多变成了M.2 NVMe。

这次用户询问的是:在系统盘之外,能否加2个NVMe SSD做RAID?简单试了一下发现这款工作站可以实现。由于Intel RST RAID之前一直支持SATA盘的RAID 5(从十几年前的ICH5R开始,当时笔者测试过),正好现在M.2的槽位数又能满足,于是就引发了我想测试一下NVMe RAID 5的兴趣。

注:撰写本文之前,我查询了Intel RSTe文档中明确写了支持NVMe SSD RAID 5,但网上似乎没什么人试过。一方面台式机主板的M.2槽位通常不超过2个,另一方面Intel后来在Skylake(Xeon)服务器/工作站上推出了VROC(其实就是RSTe发展而来)。不过移动工作站支持的还是RST,会有哪些区别呢?
image.png

我在Precision 7740上装好NVMe SSD,开机按F12并进入Intel Rapid Storage Technology的配置界面,此时可以选择RAID 5。当我把3个NVMe盘选中,Strip Size条带大小的默认设置为32KB。

创建好RAID卷之后,也可以选择在上面安装Windows系统并引导,不过这次我还有另一个单独的系统盘,这样可以保证RAID性能测试不受OS的干扰。

“软”RAID 5的性能瓶颈与现实意义
image.png

Intel 8/9代Core平台架构图——台式机和标准电压笔记本产品

无论是看网上的评价,还是根据我以往的经验,Intel RST这种免费“软”RAID的性能表现都不算太好。首先不像LSI MegaRAID(现属于Broadcom)卡那样支持电池保护的写缓存,理论上RAID 5写性能会受比较大的影响。而挂在南桥(PCH)下面的PCIe通道,DMI 3.0的PCIe 3.0 x4连接在面对NVMe SSD时也更容易遇到瓶颈。

不过从另一个角度来看,传统单机RAID技术在遇上NVMe之后普遍显得乏力。尽管Tri-Mode RAID卡发布已经有2年多(参见:《_首款SAS/SATA/PCIe三模RAID发布:ARM替代PowerPC_》,但一线服务器大厂的最新RAID卡似乎仍然停留在SAS/SATA的支持上。企业存储领域,除了最近一两年出现的专用NVMe磁盘阵列(如Dell EMC PowerMax等)之外,NVMe SSD更多地被用于分布式存储的Server SAN和HCI超融合场景。

注:塔式工作站上可选支持NVMe SSD__并带有缓存的“硬”RAID__卡。

在服务器和塔式工作站上,我们前面提到过Intel的VROC(Virtual RAID on CPU,也属于一种软RAID吧)。其实如果只是RAID 0/1,操作系统自带的软RAID,如Windows带区卷、Linux mdraid的性能都不是问题,我在《_Optane SSD 900P评测(2):比拼4x闪存NVMe RAID0_》一文中也验证过。但带有奇偶检验的RAID5/6毕竟不同,传统人们印象中不带Cache的RAID都会跑的比较慢,我早就想测试下Intel VROC的表现,一直拖到现在,争取在下篇中给大家分享。

由于个人背景经历,我习惯了在文中插入一些企业级存储相关的讨论。但本文毕竟是站在PC和工作站用户的角度。在SATA HDD时代,由于单盘性能孱弱,如果配上软RAID 5自然少有人使用。而今NVMe SSD在许多应用中有性能过剩的情况,这样RAID在可靠性和容量整合方面的价值有时就会显得更重要,对于免费的RAID 5而言,如果能达到合理够用的性能,是不是也是一种选择呢?

挂着SATA阵列标签的PCIe SSD RAID?

image.png
我以前用惯了在Windows系统中老的Intel RST管理界面,不过随着Intel这两年强推16/32GB的Optane Memory缓存盘,目前到了RST 17版本之后,似乎只能统一在这个界面中进行RAID相关配置了。好在功能上还是换汤不换药,并且底层驱动也没什么改变。

image.png

在创建RAID 5时有个“启用卷回写高速缓存”的选项,不过是灰色的不可选,估计是出于数据安全性考虑。

如果是用Intel RST做SATA RAID,我记得在有的机型上可以打开RAID 5写缓存,虽然对性能帮助不小,但由于这个缓存是在DRAM系统内存中,主机断电会丢一些数据的。

image.png

我发现这个管理界面有个显示上的bug,那就是用PCIe SSD做的RAID显示为“SATA Array”。当然这并不影响我们接下来的测试,也许Intel并没有觉得RST桌面级NVMe RAID会有多少用户?但RST与RSTe/VROC技术在实际上是复用代码的(后文中我还会举个例子)。

另外,我还注意到RST RAID启用了“数据磁盘高速缓存”,也就是SSD本身的写缓存。传统HDD机械硬盘做RAID通常建议关闭这项以保证数据一致性,近几年有些硬盘还加入了WCE掉电保护技术。对于企业级SSD都是有缓存保护的,所以打开这一项无需担心。PC和工作站上用的大多是消费/商用级SSD(技术上也支持企业级SSD),断电可能会有少量未写入NAND闪存的数据丢失。不过对应到实际应用场景这不是大问题,因为即使用SSD单盘系统中默认也是打开写缓存的。

image.png

查看RAID中的单盘信息:测试中使用了3个东芝512GB NVMe(PCIe 3.0 x4)SSD。

image.png

具体到卷(也就是LUN)的设置,我们看到有个“修改高速缓存模式”的选项。
image.png

这里有回写“write back”、直写“write through”和只读“read only”3种Cache策略,其中提高写性能但对于“软”RAID 5风险较大的write back被禁用。如果是测试HDD RAID,我会考虑选择另外2项来改善读,但SSD本身读性能已经够快Cache就没必要了。

**初步对比:NVMe SSD RAID读性能接近翻倍

image.png

在看RAID测试性能之前,按照原则我们需要先了解NVMe SSD单盘的性能。上图为Dell对桌面级SSD的性能分级原则,其中NVMe(PCIe)SSD分为Class 50、40和35(后来加入)三个档次。Class 50级别最高,并且能达到稳定的写性能而不会像SLC Cache产品那样“掉速”,只在工作站机型上可选;本次测试我使用的是Class40,其350MB/s写入带宽指的是长时间压测时可以保证不低于该性能。

本文测试的重点是RAID的效率,不会在意单个SSD盘本身,只是对比时要拿这个数值参考。

NVMe SSD(Class 40)单盘

image.png

写带宽1060.3 MB/s只是单盘的短时峰值性能哦。

上面显示477GiB的D盘,就是不做RAID时的单个512GB NVMe SSD。虽然我觉得CrystalDiskMark测试RAID性能不是太靠谱,但用于简单易用在DIY圈子里比较流行,我觉得它的Seq顺序读写带宽测试值还是可以参考的。

由于默认的测试文件只有1GiB,1060.3 MB/s的写带宽明显“虚高”,显然这款SSD的“SLC Cache”还没有击穿。同样的道理,这部分的4KB测试数值我也不会太在意,后面的Iometer测试才是我的重点。

NVMe SSD(Class 40)RAID 5

image.png

3个NVMe SSD RAID 5之后,顺序读带宽上升到3156 MB/s,接近单盘的2倍了。

由于RST是不带写缓存的软RAID,根据RAID 5技术的写惩罚原理,每个改写I/O操作都会触发对物理盘的2次写和2次读I/O,3块盘的情况还有不同,653.4 MB/s对比前面一张图来看还是合理的?

RAID 5本来就适合读多写少的应用,参考资料:《浅谈RAID写惩罚(Write Penalty)与IOPS计算》

https://community.emc.com/doc...

NVMe SSD(Class 40)RAID 0
image.png

这里的2287.9 MB/s同样不代表稳态写入带宽_

我还用RAID 0做了下对比,读带宽没有在RAID 5基础上进一步提升,不知是不是开始受到DMI3.0理论4GB/s的影响了。写带宽还不错,虽然没有达到单盘峰值的3倍,但也有2倍多。考虑到对NAND闪存GC(垃圾回收)等后台处理的影响,SSD在RAID组中的协同一致性有时没有HDD那么好。

Iometer测试:SSD写惩罚与性能计算的修正

我最喜欢的块设备性能测试软件,Linux下是fio,Windows下就是Iometer。

image.png

在Iometer测试中,本次我每个单项的运行时间都是1分钟——同样并没有想把SSD特别压到稳态写性能,因为我重点是测RAID。不过上面图表已经可以看到Class 40 NVMe SSD单盘的写带宽降到了493MB/s,3个SSD RAID 5则达到854MB/s反而更高?我觉得这里的关键是:SSD的读性能比写高不少,不适合直接用以前HDD RAID写惩罚的计算公式——RAID 5比单盘写带宽高是正常的。

至于读带宽,与前面的CrystalDiskMark部分接近,就不再重复讨论。下面看随机IOPS测试:

image.png

在一些消费级用户眼中随机IOPS可能没有MB/s那样直观好理解,但SSD在这方面相对于传统硬盘的优势比顺序读写更大,也是每个人最终体验到操作系统、应用打开/关闭等速度大为提高的关键所在。当然,对于高并发/队列深度小I/O的性能更多是在企业存储领域有意义,这部分测试也是为了衡量RST RAID的一个参考。

首先,我们测试的这款M.2 NVMe SSD单盘,在128并发/队列深度下基本达到超过27万的最高随机读IOPS。3块SSD做RAID 5之后,队列深度太低时显不出优势,然后往右逐渐拉开差距,32并发/队列深度时相对单盘的优势最大。RAID 5的最高读IOPS可达44万,没有达到理论值单盘3倍的水平。

我们可以说免费的RST RAID不能充分发挥NVMe SSD的性能,不过考虑到上一代服务器的硬RAID卡用12块SAS SSD做RAID 5也只有不到60万读IOPS的水平(参见:《_存储极客:服务器SSD RAID性能速查手册_》),是不是觉得平衡一些了?

image.png

上图是随机写测试,由于SSD上写Cache的作用,在并发/队列深度1和2时单盘的IOPS明显比随机读要高,而在队列深度达到4之后就基本达到7万多的峰值。我在测试之前并没有特别对SSD做完全擦除以恢复其性能,所以这个数字距离Class 40标称的8万随机写IOPS低了一点。

3个NVMe SSD RAID 5的随机写IOPS,并发/队列深度达到64时测得最高值54379,这个基本在我的意料之中,除了前面提到的写惩罚原理,没有RAID缓存受影响最大的就是随机写。只要是传统RAID 5技术,随机写大多是这样的情况(RAID 6写惩罚更大),除非是WAFL类文件系统和那些专为SSD改进了算法的阵列,采用不覆盖改写的技术(如Dell EMC XtremIO的XDP)才能有突破。

扩展阅读:《_回顾XtremIO全闪存阵列软硬件架构设计_》

测试平台简介、VROC测试预览

image.png
上面这款17英寸屏幕的笔记本,就是我测试RST RAID的Precision 7740移动工作站。需要说明的是,Dell官方资料中似乎没有明确写支持NVMe SSD RAID,但既然具备Intel RST选项(应该还预留有Optane Memory的支持),Intel的驱动/管理程序中又不太好做限制,所以有条件的用户不妨考虑尝试一下:)

image.png

我手头这台7740配置的是Intel i7-9750H 6核CPU,9代Core/Xeon移动处理器最高可以支持到8核。经专业用户测试,上一代6核的Precision 7730移动工作站已经可以支持到2层4K超高清视频编辑(主要受限于CPU),那么7740预计应有更好的表现。

image.png

高端移动工作站的显卡也是模块化可选的,7740支持列表中把包括最新的NVIDIA Quadro RTX 4000、5000等带有光线追踪技术的专业显卡,这一台配的是AMD Radeon Pro WX7130。我有好久没专门做过图形工作站显卡的对比测试了,感兴趣的朋友请在文章下面留言,如有时间我可以考虑安排。

Intel VROC NVMe SSD RAID5

image.png

当然在移动工作站上是无法测试VROC的,需要使用Xeon SP或者Xeon W平台,上图是我在Precision 7820上简单先试了一把。还是用同样3个NVMe SSD做的RAID 5,可是顺序读带宽(接近单盘3倍了)似乎有些超标?

看来还有必要进一步深入测试,如知道上面问题答案的朋友也可以在留言中先告诉我。

又写的有些长,未完待续,敬请继续关注…

推荐阅读

本文转载自企业存储技术微信公众号,[原文链接点这里]。
注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。 进一步交流技术可以加我的微信/QQ:490834312。
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:HL_Storage,也欢迎关注企业存储技术极术专栏,定期更新。
![4
推荐阅读
关注数
5555
内容数
236
关注存储、服务器、图形工作站、AI硬件等方面技术。WeChat:490834312
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息