摘要:NVMe协议通过PCIe总线将SSD硬盘连接到服务器,并提供更快的性能。NVMe技术已成为当今存储基础设施的关键参与者。NVMe协议标准由NVM Express公司监管,NVM Express公司是一个由100多个组织组成的联盟,这些组织有兴趣开发更快的协议以提高非易失性存储器的性能。 |
NVMe是非易失性存储器Express的简称,NVMe是一种使固态硬盘(SSD)速度更快的协议,并且在企业用户中越来越受欢迎。
了解NVMe的最简单方法可能是类比。想象一下,你刚买了一辆比普通汽车快15倍的跑车。普通汽车不会超过100英里/小时,但跑车可以达到每小时1500英里。
唯一的问题是,在拥挤的道路上有着25英里/小时的速度限制,很难快速行驶。如果不想在拥挤的道路上浪费时间,可能会开始寻找更快的替代方案。
这种情况有点像制造商在推出基于闪存的SSD之后的存储行业的情况。闪存技术比硬盘驱动器中的机械磁盘快许多倍(速度快多少取决于所使用的设备),但早期驱动器使用与硬盘驱动器相同的SATA或SAS连接连接到系统和网络。虽然这些接口对于机械硬盘可提供的性能类型来说已经足够了,但它们却为SSD硬盘造成了瓶颈。对于企业大数据分析和其他数据密集型工作负载来说,这尤其是一个问题。
这些性能问题促使人们寻找将SSD硬盘连接到服务器的更好方法,而这正是NVMe的用武之地。
1.什么是NVMe?
NVMe协议标准由NVM Express公司监管,NVM Express公司是一个由100多个组织组成的联盟,这些组织有兴趣开发更快的协议以提高非易失性存储器的性能。该组织由13名发起厂商组成,其中包括Cavium、思科、DellEMC、Facebook、英特尔、美光、Microsemi、微软、NetApp、三星、希捷、东芝内存和西部数据。
NVMe的官方定义将其描述为“一系列标准和信息的开放式集合,以充分展示从移动设备到数据中心的各种类型计算环境中非易失性存储器的优势。NVMe从一开始就设计为提供高带宽和低延迟当前和未来NVM技术的存储访问。”
NVMe是一种接口规范,用于通过PCI Express总线将存储连接到服务器。通俗地说,这是SSD硬盘与主机系统通信的更快捷方式。它有助于缓解当快速闪存通过最初为HDD硬盘设计的SAS或SATA连接连接到系统时发生的瓶颈。
英特尔750系列是采用NVMe技术的众多固态硬盘之一。
2.NVMe速度比SATA或SAS快得多
NVMe控制器以几种不同的方式加速性能。一种是使用PCIe总线,它将存储直接连接到系统CPU。这种直接连接消除了SATA所需的一些步骤,提高了整体性能。
此外,NVMeSSD硬盘大规模实现并行性以显著提高吞吐量。当数据从存储器传输到服务器主机时,它会进入一行或一个队列。传统SATA连接只能支持一个队列,一次只能有32个数据串联。再回到汽车的比喻,就像一条可以在路上行驶32辆车的车道。
但NVMe存储支持多达64,000个队列,每个队列有64,000个条目。换句话说,就像从一条车道的公路扩展到64,000车道公路,每条车道可容纳64,000辆车。如下图所示,这对整体性能产生巨大影响。
还记得回到汽车的比喻在拥挤的道路上的25英里/小时的限速吗?SATA和SAS连接也会限制速度。对于SATA,理论最大传输速度为6.0Gbps(实际上,最大传输速度要低得多)。这为SATA固态硬盘的速度提供了上限。超过某一点,使用更快的闪存对系统的整体性能没有影响,因为SATA连接会产生瓶颈。
对于大多数消费者而言,SATASSD硬盘为他们可能定期执行的任务提供了足够的性能。由于SATA SSD硬盘比NVMe SSD硬盘便宜,大多数消费者固态存储仍然使用SATA接口。
但是,企业通常使用比消费者更多的数据,对于他们来说,SATA连接所带来的延迟可能成为一个问题。
与SAS相比,NVMe提供了一种快速通过系统移动数据的方法,因此可用于当今最先进的系统。
3.只有SSD硬盘在NVMe上运行
由于NVMe硬盘驱动器比SATA硬盘快得多,因此将NVMe与硬盘配合使用可能会提高性能。但请记住,NVMe代表Nonvolatile Memory Express,它专门设计用于非易失性存储器,如Nand闪存(尽管它也可以用于更新形式的非易失性存储器,如3D XPoint。)
当系统从机械硬盘读取数据时,它一次只能读取一个数据。那是因为它必须旋转直到它到达第一段数据的正确物理位置,然后旋转并移动到第二段数据的正确位置,依此类推。
另一方面,闪存和其他非易失性存储器技术没有移动部件。这意味着系统可以同时自由地从许多不同位置读取数据。这就是为什么SSD硬盘可以利用NVMe提供的并行性,但HDD硬盘不能。
4.PCIe和NVMe是相关的,但它们不是一回事
对于许多人来说,NVMe最令人困惑的部分是它与PCIe的关系。一些供应商将他们的SSD硬盘称为NVMe标签,一些供应商使用PCIe标签,有些供应商似乎可以互换使用这些术语。
虽然PCIe和NVMe密切相关,但这些术语指的是略有不同的技术。你可以将PCIe视为系统的物理部分。将NVMeSSD硬盘插入服务器时,将通过PCIe插槽连接。
相比之下,NVMe是一种协议,一组允许SSD硬盘使用PCIe总线的硬件和软件标准。从外行的角度来看,你可以将NVMe视为允许存储设备与服务器连接的语言,而PCIe是实际的物理连接。
5.NVMe over Fabric将SSD硬盘连接到网络
此文的大部分内容都集中在将SSD硬盘直接连接到服务器的标准NVMe上,但NVM Express组织还发布了针对NVMe over Fabric(NVMe-oF)的规范,该规范将用于块存储的非易失性存储器连接到网络。据称,“NVMExpress over Fabrics定义了一种通用架构,支持通过存储网络结构为NVMe块存储协议提供一系列存储网络结构。这包括为存储系统启用前端接口,扩展到大量NVMe设备和扩展数据中心内的距离,可以访问NVMe设备和NVMe子系统。”
大约90%的NVME-oF规范与NVMe规范相同,但是,它确实使用了不同的传输映射机制。NVME-oF还有两种不同的变体:一种用于RDMA,另一种用于光纤通道。
NVMe-oF规范也比NVMe规范要新得多,虽然一些厂商宣布支持该技术,但实际上很少有人销售NVME-oF产品。寻求这项技术在未来几年变得更加普及。
编辑:Harris