简介

NVMe是为满足企业和客户系统需求,利用基于PCIe的固态存储,而精心设计的一个优化的,高效的,可伸缩主机控制器接口。NVMe是为非易失性内存(NVM)技术从头开始全新构建的,目的在于超越硬盘驱动器技术的黑暗时代。从今天的NAND闪存技术到未来高性能、持久的内存技术,用这些非易失存储构建存储设备,NVMe的设计为这些非易失存储(NVM)构建的存储设备提供高效访问。

有几个NVMe设法解决的性能指标,包括带宽,IOPs,时延。例如,串行ATA最大可能的IOPs是200000【20万】,而NVMe设备已经被证明可以超过1000000【100万】IOPs。通过支持PCIe和网络(例如RDMA,FC)NVMe能够支持比SATA或SAS高很多的带宽(例如PCIe Gen3 x4达到4GB/s)。下一代内存技术可能使读访问时延低于一个微秒,要求新的协议包括软件栈在内能够低于10微秒的端到端时延。

对存储来说,从软件栈到硬件设备和系统,NVMe是一个全新的架构。

历史和路标

NVMe协议优势

NVMe作为一种存储协议,被从头开始设计用于非易失性内存(NVM),包括当前的NAND flash技术和下一代NVM技术。因此,它没有像为硬盘驱动器设计的存储协议那样做相同的限制。

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

与此相反,NVMe支持每个队列64K命令,最多支持64K队列。这些队列的设计使得I/O命令和对这些命令的响应操作在相同的处理器内核上,并且可以利用多核处理器的并行处理能力。每个应用程序或线程都可以有自己独立的队列,因此不需要I/O锁定。NVMe还支持MSI-X和中断控制,这可以防止CPU级别的瓶颈,并在系统扩展时支持大规模的可伸缩性。

此外,NVMe有一个精简而简单的命令集,它使用不到SAS或SATA一半的CPU指令来处理I/O请求,在主机软件堆栈中提供更高的每CPU指令周期IOPS和更低的I/O延迟。NVMe还支持企业特性(如预订)和客户端特性(如电源管理),将改进的效率扩展到I/O之外。

接口形式和功耗

NVMe专注于存储协议,可以处理各种形式的接口。这些包括:

  • M.2形式
  • U.2 2.5-inch驱动器形式(以前称为SFF-8639)
  • Add-in PCIe卡(AIC)

NVMe功率范围从全功率企业设备到低功率移动设备。NVMe还利用处理器电源状态的优势。

操作系统支持

在一下环境中已经支持NVMe。

存储安全

NVMe通过支持隧道协议解决当前的数据隐私问题,该协议提供可信计算组(TCG)和其他相关社区生成的安全特性。

计划为NVMe设备和系统提供的功能包括简单的访问控制、静态数据保护、密码擦除、清除级擦除和其他功能。

有关NVMe存储安全性的其他信息,请参阅可信计算组和NVM Express联合白皮书:TCG storage, Opal和NVMe,网址为http://www.nvmexpress.org/white-papers/

总结

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

与以往任何存储协议不同,存储设备和存储子系统第一次有了与主机操作的根本不同的方式。精简的指令、较低的延迟软件堆栈、队列的并行性和较大的队列深度,以及非易失性内存的设计,提供了以前从未听说过的I/O和吞吐率,以及有史以来最低的存储延迟。

NVMe概况的更多相关文章

  1. NVMe over Fabrics 概况

    NVMe over Fabrics 技术特征 跨网络传输NVMe命令需要特殊的考虑,而不仅仅是针对本地存储内存.例如,为了远距离传输NVMe协议,理想的底层网络或fabric技术将具有以下特性: 可靠 ...

  2. 文章汇总(包括NVMe SPDK vSAN Ceph xfs等)

    基础部分 NVMe驱动解析-前言 NVMe驱动解析-注册设备 NVMe驱动解析-关键的BAR空间 NVMe驱动解析-DMA传输(热门) NVMe驱动解析-响应I/O请求 用一个简单的例子窥探NVMe的 ...

  3. NVMe over Fabrics:概念、应用和实现

    对于大部分人来说,NVMe over Fabrics(简称NVMf)还是个新东西,因为其第一个正式版本的协议在今年6月份才发布.但是这并不影响人们对NVMf的关注,因为这项依托于NVMe的技术很可能继 ...

  4. NVMe over Fabrics又让RDMA技术火了一把

    RDMA是个什么鬼?相信大部分不关心高性能网络的童鞋都不太了解.但是NVMe over Fabrics的出现让搞存储的不得不抽出时间来看看这个东西,这篇文章就来介绍下我所了解的RDMA. RDMA(R ...

  5. JavaScript 2016年的概况

    国外的网站stateofjs.com根据超过九千位开发人员的问卷调查,发布了2016年JavaScript的年度概况报名. 注:本文翻译的部分可能存在不准确的情况,请以原文为准. 调查结果的报告目录结 ...

  6. [置顶] 我的设计模式学习笔记------>Java设计模式总概况

    设计模式的概念最早起源于建筑设计大师Alexander的<建筑的永恒方法>一书,尽管Alexander的著作是针对建筑领域的,但是他的观点实际上用用于所有的工程设计领域,其中也包括软件设计 ...

  7. AHCI vs NVMe

    http://www.hkepc.com/13139 儘管現時有不少高階 SSD 產品改用 PCIe 接口,以突破 SATA 接口的頻寬瓶頸,但控制器設計與 SATA  接口 SSD 一樣,採用老舊的 ...

  8. NVMe 与 AHCI

    http://elf8848.iteye.com/blog/1731274 AHCI: NCQ技术,600MB/S,一个队列,每个队列32个指令 NVME:65000个队列,每个队列65000指令,3 ...

  9. NServiceBus 概况

    NServiceBus 概况 NServiceBus 概况 NServiceBus 被设计用来组合面向业务的服务,它并不是用来替代诸如 WCF 一类的RPC技术. NServiceBus 不只包含通信 ...

随机推荐

  1. 面试想拿 10K,HR 说你只值 7K,该怎样回答或者反驳?

    当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫. 礼貌地说:"7K是吗?了解了.嗯~其实我对贵司的面试官印象很好.只不过,现在我的手头上已经有一份11K的offer. ...

  2. equals和==的使用

    1.equals的使用: 引用数据类型的比较:通常情况下比较的是引用数据类型下的栈中的地址,但当你重写了equals方法后就不一定了 User user1=new User("tom&quo ...

  3. 清北学堂—2020.1提高储备营—Day 2 morning(并查集、堆)

    qbxt Day 2 morning --2020.1.18 济南 主讲:李佳实 目录一览 1.并查集 2.堆 总知识点:基础数据结构 一.并查集 1.描述:并查集是一类十分常用的数据类型,它有着十分 ...

  4. 阿里云搭建k8s高可用集群(1.17.3)

    首先准备5台centos7 ecs实例最低要求2c4G 开启SLB(私网) 这里我们采用堆叠拓扑的方式构建高可用集群,因为k8s 集群etcd采用了raft算法保证集群一致性,所以高可用必须保证至少3 ...

  5. Elasticsearch + Kibana 简单安装使用

    1.资料来源官网,参考: https://www.elastic.co/cn/downloads/elasticsearch https://www.elastic.co/cn/downloads/k ...

  6. 【Newtonsoft.Json】json序列化小驼峰格式(属性名首字母小写)

    我是一名 ASP.NET 程序员,专注于 B/S 项目开发.累计文章阅读量超过一千万,我的博客主页地址:https://www.itsvse.com/blog_xzz.html 只需要设置JsonSe ...

  7. 使用ASP.NET Core 3.x 构建 RESTful API - 4.1 面向外部的Model

    Entity Framework Core 使用的 Entity Model 是用来表示数据库里面的记录的. 而面向外部的 model 则表示了要传输的东西.这类 model 有时候叫做 Dto,有时 ...

  8. Java自学-Lambda 方法引用

    Lambda 方法引用 步骤 1 : 引用静态方法 首先为TestLambda添加一个静态方法: public static boolean testHero(Hero h) { return h.h ...

  9. Node.js_1.1

    Node.js简介 Node.js是一个能够在服务器端运行JavaScript的开源代码.跨平台JavaScript运行环境 Node采用Google开发的V8引擎运行js代码,使用事件驱动.非阻塞和 ...

  10. js里cookie,localStorage的简单用法

    cookie的使用场景---->注册功能(注册成功后,将账号和密码存入cookie里,在登录时显示到输入框里) 注册的js(将数据存入cookie):        escape和unescap ...