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