论文部分内容阅读
一致性问题一直以来都是文件系统研究方面的核心问题和热点问题。随着新型材料的开发,存储级内存以其接近内存的良好读写性能和类似于磁盘的非易失性而在存储系统中发挥着越来越重要的作用。将存储级内存引入文件系统作为外部日志设备无疑可以加速文件系统的一致性过程。然而,传统的日志机制的设计与实现都是基于块设备的,因此简单地将存储级内存作为日志设备并不能充分发挥存储级内存的性能。 针对存储级内存的非易失、存取速度快、字节寻址、支持就地修改等特点,基于存储级内存的块设备日志机制SJBD将存储级内存挂载到内存总线上作为日志设备,用来保证基于块设备的文件系统的版本一致性。SJBD考察了覆盖写和追加写的特性,整合传统日志模式中的预定模式和全日志模式,将元数据和覆盖写数据存放到日志设备,同时通过控制更新顺序,以尽可能少的写日志操作来保证文件系统的一致性;针对同一数据块在日志设备中有多个日志版本的情况,SJBD仅保留最新版本,旧的版本均视为无效并在必要的时候加以回收利用,从而提高了日志空间的利用率并加快了系统恢复速度;同时,日志数据写回时,SJBD考虑数据的冷热程度和顺序性以提高数据写回性能;另外,SJBD利用存储级内存字节寻址和就地修改的特性,通过在旧的日志版本上进行字节粒度的更新以实现新的日志数据块的提交,从而进一步减少日志数据流。 测试结果表明SJBD能够以比较小的性能开销保证文件系统的版本一致性。尤其是针对写请求比较大的负载,文件系统写性能反而能够得到提升。