什么是NVMe?一篇文章理清它的前生今世
【IT168 编译】NVMe是Non-Volatile Memory express(非易失性内存主机控制器接口规范)的简称,它是一种协议,能够使固态硬盘(SSD)运行得更快,如今在企业用户中已越来越流行。
理解什么是NVMe的最简单的方法就是打个比方——假设你刚买了一辆跑车,速度能达到400公里每小时,是你以前那辆老汽车的3到4倍。唯一的问题是,普通的道路是无法允许以这样的速度行驶的,而且一般城市道路限速几十公里每小时,往往还得考虑车流的问题。如果你想要让跑车更快,就需要换一条路开。
这个场景有点像制造商推出基于闪存技术的SSD之后,存储行业的情况。闪存技术比传统机械硬盘快很多倍(快多少倍取决于你使用的设备),但是早期的设备都使用与硬盘驱动器相同的SATA或SAS连接到系统和网络。虽然这些接口对于硬盘驱动器(HDD)所能提供的性能来说已经足够了,但是它们为SSD带来了瓶颈。这对于企业大数据分析和其他数据密集型工作负载来说,尤其是个问题。
这些性能问题促使人们寻找更好的方式将SSD连接到服务器,这正NVMe的用武之地。
1、什么是NVMe?
NVMe协议标准由NVM Express公司监管,这是一个由100多个组织组成的联盟,这些组织致力于开发更快的协议以提高非易失性存储的性能。该组织由一个13家公司组成的董事会领导,其中包括Cavium、Cisco、Dell EMC、Facebook、英特尔、Micron、Microsemi、微软、NetApp、三星、希捷、东芝内存和Western Digital。
HDD能达到的最高理论速度,与SATA、NVMe最高提供的理论速度对比
NVMe的官方定义将其描述为“一个开放的标准和信息集合,以充分释放非易失性存储在从移动端到数据中心的所有类型的计算环境中能够提供的优势。NVMe从底层开始设计,为当前和未来的NVM技术提供高带宽和低延迟存储访问。”
NVMe是通过PCI Express总线将存储连接到服务器的接口规范,简单来说就是,使SSD与主机系统通信的速度更快。它有助于缓解闪存通过最初为HDD设计的SAS或SATA连接到系统时出现的瓶颈。
2、NVMe的速度远远快于SATA或SAS
NVMe控制器通过几种不同的方式提高性能。一种是使用PCIe总线,它将存储直接连接到系统CPU。这种直接连接消除了SATA的一些必要步骤,并提高了整体性能。
此外,NVMe SSD在很大程度上实现了并行性,极大地提高了吞吐量。当数据从存储传输到服务器主机时,它会进入一行或队列。传统的SATA连接只能支持一个队列,一次只能接收32条数据。再回到车的类比上,这就像只有一条车道的车流可以容纳32辆车。
而NVMe存储支持最多64000个队列,每个队列有64000个条目。换句话说,这就像从一条单行道走到一条6.4万车道的路上,每条车道都能容纳6.4万辆汽车,这对整体表现产生了巨大的影响。
正如我们的类比中说城市道路一般限速在几十公里每小时一样,SATA和SAS连接也有速度限制。对于SATA,理论最大传输速度为6.0 Gbps(在实践中,最大传输速度要低得多)。这就相当于给SATA SSD的运行速度设定了上限。超过一定限度,使用再快的闪存对系统的整体性能没有影响,因为SATA连接会造成瓶颈。
对于大多数消费者来说,SATA SSD提供了足够的性能来完成日常工作。而且由于SATA SSD比NVMe SSD便宜,大多数消费者级别的固态存储仍然使用SATA接口。
然而,企业处理的数据通常比消费者多得多,对他们来说,SATA连接带来的延迟可能会成为一个问题。
英特尔750系列是支持NVMe技术的固态硬盘产品之一
3、只有SSD运行在NVMe上
因为NVMe驱动器要比SATA快得多,所以将NVMe与HDD放在一起使用来提高性能似乎是个好主意。但是请记住,NVMe代表非易失性存储接口规范,它是专门为NAND 闪存等非易失性存储设计的(尽管它也可以用于较新的非易失性内存,比如3D XPoint)。
当系统从HDD读取数据时,它一次只能读取一块数据。因为它必须进行旋转以定位到第一个数据块的正确物理位置,然后再次旋转,移动到第二个数据块的正确位置,以此类推。另一方面,闪存和其他非易失性存储技术没有移动部件。这意味着系统可以同时从许多不同的位置读取数据。这就是为什么SSD可以利用NVMe提供的并行性,而HDD不能。
4、PCIe和NVMe有关系,但它们不是同一个东西
对于很多人来说,NVMe最令人困惑的部分是它与PCIe的关系。一些厂商使用NVMe作为标签来指代他们的SSD,另外一些厂商则使用PCIe标签,还有一些厂商似乎可以互换使用这些术语。
虽然PCIe和NVMe密切相关,但两个术语指的是略有不同的技术。可以将PCIe看作是系统的物理部分。当您将一个NVMe SSD插入服务器时,您需要通过一个PCIe插槽连接它。
相比之下,NVMe是一种协议,是一组允许SSD使用PCIe总线的软硬件标准。可以这么说,NVMe是允许存储设备与服务器连接的语言,而PCIe是实际的物理连接。
5、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?一篇文章理清它的前生今世相关推荐
- b树与b+树的区别_一篇文章理清B树、B-树、B+树、B*树索引之间的区别与联系
概述 相信对于B树.B-树.B+树.B*树索引这几个大家都很容易混淆,下面单独对这几个索引做下分类总结. B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结 ...
- git 拉代码_一篇文章理清Git
Git的作者和简介 Git的作者也是著名的Linux的创始人Linus Torvalds(李纳斯 托沃兹) Git是一个开源的分布式版本控制系统.它其实就是一个工具,一般我们在使用的时候安装在wind ...
- 【Mysql】一篇文章理清事务隔离级别实现原理MVCC
目录 0.事务隔离级别 1.MVCC 2.版本控制算法 2.1 select 查询数据伪代码 2.2 可见性算法 0.事务隔离级别 我们都知道mysql innodb引擎支持事务,为了兼顾事务并发时之 ...
- 一篇文章搞懂屈梁生院士说了什么(二维全息谱的理解)
要说到二维全息谱,还要追溯到上个世纪90年代,这是我校优秀院士屈梁生对故障诊断领域的杰出贡献. 我们知道在故障诊断领域,对信号的分析是必不可少的.信号的分析传统来说分为两种:时域分析.频域分析. 时域 ...
- 乐鑫esp8266学习rtos3.0笔记第3篇: 一篇文章带你搞掂存储技术 NVS 的认识和使用,如何利用NVS保存整型、字符串、数组以及结构体。(附带demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...
- 学习使用 MATLAB 数学建模一篇文章就够了
学习中,随着学习的深入会不断补充内容,欢迎大家一起学习数学建模知识,有什么问题,大家可以评论,一起讨论学习. 需要LaTeX 数学建模模板和我收集的一些数学建模资料的可以评论留下邮箱,与君共勉 !!! ...
- 一篇文章告诉你标准化和归一化的区别?
一篇文章告诉你标准化和归一化的区别? 2019-02-28 17:12:39 融融网融融网阅读量:484 进一步推进企业的标准化工作,使之发展水平适应经济全球化下市场竞争的要求,促进企业综合实力的提升 ...
- 一篇文章让你读懂Pivotal的GemFire家族产品
一篇文章让你读懂Pivotal的GemFire家族产品 学习了:https://www.sohu.com/a/217157517_747818 转载于:https://www.cnblogs.com/ ...
- DEDECMS教程:上/下一篇文章标题长度的截取方法
对dedecms了解的朋友们,想必对如何获取上一篇.下一篇文章的标签也是非常熟悉.dedecms获取上一篇.下一篇文章的标签分别为:{dede:prenext get='pre'/}.{dede:pr ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
最新文章
- 广义线性模型?链接函数?sigmoid和softmax?Logistic处理多分类问题?logistic回归处理超大数据?使用logistic和randomsearch进行组合获取最优参数组合、优缺点
- SAP MM 公司间退货STO的交货单PGI报错 -Purchase order 4500000773 does not contain items for a stock transfer-
- hdu 1081 To The Max(最大子段和的升级版,二维)
- iOS tableview性能优化及分析
- 人机接口设备攻击(HID Attack)
- 华为存储服务器v3存储协议,华为oceanstor v3融合存储介绍.pdf
- 作业调度算法--高响应比优先 操作系统_处理器管理_编程题
- CSS3实现圆角效果
- Python二:【ImageEnhance】+【PIL模块】如何利用python实现图像增强
- 分享这几天做seo优化的心得
- 【05】JSON笔记
- 华为OpenStack开源团队人才招募中
- 百度网盘资源搜索网站,搬运+验证
- RecyclerView侧滑删除
- 必看!前辈们总结出的程序员找工作遇到的坑
- 3个超神器工具,让你的电脑比手机好玩,值得收藏
- matlab regress bint,Matlab一个关于regress的困惑
- 练习:根据车牌信息,统计各省车牌持有量
- linux桌面 任务栏,状态栏消失恢复
- 初识pyQt5之简易翻译软件
热门文章
- atitit.高性能遍历 文本文件行 attilax总结
- Atitit. 解决80端口 System 占用pid 4,,找到拉个程序或者服务占用http 80服务
- PAIP.DW 各个版本的差别大比较。
- 银行理财子公司的“超级”玩法
- 重磅!容器存储解决方案蓝皮书发布
- 谷歌android q 安装,谷歌修复了Pixel智能机安装Android Q Beta 4后循环重启的bug
- 【优化算法】寄生-捕食算法(PPA)【含Matlab源码 1801期】
- 毕设题目:Matlab树叶识别
- 【优化求解】基于matlab GUI模拟退火算法区域通信网频率规划【含Matlab源码 933期】
- 【TSP】基于matlab GUI混合粒子群算法求解旅行商问题【含Matlab源码 925期】