https://blog.51cto.com/alanwu/1766945

一直对闪存存储关注的朋友对NVMe SSD一定非常熟悉,NVMe SSD是现如今性能最好的存储盘。这种高性能盘在互联网领域已经得到了大规模应用,但是在行业用户还没有得以大范围普及。很多人对NVMe SSD也许还比较陌生,不知道如何应用该类型盘,并且给自己的业务带来价值。和SATA/SAS SSD以及HDD相比,她到底又有何神秘之处呢?在此我想对NVMe SSD做一些介绍。

提到NVMe SSD,不得不提Fusion IO率先研制的PCIe SSD,10年前Fusion IO率先采用PCIe接口的方式研制了全球首款高性能SSD。该SSD采用服务器内置插卡的形式,和SATA/SAS等接口相比,PCIe具有极高的数据传输性能,解决了基于NAND Flash数据存储的接口瓶颈问题。在采用PCIe做SSD接口的过程中,数据传输采用了多队列的方式,从而可以实现单盘并发数据传输的目的,提高了数据接口效率。在操作系统内部,原生支持SAS/SATA接口,原生带有SATA/SAS盘的驱动程序。但是,对于这种PCIe SSD,操作系统是没有原生驱动的,并且在软件栈上面也不采用传统的SCSI软件层,因此,这类PCIe SSD需要厂商自己提供特殊的驱动程序。PCIe SSD在历史上有两种产品类型,一种是Host Based SSD;另一种是Device Based SSD。这两种盘从用户角度来看,差别是Host Based SSD会占用主机端资源,SSD内部的数据管理软件都是运行在主机端。这种盘的优点在于盘本身的功耗比较低,盘上的硬件资源也比较少;缺点是占用系统资源,尤其是内存资源。另一种产品类型是Device Based PCIe SSD。这类产品的思路很简单,就是要将运行在主机端的NAND Flash存储管理软件卸载到SSD中去,这样可以减少主机端的资源占用率。这种盘的优点很明显,缺点是对SSD内部的控制器有更高要求,通常功耗比较大,并且SSD上需要更多的硬件资源,例如内存。在PCIe SSD的市场上,FusionIO、国内的宝存以及Memblaze都提供了这样的产品。不管是Device Based还是Host Based PCIe SSD,都需要在主机端安装厂商自己提供的驱动程序,才可以使用该类型盘。这就带来了一个很大的问题,不同厂商提供的盘相互不兼容,需要不同的驱动软件,因此,一个伟大的NVMe标准产生了。

NVMe标准可以简单理解用来标准化PCIe SSD,使得不同厂商符合标准的盘都可以采用相同的驱动程序。需要注意的一点是,NVMe SSD是原来Device Based PCIe SSD的延伸。NVMe标准定义了SSD的访问命令及操作方式,并且定义了逻辑设备接口标准;和SATA体系类比,NVMe标准替代了SATA体系中的AHCI逻辑接口以及ATA/SCSI命令规范。在一开始的时候,NVMe标准只是针对PCIe这种物理传输接口定义标准,随着该标准的进一步演进,物理接口不再局限于PCIe,将更多的Fabric引入到了NVMe体系架构中来,例如RDMA以太网。该类标准为NVMe家族中的NVMe over Fabric。从这一点可以看出NVMe SSD是PCIe SSD的演进,PCIe SSD采用私有协议;NVMe SSD采用标准协议。如今,市场上主流采用PCIe接口的SSD基本都符合NVMe标准,例如Intel、Samsung以及Memblaze的产品都可以直接采用操作系统中原生的驱动程序。

NVMe标准是SSD固件研发工程师、驱动研发工程以及SSD控制器芯片设计者需要关心的协议标准。这里还有一个问题需要解决,硬件工程师在设计SSD的时候,需要采用什么样的物理接口标准呢?如果直接采用传统插入服务器内部的PCIe接口,可以直接参考PCIe接口规范,除此之外是否有更好的选择呢?在物理接口这块目前有M.2和U.2两种接口标准。M.2主要面向消费级应用;U.2主要面向企业级应用。M.2接口是一种比较小的PCIe接口,在物理上兼容SATA;U.2是一种和传统SATA/SAS外观上保持一致的接口,兼容SATA/SAS和PCIe。有了这种物理接口标准之后,硬件工程师也有章可循了。从整个数据链路来看,从驱动程序、硬件接口、控制器逻辑接口到固件程序的命令处理方式都可以采用标准化的处理方式了。至此,我们理解了NVMe可以看成是SCSI命令和AHCI一样的东西;U.2/M.2是一种硬件接口的标准,将SATA/SAS/PCIe进行了统一;简单来讲,NVMe SSD就是一种标准化的PCIe接口SSD。

NVMe SSD到底有什么优势呢?其最大的优势就在于性能。NVMe SSD的读性能基本在3GB/s、写性能可以达到2GB/s。当然不同容量的SSD会存在性能上的差异。和普通磁盘相比,NVMe SSD有很高性能方面的提升。我们知道一块15000转的SAS HDD,其读写性能基本在150MB/s~200MB/s之间,NVMe SSD性能提升了几十倍。除了带宽方面性能有所提升之外,NVMe SSD最大的好处是IOPS的提升。一个硬盘的IOPS基本在200左右,而对于一个普通的NVMe SSD,其IOPS可以达到700,000以上,也就是提升了3500倍。这是磁盘和半导体介质之间的本质差别。也正因为这种性能上的巨大飞跃,很多互联网应用才会对NVMe SSD有如此巨大的需求。NVMe SSD可以解决互联网事务型应用方面的IO吞吐痛点问题。

除了在性能上NVMe SSD有如此巨大的优势,另外一个值得一提的是存储容量。目前HDD普遍使用的单盘容量是4TB,最大可以做到10TB。2.5寸NVMe SSD目前的单盘容量可以普遍做到3.2TB,单卡可以做到6.4TB。今年NVMe SSD可以做到10TB以上,并且每年的容量都会爆发式增长,这主要得益于3D NAND Flash的广泛应用。可以预计,若干年之后,NVMe SSD的单盘容量可以达到几十TB以上,甚至短短几年内可以超过100TB。这种容量上的增速是HDD所无法超越的,因此,NVMe SSD的容量密度将会远远高于HDD。

NVMe SSD已经在服务器端得到了广泛支持,很多服务器厂商已经开始标配NVMe SSD的槽位。一个1U的服务器可以支持10块NVMe SSD;一个2U的服务器目前可以最多支持48盘位的SSD;通过PCIe扩展的方式,一台服务器还可以扩展连接NVMe 的JBOF。所以,NVMe的硬件生态也在慢慢成熟。NVMe从标准的发展,SSD盘的发展,服务器的支持,操作系统的支持,慢慢的存储软件也开始对NVMe进行全方位支持。一个和SATA/SAS相互并存的NVMe高性能存储展现在了大家面前,未来一定会成为存储技术的主流。

NVMe SSD是什么?的更多相关文章

  1. USB3.0及NVME SSD安装WIN7X64

    USB3.0及NVME SSD安装WIN7X64https://tieba.baidu.com/p/4822034273?pn=1所有的人都是菜鸟过来的,不过有些人懂得自己动手找到答案:有些人则是懒得 ...

  2. WinPE无法识别NVMe SSD硬盘,如何重装系统

    (源自网络出处不详) 抽风,diy一台新机器,下载的win10系统安装时出现如题所示的问题,开始以为是主板的问题设置u盘启动也不行,后来在某个群里有人说是系统版本问题,无奈重新做了启动优盘(用的17年 ...

  3. NVME SSD vs SATA SSD(转)

    NVMe是个啥?未来SSD主流标准早知 关注固态硬盘的朋友应该对于这个词汇并不陌生,特别是今年NVMe也频繁出现在各大媒体文章中,随着高端SSD市场逐渐从SATA专项PCI-E时,以前的AHCI标准已 ...

  4. vSphere 6.5支持512e,NVMe SSD呢?

    原创 2017-01-12 朱朋博 金笑雨 企事录 2016年底,VMware终于宣布,从vSphere 6.5开始支持512e扇区格式了. 这当然是好事.不过,不黑不舒服斯基说:原来以前的版本连51 ...

  5. FMS2015:NVMe SSD的高可靠性及数据保护

    FMS2015是一个充满技术干货的平台,各领域技术大拿在峰会上分享的技术和产品都影响甚至主导着闪存下一阶段的发展. 此次Memblaze的project师团队也是从存储系统.PCIe SSD以及闪存控 ...

  6. H310C,B365,M.2 NVME SSD,USB3.0,安装 WIN7 64 位

    华擎H310CM ITX NVME SSD 上安装WIN7 64位 核心关键点:xHCI USB3.0驱动,nvme驱动,nvme win7补丁. 硬件配置:I5 9400F, 华擎H310CM IT ...

  7. [转帖]深度: NVMe SSD存储性能有哪些影响因素?

    深度: NVMe SSD存储性能有哪些影响因素? http://www.itpub.net/2019/07/17/2434/ 之前有一个误解 不明白NVME 到底如何在队列深度大的情况下来提高性能, ...

  8. 存储系统设计——NVMe SSD性能影响因素一探究竟

    目录1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD——多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3. ...

  9. Ceph BlueStore与FileStore:利用Micron NVMe SSD进行性能比较

    https://www.micron.com/about/blog/2018/may/ceph-bluestore-vs-filestoreblock-performance-comparison-w ...

随机推荐

  1. keras及神经网络,以简单实例入门

    由浅入深,深入浅出.还给你reference了很多,如果你想要更多. 迄今为止看到最棒的,最值得follow的入门tutorial: https://realpython.com/python-ker ...

  2. 迅捷路由器FW325R的无线桥接

    1.恢复路由器默认设置 长按路由器后面的按钮直到指示灯全亮后只剩一个灯亮时松开按钮,此时就已经重置路由器了.然后设置路由器后台密码什么的,那些向导什么的可以跳过 2.高级设置内容 进入路由器高级设置: ...

  3. Linux0.11内核源码——内核态进程切换的改进

    本来想自己写的,但是发现了一篇十分优秀的博客 https://www.cnblogs.com/tradoff/p/5734582.html system_call的源码解析:https://blog. ...

  4. 韩老师CCNA学习笔记

    1.MSCONFIG服务里面可以选择隐藏Windows服务,就能看出程序安装的服务.即使显示已停止,仍可能在运行 2.命令行输入netstat -anbo ,显示当前连接和端口,数字显示,以及程序的路 ...

  5. 请教怎么查询ORACLE的历史操作记录!

    请问如何查询ORACLE的历史操作记录!!!!!我用的是linux oracle 11g r2,想查一下前几天的数据库的历史操作记录,例如对表的insert,delete,update等等的操作记录, ...

  6. MySQL清除表数据而保留表结构TRUNCATE TABLE

    有时候我们会需要清除一个表格中的所有资料.要达到者个目的,一种方式是使用 DROP TABLE 指令,不过这样整个表格就消失,表无法再被用了.另一种方式就是运用 TRUNCATE TABLE 的指令. ...

  7. Windwos 08R2_DNS全面图文详解

    目录 目录 前言 软件环境 DNS域名服务器 DNS服务器原理 DNS域名空间 DNS区域 DNS服务器的类别 DNS查询模式 缓存文件 配置DNS服务器 DNS服务的应用 创建DNS正向解析区域 在 ...

  8. 第一步:卸载手机上的“WIFI万能钥匙”! 会分享自己家的wifi

    http://www.znds.com/tv-164866-1-1.html 楼主今日家中WIFI卡的不行,心想,20M的电信光纤没理由这么卡!于是就在网上查找了许多资料,接下来统一收集整理给大家!第 ...

  9. GET和POST的数据传递到底有何区别?

    1. GET和POST与数据如何传递没有关系 GET和POST是由HTTP协议定义的.在HTTP协议中,Method和Data(URL, Body, Header)是正交的两个概念,也就是说,使用哪个 ...

  10. 【读书笔记】:MIT线性代数(3):Special Solution, Rank and RREF

    Special Solutions: Notice what is special about s 1 and S2. They have ones and zeros in the last two ...