论文部分内容阅读
随着科技的进步,DRAM与外存(HDD/SSD)之间的差异正在逐步扩大。新型存储介质非易失性内存的出现,填补了DRAM与这些传统持久化存储设备间的巨大差异。它既具有DRAM的可字节寻址,访问速度快的特性,也有外存的容量大,可持久化的特性。非易失性内存的这些优秀的特性,也给文件系统的设计带来了许多新的挑战。首先,传统文件系统基于HDD和SSD的许多优化措施,对于非易失性内存不再适用,甚至会带来相反的效果;其次,非易失性内存的可直接连接到DDR通道上,使用MOV指令进行访问,导致文件系统数据更容易因为野指针错误而遭到破坏;最后,非易失性内存具有写入次数的限制,在设计文件系统时,需要考虑磨损均衡的问题以延迟其寿命。更糟糕的是,磨损均衡算法通常以块(如4096字节)为单位进行统计,但非易失性内存允许字节寻址,许多较小数据的频繁写入会导致一个块内的磨损不均衡,从而降低非易失性内存的使用寿命。针对以上问题,本论文设计了一个磨损感知的非易失性内存文件系统。该文件系统分为三层:访问保护层、磨损均衡层和文件系统层。访问保护层基于现代cpu的页表机制,在内核态实现对于非易失性内存的私有映射,以到达对非易失性内存的进行访问保护的目的,解决野指针等错误带来的数据破坏问题;磨损均衡层基于访问保护层进行构建,用于解决块与块之间的磨损不均衡问题。该层首先以混合粒度(2MB和4KB)的方式统计各块之间的磨损计数;然后,该算法引入了阶段性磨损上限的概念,以降低元数据的空间开销;最后,该层抽象出了一个逻辑空间,以便与上层解耦;文件系统层基于磨损均衡层,参考日志结构文件系统的思想实现文件系统的核心功能。一方面,该层通过将离散数据顺序写日志的方式,解决块内磨损不均衡的问题;另一方面,该层感知磨损均衡层的混合粒度计数,并能够据此针对文件的不同大小做进一步的优化。