从技术到应用:揭开3D XPoint Memory迷雾
按照规律,我们知道不太可能一下冒出个新技术,而且还是未来2-3年就要Ready的。而这一次却稍微有点迷雾,也许是Intel想特别提出个新概念吧,甚至有从国外翻译过来的文章都容易给人以误导——3D XPoint是电阻类(RRAM)内存吗?
本文将从如下章节分别讨论,希望能够引古论今,从技术到应用全面揭秘3D XPoint。
技术本质:RRAM还是PCM?
直连CPU:Near Memory和Far Memory
性能预览:不再依赖于并发/队列深度
软件支持及应用,系统瓶颈变网络?
上市时间点、对内存市场的冲击
乐观和悲观预测、小结
更多回顾、与传统存储交集展望
1.技术本质:RRAM还是PCM?
上图左边是3DXPoint的三维建模,右边应该是X光片,里面的英文都不复杂,我在这里就不翻译了。
一图抵千言?
这张截图来自SNIA举办的2015 Storage DeveloperConference演讲资料《Understanding the Intel/Micron 3D XPointMemory》,“Intel已经研究PCM 45年了!”这句话道出了本质。正如一位同行朋友说的,3DXPoint其实就是3D的PCM。
2.直连CPU:Near Memory和Far Memory
上图的两条曲线分别代表DRAM和NAND的平均每GB价格,可以看到闪存的降价趋势仍比内存明显,并且价格已经达到14倍的差距。
这个是3DXPoint成本和带宽性能所处的位置,每GB数十美金、(单个颗粒)数百MB/s的水平均位于SSD和DRAM之间。如果将SSD称为半导体存储(Storage)的话,3D XPoint更适合做为存储级内存(Memroy)。
如上图,专利中“泄露”了Intel的计划。未来Intel CPU的内存控制器,将直接支持基于PCM的DIMM内存条(Far Memory,也就是3D XPoint),并保持在每个通道上同时支持DDR DRAM(Near Memory)的能力。
3.性能预览:不再依赖于并发/队列深度
上面图表列出的延时数字,我觉得应该代表了存储设备自身的水平,也就是排除缓存因素的读延时?HDD的10ms大致代表7200转硬盘,使用NAND闪存的SAS/SATA SSD超过100µs,换成NVMe接口降低到100µs以内,3D XPoint大约在10µs左右。
这里的纵坐标顶点代表大于10亿IOPS,DRAM内存应该可以达到这一水平;在NVMe PCIe SSD上面的“Intel SSD with Optanetechnology”(也是指3D XPoint)覆盖了大片浅蓝色区域,其中的应用类型包括memcache、cloud、in-memory key-value database(内存数据库)和real time analytics(实时分析)。
“in-memory key-valuedatabase”让我想起了EMC的DSSD,这里我引用赵军平老师写的一句话:“DSSD支持了HDFS, Obj/KV/Block接口。当初FusionIO的一些初衷,现在以另一种形态再次出现,而且来势汹汹。据悉还有其他几个试用客户,个人拍脑袋猜想估计是SAP HANA, Spark, GemFire, Tachyon ApacheIgnite...”
注:将于2015年底上市的DSSD仍基于闪存。
有朋友曾经质疑过key-value接口的效率应该没有block高,我觉得这个可能要看具体的存储介质和访问方式。比如3年前我在《十亿IOPS不是梦?Fusion-io闪存API另类分析》一文中揭示过这样一个原理——“IO生成器将64Bytes(字节)的块通过Atomic Write API直接写入,注意这里的单个I/O大小比硬盘上的512Byte扇区和4KB的闪存页面都要小... 既然可以是顺序写,那么料想它能够将64字节的I/O在服务器内存中合并成适合闪存页面大小的4KB I/O再写入。”
由于时间关系,我来不及查阅更多资料。猜测3DXPoint有可能会以mmap之类的方式支持传统块存储访问,但其主流的应用形式还是接近内存。无论in-memory key-value还是专门优化的API/内存文件系统(这个词可能不够严谨),其访问效率估计都要比传统块存储高。
3DXPoint还有一个特点,就是在很低的队列深度下就能达到接近峰值性能。这个图表反映的是4KB读IOPS,传统NAND在达到128并发/队列深度时性能曲线尚未达到顶点,3D XPoint的优势还是相当明显的。
4.写延时:凭借控制器内缓冲搞定?
上图对比的是单位写IOPS的成本,3D XPoint在这里又一次表现最好。首先前面也讲过了,单位容量成本3D XPoint肯定高于闪存,而且之前的经验告诉我们,PCM的写入性能未必比NAND闪存更好?所以我感觉,以上数字实际上是在说较低容量的3D XPoint就能达到更大容量闪存的写性能。
上图来自2014年闪存峰会的资料,其中引用的应该是Gartner更早的数据。按照这个对比,PCM介质本身的写寿命高于NAND,但写速度低于NAND。
如上图,前新浪/现美图网高级DBA杨尚刚@zolker一直看好PCM。
我曾经在这条微博中指出,eMLC的37.1µs写延时是有DRAM写缓存优化过的,而PCM的128.3µs应该是介质本身的裸性能。
上图来自2015闪存峰会的一场有关3D XPoint的演讲。其中提到了DDR4总线上的事物协议(非JEDEC标准);读为PCM原生延时(50-200ns,我们在前面谈到的µs级别估计是用NVMe接口);写缓冲在了PCM控制器(也就是Intel未来CPU中的SRAM或者eDRAM?);每条DIMM的容量可达数百GB(DRAM内存的3-4倍)。
5.软件支持及应用,系统瓶颈变网络?
这段文字左边有利的部分我就不解释了,看看右边的“坏消息”:没有人能够让它更经济;(当前)没有软件支持存储级内存;新的层级需要时间来确立。
在去年底的这条微博中,知名数据库专家@jametong 也曾表示“软件堆栈需要进一步的革命”。据了解,Intel已经投入了不少开发平台给软件厂商,等到3D XPoint上市的时候情况应该会有变化。
3DXPoint除了在单位性能上的成本更低之外,它的功耗也低于DRAM内存,这样就能在每台服务器中实现更高的性能,降低运维成本。内存数据库开始变得更有意义了。
上面这条3年多以前的微博看似与前文中观点不符,但实际上当时流行的以太网只有10Gb/s,InfiniBand也不过40Gb/s和56Gb/s,而且RDMA over Ethernet的应用也远不如今天普及。现在这些技术也只是基本满足闪存的需要而已。不久之后Intel将推出100Gb/s硅光互连(感觉是从收购QLogic的IB技术发展而来),在3D XPoint上市的时候不知网络速度会不会有新的突破?
6.上市时间点、对内存市场的冲击
如上图,3DXPoint的出货时间点被定在了2017年晚些时候,距现在还有大约2年。按照习惯,计划通常赶不上变化,所以有些拖延或者遇到稍微大一点的难题也是正常的。
根据分析数字显示,如果没有3DXPoint,由于半导体技术进步和应用需求的增长,服务器DRAM内存的出货容量将会每年上升。而有了3D XPoint之后,从2017年开始这个数字就基本保持平稳不变,也就是说原来许多需要大容量内存的应用改为选择了3D XPoint。
这个是服务器内存销售额的预测,如果没有3DXPoint每年相对平稳;而有了3D XPoint之后,从2017年开始DRAM就将大幅下降。也就是说出货容量不变,但单位容量价格依然保持下降。这就是为什么现有的几家DRAM厂商会对3D XPoint感到紧张,特别是三星和Hynix,不知他们会不会加入到PCM阵营?
听说惠普也要放弃忆阻器而转投3DXPoint了,我对他们家的“The Mechine”还是挺感兴趣的。
7.乐观和悲观预测、小结
该图表是对3DXPoint在服务器市场的乐观估计——2018年超过10亿美元,2019年超过20亿。
在这条两年多之前的微博中,一位兄弟表示PCM“从板卡到阵列,起码5年以后的事”,与上面的2018年却恰巧相符:)
当然了,对新事物总会有人持不乐观的态度,这也是正常的,毕竟大家所站的视角也不同。
该Summary是这份参考资料的总结,却不是本文的结尾。我觉得最后两条值得关注:
它(3DXPoint)对我们的系统有直接影响
将于2016年发布,但带来较大影响会晚的多
8.更多回顾、与传统存储交集展望
首先是HGST在一年前展示过PCIe扩展卡形式的PCM原型产品。联想到HGST与Intel在企业级SSD领域的合作,以及Intel提供SAS和PCIe接口主控硬件,不难发现这个原型产品的PCM存储芯片和控制器有可能来自Intel/Micron。
上面是一篇翻译于3年前的国外新闻,在该文的链接中提到了“EMC在其VFCache PCIe闪存卡和他们由VFCache卡组成的Project Thunder(雷电计划)机箱上与美光一起工作。或许,美光对于PCM的前景在私下里比公开表现的更积极,并已经发送PCM的消息给EMC。”
我们知道VFCache的后续产品称为XtremSW Cache,尽管其加入了Oracle RAC等支持,并且由上海的一位数据库专家跑出了超过300万读IOPS的测试成绩。不过或许与EMC目前推广的重点是高利润的XtremIO以及传统高端阵列VMAX3有关,XtremSF闪存卡相关产品不怎么看到宣传了。业内与之类似的情况可能还出现在IBM SVC和V7000的RTC实时压缩上,在全闪存阵列流行之前,该技术在这一细分领域几乎有点独步武林的感觉?但在IBM实际销售时,如果用户打开压缩,就意味着少卖硬盘容量啊。
相比之下,戴尔Fluid Cache forSAN比XtremSW Cache多出了写缓存(据说EMC也曾有这样的计划)、与SC(Compellent)阵列管理和快照结合等高级特性,使之真正成为一个可持久化的服务器端SAN闪存缓存池方案。戴尔比较推荐该方案的原因,可能在于其中还包含了自家的服务器和以太网交换机(Force10 10/40Gb RoCE,用于Fluid Cache专用互联网络)等产品,详情可参考《性能与ILM的平衡:服务器闪存缓存的思考》一文。
戴尔Fluid Cache forSAN在演示中跑出了500万IOPS的性能
如今,服务器端PCIeSSD缓存可以为后端磁盘或者混合阵列加速,等到将来全闪存阵列进一步普及时,前端是否可以换成3D XPoint Memroy呢?我猜测这可能会是一个合理的方案,别看3D XPoint的访问接口变成了内存,要知道Fluid Cache for SAN的技术来源——戴尔收购的RNA当初可是做内存虚拟化的,所以估计这不会成为什么困难。
如果真的有那么一天,40Gb以太网和同级速率的InfiniBand网络估计真的会成为瓶颈了。
其实我还曾有过一种设想,利用RNA的技术能否做出一款类似DSSD,或者同样用途的产品呢?当然这个想法未经过任何官方确认。
最后,特别感谢企业闪存领域资深人士@jebtang(新浪微博)对本文的帮助。
注:本文只代表作者个人观点,如有错误和不足之处欢迎批评指正。点击“阅读原文”可访问文中引用的超链接。
重要提示:除非事先获得授权,请在本公众号发布2天后,才能转载本文。尊重知识,请必须全文转载,并包括本行及如下二维码。
感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage
长按二维码可直接识别关注
历史文章汇总:http://blog.sina.com.cn/firegl