NVDIMM在闪存存储中的应用探讨 - 51CTO博客
文章推薦指數: 80 %
NVDIMM在闪存存储中的应用探讨,SSD作为新型存储介质对外暴露成一种通用块设备,传统应用似乎无需任何改变就可以在SSD上运行。
在实际应用过程中, ...
NVDIMM在闪存存储中的应用探讨
关注
wuzhongjie
NVDIMM在闪存存储中的应用探讨
推荐原创
wuzhongjie
2016-12-2021:19:01
博主文章分类:存储技术
©著作权
文章标签
SSD
NVDIMM
闪存存储
文章分类
其它
服务器
©著作权归作者所有:来自51CTO博客作者wuzhongjie的原创作品,请联系作者获取转载授权,否则将追究法律责任
SSD作为新型存储介质对外暴露成一种通用块设备,传统应用似乎无需任何改变就可以在SSD上运行。
在实际应用过程中,传统业务的确可以在SSD上直接运行,但问题是SSD并没有被充分利用,优势没有被充分发挥;更糟糕的是业务的IO特性会导致SSD出现新的问题。
例如,在有些应用现场,用户发现SSD的使用寿命被很快耗尽,写放大系统变得很大,使用寿命与预期不同。
厂商的写放大系统是在特定的IOPattern下测算出来的,实际应用由于存在大量的512字节小写问题,数据分布不够“完美”,从而导致SSD内部的写放大系数比预期要大,从而影响SSD的使用寿命。
一句话,SSD的使用不是那么简单的,其与业务的IOPattern息息相关。
如果想在企业级SSD上获取足够的性能、一致性以及使用寿命,那么需要面向SSD对存储软件栈进行重构。
重构过程的一个思路是通过优化输入SSD的IOPattern,来获取SSD的最佳工作状态,发挥SSD的性能、避免SSD的问题。
在IOPattern的优化方法中,正在蓬勃发展的NVDIMM需要尤其关注。
可以这么讲,在技术上NVDIMM和SSD是天生一对,他俩可以特性互补,短期内共存发展。
NVDIMM其实并非一个革命性、全新的东西,很多磁盘存储系统早就采用NVRAM技术来实现掉电非易失的缓存。
这种NVRAM基于PCIe总线,通过电池保证系统在断电情况下的数据可靠性。
NVRAM在存储系统中通常会作为数据缓存。
为了保证数据可靠性,一个系统中会设计两块NVRAM,通过Mirror的方式冗余数据。
NVDIMM与NVRAM相比,最大的差别是将接口从PCIe转移到了DIMM(内存接口),其次在掉电数据保护方面通过NANDFlash和超级电容相结合的方式保证数据不丢,或者直接采用新型存储介质,例如Xpoint、ReRAM等。
在层次化存储系统中,NVDIMM的性能基本和DDR内存的性能是相同的。
在性能上远远超过了SSD,其IO访问延迟在几十至几百纳秒左右,而SSD的访问延迟则达到了百微妙以上。
但是,SSD在容量上要远远高于NVDIMM。
因此,在现有的分层存储体系架构中,引入NVDIMM可以很好的对SSD、磁盘存储进行优化,尤其是IOPattern方面的优化。
在设计闪存存储系统的时候,2014年第一次开始使用NVDIMM,那时关于NVDIMM的标准刚刚开始由SNIA组织制定。
那时的NVDIMM基本都是SLCNAND+SDRAM+SuperCap的设计方式,工作原理也基本相同,这种NVDIMM就是我们现在标准中的NVDIMM-N。
随后在2015年以及2016延伸出另外两个NVDIMM产品标准,分别为NVDIMM-F和NVDIMM-P,这些产品的工作原理、形态都会有所不同。
从下图可以看出NVDIMM产品标准的演进方向。
不同的NVDIMM产品具有不同的应用场景。
在存储系统中常用来替代NVRAM的产品形态为NVDIMM-N。
在现有的标准体系中,主要的产品形态有NVDIMM-N、NVDIMM-F以及NVDIMM-P,各自特性如下图所示。
其中NVDIMM-N是最早的产品形态,在存储中用来替代NVRAM之类的应用,在系统中通过访存的方式对其进行访问。
在性能上NVDIMM-N和普通的DDR内存是相同的,所不同的是在系统掉电的情况下,NVDIMM-N中的数据会被同步写入到内存条上的SLCNANDFlash中。
整个掉电过程由超级电容来进行供电。
NVDIMM-F是将Flash做成DIMM接口的块设备,通过块设备接口对其进行访问。
有一些存储公司在做这样的产品,通过这种方式可以进一步避免由于PCIe总线引入的SSD访问延迟。
由于直接通过DIMM接口访问NANDFlash,所以,NVDIMM-F的性能没有办法与NVDIMM-N相对比。
通过采用NVDIMM-F形态的SSD,可以构建高密闪存存储系统,但是缺点是需要定制化服务器平台。
最新提出的NVDIMM-P是一种综合NVDIMM-N和NVDIMM-F的产品形态,其技术架构于上述两种都有所不同,最大想法是混合内存与NANDFlash,并且提供块设备以及内存的访问接口,在性能上也介于NVDIMM-N和NVDIMM-F之间,容量要远大于NVDIMM-N,可以做到和NVDIMM-F相同的存储容量。
NVDIMM-N是最早提出的产品形态,默认所说的NVDIMM就是这种产品形态。
NVDIMM-N的原理如下图所示:从上图可以看出,内存总线通过Buffer开关可以直接访问DRAM,所以,没有引入额外的IO延迟。
在正常使用过程中,NVDIMM-N在系统中就是一片普通内存。
在该子系统中我们可以发现有一个称之为Cntlr的控制器,早期产品该控制器都是采用FPGA来实现,通过该控制器可以实现内存数据的持久化与加载操作。
当控制器接收到SAVE命令信号后,将DRAM中的数据保存到NAND;在系统重新上电之后,从NAND中加载数据至DRAM中。
正因为这个控制器的作用,才保证了在系统异常断电情况下的DRAM数据不丢失。
和NVDIMM-P相比,操作系统无法直接访问NAND中的数据。
对于NVDIMM-N而言,其一个很重要的技术点是如何在掉电的情况下触发内存数据的持久化操作。
在早期的NVDIMM-N设计中,通常需要特殊主板的支持。
在该类主板中存在一个硬件单元,例如采用CPLD对电源进行监测,当发现系统电源低于预期时,开始触发处理器进行掉电保护。
在该类设计中,操作系统会存在一个驱动程序,该驱动程序负责系统掉电情况下的CPU数据刷新操作。
通过该驱动将处理器Cache中的内容刷新到NVDIMM,然后再向NVDIMM硬件发送数据保存信号。
NVDIMM接收到SAVE信号之后,将SDRAM中的数据进行持久化。
整个过程可以描述如下图所示:这种操作方式最大的一个问题是不通用,需要硬件平台的定制,并且也需要大电容的续航能力,要保证处理器Cache中的数据全部刷新到内存。
另一种更加通用的方法是采用Intel标准的ADR技术,通过该技术,在Intel处理器检测到断电情况时,处理器会向NVDIMM发送SAVE信号,并且让NVDIMM处于自刷新的工作模式。
这种方式最大的问题是如何保证处理器缓存数据的掉电非易失。
前两年和NVDIMM标准组织讨论过这个问题,目前还没有标准来支持这个特性。
也就是说,在系统异常掉电的情况下,处理器Cache中的数据是不能保证非易失的。
对于存储应用来讲这是一个严重的缺陷,很有可能在系统掉电的情况下出现数据丢失的问题。
所以,在应用NVDIMM的时候一定要解决该问题,这才是NVDIMM在存储应用中的设计重点。
近两年NVDIMM-N已经被相关组织标准化,并且ADR技术已经成为主流技术手段。
在DIMM接口方面也定义了新的接口信号。
JEDECJC45.6标准中对12V供电、SAVE_n信号、EVENT#信号以及I2C的电气特性进行了标准化,具体定义如上图所示。
在NVDIMM-N掉电保护过程中的一大功臣是超级电容,这种电容具有很高的电容密度,具备快速充电的特性,在系统掉电情况可以为NVDIMM提供足够的能量,保证将SDRAM中的数据刷新至NANDFlash中。
看起来这个部件没有什么特殊之处,似乎在存储系统中不需要对其进行过多考虑。
其实不然,任何元件都可能发生故障,如果超级电容发生故障,那么在系统掉电情况下将会发生数据丢失的灾难。
超级电容的使用寿命和工作温度息息相关,温度越高,超级电容的使用年限越短,如下图所示:通过该图可以看出,在不同电容输出电压的情况下,随着环境工作温度的提升,超级电容的使用寿命在下降。
在55度工作环境下,很多超级电容的使用寿命居然不到5年。
在SSD存储系统中,55度环境工作温度是比较正常的,所以,超级电容的使用寿命成了NVDIMM在存储应用中使用的一个问题。
为了解决这个问题,在存储系统设计过程中,需要对超级电容的使用寿命、状态进行监测,一旦出现风吹草动,需要提前进行预警,否则将会导致数据灾难。
所以,在存储系统中引入NVDIMM之后,我们发现,NVDIMM解决了存储系统中的很多问题,并且可以和SSD进行配合,优化IOPattern,但是与此同时也引入了很多棘手的现实问题。
个人觉得对NVDIMM-N冲击比较的大的产品是新型存储介质,例如Xpoint为代表的半导体存储介质。
Xpoint构成的Memory最大的好处是不需要超级电容之类的故障部件,虽然在性能上不如NVDIMM-N,但是在存储应用中,需要解决处理器Cache的问题,所以,综合下来的性能Xpoint未必有多大的差距。
Xpoint从2015年发布以来,还没有出产品,但是采用Xpoint构建的PCIeSSD已经有测试结果了,性能远远超过采用NANDFlash构建的SSD。
如下图所示,在队列深度为1的情况下,采用Xpoint构建的SSD可以运行到将近8万IOPS,是目前PCIeP3700SSD的7.32倍。
未来比较看好这种新型存储介质可以在NVDIMM产品形态上进行创新,与基于NANDFlash的SSD进行配合,通力打造高性能、高效、可靠数据存储系统。
NVDIMM-F是一种比较直接的产品形态,其直接通过控制器将NANDFlash连接到内存总线上。
具体原理如下图所示。
在系统中,通过块设备的方式对NAND中的数据进行访问。
和基于PCIe总线的SSD相比,数据访问总线发生了变化,具有更高的总线带宽。
在控制NAND的控制器中,需要实现类似于SSD中的FTL,将NAND包装成块设备供系统使用。
在存储系统中,有些厂商采用这种设计思路。
通过自定义硬件平台的方式在内存总线上集成大量的NVDIMM-F模块,从而在较小的物理空间内构建高密存储。
早年有一家Skyra存储公司就是采用这种设计思路,想在1U的物理空间内打造PB级存储,这个想法在那个年代还是比较疯狂的。
随着NANDFlash颗粒存储密度的提升,在1U空间实现PB级存储已经并非难事,并且也不需要采用NVDIMM-F这样的物理形态。
和NVDIMM-N相比,NVDIMM-F的访问性能相对比较低,其主要限制于NANDFlash的性能。
如果将NANDFlash替换成Xpoint之类的介质,那么访问性能将会大大提升。
为了均衡内存和NAND之间的性能与容量,诞生了NVDIMM-P产品形态,该产品的原理结构和前两种都有所不同,其通过控制器的方式连接DRAM与NAND,并且可以将NAND和DRAM空间都暴露给系统。
这种方式可以理解成一种混合存储的架构,在系统突然掉电的情况下,通过SAVE信号将DRAM中的数据刷新至NAND中。
与NVDIMM-N相比,这种形态可以做到很大的存储容量。
但是,由于在DRAM和内存控制器之间介入了额外的控制器单元,因此,DRAM的IO访问性能会有所影响,性能也是介于NVDIMM-N和NVDIMM-F之间。
由于是混合存储的模式,所以比较担心性能的抖动性。
为了充分优化SSD闪存存储系统,NVDIMM是一种非常好的存储介质,通过NVDIMM可以实现对SSDIOPattern的优化处理。
但是任何东西都不会是完美的,在存储系统中使用NVDIMM并非找到了救命稻草,而在使用NVDIMM优良特性的同时会遇到很多新的问题。
新型存储架构设计过程一方面需要利用新型介质带来的福利,更为重要的是需要解决新型介质引入的问题。
期待NVDIMM技术进一步发展与完善,在未来高性能闪存存储系统中发挥更加重要的角色。
(存储之道)
打赏
赞
收藏
评论
分享
举报
上一篇:面向数据可靠性存储系统设计思想探讨
下一篇:NVMe闪存存储系统设计挑战
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
具体原因
包含不真实信息
涉及个人隐私
原文链接(必填)
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M
取消
确认
已经收到您得举报信息,我们会尽快审核
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
全部评论
(0)
最热
最新
相关文章
NVDIMM原理与应用之四:NVDIMM的数据恢复、使用和监控
介绍了NVDIMM的主要结构、触发保存数据的条件、RAS监控及其使用方法。
Linux
ADR
NVDIMM
NVDIMM原理与应用之一:基本原理
作为NVMe的前辈,NVRAM的兄弟,NVDIMM来了,快来打个招呼呗
CPU
NVMe
NVDIMM
nvdimm驱动的分析
介绍了nvdimm驱动的主要模块、重点函数和难点。
nvdimm
kernel
driver
NVDIMM原理与应用之三:不同Cache模式读写性能比较
介绍了nvdimm在不同cache模式下的读写性能差异,总结了不同cache模式下不同的适用场合。
cache
mode
nvdimm
超级内存NVDIMM-要和内存说再见?Intel将推存储界新物种NVDIMM内存
1.序言基于非易失性内存(NVDIMM)的新一代内存条规格已经研制成功,其中集成了DRAM和非易失性存储芯片,能够在完全断电的时候完整保存内存数据,并支持主内存在持久高速高性能计算上的应用。
区别于普通内存,以云动...
内存
存储
非易失内存技术NVDIMM
从技术的角度来看,NANDFlash闪存介质虽然存在擦写次数寿命的...采用NANDFlash构建的SSD正快速的替代传统磁盘,已经大面积的在互联网领域得到应用,并且不断向对数据可靠性有要求的企业级市场渗透。
nbsp;SSD和传统磁
SSD
NVDIMM
NANDFlash
NVDIMM原理与应用之二:X86Cache管理的几种模式
总结了IntelX86的几种cache模式之间的联系和区别,欢迎讨论。
Intel
X86
体系结构
wuzhongjie
关注
私信
近期文章
1.服务器租用实现负载均衡的方法有哪些
2.nginx学习教程初级篇
3.rufus制作U盘启动盘
4.服务器安全设置
5.服务器的定义
分类列表
更多
#存储技术46篇
#文件系统3篇
#互连技术2篇
#操作系统9篇
#随感见闻16篇
签到领勋章
返回顶部
打赏
赞
收藏
评论
分享
51CTO博客
首页
关注
排行榜
订阅专栏
学堂
精培
开源社区
CTO训练营
51CTO
班级博客
登录注册
手机随时阅读
新人专享大礼包¥24
写文章
搜索历史
清空
热门搜索
查看【
】的结果
Copyright©2005-202251CTO.COM
版权所有京ICP证060544号
关于我们
官方博客
意见反馈
了解我们
全部文章
在线客服
网站地图
热门标签
友情链接
开源基础软件社区
51CTO学堂
51CTO
延伸文章資訊
- 1NVDIMM - 維基百科,自由的百科全書
BBU DIMM最初設計是為用作RAID HBA(主機匯流排配接器)或系統的高速緩衝記憶體,以使高速緩衝記憶體中的資料能在電源故障後存留。NVDIMM已領先RAID應用進入資料中心和 ...
- 2Crucial 推出NVDIMM 伺服器記憶體協助公司防止資料遺失
現今的應用(例如關聯式資料庫、橫向擴展儲存、資料分析和記憶體內部資料庫) 需要更為迅速的備份和還原時間。 Crucial NVDIMM 伺服器記憶體將DRAM 和NAND 結合在單一模 ...
- 3原創:一文詳解NVDIMM,這到底是個什麼「神仙」技術?
應用方面,雲計算、大數據和一些高性能計算平台迫切需增加內存容量。 NVDIMM就是應對這樣挑戰的產物,也正好能夠滿足相關企業提升性能的需求。
- 4NVDIMM在快閃記憶體存儲中的應用探討 - 每日頭條
NVDIMM 其實並非一個革命性、全新的東西,很多磁碟存儲系統早就採用NVRAM 技術來實現掉電非易失的緩存。這種NVRAM 基於PCIe 總線,通過電池保證系統在斷電 ...
- 5什麼是永久記憶體?| 優點| 範例 - NetApp
NVDIMM(非揮發性雙列直插式記憶體模組)和Intel 3D XPoint DIMM (也稱為Optane DC 永久記憶 ... 永久記憶體的使用方式有很多種,可為應用程式提供較低的延遲,例如:.