查看原文
其他

Intel Optane P4800X内存模式背后技术:ScaleMP

2017-03-21 唐僧 企业存储技术
本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号、微博ID:唐僧_huangliang,以便更好地与读者互动。


昨天我已经提到了Intel Optane SSD DC P4800X的发布。由于该产品之前已经有规格文档外泄,我也相继写过几篇3D XPoint方面的东西,重复的内容就不再赘述,今天主要谈谈新东西,比如Software-Defined Memory for SCM(SDM-S)

 

OptaneSSD P4800XQD1读延时优势最大

 


除了本次发布的375GB PCIe扩展卡(AIC)型号之外,P4800X预计在今年内还会陆续发布U.22.5英寸,15mm高)尺寸以及750GB1.5TB的容量点。看着很不错,唯一的问题就是银子够不够?

 

Intel表示Optane SSD比内存便宜(每GB 4美元 vs. 10美元),有朋友还说它是非易失的;不过另一方面,3D XPoint的性能与内存差距还是比较大,另外就是有写寿命的问题。

 


新公布的性能参数有几点,读/写混合IOPS关注的意义已经不大,因为随机读和随机写已经相当接近。那么我们就来看看99.999% QoS范围内、QD=14KB随机读/写延时,下面列出IntelSSD DC P3700的新版资料做个对比。

 

引用自《Intel Solid State Drive DC P3700 Series Product Specification

 

在《再谈3D XPoint:延时、QoS与队列深度》一文中我曾列出过这样一个表格,当时有朋友说里面的资料老了,查了一下是20146月的。上表应该是Intel网站给出过的最新版本(2015.10,其中一些延时指标比最初的P3700有不小的改进。而这些变化对我前文中的结论影响不大。

 

Intel P370099.99% QoS范围、QD=14KB随机读延时为4ms,是Optane P4800X60μs的接近70,而且后者的QoS等级还要更高。所以Intel以前强调3D XPoint介质的低队列深度读性能优势不是没有道理的。

 

LDPC助力闪存,P3700 DWPD不都是17

 


在《OptaneP4800X比闪存写快3倍,杀手应用在哪里?》中我同样引用了P3700SSD老资料中的DWPD=10,有专业读者朋友已经指出这一指标提高到了17。如上图,细心一些还能发现只有2.0TB容量达到17 DWPD62.05PBW),1.6TB15 DWPD400GB800GB仍然保持在10不变

 

关于P3700系列的延时降低和寿命改善,Intel的朋友表示是应用了LDPC(低密度奇偶校验)的结果。关于LDPC相比BCH算法在纠错方面的优势,我曾在《FPGA搞不定LDPC?分布式ECC助阵SSD》中有过简述。

 

Intel Memory Drive Technology:支持字节访问吗?

 

本次在Optane P4800X的网页上还提供了一份资料,题目为“Bundle Intel® Memory DriveTechnology with the Intel Optane SSD DC P4800X Series to transparentlyintegrate SSDs into the memory subsystem.

 


如上图,DRAM和连接在PCIe上的Optane SSD被一同被划在了内存池里。

 


在这种“内存盘”工作模式下,P4800X 375GB(按1000-1024换算之后容量为349GiB)被限制为320GiB,可能是为了预留一些元数据空间吧。关于操作系统支持RHELSLES Linux,需要另有一个“启动盘”这些我会稍后讨论。

 

Optane SSD和服务器DRAM内存有一个8倍的推荐最大配比,虽然我还不确定具体的空间分配方式,但有一部分“最热”的数据还是放在传统内存里更合适。

 

上图引用自白皮书《Software-Defined Memory with Intel NVM》,为了让Optane SSD仿真内存工作,Intel还提出了软件定义内存SDM-S的概念。

 

我们知道磁盘类设备的最小访问单位是扇区(512byteFlash SSD的物理读写单位——闪存页面大小已经达到4/8/16KB(擦除单位是块,要大得多),但为了软件兼容性一般还支持仿真512byte格式的块设备。在《数据库&存储:互相最想知道的事》中我还谈到过企业级SSD提供的512byte-4KB格式转换工具。

 

而内存的基本操作单位是64bytes,现在发布的Optane SSD也像NAND闪存那样是块级设备,本身不能以字节方式寻址(未来还会有DIMM形态的3D XPoint)。Intel Memory Drive Technology要解决的就是这个问题,而该软件技术来自于一家合作伙伴ScaleMP

 

ScaleMPvSMP与内存扩展技术

 


ScaleMP网站上资料中,我们看到vSMP Foundation这种将NVMe SSD当作内存用的方式。这里的SSD可以是AIC插卡或者U.2的盘,支持闪存自然也就兼容Optene P4800X,当然换成3D XPoint性能更快。

 

下面我们来看看ScaleMP这家公司的主营业务,或者说核心技术。

 


所谓vSMP就是虚拟的对称多处理器,支持将多台服务器上的内存,或者还有CPUI/O资源整合到一个“大虚拟机”。这种应用方式让我想起了Dell曾经收购的一家公司RNA Networks,他们之前也是做单一系统映像(Single System Image这方面的软件业务,后来该技术衍生出了Fluid Cache for SAN分布式一致性闪存缓存软件。

 

如上图,vSMP可以有不同的工作模式。左边的“内存扩展”是只将第2-N节点的内存资源“附加”到第1台服务器,CPUI/O都在本地;右边则的“系统扩展”是将单一操作系统跨多节点运行,内存、CPUI/O资源全部聚合,服务器之间认证的网络设备是InfiniBand

 

ScaleMP网站的认证硬件列表中包含了各大厂商的服务器,以Dell为例,把PowerEdgeC系列和刀片放在前面估计是偏重HPC应用。反过来在Dell网站上,ScaleMP也是作为高性能计算方面的合作伙伴出现(http://www.dell.com/learn/us/en/04/hpcc/partner-scalemp

 

ScaleMP目前支持的操作系统为Red HatSuse企业版Linux,我理解他们是提供了一个“Hypervisor”,先让服务器通过U/闪存卡或者网络引导这个系统,然后将多台主机资源池化贡献给“大虚拟机”的Linux系统。

 

既然能将远程内存当作本地内存来用,用SSD/SCM(存储级内存)块设备来模拟内存应该不是难事。只是当前最终落到Optane P4800X上的I/O还不是字节寻址,有写放大啥的,这个估计要等DIMM形态OptanePurley之后的再下一代Intel服务器平台来解决了。

 

SDM-S混合内存的性能和应用(软件设计)

 


最后看看性能。MySQL数据库TPC-C测试的结果是:全DRAM内存217,003 TpmC;如果保留12.5%DRAM + Optane SSD混合的SDM-S配置,TpmC成绩为173,308

 

另一项测试是Memcached,全内存性能262k TP/s25% DRAM+ Optane SSD257k TP/s很接近前面的数字;而12.5% DRAM + Optane SSD则跑出了201k TP/s

 

这样的性能表现是NAND闪存无法达到的,SCM能够更好地用于数据库内存和Cache方案,记得之前我还介绍过SAP HANA

 

扩展阅读:《RedisSAS使用闪存的两种不同方式

 


上图我在《3D XPoint遇上SAP HANA:机遇与挑战》一文中曾经列出过。“SAPHANA的内存架构中,包括Temp临时数据、Delta更改的数据和Main主数据这几个部分。其中Main Store占数据总量的95%左右、10-20X压缩比,访问类型以读(全表扫描)为主,非常适合Intel基于DIMM3D XPoint

 

因此我们看到,在该方案中3D XPoint持久化内存只是用来放Main StoreDeltaTemp数据还是放在DRAM中。做到这一点,需要软件了解DRAMSCM各自的内存地址范围

 

:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)


尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage


长按二维码可直接识别关注

历史文章汇总(传送门):http://chuansong.me/account/huangliang_storage


点击下方“阅读原文”,查看更多历史文章↓↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存