近来需要对新硬件和数据库系统的结合进行一些探索,并将NVM相关领域作为长期研究方向,在此博客中记录相关知识点。博客里摘录了一部分前人总结的经验,论文里的核心思想,以及自己对NVM的一些理解。

NVM是什么?

1.NVM简介

NVM(Non-volatile memory)非易失性存储器,是一种新的硬件形态,当前具备典型代表的有PCM、RRAM、 MRAM和3D XPoint等等。

其中Optane作为3D XPoint的工业化产品形态,Optane是由Intel和Micron联合开发的一种新型非易失性介质3D XPoint构成的性能接近于DRAM的新型硬件设备具有非易失、按字节存取、存储密度高、低能耗、读写性能高(接近于DRAM)的特点,但也存在读写不对称,寿命不长的问题。
3D XPoint介质技术于2015年正式发布,基于3D XPoint首个存储产品(Optane SSD)于2016年下半年研制成功,于2017年7月开始量产。

2.NVM的定位

NVM的定位是介于DRAMSSD之间的一种存储设备,兼具两者的特性,既具有接近于DRAM的访问性能和访问方式(按字节存取),又具备非易失性(断电不会丢失数据),我们今天主要针对Optane来讲一下NVM设备带来的特性。
目前Optane设备主要有两种不同的使用形态:SSD形态和内存形态,成型的硬件模式分别为Optane SSDAEP(Apache Pass)。
现主要了解一下Optane SSD,Optane SSD是基于3D XPoint的首个工程化存储产品,2017年7月已经量产(PRQ)。Optane SSD是标准NVMe设备,符合NVMe 1.0标准,接口为PCIe Gen3x4,规划容量点有375GB,750GB和1.5TB(目前只有375GB一个规格)。由于Optane SSD是标准NVMe设备,不需要特殊的驱动或BIOS支持,因此很容易作为新存储产品被各种业务使用,减少引入的障碍。

3.Optane的应用场景

实际即Optane SSD的应用场景:

从Intel的官方示意图我们可以看到,目前Optane SSD的两种使用方式分别是:

(1)SSD高速存储和缓存

作为高速存储和缓存主要是利用其具备相比普通SSD更高的访问性能,以及不需要擦除的特性,可以使用在Mysql的binlog或者LevelDB的commitLog盘上,用于提高系统的整体访问性能。

(2)扩展内存

作为扩展内存主要是利用其具备接近DRAM的读写性能,且提供按字节存取的访问模式,为系统提供更大的内存量,Optane SSD的成本也相对DRAM更低,也能整体降低系统的成本。扩展内存目前有两个使用场景,一是作为Linux操作系统的交换分区,但需要特定的内核版本(4.11+)才能支持更加高效的运行(原有的交换分区是依赖于HDD设计的,故没有考量到太多性能的问题)。
二是通过使用使用ScaleMP和Intel联合开发的Intel Memory Drive Technology(IMDT)。IMDT的思路,是在物理机和操作系统之间加一层虚拟机,将Optane SSD和DRAM虚拟成大容量内存,做到对操作系统透明,不依赖于特定的内核版本。虚拟化后,DRAM被作为虚拟内存的缓存,虚拟机负责管理DRAM缓存的分配和释放。