NVMe与SCM结合将赋予存储介质的能力
转自:SCM是什么鬼,NVMe与其结合将赋予存储介质哪些能力?
全SSD闪存阵列在企业级存储得到广泛应用,相比传统机械硬盘,它的延迟、性能和可靠性都有了显著提高。许多早期开发商抓住其闪存技术优势的机遇,通过快速推出全闪存产品来领先于竞争对手。他们相信可以依靠全闪存实现差异化。但这个过程是相对曲折的,虽然这些公司都拥有全闪存阵列产品,但是他们的产品都是基于专用技术之上,下面从SSD的发展历程来说起。
SSD存储介质和接口技术一直处于不断向前发展和演进的过程。SSD分为几个阶段,第一个阶段是SATA SSD或者SATA/SAS SSD为主导,这个阶段介质以SLC和eMLC为主。第二个阶段是PCIe SSD,PCIe SSD最大的问题是不标准,很多私有化协议各自为政,基于FTL位置不同主要分为Host based SSD和Device base SSD。
直到NVMe时代才统一了接口和协议标准,NVMe主要的产品形态有三大类。第一类是和SATA/SAS SSD兼容的U.2,第二类是和PCIe兼容的SSD卡,第三类消费级产品常用的M.2,具体请参看“闪存技术最全面解析”文章。
纵观SSD发展,NVMe的出现虽然对接口标准和数据传输效率上得到了跨越式的提升,但是存储介质目前主流还是基于NAND Flash实现。那再往前发展,存储介质应该怎么发展呢?
Intel Optane(傲腾)系列硬盘通过实践证明NVMe和SCM(Storage Class Memory)配对时才会显现更大的存储优势,那时数据存储将会迎来重大飞跃,NVMe的未来属于SCM。它将建立在行业协议标准而不是专有技术之上。
实际上,Intel/Micron发布3DX(PRAM)首次将NVMe和SCM结合,这个我在“从Intel Optane系列Coldstream和AEP谈全闪存性能优化”文章中有详细介绍,之后各大厂家都加大了SCM介质的投入。Intel称Optane Memory为Apache Pass(AEP),为高性能和灵活性而设计的革命性的SCM。称Optane NVMe SSD为Clodstream,为世界上最快、可用性和可服务性最好的SSD。
3D XPoint(包括Apache Pass DIMM和Clodstream SSD)位于DRAM和NAND之间,填补DRAM和NAND之间的性能和时延GAP。
SCM同时具备持久化和快速字节级访问的特点,前几天,Intel正式发布了Optane SSD 900P,分为280GB和480GB两种容量版本,承诺900P比友商NVMe SSD竞品快7倍,最高连续读取速度2500MB/s,连续写入速度为2000MB/s。
同时,SCM具备Persistent Memory介质和NVM(Non-VolatileMemory)介质特性。更重要的是SCM没有NAND Flash顺序写入和写前擦除的约束,操作过程更简单;SCM介质的在寿命和数据保持能力方面的表现也远超NAND Flash。基于这些特点,业界普遍认为SCM会成为颠覆存储系统设计的新一代介质,并优先应用于性能和可靠性要求较高的场景。
Intel/Micron发布3DX(PRAM)之后,各大厂家都加大了SCM介质的投入,从上图可见,SCM的目前的主要应用都是聚焦于填充SRAM和Storage之间的容量和性能GAP。目前在研的SCM介质种类繁多,但是比较主流的有PCM、ReRAM、MRAM和NRAM四大类产品。
PRAM(Phase-Change RAM)利用特殊合金材料在晶态和非晶态下的导电性差异来表示0或者1数据。其优点是结构简单,容易实现大容量、同时具备低成本等特点。
主要用于Cache加速和Cache内存应用,考虑到PRAM的成熟度、对热度敏感和写穿透等因素,在应用中一般搭配DRAM或SRAM一起使用,在填补RAM和Storage之间的性能、容量差距的同时,形成具有分级能力的高速Cache应用资源池;其典型代表为Intel的3D Xpoint。
ReRAM(Resistive RAM)通过在上下电极间施加不同的电压,控制Cell内部导电丝的形成和熔断的状态对外呈现不同的阻抗(忆阻器)值来表示数据;目前典型代表厂商为HPE和Crossbar。
HPE在2015年Discover Conference会议中就提出了忆阻器内存技术,并计划在新型计算机架构The Machine中使用,未来成为取代SRAM、DRAM形成通用内存(Universal Memory);具体可参看文章“HPE忆阻器内存和IBM原子磁盘原理解析”。
MRAM(Magnetic RAM)磁性随机存储器通过电流磁场改变电子自旋方向来表示不同数据状态。比较适用于CPU的高速缓存(如L2 Cache),代表厂商为Toshiba和Everspin。
NRAM(Nantero’s CNT RAM)碳纳米管随机存储器采用碳纳米管作为开关,控制电路通断表示不同的数据状态。由于碳纳米管尺寸非常小并且具备极强的韧性,因此NRAM密度可以很高、寿命也比较长,理论功耗也比较低。
下面以Intel Optane系列简单谈谈SCM现阶段的应用情况。
首先介绍下SCM SSD磁盘,如Intel推出的OptaneP4800X系列Clodstream SSD,虽采用NVMe协议但沿用NVMe Block接口,相比现有Flash SSD,在架构上SCM SSD也有很好的继承性,再加上SCM SSD有效避免了垃圾回收带来的性能衰减问题,所以主要应用在数据缓存和高性能主存场景。
元数据缓存:作为AFA产品的元数据缓存,配合DRAM,实际上实现了Memory+SCM SSD的两级缓存,突破内存容量瓶颈,增加数据缓存容量;
数据缓存:作为用户数据的加速层,提升典型应用场景下的性能体验;
数据主存:作为用户数据的存储,提供比Flash更高的性能存储系统。
接着谈谈SCM DIMM形态产品,如Apache Pass DIMM,它是基于内存访问语义(Load/Store)的SCM产品,这种形态可以提供与内存接近的访问时延很低,并提供相对内存更大的容量和数据持久化能力,通常用在如下场景。
持久化内存:作为数据持久层,对数据一致性要求很高的持久化系统,同时兼顾数据可靠性和数据读写性能。
内存数据库:作为数据In Place空间,提供数据运行和持久化存储空间。
系统日志卷:作为日志卷,例如,在HPC系统中通常采用Checkpointing实现对计算中间状态进行持久化保存,这是一个耗时、耗系统吞吐量的过程。
如果采用SCM DIMM实现日志卷实现数据持久化,则可以大大提升系统可靠性、性能,同时减少处理时间。
简单总结下,从SATA SSD,SAS SSD到PCIe SSD,NVMe SSD,主要经历了标准泛滥和统一两次技术变革,PCIe SSD是闪存创新的春秋战国时代,在语言和通信上各自有一套标准,NVMe SSD则是统一文字标准的秦国盛世。然而要发挥SCM的优势,对现有计算机系统软硬件架构提出了更大的挑战,每次产品的变革都凝聚了技术的变革。这些变革包括持久化内存的数据结构,事务技术,硬件架构,编程工具和软件堆栈等各方面。
在互联网络方面,现有的跨CPU间内存访问受限于网络时延,无法充分发挥SCM介质持久化的特点,Gen-Z标准的出现使得SCM可以独立以Gen-Z接口接入Gen-Z总线,各CPU以纳秒级的时延访问共享SCM介质从而更好的发挥SCM的性能,关于SCM和传统SSD之间的GAP和解决措施,后续再找时间跟小伙伴们分享交流。
NVMe与SCM结合将赋予存储介质的能力的更多相关文章
- 在JTable单元格上 加入组件,并赋予可编辑能力 [转]
表格(单元格放置组件) 对于JTable单元格的渲染主要是通过两个接口来实现的,一个是TableCellRenderer另一个是TableCellEditor,JTable默认是用的是DefaultC ...
- [转帖]深度: 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. ...
- 【Python】【容器 | 迭代对象 | 迭代器 | 生成器 | 生成器表达式 | 协程 | 期物 | 任务】
Python 的 asyncio 类似于 C++ 的 Boost.Asio. 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知. Asyn ...
- 2-10 就业课(2.0)-oozie:13、14、clouderaManager的服务搭建
3.clouderaManager安装资源下载 第一步:下载安装资源并上传到服务器 我们这里安装CM5.14.0这个版本,需要下载以下这些资源,一共是四个文件即可 下载cm5的压缩包 下载地址:htt ...
- POLARDB与其他关系型数据库对比
https://baijiahao.baidu.com/s?id=1610828839695075926&wfr=spider&for=pc 前言 在数据库的选择上,MySQL成为中国 ...
- AlloyTouch实战--60行代码搞定QQ看点资料卡
原文链接:https://github.com/AlloyTeam/AlloyTouch/wiki/kandian 先验货 访问DEMO你也可以点击这里 源代码可以点击这里 如你体验所见,流程的滚动的 ...
- GJM : AlloyTouch实战--60行代码搞定QQ看点资料卡
原文链接:https://github.com/AlloyTeam/AlloyTouch/wiki/kandian 先验货 访问DEMO你也可以点击这里 源代码可以点击这里 如你体验所见,流程的滚动的 ...
- 通过中看不中用的代码分析Ioc容器,依赖注入....
/** * 通过生产拥有超能力的超人实例 来理解IOC容器 */ //超能力模组接口 interface SuperModuleInterface{ public function activate( ...
随机推荐
- VS2010中C++ 出现fatal error LNK1169: 找到一个或多个多重定义的符号
一般是函数重定义造成的 例如定义了两个 sum(x,y)函数
- 查看mysql已有用户并删除
查看: SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; 删除: drop us ...
- Mybatis Learning Notes 1
Mybatis Learning Notes 主要的参考是博客园竹山一叶的Blog,这里记录的是自己补充的内容 实体类属性名和数据库不一致的处理 如果是实体类的结果和真正的数据库的column的名称不 ...
- 第1节 flume:15、flume案例二,通过自定义拦截器实现数据的脱敏
1.7.flume案例二 案例需求: 在数据采集之后,通过flume的拦截器,实现不需要的数据过滤掉,并将指定的第一个字段进行加密,加密之后再往hdfs上面保存 原始数据与处理之后的数据对比 图一 ...
- 五. web开发基础
一.HTML 二.CSS 三.JavaScript 四.web框架 1.web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 ...
- ios之UISlider
初始化一个Slider UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(0, 400,320 , 20)]; 滑块是一个标 ...
- javascript顺序数组简单实现个二分查找
直接上码了注释写得很详细: function bsearch(A,x){ //l:查找范围左 r:查找范围右 let l = 0, //查询范围左边界 r = A.length-1, //查找范围右边 ...
- C++简单年月日的功能实现
// C++年月日判断初步代码 #include <iostream> using namespace std; class Data { int year; int month; int ...
- XML,面向对象基础
什么是XML XML与JSON的对比 XML文档格式 使用XML模块解析 一,什么是XML ''' XML 全称可扩展标记语言 <tag></tag> 双标签 <tag/ ...
- 算法学习记录-图(DFS BFS)
图: 目录: 1.概念 2.邻接矩阵(结构,深度/广度优先遍历) 3.邻接表(结构,深度/广度优先遍历) 图的基本概念: 数据元素:顶点 1.有穷非空(必须有顶点) 2.顶点之间为边(可空) 无向图: ...