NVMe SSD是什么?
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是什么?的更多相关文章
- USB3.0及NVME SSD安装WIN7X64
USB3.0及NVME SSD安装WIN7X64https://tieba.baidu.com/p/4822034273?pn=1所有的人都是菜鸟过来的,不过有些人懂得自己动手找到答案:有些人则是懒得 ...
- WinPE无法识别NVMe SSD硬盘,如何重装系统
(源自网络出处不详) 抽风,diy一台新机器,下载的win10系统安装时出现如题所示的问题,开始以为是主板的问题设置u盘启动也不行,后来在某个群里有人说是系统版本问题,无奈重新做了启动优盘(用的17年 ...
- NVME SSD vs SATA SSD(转)
NVMe是个啥?未来SSD主流标准早知 关注固态硬盘的朋友应该对于这个词汇并不陌生,特别是今年NVMe也频繁出现在各大媒体文章中,随着高端SSD市场逐渐从SATA专项PCI-E时,以前的AHCI标准已 ...
- vSphere 6.5支持512e,NVMe SSD呢?
原创 2017-01-12 朱朋博 金笑雨 企事录 2016年底,VMware终于宣布,从vSphere 6.5开始支持512e扇区格式了. 这当然是好事.不过,不黑不舒服斯基说:原来以前的版本连51 ...
- FMS2015:NVMe SSD的高可靠性及数据保护
FMS2015是一个充满技术干货的平台,各领域技术大拿在峰会上分享的技术和产品都影响甚至主导着闪存下一阶段的发展. 此次Memblaze的project师团队也是从存储系统.PCIe SSD以及闪存控 ...
- 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 ...
- [转帖]深度: NVMe SSD存储性能有哪些影响因素?
深度: NVMe SSD存储性能有哪些影响因素? http://www.itpub.net/2019/07/17/2434/ 之前有一个误解 不明白NVME 到底如何在队列深度大的情况下来提高性能, ...
- 存储系统设计——NVMe SSD性能影响因素一探究竟
目录1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD——多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3. ...
- Ceph BlueStore与FileStore:利用Micron NVMe SSD进行性能比较
https://www.micron.com/about/blog/2018/may/ceph-bluestore-vs-filestoreblock-performance-comparison-w ...
随机推荐
- Oracle参数
v$parameter 显示当前在运行的实例中生效的参数值. v$spparameter 显示磁盘上spfile中存储的值. 通常是相同的. select p.NAME,p.VALUE,p.ISDEF ...
- JS中数据结构之散列表
散列是一种常用的数据存储技术,散列后的数据可以快速地插入或取用.散列使用的数据 结构叫做散列表.在散列表上插入.删除和取用数据都非常快. 下面的散列表是基于数组进行设计的,数组的长度是预先设定的,如有 ...
- python中得字典和常用函数总结
字典是python中一种常见得数据类型,用{}表示,并且以键值对得形式存放数据. dic={},其中得key键值是不可变得,类型可以是字符串.其中,列表,字典不可以作为键,键值是不可变得.字符串,元组 ...
- python 中的__str__ 和__repr__方法
看下面的例子就明白了 class Test(object): def __init__(self, value='hello, world!'): self.data = value >> ...
- Mac上VMWare Fusion配置多台cent os
一.创建虚拟机(准备工作) 1.使用VMWare Fusion 创建第一台虚拟机 2.选择操作系统(本次使用的是使用cent os 6.5 64bit 系统) 3.选择磁盘大小(楼主mac上的磁盘大小 ...
- CSS-多行超出隐藏
```css height: 48px; line-height:16px; overflow: hidden; ```
- Fatal Error -26000: Not enough memory (12320 bytes) for “new buffer in LrwSrvNetTaskIt 问题解决及lr脚本心得
Fatal Error -26000: Not enough memory (12320 bytes) for “new buffer in LrwSrvNetTaskIt 问题解决及lr脚本心得 2 ...
- tp5 之 "No input file specified
tp5 之 "No input file specified" 问题 通过"域名/模块/控制器/方法"这样的方式访问的时候,浏览器输出如下: 直接通过" ...
- ontouchstart ondragstart="return false" oncopy="return false;" oncut="return false onselectstart="return false" onpaste="return false"
ontouchstart: 开始触屏事件. ondragstart="return false" 禁止拖拽 oncopy="return false" 禁止 ...
- 安装Consul服务中心
安装Consul服务中心 首先下载对应版本的安装程序.点击下载 我下载的是macOS64位版本,下载文件是一个ZIP文件,下载后解压缩到一个你喜欢的位置,以开发模式启动consul服务: #进入con ...