浪潮全固态存储如何优化MASP架构的SSD优化写入机制?
SSD写放大,是影响固态存储性能发挥的关键。浪潮固态存储HF5000的MASP架构,通过顺序化条带技术,给出了SSD写放大的正解。
当前存储介质正经历着一场空前巨大的变革。存储介质正在从机械式磁盘转向固态介质,而固态介质本身也在快速变化发展。固态介质泛指各种无机械运动的电子存储介质,包括我们目前常见的Flash NAND闪存介质以及相变存储等其它发展中的存储技术。在目前比较成熟的SSD技术当中,又有SLC,MLC,TLC,3D V-NAND,Xpoint等多种不同的技术。固态介质由于取消了机械操作的部分,所以随机读写的速度有了质的飞跃。当然固态介质不是万能的,比如SSD的写放大,就在一定程度上影响了整个存储系统的性能;浪潮全固态存储HF5000通过优化MASP架构的写入机制,降低了写放大的影响,提升了整个阵列的性能。
SSD分类图
遭遇SSD写放大 读写性能如何优化?
在HDD上,数据可以直接覆盖,所以逻辑地址和物理地址是一一对应的,不会变更。但SSD硬盘受限于Flash NAND的读写特性,数据不能像在机械硬盘里那样被直接覆盖,必须先擦除才能改写(编程),而且数据写入和擦除的最小单位不同;读写以Page (页)为单位,擦除以Block(块)为单位,通常的Page Size(页大小)是4KB,而擦除最小单位是Block (块),一般包含128个Page,即512KB,使得在执行写入和改写操作时,需要将原有不需改写的若干Page数据加以移动(或重写),以满足擦除的最小单位Block,这些多余的对无关Page的读写操作增加了数据的访问量,即写入放大,减少了闪存盘的使用寿命,极大地影响了闪存盘的性能。
传统存储系统的初衷往往是针对HDD设计的,那么如果直接在传统磁盘阵列上配置SSD时,又会造成什么样的影响呢?当一个Block中有1个4KB的数据更新(D1→D1’)和一个4KB的数据块删除(D3)时,系统要将整个可擦除块的数据读到缓存,在缓存里更新整个数据块,擦除块,再把更新后的数据写入新擦除过的块。整个数据操作流程带来的实际后果是,虽然只需要写4K的数据、删除4K的数据,但这两个简单的更新操作,实际却造成了整个块(共512KB)的读出和写入操作,读写操作一共放大了128倍,从而形成写放大,影响SSD寿命。并且需要读取、缓存更新、擦除、写入4个操作步骤才能完成,造成延时大大增加,影响SSD性能。
写放大影响固态存储性能
数据条带化,浪潮HF5000的创造性优化
针对于SSD介质的特性,浪潮HF5000-F存储系统从设计之初就进行了创造性的优化,采用MASP架构(Multi-layer Accelerated Sequential Polymeritio,多级加速顺序化聚合架构),利用日志式文件系统,对随机不同大小的应用数据进行顺序化整理,转换成一个顺序的条带,当该条带达到最优尺寸(即每块SSD写入一个可擦除块的512KB数据),就将数据顺序、完整地写入后端SSD盘中。
浪潮全固态存储HF5000
整个的写入数据过程只需三步:首先,主控制器NVDIMM收到写请求,与备控制器NVDIMM镜像,完成后返回主机,告知写完成;第二步,写数据在内存中进行在线重复数据删除和快速压缩,组成条带;最后,每个条带被整理成10MB,然后一次性下刷到RAID组中(RAID组中的24块盘逻辑上可以看做20块数据盘+3块校验盘+1块热备盘,10MB分到每个数据盘上正好是512KB,与SSD的擦除块大小一致,从而实现最大的写入效率)。
让我们再来与传统SSD做一下对比,当一个Block中有1个4KB的数据更新(D1→D1’)时,更新的数据块会随着新写入的数据进行顺序化整理,跟着整条带在新位置追加写入,无需额外的读写操作,无写放大,不影响SSD性能和寿命。
MASP的优势
除了可以针对SSD技术优化、降低写入放大之外,浪潮MASP架构还有哪些优势?
其一:NVDIMM日志保障数据安全
采用日志式文件系统,写入数据的日志信息存放在非易失NVDIMM中,保障意外掉电场景下的数据安全,只要有NVDIMM中的日志在,即使数据损毁了,仍然可以通过日志回滚的方式恢复数据;
其二:NVDIMM加速提供更高写性能
利用NVDIMM相比普通DDR4更高的相应速度,为后续的数据顺序化整理带来时间,借助CPU的处理能力,提升写性能,降低写入延时,可以保障系统的写性能与读性能一致,弥补由于SSD介质本身读写性能的落差;
其三:在线重删+压缩,提高空间使用效率
在用户数据写入SSD存储层之前,进行在线重复数据消除操作,该过程将伴随后续的在线数据压缩操作,共同起到提高空间使用效率的作用。