关键词:
固态硬盘
用户态文件系统
地址映射
FTL
SPDK
摘要:
随着数字时代的高速发展,全球数据传输总量呈指数级增长,用户对存储设备的访问性能要求越来越高。在这种大环境下,基于闪存的固态硬盘(Solid State Disk,SSD)以其低延迟、低功耗等优点被广泛应用,逐渐取代了传统的机械硬盘。虽然目前已有部分关于SSD存储管理系统的研究,但是均无法充分发挥SSD的潜能,SSD存储管理系统仍有大量的技术问题亟待解决。存储管理系统由上层的I/O层和底层的设备层构成。在SSD的I/O层中,传统的文件系统I/O栈过于厚重,应用于超低延迟的NVMe SSD时,软件开销远远大于硬件开销,严重影响SSD的性能;同时,传统的文件系统未考虑闪存的读写不对称、写放大等特性,降低了SSD的空间利用率和使用寿命。在设备层中,当前主流的闪存转换层(Flash Translation Layer,FTL)算法在进行地址映射时,通常将部分映射记录加载到DRAM中,而完整的地址映射表则按逻辑地址顺序持久化在闪存中,导致缓存映射表(Cache Mapping Table,CMT)的命中率较低,影响了SSD的访问性能。为了解决上述问题,文本设计了一套基于SSD的高性能、高可靠性存储管理系统。本文的主要工作及成果如下:1、基于英特尔公司的SPDK技术,在操作系统的用户空间实现了基于NVMe SSD的N2UFS文件系统。N2UFS设计了更为灵活的空间划分方案,提高了SSD的空间利用率和随机访问性能;同时,利用B树索引技术在内存中创建目录索引树,提高了SSD的元数据访问性能;针对NVMe的多队列特性,设计了IO队列弹性调度算法,提高了SSD的IOPS性能。本文的实验表明,N2UFS与传统文件系统相比,吞吐量提升了2.87%,随机访问性能提升了32.06%。2、提出了新颖的基于热聚类思想的C-FTL算法,在DFTL的基础上提高了CMT的命中率。C-FTL将最近从DRAM中淘汰的映射记录集中存储到SSD的热转换页(Hot Translation Page,HTP)中,并在DRAM生成其对应的HTP索引(HTPI)用于查询该HTP;同时,C-FTL在DRAM中另外实现了一个辅助缓存Sub-CMT,用于优化HTP的组织结构,降低HTPI的误报率,进一步提高地址转换的效率。本文的实验表明,C-FTL与DFTL等经典FTL算法相比,CMT命中率提升了40.6%,提高了SSD访问数据的可靠性;并且C-FTL不会增加垃圾回收的开销,延长了SSD的使用寿命。