关键词:
非易失性存储
存储系统
文件系统
设备驱动
读写吞吐率
摘要:
随着物联网时代的到来,计算机所需处理的数据以几何倍数增长,这意味着存储系统对读写吞吐率的要求越来越高。非易失性内存NVM(Non-Volatile Memory),因其具有低延迟与接近内存的读写速度等特性,成为解决计算机系统“存储墙”问题的重要手段。但现有的存储系统软件栈难以有效发挥NVM存储设备高性能的优势,存在I/O(Input/Output)栈过长、锁粒度大、并发程度低等问题,成为影响NVM存储系统性能的重要因素。因此,本文以提高NVM存储系统的读写吞吐率为目标,研究与设计基于NVM的高吞吐存储系统。首先,分析NVM存储系统面临的挑战,从文件系统与设备驱动两方面进行改进,设计融合文件管理功能的高吞吐NVM存储系统的结构,包括融入驱动的高并发文件管理算法模块与高吞吐的NVM存储设备驱动模块,从而发挥NVM存储设备读写速度快的优势,满足Io T(Internet of Things)等应用对海量数据高速并发读写的要求。接着,在分析现有I/O系统软件栈过长影响NVM存储系统I/O性能的基础上,针对Io T等应用对存储系统并发能力要求高和NVM存储设备读写速度快等特点,设计融入驱动的高并发文件管理算法。首先,通过将文件管理功能嵌入到设备驱动,给出了融入驱动的高并发文件管理算法的结构;接着,通过分解I-node节点,构建基于数据块的细粒度锁,并采用奇偶校验的读写正确性保证方式,设计基于奇偶校验的细粒度锁,为提高NVM存储系统中读写操作的并发度提供支撑;其次,改造跳表中的节点,在保证节点之间有序的基础上,在节点内保存多组无序键值对,并将最上层索引转变为缓存,设计基于C-Skiplist的锁管理策略,从而通过提高锁管理的效率,提高NVM存储系统的并发度;最后,在开源的NVM存储设备驱动基础上,实现融入驱动的高并发文件管理算法原型MAGMD,分别使用Filebench、Fio与IOzone作为测试工具进行测试与分析,实验结果表明MAGMD与PMEM上加载的EXT4相比最大能提高19%的I/O吞吐率与22.9%的读写带宽。最后,分析当前NVM存储设备驱动中存在的问题,研究并设计高吞吐的NVM存储设备驱动并给出其结构,包括两阶段的BIO管理策略模块与轻量级的BIO迁移策略模块。设计两阶段的BIO管理策略,对设备驱动程序中的BIO管理流程进行分解,将BIO的接收与执行功能分离,降低请求管理粒度,减少BIO之间的冲突,提高NVM存储设备中BIO管理的并发性;设计一种轻量级的BIO迁移策略,能够将多个接收队列高效地转换为单个执行队列,减少管理时间开销,避免扫描全部请求队列,从而减少对NVM存储设备的访问次数,提高NVM存储系统的读写吞吐率;在开源NVM存储设备驱动的基础上,实现高吞吐的NVM存储设备驱动原型SVTNVM,使用Filebench测试不同线程数量下的读写吞吐率,使用Fio测试顺序与随机读写性能,与当前Linux的NVM存储设备驱动PMEM进行比较,实验结果表明,SVTNVM最高能提升29.3%的读写吞吐率与23.3%的I/O带宽。