NVDIMM

发布时间:2016-12-9 17:35:08 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"NVDIMM",主要涉及到NVDIMM方面的内容,对于NVDIMM感兴趣的同学可以参考一下。

历史        NVDIMM由BBU(Battery BackedUp) DIMM演变而来。BBU采用后备电池以维持普通挥发性内存中的内容几小时之久。但是,电池含有重金属,废弃处置和对环境的污染,不符合绿色能源的要求。由超级电容作为动力源的NVDIMM应运而生。并且NVDIMM使用非挥发性的flash存储介质来保存数据,数据能够保存的时间更长。 应用 1.      数据保护       计算机系统的计算结果和服务信息皆临时保存在内存中,这些数据在系统掉电后将丢失,甚至能引起整个系统的崩溃。NVDIMM可以解决系统异常掉电情况下,内存数据的保存工作,并且能够在系统恢复正常运行后,继续之前的工作。       全系统保护是NVDIMM的一个典型应用场景。在系统异常掉电后,该系统能在短时间内将整个计算机系统当前的工作状态(包括CPU,桥接芯片,网卡等硬件设备以及系统中所有的进程)保存至NVDIMM。在系统重新上电运行后,立即恢复至之前的运行状态,仿佛系统只是“打了个盹”。云动科技(http://www.windawn.com/proc_ny.aspx?CaseID=66)开发的基于NVDIMM的吴钩平台是国内第一个推出全系统保护方案并且完成样机演示的NVDIMM产品。全系统保护视频链接:http://v.youku.com/v_show/id_XNjgwMjAyMDky.html            在云技术发展日新月异的今天,虚拟化技术作为云的核心技术,得到了广泛的关注与创新。与此同时,作为云服务运行的底层载体,虚拟机的数据安全与完整是目前急需解决的重要课题。虚拟机实质为软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,也就意味着虚拟机的所有运行状态都在内存中。NVDIMM可以利用虚拟机本身的快照功能,在系统异常情况下,迅速保护存储在内存中的临时快照,达到保护整个虚拟机的目的。 2.      磁盘缓存       磁盘缓存是为了减少CPU透过I/O读写磁盘的次数,提升磁盘I/O的效率,用一部分内存来储存访问较频繁的磁盘内容。磁盘缓存的存在对于数据访问的一致性带来了问题,尤其是采用write-back策略的写缓存导致异常掉电情况下内存中更新的数据未能及时写入磁盘而丢失。NVDIMM是写缓存的最佳存储介质。它的随机访问性质能让CPU和操作系统直接访问管理,并且非易失性保证数据在异常掉电情况下得以保护。       目前,针对RAID控制器的写缓存NVDIMM已逐渐被接受。对于带有板级RAID控制芯片或者采用软件RAID方案的计算机,缺乏写缓存,NVDIMM可以直接用做系统主存,配合操作系统,完成写缓存任务。还有一类PCIE接口的RAID控制卡,它们采用普通的带电池后备的内存条作为缓存使用,NVDIMM可以直接替代这些内存条。 3.      存储链       存储链是将整个存储系统中的数据按照安全度,性能要求以及使用频率分层存储在不同的非易失存储介质中。        如图所示为一典型的存储链实例。IO性能要求较高的数据被存储在SSD上,而要求较低的数据放入各种类型的磁盘阵列以及NAS。NVDIMM可作为存储链的最前端,它的速度比SSD更快,并且能够提供直接随机访问的特性。CPU的内存栅障与刷新cache指令能够保证NVDIMM数据的原子写与一致性。所以,NVDIMM非常适合用作文件系统或者数据库元数据与日志的存储介质。 相关技术发展 Intel技术       Intel即将推出的Haswell-ECPU开始支持288pin的DDR4内存条。在JEDEC最新的DDR4规范中,有4个pin为NVDIMM的电源与控制信号。可见主流CPU与主板已经开始将NVDIMM加入商业化的存储系统。国内的家用机主板厂商微星,技嘉都已经开始制作Haswell-E平台的主板,预计2014年中旬即将上市。       异步DRAM自刷新(ADR)技术是Intel在凌动S12X9家族处理器上退出的新技术,可保证在异常掉电时,CPU冲刷cache,写回cache的脏数据,然后将DRAM设置进入自刷新状态。NVDIMM就是在DRAM处于自刷新状态时将控制权由CPU移交给NVDIMM本身,ADR技术就是为NVDIMM量身定制。另外,ADR技术能够有选择的在计算机热启动时,不对特定通道的DRAM进行重新初始化,从而保留DRAM中的数据。包括MacroSAN、Dahua、Accusys、Qsan和Qnap等数据中心制造商已经宣布开始支持S12X9处理器家族。 SNIA NVM Express       SNIA在2013年底相继发表的NVM(Non-volatilememory)的硬件接口规范和编程模型规范。定义了NVM的范围为PCIE接口的flash存储器,控制卡以及NVDIMM,PCM等可以随机访问的非易失性存储器。SNIA      提出了blockvolume和persistent memory两种模型,并给出了每种模型能够处理的命令集以及能完成的功能。Block volume即传统的块设备模型,以块为单位进行数据传输,采用与现有的ATA,SCSI,FC等协议具有相同的编程方式,比如PCIE SSD,PCIE RAID controller就是此类模型。Persistentmemory是具有直接随机访问与非易失性双重特性的编程模型,可以采用传统虚拟内存管理接口,为文件系统或者数据库提供新的存储行为。NVDIMM即采用此类编程模型,同样PCIE卡如果将其存储空间映射至PCIE存储域,并且能够屏蔽底层的flash特性,亦能采用此类模型。 Linux kernel      操作系统方面,RicWheeler在2013 Linux Foundation Collaboration Summit提出了在Linux系统中支持NVM的想法,并且SNIA组织也已经给出了NVMe设备的Linux驱动。在Ric的讨论中,在兼容老式编程模型的API的基础上,定义新的适合NVM设备的API,让文件系统和数据库都能更好地利用NVM的特性。

上一篇:黑马程序员--java中String创建几个对象
下一篇:元胞自动机的Java模型代码

相关文章

关键词: NVDIMM

相关评论