这篇博客主要记录最近了解的一些主要NVIDMM 厂家及其产品。

分类

NVIDMM-N: memory mapped DRAM, 提供字符访问接口, 在三种产品中性能最好,容量最小

NVDIMM-F: memory mapped Flush, 只提供块设备接口。Nand Flush直接链接到Memory controller channel。

NVIDMM-N: memroy mapped Flush, 提供块设备和字符设备访问接口。

特性

NVIDMM-F

不同于NVIDMM-N主要用作缓存,NVIDMM-F主要用作存储。可以用来快速构建高密度的内存池存储池。

NVDIMM-N

NVDIMM-N既可以用作缓存,又可以作为块存储设备来用。典型代表是类似intel 的AEP 。

主要玩家

NVDIMM-P

Viking https://www.viking.com.tw

Agiga http://agigatech.com

Crucial

https://betanews.com/2016/06/27/crucial-nvdimm-server-memory/

NVDIMM-F

Diablo 已经破产

NVDIMM-N

Intel AEP

使用方式

NIVDIMM-P NVDIMM-N

  1. 构建基于NVDMM的文件系统

参考链接项目

门为PMEM设计的文件系统是NOVA Filesystem。感兴趣的读者可以参考NOVA的github link。 之。

ZUFS 作为来自于NetApp的一个项目,ZUFS的全称是Zero-copy User Filesystem。声称是实现了完全的zero-copy,甚至文件系统的metadata都是zero-copy的。ZUFS主要是为了PMEM设计,但是也可以支持传统的磁盘设备,相当于是FUSE的zero-copy版本,是对FUSE的性能的提升。

  1. 在用作DRAM的模式下:

  2. 1 支持全系统掉电保护, 不少场景下为了防止异常掉电丢数据的commit and flush 的两阶段提交方法,可以省略成一阶段的commit on write 的方法

2.2 为DRAM和SSD物理之间提供了一个新的存储层

2.3 由于用作DRAM的时候,其访问速度比SSD可能有1~3个数量级的提升,在一些文件系统中可以去掉对page cach的依赖,这样反而更能控制上层业务的平均延时和服务稳定性。典型的项目有:

DAX:顾名思义,DAX就是Direct Access, bypass page cache. 读写直接操作PMEM上的数据,文件系统需要在mount 的时候,加入 『-o dax』参数。DAX极大地提高了文件系统在PMEM设备上的性能,但是还有一些问题没有解决,比如:

  1. 文件系统的metadata还是需要使用page cache或buffer cache。
  2. “-o dax”mount option是对整个文件系统的,不能做更细粒度的控制。 3.没有一个API来告诉应用访问的文件是不是可以DAX访问的。

参考链接

http://www.cnblogs.com/presida/p/3656330.html http://www.cnblogs.com/presida/p/3552935.html [http://www.windawn.com/proc_ny.aspx?CaseID=66 for contact info nvm@windawn.com http://blog.csdn.net/jt0628403005/article/details/19240681 http://blog.csdn.net/jt0628403005/article/details/19478773 http://v.youku.com/v_show/id_XNjgyODA0Mzgw.html全系统保护演示视频
http://www.ssdfans.com/blog/2016/08/24/separate-dimm-vs-hybrid-dimm/ http://www.dostor.com/p/47734.html https://yq.aliyun.com/articles/703891