当前位置: 首页 > 科技观察

NVMe:未来数据中心存储革命的代表

时间:2023-03-15 23:36:26 科技观察

非易失性内存高速(NVMe)定义了一种通过PCIe总线访问固态驱动器(SSD)的新方法,预计在未来几年内将呈指数级增长比较与传统协议(如SATA协议)相比,其更高的性能和更低的延迟具有一定的优势。支持NVMe的存储基础设施不仅得到广泛部署,而且现在正在进入数据中心,这些数据中心通常仍使用传统的机械硬盘(HDD)和固态硬盘(SSD)。NVMe协议已经成为下一代数据中心存储的代名词。要了解这种演变,重要的是回顾存储技术的演变并检查由该协议转换的一些新应用程序工作负载。在过去的几十年里,数据存储遵循着一种类似于数据计算的模式,从集中式大型机架构演进到分布式客户端/服务器架构。然后,它又回到由虚拟化驱动的集中式架构,然后又回到由基于Web和云的应用程序驱动的分布式架构。存储技术再次在直接连接媒体和分布式存储区域网络(SAN)之间摇摆不定,后者使用SCSI命令集和SATA/SAS协议通过并行和串行接口在CPU和存储媒体之间物理移动数据。随着基于闪存技术的固态硬盘(SSD)的出现,传统的SATA/SAS标准协议似乎已经过时,但它们的兴起是由于它们经过验证、兼容并可无缝集成到现有系统中。随着时间的推移,尽管与数据访问请求和接收相关的性能延迟很长,但SATA协议仍然是最常见和最具成本效益的接口标准。这些延迟对于HDD是合理的,因为磁性格式需要磁盘自旋和寻道导致延迟,但对于使用内存单元(与磁盘自旋和寻道相反)的基于闪存的SSD,SATA协议的延迟是不可接受的。归根结底,固态硬盘(SSD)的全部优势无法在基于闪存的存储系统的应用中发挥出来,因为SATA标准协议更新速度太慢。SATA协议的这些局限性使PCIExpress(PCIe)成为未来存储介质的逻辑接口,它也基于为SATA/SAS标准设计的遗留SCSI软件堆栈。PCIe插槽直接连接到CPU(提供类似内存的访问)并在较小的软件堆栈上运行(见图1)。PCIe接口可以减少数据传输延迟,同时增加传统SATA/SAS的带宽。虽然PCIe接口是朝着正确方向迈出的一步,但每个SSD硬盘驱动器都需要自己的专有驱动程序,这会因缺乏标准化而增加复杂性和不兼容性,从而给SSD制造商带来更多工作。开发工作。因此,NVMe协议应运而生。图1SATA和SASSSD与PCIeSSD的软件堆栈比较非易失性内存存储(NVME)是基于NAND闪存的固态驱动器(SSD)的标准协议和驱动程序。NVMe接口由行业领先的存储、网络和服务器供应商(NVMexpress.org)组成的开放行业联盟开发,可提高基于PCIe的服务器和SSD中的非易失性存储性能,并消除SCSI命令堆栈和直接连接存储(DAS)与传统HDD接口相关的瓶颈。它是专门针对固态介质的独特调整的I/O架构,消除了传统HDD接口障碍。从概念上讲,只需要一个驱动程序即可使每个SSD合规。与NVMe兼容的固态硬盘(SSD)可提供高达SATA固态硬盘10倍的读取性能,从而使要求更高的应用程序工作负载能够在更少的设备上运行,并实现更小的物理硬件占用空间。基于NVMe的固态硬盘(SSD)原本旨在用于高性能和大容量负载(溢价成本),现在可以服务于数据中心以前为基于SATA标准的SSD预留的其他区域,也创造了广泛采用的Convergence的计算和存储。NVMe和SSDNVMe协议将PCIe闪存存储扩展到新的水平。它专门针对非易失性固态存储架构进行了优化。它具有流线型的内存接口、命令集和队列设计,使其成为当今虚拟操作系统的理想选择。此外,它与CPU的直接连接(通过PCIe总线)简化了存储设备堆栈并提供比传统SATA/SAS协议更快的性能。因此,所有主要的服务器制造商都实现了对基于NVMe的U.2SSD(2.5英寸格式)的支持,这使得他们的出货量增长并很快将超过SATASSD。表1典型SSD的接口规格表1显示了SATA、SAS、PCIe和NVMeSSD介质的典型规格,与领先的WesternDigitalSSD(括号内)进行了比较。基于NVMe标准的SSD可以提供最高的IOPS(每秒I/O操作数)、带宽性能和最大容量范围。表2SATA与PCIe与NVMe的性能比较表2比较了基于其高级主机控制器接口(AHCI)的SATA协议与PCIe协议和NVMe标准的主要特性。提供更好的带宽和IOPS性能,以及更低的延迟。它还为主存储提供了可扩展性,而没有电池供电的RAID或HBA卡的成本或复杂性。使用基于NVMe的存储相对于基于SATA的存储的优势涵盖了广泛的工作负载,如下面的讨论所示。(1)传统企业数据库工作负载为了帮助扩展数据库并避免服务器蔓延或硬件资源利用率低下,MicrosoftSQLServer、OracleDB和OracleMySQL可以使用12倍于SATA协议的NVMe带宽,其延迟为减少了50%。例如,SATA存储的单个数据库服务器受限于SATA设备性能的I/O等待条件。结果是系统运行变慢。一个常见的解决方案是购买另一台服务器并分担工作量,或者将一台服务器分配给后端库存,另一台服务器分配给订单输入。然而,在这两种情况下,都需要两个软件许可证。用NVMe固态驱动器(SSD)替换基于SATA协议的SSD或HDD可以将I/O等待时间减少50%,从而使数据库工作负载能够在一台服务器上运行并且只需要一个软件许可证。单个核心数据库应用程序可能花费数万美元,而许多软件许可证可能占总拥有成本(TCO)和总运营成本(TOC)的60%以上。但是,NVMe提供交互式商业智能(BI)工作负载所需的带宽和性能,以及支持在线事务处理(OLTP)等事务性工作负载的最高IOPS。(2)内存数据库工作负载ApacheSpark和其他内存数据库(IMDB)应用程序(依赖主内存进行数据存储)通过通常大于组合集群内存的持久存储组件更改和扫描数据集。在这种情况下,每个NVMeSSD提供的更高带宽足以以CPU速度提供DRAM内存重新加载和相关数据扫描。在SATA协议的情况下,需要RAID0配置中的多个驱动器,从而在平均故障间隔时间(MTBF)和重建时间之间产生挑战。8盘RAID0系统中单点故障意味着该节点总是出现故障,必须重新加载;然而,重新加载节点会使受影响的系统处于“降级模式”或更糟,当节点完全重建时,可能会阻止它们运行。(3)物联网工作负载NVMe还非常适合集成各种数据源,尤其是那些来自较新的工业物联网(IoT)工作负载的数据源。例如,一家工厂可能有数千个传感器以每秒数百kB的速度将数据每秒数千次地传输到NoSQL数据库(例如MongoDB或Cassandra)。NVMe的高级带宽对于将这些资源集成到数据库中至关重要,同时提供足够的带宽和IOPS来执行分析。物联网设备(例如自动驾驶汽车、无人机、工厂/农场机器和设备以及监控摄像头)也会收集大量数据。根据研究公司Gartner的数据,到2020年,每辆车的联网和自动驾驶汽车数据流量可能达到280PB,即每年2.8亿GB。有效处理这些数据的唯一方法是通过车载闪存和带有NVMe设备的路边网关。但即使有了这种基础设施,大规模的自动驾驶“车队”也需要将处理后的数据推送到云端进行存储和分析,从而造成需要带宽、IOPS和低延迟的数据海啸。(4)机器学习工作负载机器学习可以有效地使用基于NVMe的设备,尤其是即将支持的直接内存访问(DMA)扩展,使某些硬件子系统能够独立于CPU访问主系统内存。这种访问使CPU不仅可以更快地读取数据,还可以更快地执行更高优先级的任务,例如为图形处理单元(GPU)阵列提供数据。SATA接口具有较低的GPU利用率,因为数据从多个SATA驱动器传输到DRAM内存,然后使用主机CPU传输到GPU。此过程可能导致性能差距,尤其是当GPU阵列数据不足时。***思考正如过去人们经历了计算和存储架构的潮起潮落,人们正在经历数据中心的另一波转型。然而,与过去的协议不同,NVMe充当集中化和分散化之间的桥梁,提供前所未有的灵活性和选择。因此,人们需要密切关注NVMe将如何驾驭计算的未来,实现功能强大且用途广泛的系统及其作为数据中心变革推动者的应有地位。