NVMe是一个经过优化的高性能可伸缩主机控制器接口,为企业和客户提供基于PCI Express固态存储解决方案。NVMe旨在超越硬盘驱动器技术的黑暗时代,它全新为非易失性内存(NVM)技术构建旨在提供对存储的有效访问,如NAND闪存和未来的高性能持久存储(Persistent Memory)技术。


NVMe解决了传统存储技术面临的性能问题,包括带宽、IOPs和延迟。例如,串行ATA的最大IOPs可能是200,000,而NVMe设备已经被证明超过100万IOPs。通过支持PCIe和Fabric,如RDMA和光纤通道,NVM Express可以支持比SATA或SAS更高的带宽(例如,PCIe Gen3x4可以提供4 GB/s带宽),存储技术读取访问延迟低于微秒,存储协议更加精简,支持端到端延迟低于10微秒。

 

NVMe是一种全新的存储体系结构,从软件栈到硬件设备系统都全新设计,具体体现在PCIe接口标准、NVM原生架构、针对下一代NVM优化、环境兼容和高效扩展五大方面。

 

最初的NVM Express工作组于2014年合并为NVM Express, Inc.,是负责开发NVM Express规范的组织。该组织目前有100多家成员公司。

 

NVM Express规范的1.0版于2011年3月1日发布,由行业内的成员公司合作开发。该规范的1.1版本于2012年10月11日发布,1.2版于2014年11月3日发布。2015年11月,NVMe管理接口规范(NVMe-MI)发布,为NVMe组件和系统提供带外管理能力。MI为所有NVMe设备和系统提供了一个通用的基线管理特性集和可选特性。命令集包括查询和设置、配置、获取子系统运行状态、固件管理、名称空间管理、安全管理等。

 

NVM Express组织目前正在开发NVMe规范1.3版本,预计在2016年完成。1.3版完成对移动设备支持的需求,以及对低功耗和其他技术特性的需求。当1.3版完成时,NVMe将成为所有平台通过数据中心存储系统从移动设备上获取数据的存储接口。

NVMe over Fabrics标准规范开始于2014年。在2016年完成NVMe over fabric规范将NVMe扩展到诸如以太网、光纤通道和InfiniBand网络,它不仅提供对单个NVMe设备的访问,还提供对NVMe存储系统的访问。

 

NVMe作为一种存储协议,从开始设计就用于非易失性存储(NVM),包括当前的NAND flash技术和下一代NVM技术。就其本身而言,NVMe克服了硬盘驱动器存储协议所面临的各种限制。


NVMe协议支持多个深度队列,这是对传统SAS和SATA协议的改进。单个队列中,典型的SAS设备最多支持256条命令,SATA设备最多支持32条命令。这对于硬盘驱动器技术来说或许已经足够,但对VNMe来说是不能充分利用当前NAND Flash和下一代NVM技术存储能力的。

 

相比之下,NVMe支持每个队列64K命令,最多支持64K队列。这些队列中的I/O命令和对应命令的响应操作都在相同的处理器内核上处理,能够充分利用多核处理器的并行处理能力。每个应用程序或线程拥有自己独立的队列,因此规避I/O锁定。NVMe还支持MSI-X和中断控制防止CPU级别的瓶颈,随着系统扩展不断缩性。


此外,NVMe有一个精简而简单的命令集,处理I/O请求所需CPU指令数量还不到SAS或SATA技术的一半,从而让每个CPU指令周期支持更高的IOPS和主机软件堆栈较低的I/O延迟。NVMe还支持预留和客户端功能(如电源管理)等企业级特性,将性能改进扩展到I/O之外。

 

NVMe专注于存储协议,可以支持各种形式的接口形态。如 M.2和U.2(原名 SFF-8639)。NVMe功率范围支持从全功率企业设备到低功率移动设备。NVMe还可以利用处理器状态来优化功率。

 

NVMe能力在以下操作系统环境中得到支持。兼容列表和支持的操作系统和环境正在不断的扩展,关于NVMe驱动程序的更新信息可在NVMe官网查询。

NVMe通过支持隧道协议解决当前的数据隐私问题,该协议提供可信计算组(TCG)和其他相关社区生成的安全特性。目前,计划为NVMe设备和系统提供的功能包括简单的访问控制、静态数据保护、密码擦除、Purge-level擦除和其他功能。

 

有关NVMe存储安全性的其他信息,请参阅可信计算组和NVMe联合白皮书:TCG storage, Opal和NVMe(TCG Storage, Opal and NVMe)。

 

NVMe正在迅速获得消费者和供应商的认可。行业分析师预测NVMe将在未来几年成为主要的存储接口。通过高性能和低延迟特性,以及几乎所有平台的可用性,NVMe将是一个游戏改变者。

 

第一次,NVMe与以前的任何存储协议不同,使用主机进行操作。精简的指令、较低延迟的软件堆栈、队列的并行性和较大的队列深度,以及非易失性的设计,提供了以前闻所未闻的I/O和吞吐率和有史以来最低的存储延迟。


©著作权归作者所有:来自51CTO博客作者mob604756fca9f3的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 免费分享HTML5清新文艺个人博客文章类模板(支持移动设备)
  2. FreeBSD降低对i386架构的支持
  3. Linkerd 2.5发布:Helm支持与符合RBAC的tap命令
  4. 激动人心!Ceph新长支持稳定版本Luminous(12.x.x)有那些新功能
  5. 【Rust日报】2020-09-21 Rust宣布成立错误处理项目组
  6. 信创稳妥落地,一云多芯协同是唯一答案!
  7. 什么是MongoDB?Python爬虫为什么使用MongoDB?
  8. 程序员必须知道的9大数据挖掘工具
  9. Bootstrap5中文手册完整翻译版发布

随机推荐

  1. 作物形象与毕加索相一致。
  2. Android tabHost是不可见的?为什么不用这
  3. 一个ksoap2-android调用webService的封装
  4. Android 自定义控件 改变图片颜色来实现
  5. Eclipse Java:根据构建配置定义最终变量
  6. Android 简单各种机制集合(面)(待补充)
  7. android4.4组件分析--service组件
  8. Java中Scanner的用法
  9. Android实现桌面图标通知数量角标
  10. 添加脚本到Android应用程序