论文部分内容阅读
新型非易失内存作为下一代存储介质,具有只比DRAM内存低一个数量级的读写速度,DRAM内存一样的可字节寻址。非易失内存既可充当内存又可充当外存,将其融入现有计算机体系结构充满着挑战和机遇。非易失内存块设备驱动能将非易失内存虚拟成一个块设备,供传统文件系统使用。相对传统块设备,非易失内存块设备能将传统文件系统的性能提高一千倍。但是传统文件系统在使用非易失内存时,也存在着一些问题。首先,由于用户习惯和文件系统元数据的高访问率,传统文件系统对非易失内存的写入存在严重的不均衡性,会影响非易失内存的使用寿命。其次,文件系统往非易失内存中写入数据块时,突然的断电可能会造成数据块只写入了部分数据。最后,在传统文件系统中,用户应用一般使用缓存IO进行文件读写。在文件缓存IO中,页高速缓存与非易失内存之间的数据拷贝降低了文件系统性能。本文设计实现了一个非易失内存块设备驱动NVMBD。针对传统文件系统使用非易失内存存在的上述问题,我们在NVMBD中实现了转换层优化技术和块设备IO请求处理优化技术。转换层优化技术利用转化层实现了非易失内存的磨损平衡和数据块的原子写入。转换层主要维护非易失内存中逻辑块与物理块之间的映射关系。转换层将同一逻辑块重复写负载映射到众多物理块,一定程度上实现了非易失内存物理块的磨损平衡。转换层使用写时拷贝(copy-on-write)更新数据的同时,使用日志确保逻辑块与物理块映射关系建立的原子性,从而保证了数据块写入的原子性。块设备IO请求处理优化技术对文件缓存IO中的部分块设备IO请求处理进行了优化,将非易失内存中的数据页映射到文件的页高速缓存,省去了文件的页高速缓存与非易失内存之间的数据拷贝。经过实验测试,块设备IO请求处理优化技术将传统文件系统的性能提高了约一倍。