[转帖]存储极客:服务器SSD RAID性能速查手册

存储,服务器,ssd,raid,性能,速查,手册 · 浏览次数 : 0

小编点评

**H730P RAID IOPS (12Gbps SAS SSDs) 随机读写接下来看SAS SSD的测试结果** 1. SATA SSD RAID 5随机读IOPS可达3x-5x万IOPS的水平,具体与SSD单盘性能有关;RAID 5随机写测得3.x-4.x万IOPS,RAID 10随机写接近10万。看来有些情况下RAID卡会成为瓶颈。 2. 下面我们用支持NVMe的Dell Express Flash PCIe SSD/闪存卡做下对比参照:上图是“性能”系列,而下图为“混合用途”,二者的分类方法我们在《存储极客:SSD寿命与闪存阵列选型(上)》一文中曾有讨论,简单说就是写性能和寿命不同。 3. 在大多数场合,服务器上使用SAS SSD做RAID的必要性不大,企业级SATA中也有表现不错的。 4. 尽管RAID 5的写IOPS只有RAID 10的一半不到,但由于闪存成本等方面因素,我了解到大多数人还是选择RAID 5。而且RAID 10还有镜像盘同时达到写寿命限制的风险,需要更重视磨损监控。对随机写要求高的用户,还是别用传统RAID了。 5. RAID卡直通/HBA模式的表现则要好得多,由于没有了RAID保护的开销,总随机写性能全面超越单个PCIe Flash,毕竟是多块盘。高速SAS SSD在这种情况下可以更好地发挥。

正文

https://aijishu.com/a/1060000000124241

 

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

我曾经不只一次看到有朋友提出以下问题:

1. SSD做RAID性能如何,RAID卡会成为瓶颈吗?

2. SAS/SATA SSD做RAID,与PCIe/NVMe Flash相比,哪个性能好?

3. SAS SSD是否比SATA SSD性能好,用在服务器上有无必要?

4. SSD做哪种RAID级别最合适,R5/10性能损失是否比HDD更大?

5. RAID卡与SAS HBA(或RAID卡直通模式)相比,性能差多少?

最近看到一份比较全的测试资料,包括RAID和Non-RAID (Pass-Thru)模式、6Gbps SATA SSD(最多12个)和12Gbps SAS SSD(最多8个)的全面性能水平。比较有参考价值。

免责声明:测试平台为戴尔13G服务器和Dell PowerEdge RAID Controller (PERC9) H730p,它使用了LSI 12Gb/s SAS RoC,应该可以代表现在主流的RAID卡。由于测试时间原因,固件和驱动版本都不是最新的,具体的SSD型号我也不注明了,希望不要将这些数字用于竞争 性对比,那样就违背了我分享的初衷。

NVMe来了,SATA、SAS SSD仍将共存很长一段时间

H730P RAID IOPS 

(6Gbps SATA SSDs) 随机读写

RAID 0在绝大多数生产环境中都不推荐,在这里列出主要是作为和RAID 1/5的对比,并了解一下RAID卡处理能力的限制。同样512byte数据块大小也只是为了看看极限。

根据上方图表,SATA SSD单盘RAID 0的512B和4KB随机读性能在5-10万IOPS之间,增加SSD个数到2、4、8基本上能获得线性提升,达到40-45万IOPS。进一步加到12个SSD变化则不明显,除非数据块增大到8KB或者更高。35万IOPS@8KB时的带宽已经达到2800MB/s。

RAID 5随机读的表现与RAID 0相当接近,这一点和传统机械硬盘相一致。

使用SATA SSD的RAID 10测试成绩,是本次分享中“稍有些不正常”的,这个可能与当时的Firmware版本和具体使用的SSD有关。简单说就是4块盘的表现和2块盘差不多,而12块盘则接近甚至超过了50万IOPS,比RAID 0和5的表现更好。

RAID 0随机写没有前面性能高,主要是SSD闪存盘自身的写就比读要慢。我们注意到单盘大约在3万IOPS左右,那么8块盘超过20万,12块盘超过30万也是个正常的表现。

为了避免写缓存带来的干扰,测试采用Write-Through的策略。我们知道RAID 5每一次改写操作都会产生2次读和2次写I/O,也就是通常说的写惩罚为4。随机写之所以性能差,就是因为离散的操作不能在Cache中合并形成整条带I/O。

如上方图表,SATA SSD RAID 5随机写在4、8块盘时,性能比RAID 0的1/4要低一些,但也在可以接受的范围内。而12块盘在数据块较小时却无法获得理想的提升,考虑到Rebuild性能和第二块盘故障的风险,我给出如下建议:

1. 多数情况下不建议SSD做RAID 6(这里指传统RAID卡),因为性能损失太大;同样也影响写寿命,得不偿失。

2. RAID 5建议不超过8-9(8+1)块盘,也是在大多数情况下。

扩展阅读

在《存储极客:SPC-1负载分析与AFA寿命评估》一文中,我们简单介绍过不同RAID级别对SSD写寿命的影响;

在《存储极客:从硬盘设计思想到RAID改良之道》一文中,提到了“传统RAID组中磁盘数量越多,Rebuild时要读取的数据量也是成正比的… 在RAID卡固定条带大小的情况下,参与硬盘数量越多Rebuild速度也会越慢。”

SATA SSD RAID 10随机写在不超过8块盘时,基本达到了RAID 0 IOPS的一半;12块盘在512B和4KB数据块无法获得明显提升(原因在后面有对比分析)。由于RAID 10也存在第二块盘故障的风险,因此可以参考上面的建议。

H730P Pass-Thru IOPS

 (6Gbps SATA SSDs) 随机读写

1块SSD性能的差别,直通(即SAS HBA模式)与RAID相差不大;而在8块盘以内,上图表中的随机读就是与SSD数量完全成正比提高。12块盘虽然无法保持这个趋势,但512B和4KB的IOPS依然达到了70万和55万,继续往后看您会发现此时RAID/HBA卡还没有到达瓶颈。

直通模式下一个SSD随机写的性能依然在3万IOPS左右,2/4/8块盘也还是理想的线性提升。而12块盘在512B接近60万IOPS的性能有些不正常,猜测是个别测试子项未达到SSD的稳态?

H730P RAID IOPS

 (12Gbps SAS SSDs) 随机读写

接下来看SAS SSD的测试结果。上面图表中的RAID 0随机读,单盘4KB、8KB数据块分别达到了15万和10万IOPS,后者的带宽已经达到800MB/s,这一水平只有12Gb/s SAS接口能跑到,6Gb/s SATA是不可能的。

在50万IOPS以内,SSD数量增加带来的提升基本上是线性的。得益于这款SAS SSD的单盘性能,4块RAID 0就能达到50万IOPS,再往上很快就遇到RAID卡的瓶颈了。而且12块与8块SSD的随机读已经拉不开差距。

小记:SAS与SATA SSD的性能

曾经有朋友和我讨论过SAS SSD是否比SATA更快?从接口角度主要是带宽不同,SAS除了有12Gb/s之外还有双端口,后者更多价值在于双控存储。

我们这里只讨论IOPS,比如有些低端企业级的SATA和SAS SSD,它们的闪存控制技术和NAND颗粒配置相差不大,因此性能上没有明显较大差别。而若是性能较高的SSD,比如使用16-18通道控制器,则其随机访问产生的带宽也很可能超出SATA 600MB/s的接口限制,此时只有12Gb/s SAS才合理(注:PCIe/NVMe仅在本文结尾处用于对比)。这也是我基本没有看到过SATA SSD控制器超过8-10通道的原因。

再多透露一点,本文中测试配置的SATA和SAS SSD分别来自Intel和HGST,其实后者的ASIC控制器硬件以及闪存接口技术也是来自Intel,但是定位不同。

RAID 5随机读和RAID 0基本保持一致,这一点与SATA SSD差不多。

SAS SSD RAID 10随机读也不再有遗憾,性能结果与RAID 0非常接近。

再来看看随机写。首先单个SAS SSD大约在4万多IOPS@4KB,一直到8、12块RAID 0保持了比较高度的线性提升。

RAID 5随机写这一项,SAS SSD并没有表现出比SATA的明显优势,45000 IOPS似乎是个瓶颈,也就是说距离上面RAID 0性能的1/4也差了不少。这大概就是RAID卡最大的短板吧,传统RAID算法对SSD优化不够。

因此要看应用场景,像互联网MySQL数据库一主多从中的Slave节点,SATA SSD RAID 5的效果还是不错的。

当数据块大小达到8KB,8块SAS盘RAID 5随机写还比较正常,这样看用Oracle数据库单机也还可以?虽然按照传统思路OLTP推荐RAID 10,但是以这个IOPS水平比本地HDD RAID还是远远胜出的。

RAID 10随机写的表现比RAID 5大约高出一倍,但是最高性能似乎被限制在10万IOPS,所以还是不够理想。当然,在不超过8块SSD,数据块不小于8KB的情况下写惩罚的影响比较符合“2”。

总的来看,比SATA SSD更快的SAS SSD在随机写性能上遇到了RAID卡的瓶颈。尽管RAID 0不是这样,但实际有意义的还是RAID 5和10。

H730P Pass-Thru IOPS 

(12Gbps SAS SSDs)


在直通(Non-RAID)模式下,SAS SSD没有让我们失望,除了12块盘仍无法获得线性提升之外,随机读跑到了单块HBA性能极限的100万IOPS。不知大家还记得我在《突破百万IOPS:blk-mq释放SCSI性能》一文中列出的下面这个图吗?

Linux下需要考虑内核&设备驱动的多队列支持,而本文中测试数字是在Widnwos Server 2008 R2下获得的,看来Windows在这方面比较早做好了准备,这大概就是商业操作系统的好处吧。

之前我在《SPC-1 500万IOPS再引争议:请用技术事实说话》中有一段讨论过“Windows做存储真的那么差吗?”的话题,本文也算是增加了一点证据吧。

在没有RAID开销的情况下,随机写基本上就是SAS SSD本身性能的累积。

总结:

面对NVMe,SATA/SAS生命还有多强?

现在可以看下本文开头提出的几个问题是否有答案了,我们主要以服务器上的硬件RAID 5/10的4KB随机读写来评估。

1. SATA/SAS SSD RAID卡随机读IOPS可达3x-5x万IOPS的水平,具体与SSD单盘性能有关;RAID 5随机写测得3.x-4.x万IOPS,RAID 10随机写接近10万。看来有些情况下RAID卡会成为瓶颈。

SATA/SAS SSD RAID个人建议配置不超过8-9个盘。

2. 下面我们用支持NVMe的Dell Express Flash PCIe SSD/闪存卡做下对比参照:

上图是“性能”系列,而下图为“混合用途”,二者的分类方法我们在《存储极客:SSD寿命与闪存阵列选型(上)》一文中曾有讨论,简单说就是写性能和寿命不同。

注:戴尔目前不自己制造服务器上闪存盘组件,这里列出的来自OEM合作伙伴,有的朋友可能看出了供应商是哪一家。

RAID之后的SATA/SAS SSD IOPS性能比单个NVMe/PCIe Flash仍有差距,特别是RAID 5随机写存在比较大的短板。

3. 在大多数场合,服务器上使用SAS SSD做RAID的必要性不大,企业级SATA中也有表现不错的。

4. 尽管RAID 5的写IOPS只有RAID 10的一半不到,但由于闪存成本等方面因素,我了解到大多数人还是选择了RAID 5。而且RAID 10还有镜像盘同时达到写寿命限制的风险,需要更重视磨损监控。对随机写要求高的用户,还是别用传统RAID了。(写到这里我有点同情Ceph的感觉)

5. RAID卡直通/HBA模式的表现则要好得多,由于没有了RAID保护的开销,总随机写性能全面超越单个PCIe Flash,毕竟是多块盘。高速SAS SSD在这种情况下可以更好地发挥。我能想到的应用模式,主要是分布式存储(ServerSAN),当然多个PCIe Flash可能是更受青睐的一种选择。

最后我又想起一点,等支持NVMe的“硬”RAID卡出来,那时候再对比一下估计也是个挺有意思的事情。

推荐阅读

与[转帖]存储极客:服务器SSD RAID性能速查手册相似的内容:

[转帖]存储极客:服务器SSD RAID性能速查手册

https://aijishu.com/a/1060000000124241 存储 本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号、微博ID:唐僧\_huangliang,以便更好地与读者互动。 我曾经不只一次看到有朋友提出以下问题: 1. SSD做RAID性能如何,RAID卡会成为

[转帖]350万IOPS:NVMe SSD RAID卡性能测试解析

https://aijishu.com/a/1060000000225602 最近,有不止一位读者朋友希望我分享NVMe RAID卡的性能表现。记得在5年前,我写过一篇《存储极客:服务器SSD RAID__性能速查手册》,当时还是SAS和SATA SSD做阵列,而我当时在文章末尾写了下面这句: 时间

[转帖]焱融全闪系列科普| 为什么 SSD 需要 NVMe?

https://aijishu.com/a/1060000000371942 云计算存储极术推荐 NVMe 的由来 目前机械硬盘大多数使用 SATA (Serial ATA Advanced Host Controller Interface) 接口,接口协议为 AHCI,是 Intel 联合多家公

[转帖]各种数据结构性能的比较

数据结构包括数组、链表、栈、二叉树、哈希表等等 数据结构优点缺点数组插入快查找慢、删除慢、大小固定有序数组查找快插入慢、删除慢、大小固定栈后进先出存取其他项很慢队列先进先出存取其他项很慢链表插入、删除快查找慢二叉树查找、插入、删除快算法复杂(删除算法)红黑树查找、插入、删除快算法复杂hash表存取极

[转帖]存储器系统

https://juejin.cn/post/6844903472341450765 基础概念 存储器容量:取决于寻址方式,16位机能产生16位地址,因此能在2^16=64K个存储器单元中寻址,同理,32位机能使用包含4G个单元的存储器。 MAR(存储器地址寄存器)和 MDR(存储器数据寄存器):通

[转帖]【存储测试】vdbench存储性能测试工具

一、前言 1、介绍 vdbench是一个I/O工作负载生成器,通常用于验证数据完整性和度量直接附加(或网络连接)存储性能。它可以运行在windows、linux环境,可用于测试文件系统或块设备基准性能。 2、版本包获取 vdbench版本包 下载链接 jdk版本包 下载链接(windows) 下载链

[转帖]【存储测试】cosbench存储性能测试工具

一、前言 参考资料: https://blog.csdn.net/QTM_Gitee/article/details/100067724 https://github.com/intel-cloud/cosbench/blob/master/COSBenchUserGuide.pdf COSBenc

[转帖]数据存储四种常见方式

常见的数据存储方式有四种:在线存储、近线存储、脱机存储和站外保护。 不同的存储方式提供不同的获取便利性、安全性和成本开销等级。 在大多数场景中,四种存储方式被混合使用以达到最有效的存储策略。 来看一看这四种数据存储方式各自的含义: 1. 在线存储 (Online storage): 有时也称为二级存

[转帖]k8s 存储卷之 PV & PVC

https://cloud.tencent.com/developer/article/2070495?areaSource=&traceId= 文章目录 k8s 存储卷之 PV & PVC 高级存储 PV 创建 PV 实例 PVC Pod 挂载数据卷 生命周期 k8s 存储卷之 PV & PVC

【转帖】数据存储四种常见方式

常见的数据存储方式有四种:在线存储、近线存储、脱机存储和站外保护。 不同的存储方式提供不同的获取便利性、安全性和成本开销等级。 在大多数场景中,四种存储方式被混合使用以达到最有效的存储策略。 来看一看这四种数据存储方式各自的含义: 1. 在线存储 (Online storage): 有时也称为二级存