这篇博客主要记录最近了解的一些主要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
- 构建基于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的性能的提升。
-
在用作DRAM的模式下:
-
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设备上的性能,但是还有一些问题没有解决,比如:
- 文件系统的metadata还是需要使用page cache或buffer cache。
- “-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