SSD作为新型存储介质对外暴露成一种通用块设备,传统应用似乎无需任何改变就可以在SSD上运行。在实际应用过程中,传统业务的确可以在SSD上直接运行,但问题是SSD并没有被充分利用,优势没有被充分发挥;更糟糕的是业务的IO特性会导致SSD出现新的问题。例如,在有些应用现场,用户发现SSD的使用寿命被很快耗尽,写放大系统变得很大,使用寿命与预期不同。厂商的写放大系统是在特定的IO Pattern下测算出来的,实际应用由于存在大量的512字节小写问题,数据分布不够“完美”,从而导致SSD内部的写放大系数比预期要大,从而影响SSD的使用寿命。一句话,SSD的使用不是那么简单的,其与业务的IO Pattern息息相关。如果想在企业级SSD上获取足够的性能、一致性以及使用寿命,那么需要面向SSD对存储软件栈进行重构。重构过程的一个思路是通过优化输入SSD的IO Pattern,来获取SSD的最佳工作状态,发挥SSD的性能、避免SSD的问题。
在IO Pattern的优化方法中,正在蓬勃发展的NVDIMM需要尤其关注。可以这么讲,在技术上NVDIMM和SSD是天生一对,他俩可以特性互补,短期内共存发展。NVDIMM其实并非一个革命性、全新的东西,很多磁盘存储系统早就采用NVRAM技术来实现掉电非易失的缓存。这种NVRAM基于PCIe总线,通过电池保证系统在断电情况下的数据可靠性。NVRAM在存储系统中通常会作为数据缓存。为了保证数据可靠性,一个系统中会设计两块NVRAM,通过Mirror的方式冗余数据。NVDIMM与NVRAM相比,最大的差别是将接口从PCIe转移到了DIMM(内存接口),其次在掉电数据保护方面通过NAND Flash和超级电容相结合的方式保证数据不丢,或者直接采用新型存储介质,例如Xpoint、ReRAM等。
在层次化存储系统中,NVDIMM的性能基本和DDR内存的性能是相同的。在性能上远远超过了SSD,其IO访问延迟在几十至几百纳秒左右,而SSD的访问延迟则达到了百微妙以上。但是,SSD在容量上要远远高于NVDIMM。因此,在现有的分层存储体系架构中,引入NVDIMM可以很好的对SSD、磁盘存储进行优化,尤其是IO Pattern方面的优化。