【转载】什么是NVMe?
什么是NVMe?
【转载】什么是NVMe:http://storage.it168.com/a2018/0921/5045/000005045252.shtml
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?的更多相关文章
- Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创)
我们兴奋的宣布Databricks缓存的通用可用性,作为统一分析平台一部分的 Databricks 运行时特性,它可以将Spark工作负载的扫描速度提升10倍,并且这种改变无需任何代码修改. 1.在本 ...
- linux内核源码分析 - nvme设备的初始化
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 本文基于3.18.3内核的分析,nvme设备为pcie接口的ssd,其驱动名称为nvme.ko,驱动代码在dri ...
- SSD 的介绍 -------转载
本文转载自: http://www.sohu.com/a/258190629_494938 背景 SSD(Solid-State Drive)是目前正处于鼎盛时期的存储设备.相较于传统的硬盘存储器 ...
- [转载]腾讯专家:论高级DBA的自我修养
作者介绍: 张秀云:2007年开始从事运维方面的工作,经历过网络管理员.linux运维工程师.DBA.分布式存储运维等多个IT职位.对linux运维.mysql数据库.分布式存储有丰富的经验.2012 ...
- 【转载】如何自己DIY组装一台台式电脑
针对很多懂计算机的人员来说,有时候都希望自己DIY组装一台台式机,来达到自己的个性化要求以及省钱.其实自己DIY组装一台电脑也很简单,将相应的CPU处理器.主板.内存条.硬盘.固态硬盘.电脑机箱.屏幕 ...
- NVMe固态硬盘工具箱使用说明
https://www.bilibili.com/read/cv562989/ 浦科特NVMe固态硬盘工具箱使用说明 数码 2018-6-7 687阅读7点赞3评论 浦科特已经推出针对NVMe固态硬盘 ...
- VMware ESXi 7.0 U2 SLIC 2.6 & Unlocker 集成 Intel NUC 网卡、USB 网卡和 NVMe 驱动
ESXi 7 U2 标准版镜像集成 NUC 网卡.USB 网卡 和 NVMe 驱动. 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u2-nuc-usb-n ...
- Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)
作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...
- RTP与RTCP协议介绍(转载)
RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...
随机推荐
- Python巧用法
#for 与 else 搭配使用(使用break跳过else) a=[1,2,3,4,5] for i in a: print(i) else: print(i, 'I am else!') for ...
- Google_PWA_ServiceWork_渐进式 Web 应用_给应用提供离线体验
前言:今天结识了google PWA提供的一个对移动端Web应用提供离线体验的一个功能,感觉很有用.我这里不分享自己的写法和代码.官网文档说的很详细,直接粘过来大家看吧. 推荐官网地址:你的第一个渐进 ...
- django7-cookie与session
1.有状态服务与无状态服务 服务实例存储了客户端的数据 ,那么这就是个有状态服务 服务实例不存储客户端数据 ,让其他缓存存储客户端数据 ,这就是无状态服务 ,http就是无状态的 2.什么是cooki ...
- DQL---连接查询(内连接、外连接)、子查询、分页查询
一.连接查询 1.连接查询建立在有相互关系的两个表间,进行两个及两个以上的表或视图的查询. 2.对n张表进行查询,至少需要n-1个连接表的条件. 二.笛卡尔积(容易造成数据库宕机) 1.指表中每行元素 ...
- MySQL基础之表的管理
添加和删除字段操作 添加字段 alter table tbl_name add 字段名称 字段属性 [完整性约束条件] [first|after 字段名称之后]; 删除字段 alter table t ...
- ORA-01555 When Max Query Length Is Less Than Undo Retention, small or 0 Seconds (Doc ID 1131474.1)
ORA-01555 When Max Query Length Is Less Than Undo Retention, small or 0 Seconds (Doc ID 1131474.1) A ...
- Windows Redis 开机启动后台运行
1. 从 Redis 的安装目录进入 cmd 2. 在 cmd 中输入, 将Redis绑定为 Windows 服务, 并设置为后台启动: redis-server --service-install ...
- Linux MySQL 开启远程访问
进入mysql以后 use mysql; GRANT ALL ON *.* TO user@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
- Day_03
1.指针基本操作 package main import "fmt" func main() { var a int //每个变量有2层含义:变量的内存,变量的地址 fmt.Pri ...
- Ambassador中,启用不同的Load balancing算法
默认就是轮循,如果要其它hash或是最少请求,那就需要作更多的设置了. https://www.getambassador.io/reference/core/load-balancer/#sourc ...