转自: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结合将赋予存储介质的能力的更多相关文章

  1. 在JTable单元格上 加入组件,并赋予可编辑能力 [转]

    表格(单元格放置组件) 对于JTable单元格的渲染主要是通过两个接口来实现的,一个是TableCellRenderer另一个是TableCellEditor,JTable默认是用的是DefaultC ...

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

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

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

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

  4. 【Python】【容器 | 迭代对象 | 迭代器 | 生成器 | 生成器表达式 | 协程 | 期物 | 任务】

    Python 的 asyncio 类似于 C++ 的 Boost.Asio. 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知. Asyn ...

  5. 2-10 就业课(2.0)-oozie:13、14、clouderaManager的服务搭建

    3.clouderaManager安装资源下载 第一步:下载安装资源并上传到服务器 我们这里安装CM5.14.0这个版本,需要下载以下这些资源,一共是四个文件即可 下载cm5的压缩包 下载地址:htt ...

  6. POLARDB与其他关系型数据库对比

    https://baijiahao.baidu.com/s?id=1610828839695075926&wfr=spider&for=pc 前言 在数据库的选择上,MySQL成为中国 ...

  7. AlloyTouch实战--60行代码搞定QQ看点资料卡

    原文链接:https://github.com/AlloyTeam/AlloyTouch/wiki/kandian 先验货 访问DEMO你也可以点击这里 源代码可以点击这里 如你体验所见,流程的滚动的 ...

  8. GJM : AlloyTouch实战--60行代码搞定QQ看点资料卡

    原文链接:https://github.com/AlloyTeam/AlloyTouch/wiki/kandian 先验货 访问DEMO你也可以点击这里 源代码可以点击这里 如你体验所见,流程的滚动的 ...

  9. 通过中看不中用的代码分析Ioc容器,依赖注入....

    /** * 通过生产拥有超能力的超人实例 来理解IOC容器 */ //超能力模组接口 interface SuperModuleInterface{ public function activate( ...

随机推荐

  1. [习题]输入自己的生日(年/月/日)#2 -- 日历(Calendar)控件的时光跳跃,一次跳回五年、十年前?--TodaysDate属性、VisibleDate属性

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/06/10/calendar_visibledate_birthday_dropdow ...

  2. 用NSCoding协议完成“编码/解码”操作-Object-C

    Archiving Objective-C Objects with NSCoding For the seasoned Cocoa developer, this is a piece of cak ...

  3. 原生js格式化json的方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Gersgorin 圆盘

    将学习到什么 好多.   Gersgorin 圆盘定理   对任何 \(A \in M_n\),我们总可以记 \(A=D+B\),其中 \(D=\mathrm{diag}(a_{11},\cdots, ...

  5. WINDOWS-API:取得系统语言种类-GetOEMCP

    GetOEMCP VB声明 Declare Function GetOEMCP Lib "kernel32" Alias "GetOEMCP" () As Lo ...

  6. 洛谷 P1032 字串变换 (BFS)

    题目传送门 我即使是死了,钉在棺材里了,也要在墓里,用这腐朽的声带喊出 STL大法好 这题最麻烦的其实是处理字符串,真正的搜索部分我个人认为也就只有橙题或黄题的难度.而处理字符串,正如前面所说,STL ...

  7. 当数据量很少的时候,tableview会显示多余的cell--iOS开发系列---项目中成长的知识二

    当数据量很少的时候,tableview会显示很多的cell,而且是空白的,这样很不美观 所以使用下面的方法可以去掉多余的底部的cell 原理是:设置footerView为frame 是 CGRectZ ...

  8. ios之UIScrollView

    UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 [java] view plaincopy     CGRect bounds = [ [ UIScreen mainSc ...

  9. 【线段树 集合hash】bzoj4373: 算术天才⑨与等差数列

    hash大法好(@ARZhu):大数相乘及时取模真的是件麻烦事情 Description 算术天才⑨非常喜欢和等差数列玩耍.有一天,他给了你一个长度为n的序列,其中第i个数为a[i].他想考考你,每次 ...

  10. linux各种终端类型的区别和概念

    1 pty(虚拟终端或伪终端): 当我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty). 2 tty(终端设备的统称):tty一词源 ...