Intel Optane DC Persistent Memory Module (PMM)持久内存

英特尔已经公开讨论了一年多的Optane DC Persistent Memory Module(PMM),体现了一种新的以数据
为中心的体系结构,在这个体系结构中,PMM位于DRAM和Optane DC SSD之间,再往下依次是速度较慢的SSD
和HDD介质以及存档级别磁带介质。持久内存的目标一直是将更多的数据移动到更靠近CPU的位置,从而获得
DRAM级别的低延迟以及存储级别的持久性和容量。在与硬件和软件合作伙伴紧密合作及讨论一年之后,随着
第二代Intel Xeon Scalable Processor可扩展处理器的发布,Optane DC持久内存现在可以正式在各种服
务器解决方案中得到应用。
Intel Optane DC Persistent Memory Module
Intel Optane DC Persistent Memory硬件概述
Intel Optane DC持久内存模块的容量比传统的DRAM高得多。Intel Optane DC持久内存模块的容量为128
GB、256GB和512GB,远远大于常用的4GB到32GB的DRAM DIMM,尽管DRAM也有更大的容量的DIMM(128GB)
。PMM模块与DRAM在同一个内存通道上使用,并且应该填充在每个通道上最靠近CPU的插槽上。英特尔推荐的
一种流行配置是4:1的比率,32GB DRAM到128GB DCPMM,您可以在下面看到。
每个CPU最多可支持6个持久内存模块。在支持两个Intel Xeon可扩展处理器的典型服务器中,这意味着每个
系统可安装12个持久内存模块,或者持久内存容量最高可达6TB(每个插槽3TB)。支持持久内存的服务器还
将支持通过其系统BIOS对持久内存进行配置,在这些模块中可以设置持久内存模式、创建命名空间和配置存
储池等设置。同样级别的可见性和配置也可以通过操作系统执行。
PMM的通信方式
Intel Optane DC Persistent Memory使用DDR-T协议。这允许异步命令/数据计时(asynchronous comm
and/data timing)。模块控制器使用请求/授权方案(request/grant scheme)与主机控制器通信。数据
总线方向和定时由主机控制。每个请求的命令包从主机发送到持久内存控制器。如果需要,可以在Intel Opt
ane DC永久内存控制器中重新提交(re-ordered)。与DDR4相似,PMM模块采用64B缓存线访问粒度(64B
cache line access granularity)。
从硬件的角度来看,Optane DC persistent memory是一个完整的系统,它是一个模块上的系统,有几个
关键的组件: ● 电源管理集成电路(PMIC)为介质和控制器生成所有轨道(rails) ● SPI闪存存储模块的固件 ● Intel Optane介质本身构成存储空间,该存储空间由11个并行设备组成,用于数据、ECC和备用设备。 ● 用于高比特率信号完整性的DQ缓冲区 ● AIT DRAM保存地址间接表 ● Energy Store Caps确保在电源故障时对所有模块队列进行flushing。 ● 每个持久性内存模块的核心都位于Intel Optane DC持久性内存控制器中,该控制器处理板上的子组件
的数据传输和管理。 当然,在考虑模块本身时,除了成本和性能之外,寿命可能是最大的关注点。与其他存储介质一样,英特尔
Optane DC持久性内存的测量单位是pb (PBW)。PBW是根据5年寿命内的带宽和介质耐久性考虑估计的,假设
目标电源使用的最大带宽为每年365天24/7。在100%写15W的情况下,持久内存模块支持超过350PBW,如下
图所示。 另外需要注意的一点,Optane DC模块可针对不同的功率限制进行编程,从而实现广泛的优化。持久内存模
块支持12W–18W的功率范围,并且可以在0.25瓦的粒度中进行调整,越高的电源设置将带来越好的性能。在
不考虑功耗成本的前提下,可以根据服务器支持的最大限度来提高性能。
Intel Optane DC Persistent Memory工作模式
一旦部署到服务器中,PMM就可以在各种操作模式中进一步配置,包括内存模式和应用程序直接模式,以及
在这两者之间按比例分配的混合模式。

持久内存-内存模式
在内存模式下,PMM的使用非常类似于DRAM。不需要对应用程序进行特定的更改也不需要特定的软件支持,持
久内存将模拟DRAM的方式运行,使数据保持“易失性”,尽管每个电源周期都会清除易失性密钥。在内存模式
下,持久内存用作DRAM的扩展,由主机内存控制器管理。持久内存与DRAM之间没有设置比率,可根据应用程
序的需求进行混合配置。在延迟配置文件方面,任何触及DRAM缓存(内存附近)的东西都会提供小于100纳
秒的延迟。任何缓存未命中都将流向持久内存(远内存),该内存可以达到亚微秒级别的延迟。
持久内存- App Direct模式
App Direct模式需要特定的持久内存感知软件/应用程序。这种模式使持久内存保持不变,但可以像内存一
样字节可寻址(byte addressable)。在App Direct模式下持久内存将保持缓存一致性,并提供了进行DM
A和RDMA的能力。 还可以将持久内存配置为AppDirect上的存储(Storage over App Direct)。在这里,持久内存以块的方
式工作,就像SSD那样,使用传统的读/写指令。这适用于现有的文件系统,在块级别上提供原子性,并且块
的大小可以配置(4K、512B)。要使用Storage over App Direct ,用户只需要一个NVDIMM驱动程序。与
传统企业级SSD相比,此模式允许容量扩展和更好的性能、更低的延迟和更高的耐久性。
持久内存- 混合模式
DCPMM一定容量的百分比用于内存模式,其余部分用于App Direct模式。平台中的任何DRAM都将作为缓存与
DCPMMs一起工作。
Intel Optane DC Persistent Memory的优点
Intel Optane DC持久内存模块为最终用户提供了各种各样的好处。首先,这些模块提供了一种以更具成
本效益的方式有效地扩展服务器的DRAM的方法。因为持久性内存可以与DRAM层相啮合,所以有效的可用DR
AM占用空间可以更快地扩展,持久性内存可以改善服务器投资的总体TCO。此外,由于服务器能够更快地处
理更多的数据,一些服务器可能利用新的机会整合工作负载。还有第二个参数,当涉及到价值时可以进行。
对于可能不需要DRAM提供的纳秒级延迟的工作负载,可以选择使用更少的DRAM而使用更多的持久内存构建
服务器,以保持合理或更大的内存占用,但使用更具成本效益的持久内存模块而不是DRAM。 持久内存模块(顾名思义)是持久的。这意味着不需要用数据刷新PMMs,这将大大加快服务器重新启动的速
度。对于内存驻留数据库,这一点非常重要。服务器重新启动后,恢复内存中所有数据的时间可能需要很长
时间。专注于高性能数据库的独立软件供应商(ISV)从这些场景下的持久内存中获得了巨大的收益,在这些
场景中,快速实现操作是一个关键概念。事实上,英特尔已经展示了这种效果的数据。一个列存储整个重新
加载到DRAM中的1.3tb数据集,他们发现在一个只有DRAM的服务器中需要20分钟。在持久内存之前,该服务
器中的整个系统重新启动时间为32分钟;操作系统为12分钟,数据为20分钟。使用持久内存的同一台服务器
花费了13.5分钟。虽然表面上看起来令人印象深刻,但考虑到数据组件只有一分半钟,这就更令人印象深刻
了,这相当于13倍的增长。 Intel Optane DC Persistent Memory模块还提供模块加密,这是第一个硬件加密内存。这些模块使用25
6bit AES-XTP加密引擎进行静态数据保护。在内存模式下,如果DRAM缓存丢失数据,加密密钥将丢失并在每
次启动时重新生成。在应用程序直接模式下,使用存储在模块上的安全元数据区域中的密钥对持久介质进行
加密,该区域只能由Intel Optane DC控制器访问。Intel Optane DC永久内存在断电事件中锁定,需要密
码来解锁。这些模块还支持安全加密擦除和写上的DIMM,以便在生命周期结束时安全地重新调整用途或丢弃
。最后,固件的签名版本是允许的,修订控制选项是可用的。
Intel Optane DC Persistent Memory Software
虽然重点显然围绕着持久内存硬件的好处,但英特尔也有一套重要的软件工具。以下工具将是通过操作系统
管理持久性内存的主要方法,而不是通过重启服务器并在系统BIOS中进行这些更改。这样可以节省时间,并
防止停机时间在运行中进行更改。 IPMCTL-用于管理Intel Optane DC持久内存模块的实用程序
IPMCTL支持以下功能:
 ● 在平台中发现持久内存模块。
 ● 设置平台内存配置。
 ● 查看和更新PMM上的固件。
 ● 在PMM上配置静态安全数据。
 ● 监控PMM运行状况。
 ● 跟踪PMM的性能。
 ● 调试和排除PMM故障。

通过DCPMM FW更新,DCPMM管理实用工具ipmctl将自动安装在Linux或Windows服务器环境中。用户可以使
用命令行提供DCPMM模式,并重新启动以激活。 ● 100% Memory Mode ipmctl create -goal memorymode=100 ● 100% AppDirect Mode ipmctl create -goal persistentmemorytype=appdirect ipmctl create -goal persistentmemorytype=appdirectnotinterleaved ● Mixed Memory Mode and AppDirect Mode ipmctl create -goal memorymode=% persistentmemorytype=appdirect ipmctl create -goal memorymode=% persistentmemorytype=appdirectnotinterleaved NDCTL-管理“libnvdimm”子系统设备(非易失性内存)的实用程序 NDCTL是用于管理“libnvdimm”内核子系统的实用程序。“libnvdimm”子系统为平台nvdimm资源定义了内核 设备模型和控制消息接口,与ACPI 6.0 NFIT(NVDIMM Firmware Interface Table)定义的资源类似。 该工具支持的操作包括:设置容量(名称空间),以及枚举/启用/禁用与NVDIMM总线关联的设备(DIMM、区 域、名称空间)。在配置了100% AppDirect或混合模式之后,用户可以使用OS进行名称空间管理。
当前全面支持DCPMM的操作系统
● Linux
 RHEL7.6 supports Memory mode and AppDirect mode
 SLES 12.4 and SLES 15 supports Memory mode and AppDirect mode
● Windows Server
 WS2019 supports Memory mode and AppDirect mode
● ESXi
 ESXi 6.7u1 supports Memory mode and AppDirect mode.
 Native DCPMM driver supported on the OS version listed
本文部份内容引用并翻译自以下文章:
Intel Optane DC Persistent Memory Module (PMM) 

发表评论