详解:什么是NVMe?

说到NVMe,“快”是人们对它的第一印象。因为NVMe的出现,硬盘的性能得到了极大的提升。那到底什么是NVMe呢?



什么是NVMe?


NVMe是 non-volatile memory express 缩写,翻译过来就是非易失性内存主机控制器接口规范,在它首次投放市场的时候,许多人认为它只是一个新的、速度更快的SSD。但实际上,NVMe是一种基于性能并从头开始创建新存储协议,它可以使我们能够充分利用SSD和存储类内存(SCM)的速度。


NVMe是一种高性能、NUMA(非统一内存访问)优化的、高度可扩展的存储协议,用于连接主机和内存子系统。NVMe是专门为NAND、闪存等非易失性存储设计的,NVMe协议建立在高速PCIe通道上。


详解:什么是NVMe?


NVMe接口协议的功能包括:


  • 支持64K命令队列;

  • 可以使用低CPU周期为每个队列发送64K命令;

  • 延迟约为2.8微秒;

  • 可以直接与系统CPU通信;

  • NVMe可以实现超过一百万的IOP。



NVMe的演变


在过去的十年中,存储技术发生了翻天覆地的变化。随着固态硬盘开始取代机械硬盘成为主要的存储设备,我们急需一个新的接口标准来利用更快的速度和功能。


传统的SATA接口与AHCI标准其实是为了机械硬盘而设计的,早期的SSD性能不高,即使使用这些传统的接口和协议,也不觉得有什么问题,但是随着SSD的性能逐渐增强,传统的标准已经不再适用,进而成为了限制SSD的一大瓶颈。NVMe是第一个真正满足高速存储介质需求的协议。


2009年下半年,NVM Express工作组(NVMHCI)开始制定NVMe规范,NVM Express工作组包含90多家公司成员,Intel是主要领头人,小组成员包括美光、戴尔、三星、Marvell、NetAPP、EMC、IDT等公司,目的就是为SSD建立新的存储规范标准,让它在老旧的SATA与AHCI中解放出来。


2011年,NVMe 1.0标准正式出炉,该标准是根据闪存存储的特点量身定制的,新的标准解除了旧标准施放在SSD上的各种限制。2012、2014和2017相继推出了1.1、1.2和1.3版本,目前最新的NVMe 1.4标准已于2019年7月发布。


详解:什么是NVMe?



NVMe如何工作?


NVMe通过PCIe接口将I/O命令和响应映射到主机的共享内存。NVMe接口支持多核处理器并行I/O,以促进高吞吐量,缓解CPU的压力。


与SCSI和ATA命令集相比,NVMe提供了更加简化的命令集来处理I/O请求。相对于前两者,NVMe需要的CPU指令数量少一半。


详解:什么是NVMe?


NVMe的本质是上建立了多个计算机与存储设备的通路。NVMe在单个消息队列中支持64000个命令,最多支持65535个I/O队列。相比之下,SAS设备的队列深度通常在一个队列中最多支持256个命令,而SATA驱动器最多支持32个命令。打个比方,如果SATA是一条普通的小道,每次只能通过32辆车的话,那NVMe就是一条拥有65535条车道的高速公路,每条车道能通过65535辆车。


详解:什么是NVMe?



NVMe的优势


NVMe的优势在于它能够利用到并行数据路径,从而在加速方面提供更好的性能。它能够使现有的应用程序以及新的应用程序可以更有效地工作。除此之外,低延时、低功耗以及兼容性高等也是NVMe的众多优势之一。


NVMe的优势包括:


  • 低延时,NVMe协议可以通过PCIe通道跟CPU直接相连,数据不需要像SATA一样需要通过控制器再中转到CPU;

  • IOPS大增,NVMe则可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升。

  • 功耗更低,NVMe加入了自动功耗状态切换和动态能耗管理功能;

  • 兼容性高,NVMe SSD可以很方便的匹配不同的平台、系统,无需厂家提供相应的驱动就可以正常工作。


NVMe还是物联网(IoT)、人工智能(AI)和机器学习(ML)等创新和发展中的技术和应用程序的关键推动力,这些技术和应用程序都可以受益于NVMe连接的低延迟和高性能贮存。


写在最后


NVM Express Inc.在2016年6月发布了1.0版的NVMe over Fabrics(简称NVMe-OF),NVMe-OF的出现,就是将NVMe应用到前端,作为存储阵列与前端主机连接的通道,取代过去的FC、iSCSI。下篇我们一起来看一下什么是NVMe-OF。


上一篇:通俗解读NVMe前世今生


下一篇:双十一中,阿里如何将数据库性能提升100%、响应时间减少80%?