Intel Optane P4800X内存模式背后技术:ScaleMP
昨天我已经提到了Intel Optane SSD DC P4800X的发布。由于该产品之前已经有规格文档外泄,我也相继写过几篇3D XPoint方面的东西,重复的内容就不再赘述,今天主要谈谈新东西,比如Software-Defined Memory for SCM(SDM-S)。
OptaneSSD P4800X:QD1读延时优势最大
除了本次发布的375GB PCIe扩展卡(AIC)型号之外,P4800X预计在今年内还会陆续发布U.2(2.5英寸,15mm高)尺寸以及750GB和1.5TB的容量点。看着很不错,唯一的问题就是银子够不够?
Intel表示Optane SSD比内存便宜(每GB 4美元 vs. 10美元),有朋友还说它是非易失的;不过另一方面,3D XPoint的性能与内存差距还是比较大,另外就是有写寿命的问题。
新公布的性能参数有几点,读/写混合IOPS关注的意义已经不大,因为随机读和随机写已经相当接近。那么我们就来看看99.999% QoS范围内、QD=1的4KB随机读/写延时,下面列出IntelSSD DC P3700的新版资料做个对比。
引用自《Intel Solid State Drive DC P3700 Series Product Specification》
在《再谈3D XPoint:延时、QoS与队列深度》一文中我曾列出过这样一个表格,当时有朋友说里面的资料老了,查了一下是2014年6月的。上表应该是Intel网站给出过的最新版本(2015.10),其中一些延时指标比最初的P3700有不小的改进。而这些变化对我前文中的结论影响不大。
Intel P3700在99.99% QoS范围、QD=1的4KB随机读延时为4ms,是Optane P4800X的60μs的接近70倍,而且后者的QoS等级还要更高。所以Intel以前强调3D XPoint介质的低队列深度读性能优势不是没有道理的。
LDPC助力闪存,P3700 DWPD不都是17
在《OptaneP4800X比闪存写快3倍,杀手应用在哪里?》中我同样引用了P3700SSD老资料中的DWPD=10,有专业读者朋友已经指出这一指标提高到了17。如上图,细心一些还能发现只有2.0TB容量达到17 DWPD(62.05PBW),1.6TB为15 DWPD,400GB和800GB仍然保持在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,可能是为了预留一些元数据空间吧。关于操作系统支持RHEL、SLES Linux,需要另有一个“启动盘”这些我会稍后讨论。
Optane SSD和服务器DRAM内存有一个8倍的推荐最大配比,虽然我还不确定具体的空间分配方式,但有一部分“最热”的数据还是放在传统内存里更合适。
上图引用自白皮书《Software-Defined Memory with Intel NVM》,为了让Optane SSD仿真内存工作,Intel还提出了软件定义内存(SDM-S)的概念。
我们知道磁盘类设备的最小访问单位是扇区(512byte),Flash SSD的物理读写单位——闪存页面大小已经达到4/8/16KB(擦除单位是块,要大得多),但为了软件兼容性一般还支持仿真512byte格式的块设备。在《数据库&存储:互相最想知道的事》中我还谈到过企业级SSD提供的512byte-4KB格式转换工具。
而内存的基本操作单位是64bytes,现在发布的Optane SSD也像NAND闪存那样是块级设备,本身不能以字节方式寻址(未来还会有DIMM形态的3D XPoint)。Intel Memory Drive Technology要解决的就是这个问题,而该软件技术来自于一家合作伙伴ScaleMP。
ScaleMP的vSMP与内存扩展技术
在ScaleMP网站上资料中,我们看到vSMP Foundation这种将NVMe SSD当作内存用的方式。这里的SSD可以是AIC插卡或者U.2的盘,支持闪存自然也就兼容Optene P4800X,当然换成3D XPoint性能更快。
下面我们来看看ScaleMP这家公司的主营业务,或者说核心技术。
所谓vSMP就是虚拟的对称多处理器,支持将多台服务器上的内存,或者还有CPU和I/O资源整合到一个“大虚拟机”。这种应用方式让我想起了Dell曾经收购的一家公司RNA Networks,他们之前也是做单一系统映像(Single System Image)这方面的软件业务,后来该技术衍生出了Fluid Cache for SAN分布式一致性闪存缓存软件。
如上图,vSMP可以有不同的工作模式。左边的“内存扩展”是只将第2-N节点的内存资源“附加”到第1台服务器,CPU和I/O都在本地;右边则的“系统扩展”是将单一操作系统跨多节点运行,内存、CPU和I/O资源全部聚合,服务器之间认证的网络设备是InfiniBand。
在ScaleMP网站的认证硬件列表中包含了各大厂商的服务器,以Dell为例,把PowerEdgeC系列和刀片放在前面估计是偏重HPC应用。反过来在Dell网站上,ScaleMP也是作为高性能计算方面的合作伙伴出现(http://www.dell.com/learn/us/en/04/hpcc/partner-scalemp)
ScaleMP目前支持的操作系统为Red Hat和Suse企业版Linux,我理解他们是提供了一个“Hypervisor”,先让服务器通过U盘/闪存卡或者网络引导这个系统,然后将多台主机资源池化贡献给“大虚拟机”的Linux系统。
既然能将远程内存当作本地内存来用,用SSD/SCM(存储级内存)块设备来模拟内存应该不是难事。只是当前最终落到Optane P4800X上的I/O还不是字节寻址,有写放大啥的,这个估计要等DIMM形态Optane和Purley之后的再下一代Intel服务器平台来解决了。
SDM-S混合内存的性能和应用(软件设计)
最后看看性能。MySQL数据库TPC-C测试的结果是:全DRAM内存217,003 TpmC;如果保留12.5%的DRAM + Optane SSD混合的SDM-S配置,TpmC成绩为173,308。
另一项测试是Memcached,全内存性能262k TP/s;25% DRAM+ Optane SSD的257k TP/s很接近前面的数字;而12.5% DRAM + Optane SSD则跑出了201k TP/s。
这样的性能表现是NAND闪存无法达到的,SCM能够更好地用于数据库内存和Cache方案,记得之前我还介绍过SAP HANA。
扩展阅读:《Redis和SAS使用闪存的两种不同方式》
上图我在《当3D XPoint遇上SAP HANA:机遇与挑战》一文中曾经列出过。“在SAPHANA的内存架构中,包括Temp临时数据、Delta更改的数据和Main主数据这几个部分。其中Main Store占数据总量的95%左右、10-20X压缩比,访问类型以读(全表扫描)为主,非常适合Intel基于DIMM的3D XPoint。”
因此我们看到,在该方案中3D XPoint持久化内存只是用来放Main Store,Delta和Temp数据还是放在DRAM中。做到这一点,需要软件了解DRAM和SCM各自的内存地址范围。
注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage
长按二维码可直接识别关注
历史文章汇总(传送门):http://chuansong.me/account/huangliang_storage