NVDIMM介绍与应用

来源:互联网 发布:小智代练淘宝店网址 编辑:程序博客网 时间:2024/05/30 02:23

NVDIMM

NVDIMM 是在一种集成了DRAM + 非易失性内存芯片的内存条规格,能够在完全断电的时候依然保存完整内存数据,这次发布AGIGA860 采用了NAND 闪存作为内存条的非易失性存储芯片,而DRAM 部分则是DDR3-1600,内存条上没有采用电池,而是 SSD 上常见的超级电容来维持掉电后瞬时的数据转移电力,厂商提供了在线闪存固件更新服务。相比其他介质的非易失性内存,NVDIMM已逐步进入主流服务器市场,micron,viking,AGIGA等国外内存厂商皆以推出自己的NVDIMM。国内厂商云动科技也推出了自己的NVDIMM产品,并给出了基于NVDIMM的全系统保护演示示例。
外文名
NVDIMM
磁盘缓存
减少CPU透过I/O读写磁盘的次数
本    质
内存条规格
集    成
DRAM + 非易失性内存芯片

目录

  1. 1 历史
  2. 2 应用
  3.  数据保护
  1.  磁盘缓存
  2.  存储链
  3. 3 相关技术发展
  1.  SNIA NVM Express
  2.  Linux kernel
  3.  CPU

历史

编辑
NVDIMM由BBU(Battery Backed Up) DIMM演变而来。BBU采用含有重金属的后备电池以维持普通挥发性内存中的内容几小时之久,但不符合绿色能源的要求。由超级电容作为动力源的NVDIMM应运而生。并且NVDIMM使用非挥发性的flash存储介质来保存数据,数据能够保存的时间更长。

应用

编辑

数据保护

计算机系统的计算结果和服务信息皆临时保存在内存中,这些数据在系统掉电后将丢失,甚至能引起整个系统的崩溃。NVDIMM可以解决系统异常掉电情况下,内存数据的保存工作,并且能够在系统恢复正常运行后,继续之前的工作。
全系统保护[1]  是NVDIMM的一个典型应用场景。在系统异常掉电后,该系统能在短时间内将整个计算机系统当前的工作状态(包括CPU,桥接芯片,网卡等硬件设备以及系统中所有的进程)保存至NVDIMM。在系统重新上电运行后,立即恢复至之前的运行状态,仿佛系统只是“打了个盹”。
在云技术发展日新月异的今天,虚拟化技术作为云的核心技术,得到了广泛的关注与创新。与此同时,作为云服务运行的底层载体,虚拟机的数据安全与完整是目前急需解决的重要课题。虚拟机实质为软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,也就意味着虚拟机的所有运行状态都在内存中。NVDIMM可以利用虚拟机本身的快照功能,在系统异常情况下,迅速保护存储在内存中的临时快照,达到保护整个虚拟机的目的。

磁盘缓存

磁盘缓存是为了减少CPU透过I/O读写磁盘的次数,提升磁盘I/O的效率,用一部分内存来储存访问较频繁的磁盘内容。磁盘缓存的存在对于数据访问的一致性带来了问题,尤其是采用write-back策略的写缓存导致异常掉电情况下内存中更新的数据未能及时写入磁盘而丢失。NVDIMM是写缓存的最佳存储介质。它的随机访问性质能让CPU和操作系统直接访问管理,并且非易失性保证数据在异常掉电情况下得以保护。[2] 
目前,针对RAID控制器的写缓存NVDIMM已逐渐被接受。对于带有板级RAID控制芯片或者采用软件RAID方案的计算机,缺乏写缓存,NVDIMM可以直接用做系统主存,配合操作系统,完成写缓存任务。还有一类PCIE接口的RAID控制卡,它们采用普通的带电池后备的内存条作为缓存使用,NVDIMM可以直接替代这些内存条。

存储链

存储链是将整个存储系统中的数据按照安全度,性能要求以及使用频率分层存储在不同的非易失存储介质中。[1] 
storage tierstorage tier
如图所示为一典型的存储链实例。IO性能要求较高的数据被存储在SSD上,而要求较低的数据放入各种类型的磁盘阵列以及NAS。NVDIMM可作为存储链的最前端,它的速度比SSD更快,并且能够提供直接随机访问的特性。CPU的内存栅障与刷新cache指令能够保证NVDIMM数据的原子写与一致性。所以,NVDIMM非常适合用作文件系统或者数据库元数据与日志的存储介质。

相关技术发展

编辑

SNIA NVM Express

SNIA在2013年底相继发表的NVM(Non-volatile memory)的硬件接口规范和编程模型规范。定义了NVM的范围为PCIE接口的flash存储器,控制卡以及NVDIMM,PCM等可以随机访问的非易失性存储器。SNIA 提出了block volume和persistent memory两种模型,并给出了每种模型能够处理的命令集以及能完成的功能。Block volume即传统的块设备模型,以块为单位进行数据传输,采用与现有的ATA,SCSI,FC等协议具有相同的编程方式,比如PCIE SSD,PCIE RAID controller就是此类模型。Persistent memory是具有直接随机访问与非易失性双重特性的编程模型,可以采用传统虚拟内存管理接口,为文件系统或者数据库提供新的存储行为。NVDIMM即采用此类编程模型,同样PCIE卡如果将其存储空间映射至PCIE存储域,并且能够屏蔽底层的flash特性,亦能采用此类模型。

Linux kernel

操作系统方面,Ric Wheeler 在2013 Linux Foundation Collaboration Summit提出了在Linux系统中支持NVM的想法,并且SNIA组织也已经给出了NVMe设备的Linux驱动。在Ric的讨论中,在兼容老式编程模型的API的基础上,定义新的适合NVM设备的API,让文件系统和数据库都能更好地利用NVM的特性。

CPU

Intel最新的家用机芯片Haswell-E CPU开始支持288pin的DDR4内存条。在JEDEC 最新的DDR4规范中[3]  ,有4个pin为NVDIMM的电源与控制信号。可见主流CPU与主板已经开始将NVDIMM加入商业化的存储系统。
异步DRAM自刷新(ADR)技术是Intel在凌动S12X9家族处理器上推出的新技术,可保证在异常掉电时,CPU冲刷cache,写回cache的脏数据,然后将DRAM设置进入自刷新状态。NVDIMM就是在DRAM处于自刷新状态时将控制权由CPU移交给NVDIMM本身,ADR技术就是为NVDIMM量身定制。另外,ADR技术能够有选择的在计算机热启动时,不对特定通道的DRAM进行重新初始化,从而保留DRAM中的数据。包括MacroSAN、Dahua、Accusys、Qsan和Qnap等数据中心制造商已经宣布开始支持S12X9处理器家族。
参考资料
  • 1.  Whole-System Persistence[R].Dushyanth Narayanan:Microsoft Research,2012
  • 2.  DANIEL P.BOVET.深入理解linux内核:中国电力出版社,2007:595-625
  • 3.  JESD79-4 DDR4 SDRAM specification[S].JEDEC SOLID STATE TECHNOLOGY ASSOCIATION,2013.
0 0
原创粉丝点击