• 什么是 NVMe?
  • 什么是固态硬盘?
  • 为什么 NVMe 很重要?
  • NVMe、SAS 和 SATA 之间的区别
  • 只有SSD运行在NVMe上
  • PCIe和NVMe有关系,但它们不是同一个东西
  • NVMe-oF连接SSD到网络
  • NVMe 的工作原理是什么?
    • NVMe SSD 外形尺寸
    • M.2 NVMe 驱动器
    • NVMe 和动态随机存取存储器
  • NVMe 用例
  • 参考资料

什么是 NVMe?

NVMe协议标准由NVM Express公司监管,这是一个由100多个组织组成的联盟,这些组织致力于开发更快的协议以提高非易失性存储的性能。该组织由一个13家公司组成的董事会领导,其中包括Cavium、Cisco、Dell EMC、Facebook、英特尔、Micron、Microsemi、微软、NetApp、三星、希捷、东芝内存和Western Digital。

NVMe(非易失性内存主机控制器接口规范)是用于高度并行数据传输的协议,可减少闪存存储和固态硬盘 (SSD) 中使用的每个输入/输出 (I/O) 的系统开销。

由于设备驱动器的更改允许并行和轮询,因此 NVMe SSD 能够提供比传统硬盘驱动器 (HDD) 更快的响应时间。这些改进有助于减少延迟,使其成为企业工作负载以及众多消费者和专业应用程序的理想选择。


 HDD能达到的最高理论速度,与SATA、NVMe最高提供的理论速度对比

NVMe的官方定义将其描述为“一个开放的标准和信息集合,以充分释放非易失性存储在从移动端到数据中心的所有类型的计算环境中能够提供的优势。NVMe从底层开始设计,为当前和未来的NVM技术提供高带宽和低延迟存储访问。”

NVMe是通过PCI Express总线将存储连接到服务器的接口规范,简单来说就是,使SSD与主机系统通信的速度更快。它有助于缓解闪存通过最初为HDD设计的SAS或SATA连接到系统时出现的瓶颈。

UNICACA  ANU24PE16  U.2转接卡 是支持NVMe技术的固态硬盘产品

什么是固态硬盘?

固态硬盘 (SSD) 是基于半导体的存储设备,依靠闪存在计算机系统中存储持久数据。在 SSD 中,每个内存芯片均由包含内存单元(也称为页或扇区)的块构建而成,而内存单元又包含内存位。

与使用磁铁存储数据的磁性存储(例如 HDD 和软盘驱动器)不同,固态硬盘使用 NAND 芯片,这是一种非易失性存储技术,不需要任何电源来维护数据。

HDD 由于盘片旋转和读/写头移动而具有固有的延迟和访问时间,而 SSD 没有移动部件,因此速度更快。SSD 目前已超越 HDD,成为结构化数据工作负载的首选行业标准。

为什么 NVMe 很重要?

NVMe 开发于 2008 年至 2011 年,旨在取代串行高级技术附件 (SATA) 和串行连接 SCSI (SAS) 协议。与竞争对手相比,NVMe 在延迟和性能方面的改进促进了其他重要技术的发展,包括物联网 (IoT)、人工智能 (AI) 和机器学习 (ML)。

如今,用户要求应用程序能够比以往任何时候都更快响应。无论用户部署哪种类型的应用程序,NVMe 协议都旨在提供下一代高性能、高带宽和低延迟体验。

NVMe SSD 主要通过外围组件互连高速 (PCIe) 总线访问闪存存储,该总线可以移除“中间人”控制器,从而减少延迟。但是,NVMe 也可以在任何类型的“架构”互连(例如光纤通道和以太网)上运行,也可以在以太网、iWarp、RoCEv2、iSER 和 NVMe-TCP 内运行。

与使用 SCSI 协议连接的驱动器相比,NVMe SSD 可以运行成千上万个并行命令队列并运行程序,而 SCSI 协议只能部署单个命令队列。连接方式与协议无关;例如,NVMe PCIe 可以通过运行 NVMe 协议的 PCIe 链路连接单个驱动器。

NVMe 专为高性能、非易失性存储介质而构建,非常适合当今要求严格的计算密集型环境,例如图形编辑软件、云计算环境、固件和大型数据库。与 SCSI 相比,NVMe 能够快速高效地处理企业工作负载,且基础架构占用空间更小,功耗更低。

NVMe、SAS 和 SATA 之间的区别

虽然硬盘驱动器 (HDD) 是业界首选的数据存储和访问方法,但 SATA 和 SAS 是合适的解决方案。这两种技术都旨在作为 SCSI 存储接口,以方便数据传入和传出 HDD。

SAS 通过运行 SCSI 协议的 SAS 端口连接单个驱动器,然后连接到 PCIe 链路。SATA 通过运行 ATA 协议的 SATA 端口连接单个驱动器,然后通过 ATA 控制器连接到 PCIe 链路。

直到最近,大多数 SSD 都使用 SAS 或 SATA 与计算机系统的其余部分连接。然而,随着固态技术在整个存储行业的兴起,SAS 和 SATA 变得越来越难以匹配,因为它们旨在与 HDD 配合使用。

根据 International Data Corporation (IDC) 2023 年的一份报告,NVMe 旨在加快通过 PCI Express 连接的系统的数据传输速度,PCI Express 是一种串行扩展总线,是将计算机连接到一个或多个外围设备的标准配置。(2)

除了专为与 SSD 配合使用而设计之外,NVMe 的协议比 SCSI 更加精简,使其成为面向实时应用程序(例如 ML 和 AI)的更好解决方案。随着云计算环境的日益普及,NVMe 凭借内置的高性能和数据保护功能,也能够很好地支持混合云、多云和大型机存储环境。

以下是使用 NVMe 存储相对于 SAS 或 SATA 驱动器的一些优势:

  • 提升性能:NVMe 技术可以使用 PCIe 将 SSD 存储直接连接到服务器或中央处理单元 (CPU)。凭借性能的显著提高,对于游戏玩家、视频编辑器和其他需要比 SAS 或 SATA HDD 更高性能的用户来说,NVMe 技术成为了首选数据存储/传输选项。

  • 速度更快: NVMe 驱动器可以提供比 SAS 或 SATA 驱动器更高的速度,因为它们可以更快地发送和接收 NVMe 命令并提供更好的吞吐量。

  • 提高兼容性:NVMe 被广泛视为比 SAS/SATA 更具兼容性的选项,并且随着 AI、ML 和云计算等快速发展的关键技术的发展而经常更新。NVMe 技术可以与所有现代操作系统无缝协作,包括手机、笔记本电脑和游戏机。

  • 改进的带宽: PCIe 连接比 SAS 或 SATA 端口更宽并且具有更多的带宽。它还随着每一代的改进而改进,带宽是上一代的两倍。SAS 和 SATA 的带宽连接要低得多并且是固定的,因此它们不会随着时间的推移而改进。PCIe 连接脱颖而出的另一个特点是它们在“通道”中可扩展,因此即使在同一代产品中,用户也可以通过两倍的通道数量将带宽加倍。

只有SSD运行在NVMe上

因为NVMe驱动器要比SATA快得多,所以将NVMe与HDD放在一起使用来提高性能似乎是个好主意。但是请记住,NVMe代表非易失性存储接口规范,它是专门为NAND 闪存等非易失性存储设计的(尽管它也可以用于较新的非易失性内存,比如3D XPoint)。

当系统从HDD读取数据时,它一次只能读取一块数据。因为它必须进行旋转以定位到第一个数据块的正确物理位置,然后再次旋转,移动到第二个数据块的正确位置,以此类推。另一方面,闪存和其他非易失性存储技术没有移动部件。这意味着系统可以同时从许多不同的位置读取数据。这就是为什么SSD可以利用NVMe提供的并行性,而HDD不能。

PCIe和NVMe有关系,但它们不是同一个东西

对于很多人来说,NVMe最令人困惑的部分是它与PCIe的关系。一些厂商使用NVMe作为标签来指代他们的SSD,另外一些厂商则使用PCIe标签,还有一些厂商似乎可以互换使用这些术语。

虽然PCIe和NVMe密切相关,但两个术语指的是略有不同的技术。可以将PCIe看作是系统的物理部分。当您将一个NVMe SSD插入服务器时,您需要通过一个PCIe插槽连接它。

相比之下,NVMe是一种协议,是一组允许SSD使用PCIe总线的软硬件标准。可以这么说,NVMe是允许存储设备与服务器连接的语言,而PCIe是实际的物理连接。

NVMe-oF连接SSD到网络

本文主要关注的是标准的NVMe,它将SSD直接连接到服务器,但是NVM Express组织也发布了NVMe over Fabric (NVMe- oF)的规范,它将用于块存储的非易失性存储连接到网络。根据该组织的说法,“NVMe- oF定义了一个通用架构,它支持一系列存储网络结构,用于存储网络结构之上的NVMe块存储协议。”这包括在存储系统中启用前端接口,扩展到大量NVMe设备,并在数据中心内延长NVMe设备和NVMe子系统可访问的距离。

NVMe-oF规范与NVMe规范有大约90%的相同;然而,它确实使用了一种不同的传输映射机制。NVME-oF也有两种不同的变体:一种用于RDMA,另一种用于光纤通道。

NVMe-oF规范也比NVMe规范新得多,尽管一些厂商已经宣布支持这项技术,但实际上很少有厂商销售NVMe的产品。期待这种技术在未来几年变得更加普遍。

NVMe 的工作原理是什么?

在 SSD 和闪存存储出现之前,所有 HDD 存储系统都使用 SATA。然而,随着移动应用程序、视频游戏和 AI 等新技术对计算环境的要求不断提高,SATA 的局限性变得越来越明显。具体来说,SATA 的低速度和低带宽开始减慢大型数据传输速度,而大数据传输对于新应用程序的功能至关重要。

在需要大型数据传输而不减慢处理时间的环境中,NVMe 是一种比 SATA 更好的 SSD 数据存储/传输选项。NVMe 使 SSD 能够使用 PCIe 总线和 M.2 或 U.2 适配器直接连接到 CPU,这一点与 SATA 驱动器相同。NVMe 允许 SSD 直接连接到 CPU 并快速读取和写入大量数据。

为了实现更高的性能,NVMe 为基于 PCIe 的 SSD 定义了寄存器接口、命令集和功能组。通过 PCIe 总线连接后,NVMe 协议可降低延迟并有助于优化每秒 I/O 操作数 (IOPS)。

NVMe 驱动程序支持多种常见的操作系统 (OS),包括 Windows、Linux 和 MacOS。此外,NVMe 协议支持所有类型的 NVM,包括支持 NAND 闪存的 SSD。最后,NVMe 使用并行命令队列和“轮询循环”,而不是其前身基于“中断”的设备驱动程序,从而减少延迟和系统开销,并有助于避免 CPU 瓶颈,例如当显卡工作速度快于底层 CPU 时。

NVMe SSD 外形尺寸

NVMe 规范的另一个重要区别在于外形尺寸,或者说尺寸、配置和物理设计对与其他设备兼容性的影响程度。最近,存储网络行业协会 (SNIA) 召开会议,建立了企业和数据中心标准外形尺寸 (EDSFF),为 SSD 技术创建一个商定的行业级框架。

商定的 SSD 标准外形尺寸为 2.5 英寸,可轻松装入大多数笔记本电脑和台式机的驱动器托架,使 NVMe SSD 与现有技术高度兼容。由于 2.5 英寸驱动器广泛用于消费和商业计算环境,因此对于希望升级系统性能的用户来说,用 NVMeSDD 替换 HDD 非常简单直接。

M.2 NVMe 驱动器

M.2 SSD 是 SSD 中使用的另一种物理外形尺寸或连接器。虽然该术语经常与 NVMe 互换使用,但它们是不同类型的存储技术。虽然 NVMe SSD 连接到主板上的 PCIe Slot,使数据传输速率比竞争对手高得多,但 M.2 驱动器是一种物理外形尺寸或连接器,可在超薄笔记本电脑和平板电脑等功耗受限的小型设备中实现高性能存储。

NVMe 和动态随机存取存储器

动态随机存取存储器 (DRAM) 是个人计算机 (PC)、服务器和工作站所依赖的一种广泛使用的随机存取存储器 (RAM)。NVMe SSD 有 DRAM 和无 DRAM 两种。

具有DRAM 的 NVMe SSD 比无 DRAM 的 SSD 更昂贵且速度更快,对于照片或视频编辑软件等图形密集型应用程序来说,它们是更好的选择。

无DRAM 的 NVMe 价格更实惠,速度也更慢,但仍然比 HDD 或 SATA SSD 快得多,对于不需要运行应用程序的速度或性能的用户来说,它们是不错的选择。

NVMe 用例

NVMe 具有低延迟、低功耗要求,并且能够以比 SAS 和 SATA 驱动器快得多的速率存储和传输数据,因此使其成为面向企业和消费者的常见选择。除了提高性能和数据存储容量之外,NVMe SSD 比 SAS 或 SATA SSD 的应用更为广泛,可以从 Intel 和 Samsung 等信誉良好的消费品公司购买。以下是一些常见的 NVMe 用例:

高性能计算

NVMe 的速度、可编程性和并行处理能力使其成为各种高性能计算应用程序的理想选择,包括高频金融交易、AI 和 ML。

要求严格的应用程序

许多尖端应用程序需要较大的队列深度进行存储。与之前的 SAS/SATA 不同,NVMe 可以容纳多达 65,000 个队列和每个队列的命令,从而允许再执行数千个命令。

数据中心

NVMe SSD 帮助数据中心扩展数据存储容量,并以与 SATA SSD 相当的价格提供更高的性能,因此促使许多现代企业做出转变。根据 Enterprise Strategy Group 的报告,近四分之三的组织正在使用基于 NVMe 的 SSD 存储或计划在未来 12 个月内进行部署。(3)

图形编辑

无论您是编辑家庭团聚的视频还是制作动画电影,NVMe 的快速数据传输速率都能使视频编辑速度显著加快。简而言之,在视频编辑软件中编辑和渲染场景会产生大量数据。NVMe SSD 可以处理所有这些数据,而不会减慢处理速度。

DevOps

在容器化开发运维应用程序中部署 NVMe 缩短了许多开发人员的大型构建时间并加快了编码迭代。NVMe 还可以加快开发速度、降低成本,并帮助团队使用更广泛的工具更快地启动。

关系数据库

NVMe 闪存系统可提高应用程序性能并减少关系数据库所需的物理服务器数量。这使得该系统的执行速度比传统硬盘驱动器更快,从而使操作它们的组织能够更快地运行查询。

资料来自:

  • IBM—https://www.ibm.com/cn-zh/topics/nvme
  • 嘉华—https://www.unicaca.com/info/detail/231.html
  • 百家号—https://baijiahao.baidu.com/s?id=1616207956596122967&wfr=spider&for=pc
GitHub 加速计划 / nv / nvm
78.07 K
7.82 K
下载
nvm-sh/nvm: 是一个 Node.js 版本管理器,用于在不同的 Node.js 版本之间进行切换。它可以帮助开发者轻松管理多个 Node.js 版本,方便进行开发和测试。特点包括轻量级、易于使用、支持跨平台等。
最近提交(Master分支:3 个月前 )
9c9ff4ba Moved issue template into ISSUE_TEMPLATE folder 21 天前
51ea809d - 21 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐