NVMeSSDRaid性能测试技术报告 [编号ODCC-2024-0500C] NVMESSDRaid性能测试技术报告 开放数据中心标准推进委员会2024.09发布 NVMeSSDRaid性能测试技术报告 版权声明 ODCC(开放数据中心委员会)发布的各项成果,受《著作权法》保护,编制单位共同享有著作权。 转载、摘编或利用其它方式使用ODCC成果中的文字或者观点的,应注明来源:“开放数据中心委员会ODCC”。 对于未经著作权人书面同意而实施的剽窃、复制、修改、销售、改编、汇编和翻译出版等侵权行为,ODCC及有关单位将追究其法律责任,感谢各单位的配合与支持。 NVMeSSDRaid性能测试技术报告 编写组 项目经理: 黄福帅联想(北京)信息技术有限公司工作组长: 郭亮中国信息通信研究院 贡献专家: 康爱华联想(北京)信息技术有限公司 刘振伟联想(北京)信息技术有限公司 高治华联想(北京)信息技术有限公司 胡振国联想(北京)信息技术有限公司 吴福磊联想(北京)信息技术有限公司李军深圳忆联信息系统有限公司 张华深圳忆联信息系统有限公司 樊文慧深圳忆联信息系统有限公司孙志超中科曙光 许泗强浪潮集团有限公司 韩港霄深圳大普微电子有限公司 孙英达北京忆恒创源股份有限公司 李朝兰北京忆恒创源股份有限公司 段小峰北京忆恒创源股份有限公司温小振中国信息通信研究院 NVMeSSDRaid性能测试技术报告 目录 一、引言1 二、缩写和术语1 三、定义2 (一)WA2 (二)QoS3 (三)PerformanceConsistency3 (四)Purge4 (五)Precondition4 四、NVMeRaid类型4 (一)SoftwareRAID4 (二)Tri-modeHardwareRAID6 (三)GRAID7 (四)旁路RAID8 (五)VROC9 五、RaidLevel10 六、Raid理论性能模型12 (一)RAID0理论计算13 (二)RAID1理论计算14 (三)RAID5理论计算15 (四)RAID10理论计算18 七、NVMeRaid性能测试环境18 NVMeSSDRaid性能测试技术报告 (一)ProductName:ThinkSystemSR660-v218 (二)ProductName:HYGONR6240H018 八、NVMeRaid性能调优19 (一)Demi-monde19 1.调节系统至性能模式19 2.OS下调优方法19 3.绑核操作19 4.关闭超线程20 5.Hygon平台特定优化20 6.PCIeMPS调节20 (二)GRAID20 1.调节系统至性能模式20 2.OS下调优方法20 3.绑核操作21 4.测试FIO队列参数21 5.PCIeMPS调节21 (三)VROC22 1.调节系统至性能模式22 2.OS下调优方法22 3.绑核操作22 4.终止系统的IRQ均衡23 5.额外的RAID5性能调优23 NVMeSSDRaid性能测试技术报告 6.PCIeMPS调节23 九、性能分析23 (一)Raid0测试性能表现23 (二)Raid1测试性能表现24 (三)Raid5测试性能表现25 (四)Raid10测试性能表现26 十、性能总结27 (一)Tri-mode27 (二)RAID0模式下27 (三)RAID1模式下28 (四)RAID5模式下28 (五)RAID10模式下28 NVMeSSDRaid性能测试技术报告 NVMeSSDRaid性能测试技术报告 一、引言 本测试规范旨在为NVMeSSDRaid环境下,通过对不同的NVMeRaid实现方式以及不同RaidLevel的实践测试,对不同的NVMeRaid性能影响因子进行分析找到性能优化方案以及选取合适的性能使用场景 本测试规范的范围涵盖了不同的NVMeRaid实现方式:VROC;Tri-mode;旁路Raid;GRaid;SWRaid。以及不同平台,不同环境,不同RaidLevel的性能优化 本测试规范旨在提供一套统一的测试方法和指导,以确保在不同NVMeRaid实现方案以及不同的应用场景与平台上面实现性能结果的最优化。 本测试规范不涉及NVMe协议的设计和开发,也不涉及NVMeRaid实现的具体实现方法。它仅涉及对NVMeRaid性能的调优以及测试方法。 二、缩写和术语 缩略语 英文全称 中文全称 ACPI AdvancedConfigurationandPowerManagementInterface 高级配置与电源接口 AR ActiveRange (硬盘LBA)可操作范围 BIOS BasicInputOutputSystem 基本输入输出系统 CMR ShingledMagneticRecording 磁叠瓦技术 CPU CentralProcessingUnit 中央处理器 DUT Deviceundertest,usuallyDiskinthisdocument 被测设备(本文档经常表示硬盘设备) ECC ErrorCheckingandCorrecting 错误检查与恢复 NVMeSSDRaid性能测试技术报告 GPU GraphicsProcessingUnit 图形处理器 GC GarbageCollection 垃圾回收 HT HyperThreading 超线程 IO Input/Output 输入/输出 IP InternetProtocol 支持产权核心 IPMI IntelligentPlatformManagementInterface 智能平台管理接口 MTBF MeanTimeBetweenFailure 平均故障间隔时间 NVMe Non-VolatileMemoryexpress 非易失性存储器标准 OP Over-provisioning 预留空间 OS OperatingSystem 操作系统 PPW PerformancePerWatt 效能功耗比 PCIe PeripheralComponentInterconnectExpress 外设组件互连扩展总线 PSU PowerSupplyUnit 电源供应器 QoS QualityofService 服务质量 Redfish Redfish 基于网络并利用RESTful接口实现设备管理的管理标准 RDIMM RegisterDIMM(DualIn-lineMemoryModule) 带寄存器的双线内存模块 RAID RedundantArrayIndependentDisk 独立冗余磁盘阵列 SSD SolidStateDrive 固态硬盘 SNMP SimpleNetworkManagement protocol 简单网络管理协议 SATA SerialATA 串行ATA总线 SS RAIDVolumeStripSize RAID卷条带大小 SUT Systemundertest 测试平台 TCO TotalCostofOwnership 总拥有成本 TB TurboBoost 英特尔睿频加速技术 USB UniversalSerialBus 通用串行总线 VROC IntelVirtualRAIDonCPU 基于因特尔CPU的企业级RAID解决 方案 VGA VideoGraphicsArray 视频图形阵列 WCD/WCE WriteCacheDisable/WriteCacheEnable 写缓存关闭/写缓存打开 WA WriteAmplification 写放大 三、定义 (一)WA WA即写放大系数,在nand-basedSSD中,因为nand独特的 NVMeSSDRaid性能测试技术报告 擦写特性,会造成写放大现象,即实际用户写入量会不等于nand写 入量,而nand是有寿命的(PECycle)。 WANandWrite HostWrite (二)QoS QoS即服务质量,指在规定的时间内,以稳定一致的性能完成所有请求的能力。在本规范中如果没有特殊说明,QoS量化指标是以99%和99.99%的可信度给出最大的响应时间。99%又可写为29s,同理99.99%又可写为49s。 从应用角度来讲,EnterpriseDisk往往进行着全年全天候的运行,因此产品短时间内的高性能不足以衡量一个产品的性能质量,EnterpriseDisk通常要具备稳定高性能,特别是大压力下的稳定高性能的能力。连续的高压力下的性能抖动现象称为“毛刺”,譬如产生超长延时等。QoS与PerformanceConsistency通常可以作为性能稳定性的衡量指标。 (三)PerformanceConsistency 基于nand的SSD,其所有容量通常会分为用户空间和OP,随着host对SSD写入大量随机数据,SSD内部就会产生GC,GC会占用内部带宽资源从而影响外部性能,这就是稳态性能与性能波动(一般client产品会比较明显)的概念来源。用户空间和OP是相对的概念,一般OP指的是SSD预留的固定的空间大小,但事实上只使用一部分用户空间,其另一部分不被使用的用户空间会同样具备OP的功能。 NVMeSSDRaid性能测试技术报告 性能一致性,一开始是用于探索固态硬盘(nand-based)空闲可用空间和性能之间关系的指标。这个指标的目的是考察固态硬盘性能(特别是IOPS)随时间发生的变化,如果一直保持很好的一致性,则说明产品性能稳定,可以带来更好的体验。 ConsistencyIOPSinthe99.9%slowest1-secondinterval averageIOPSduringthetest (四)Purge Purge指的是硬盘数据的擦除,SSD在经过长时间的复杂负载写入后,会导致内部MappingTable非常复杂,内部GC占用用户带宽。为了确保测试结果的一致性,不随着测试的进行导致硬盘性能逐渐降低,可以通过Purge对盘进行底层数据擦除。 NVMeSSD数据擦除指令如下: #nvmeformat/dev/nvmeXn1 (五)Precondition 128k顺序读写的预处理 使用128k顺序写,填写满盘2遍。 4k随机读写的预处理 使用128k顺序写,填写满盘2遍。随后4k随机写全盘容量的2倍。 4k随机读写延迟的预处理 同4k随机读写的预处理。 Precondition是在硬盘正式进行性能测试前,对硬盘进行指定数据的填充。目的是保证SSD内部空间全部填满数据,并且帮助硬盘达到稳态性能。 四、NVMeRaid类型 (一)SoftwareRAID NVMe软件RAID的概念与已经用于机械硬盘的概念非常相似, NVMeSSDRaid性能测试技术报告 使用主机系统的CPU来处理NVMe指令并进行校验和计算。不同之处在于NVMe通过PCIe连接到存储设备,带宽更高,延迟更低,指令集设计更简单,因此通过CPU直接处理RAID效率更高。 以RAID-0读取为例:当应用程序读取任何4K块时,它将生成一条读取NVMe的指令。软件RAID模块收到该指令后,只需要对指定的SSD硬盘进行解释并生成新的NVMe命令。然后SSD可以直接通过DMA将数据发送到应用程序可以访问的缓冲区。 NVMeSSDRaid性能测试技术报告 (二)Tri-modeHardwareRAID 当使用HDD时,硬件RAID是一个很好的解决方案。所有RAID逻辑都是在一个单独的硬件控制器上完成的,它可以从主机CPU中卸载计算。然而,正因为如此,所有的数据读写都必须经过RAID控制器。 目前市场上最常见的NVMeSSD传输接口是PCIeGen4X4/Gen5x4:如果使用更好规格的SSD,通过PCIeGen4x8/x16连接到主机的RAID控制器很容易成为性能瓶颈。此外,所有ssd都必须直接连接到硬件RAID控制器上,但由于控制器本身的PCIe通道数量非常有限,这将直接限制控制