当前位置: 首页 > 专利查询>诸葛晴凤专利>正文

一种数据一致性及磨损均衡的内存文件系统管理方法技术方案

技术编号:14239452 阅读:70 留言:0更新日期:2016-12-21 14:56
本发明专利技术公开了一种数据一致性及磨损均衡的内存文件系统管理方法,实现了持久化内存文件系统在数据更新操作中同时进行数据一致性和写磨损均衡,文件的更新操作包括文件就地更新、追加、部分追加三种更新方式。内存文件系统的数据一致性通过元数据管理、数据一致性、日志管理三个模块和文件更新操作协同实现。非易失性存储管理的功能通过页面分配、空闲页面管理、磨损均衡三个模块和文件更新操作协同实现。磨损均衡功能通过数据区页面写次数管理、索引两个子模块和存储管理中的其他模块协同实现,因此,所有文件更新操作都在实现数据一致性更新的同时做到了写磨损均衡。

Method for managing memory file system with data consistency and wear leveling

The invention discloses a data consistency and memory file system management method of wear leveling, implement the persistent memory file system in data update operation and data consistency and write wear leveling, and updating operation file include file, append, update on the additional part three update. The data consistency of the memory file system is realized by three modules of metadata management, data consistency and log management. Non volatile memory management functions are realized through three modules: page allocation, idle page management and wear leveling. Other modules wear leveling function through the data page management, index number of write two sub modules and storage management in collaborative implementation, therefore, all files update operation in data consistency update at the same time to write wear leveling.

【技术实现步骤摘要】

本专利技术涉及计算机系统软件领域,特别是一种用于内存文件系统的数据一致性及磨损均衡方法。
技术介绍
随着新型非易失性存储器(Non-Volatile Memory,NVM)的出现,企业界和学术界提出将存储密度大、读写速度快、可按字节寻址和抗震动的非易失性存储制作为内存数据存储设备,称为存储级内存(Storage Class Memory,简称SCM)。为了管理这种存储级内存,已经设计出多种内存文件系统。例如Intel设计的PMFS,“System software for persistent memory,”in Proc.9th ACM Euro.Conf.Comput.Syst.,pp 15:1—15:15,2014,ISBN:978-1-4503-2704-6。(“面向持久化内存的系统软件”,第9届美国计算机学会欧洲计算机系统会议,第15篇1到15页,2014年,ISBN:978-1-4503-2704-6),重庆大学设计的SIMFS,“Designing an Efficient Persistent In-Memory File System”,2015IEEE Non-Volatile Memory System and Applications Symposium,pp 1-6,2015,DOI:10.1109/NVMSA.2015.7304365。(“高效持久化内存文件系统的设计”,2015年电气和电子工程师协会非易失性内存系统及应用研讨会,第1-6页,DOI:10.1109/NVMSA.2015.7304365)。持久化内存文件系统是指具有完整的文件系统元数据结构,并且元数据持久化保存于存储级内存。然而,非易失性存储器(NVM)具有独特的数据读写性能,NVM存储器件对于数据擦(erase)写(write)的耐久度有限,当擦写次数到达一定的程度时,相应存储单元的数据存储特性就会不稳定,使得整个存储芯片失效。如果频繁地擦写同一个NVM区域,会导致NVM在短时间内被写坏,极大地降低NVM的使用寿命。因此,面向NVM的系统设计必须考虑如何均匀地分布对存储介质的写操作,实现写磨损均衡(wear-leveling)。这对延长NVM在计算机内存中的使用寿命具有重要意义。NVM在内存中的使用寿命决定了非易失性内存的实际使用价值。现有的持久化内存文件系统没有考虑非易失性存储介质上的写磨损均衡问题,难以保证存储介质的使用寿命。在文件系统中更新数据时,例如用写操作向文件中写数据时,需要保证数据的一致性,即文件的元数据中引用的数据页必须属于该文件,而不是垃圾数据,或者其他文件的数据页。文件数据的一致性对文件系统的正确运行至关重要。然而,对内存文件系统而言,不仅需要保证文件数据更新的一致性,还需要利用内存文件系统的特点,尽可能地减少维持数据一致性导致的性能损耗。目前,内存文件系统中使用的数据一致性更新技术主要有两种:一种是写时复制(Copy-on-write)技术:在使用写时复制技术更新文件数据时,首先将新数据写到空闲的物理内存,然后使用原子操作将原文件的元数据指向新的数据页。假设要更新n个数据页,内存文件系统需要首先对每一个数据页执行以下步骤:1)分配一个空闲物理页;2)调用一次数据拷贝函数,将新数据写入步骤1)分配的空闲物理页;3)使用一次原子操作,修改原文件的数据索引结构中相应指针,指向步骤2)中的数据页。对于n个数据页,内存文件系统需要调用n次空闲页分配函数、n次数据拷贝函数,以及n次原子操作。每一次分配空闲页和调用原子操作都需要使用CPU指令对文件系统代码中的竞争区域加锁、解锁,每一次调用数据拷贝函数都需要检查地址范围、页面权限等操作,产生较大的系统开销。传统的写时复制技术不只对当前数据页进行复制和更新,还会引起一连串向上传播的写时复制,对新数据所影响到的所有文件元数据、文件系统元数据进行写时复制。最终可以导致从文件数据页到文件系统根目录的整条路径上所有页面都需要做写时复制。因此,传统的写时复制技术会造成极大的性能损耗。第二种是简短影子分页(Short-circuit shadow paging)技术:“Better I/O through byte-addressable,persistent memory.”Jeremy Condit,Edmund B.Nightingale,Christopher Frost,Engin Ipek,Benjamin Lee,Doug Burger,and Derrick Coetzee.In Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles(SOSP'09),Pages 133-146,2009,ISBN:978-1-60558-752-3.(“通过可字节寻址持久化内存获得的更好的I/O”,Jeremy Condit,Edmund B.Nightingale,Christopher Frost,Engin Ipek,Benjamin Lee,Doug Burger,and Derrick Coetzee,第22届美国计算机学会操作系统原理研讨会,第133-146页,2009年,ISBN:978-1-60558-752-3)简短影子分页技术是微软在内存文件系统BPFS中所使用的数据一致性技术。该技术类似于写时复制技术,即首先将新数据写到空闲的物理内存,然后使用原子操作将原文件的元数据指向新的数据页。不同之处在于,简短影子分页技术只更新直接受影响的数据页和文件元数据,更新操作不会传播到文件系统的其他文件或元数据。然而,简短影子分页技术和写时复制技术一样,在更新n个数据页时,要对每一个页面重复执行现有技术一中的3个步骤。由此产生较大的开销,降低内存文件系统的性能。
技术实现思路
本专利技术的目的是针对上述的文件数据一致性方案没有考虑到存储介质磨损均衡的问题,而提出的一种用于内存文件系统的数据一致性及磨损均衡方法;以实现持久化内存文件系统数据一致性及非易失性存储介质上的写磨损均衡。本专利技术的目的是通过以下技术方案来实现的:本专利技术提供的一种数据一致性及磨损均衡的内存文件系统管理方法,包括以下步骤:S1:在非易失性存储介质上设置一段连续的存储空间作为页面写次数记录区,所述页面写次数记录区用于记录并存放所有数据区页面的写次数,当每个内存页面的写次数发生变化时,更新页面写次数记录区内相应内存页面的写次数计数器;空闲页面管理模块根据页面写次数记录区的数据分配出当前系统中写次数最小的内存页面;S2:当写操作开始时,判断文件的日志记录是否存在,如果是,则从日志记录的尾端继续记录日志;如果否,则从空闲页面管理模块获取日志记录所需要的内存页面;S3:将当前的文件元数据和受影响的文件数据备份到日志区域;更新所涉及内存页面在页面写次数记录区的相应写次数数值;S4:从空闲页面管理模块获取目标文件数据更新或追加所需要内存的新页面,写入更新后的相应数据页面的完整数据,当新页面上的写操作完成后,用新页面替换文件系统中的旧页面;更新所涉及内存页面在页面写次数记录区的相应写次数数值;S5本文档来自技高网
...
一种数据一致性及磨损均衡的内存文件系统管理方法

【技术保护点】
一种数据一致性及磨损均衡的内存文件系统管理方法,其特征在于:包括以下步骤:S1:在非易失性存储介质上设置一段连续的存储空间作为页面写次数记录区,所述页面写次数记录区用于记录并存放所有数据区页面的写次数,当每个内存页面的写次数发生变化时,更新页面写次数记录区内相应内存页面的写次数计数器;空闲页面管理模块根据页面写次数记录区的数据分配出当前系统中写次数最小的内存页面;S2:当写操作开始时,判断文件的日志记录是否存在,如果是,则从日志记录的尾端继续记录日志;如果否,则从空闲页面管理模块获取日志记录所需要的内存页面;S3:将当前的文件元数据和受影响的文件数据备份到日志区域;更新所涉及内存页面在页面写次数记录区的相应写次数数值;将在文件被关闭时释放该文件的日志区域的内存页面;S4:从空闲页面管理模块获取目标文件数据更新或追加所需要内存的新页面,写入更新后的相应数据页面的完整数据,当新页面上的写操作完成后,用新页面替换文件系统中的旧页面;更新所涉及内存页面在页面写次数记录区的相应写次数数值;S5:更新日志记录的交易状态为“COMMIT”,所述COMMIT表示文件数据的已经正确写入内存页面;并更新所涉及内存页面在写次数记录区的相应写次数数值;S6:当修改目标文件的元数据时,判断元数据所在页面在写次数记录区中记录的磨损值是否需要迁移元数据,如果是,则执行步骤S7;如果否,则直接修改元数据,并更新所涉及内存页面在写次数记录区的相应写次数数值;S7:将元数据所在页面内容拷贝到从空闲页面管理模块获得的空闲页中,修改元数据及指针,更新所涉及内存页面在写次数记录区的相应写次数数值;S8:当修改目标文件的文件索引时,判断文件索引所在页面的在写次数记录区中记录的磨损值是否需要迁移页面,如果是,则执行步骤S8;如果否,则直接修改文件索引,将文件索引指向步骤S2中的存放更新后数据的内存页面;更新所涉及内存页面在写次数记录区的相应写次数数值;S9:将文件索引所在页面内容拷贝到从空闲页面管理模块获得的空闲页中,修改文件索引值及指针,更新所涉及内存页面在写次数记录区的相应写次数数值;S10:更新日志记录中的交易状态为“CHECKPOINT”,所述CHECKPOINT表示写操作已经正确完成;并更新所涉及内存页面在写次数记录区的相应写次数数值;S11:释放并回收存放目标文件中的受影响的文件数据的旧页面。...

【技术特征摘要】
1.一种数据一致性及磨损均衡的内存文件系统管理方法,其特征在于:包括以下步骤:S1:在非易失性存储介质上设置一段连续的存储空间作为页面写次数记录区,所述页面写次数记录区用于记录并存放所有数据区页面的写次数,当每个内存页面的写次数发生变化时,更新页面写次数记录区内相应内存页面的写次数计数器;空闲页面管理模块根据页面写次数记录区的数据分配出当前系统中写次数最小的内存页面;S2:当写操作开始时,判断文件的日志记录是否存在,如果是,则从日志记录的尾端继续记录日志;如果否,则从空闲页面管理模块获取日志记录所需要的内存页面;S3:将当前的文件元数据和受影响的文件数据备份到日志区域;更新所涉及内存页面在页面写次数记录区的相应写次数数值;将在文件被关闭时释放该文件的日志区域的内存页面;S4:从空闲页面管理模块获取目标文件数据更新或追加所需要内存的新页面,写入更新后的相应数据页面的完整数据,当新页面上的写操作完成后,用新页面替换文件系统中的旧页面;更新所涉及内存页面在页面写次数记录区的相应写次数数值;S5:更新日志记录的交易状态为“COMMIT”,所述COMMIT表示文件数据的已经正确写入内存页面;并更新所涉及内存页面在写次数记录区的相应写次数数值;S6:当修改目标文件的元数据时,判断元数据所在页面在写次数记录区中记录的磨损值是否需要迁移元数据,如果是,则执行步骤S7;如果否,则直接修改元数据,并更新所涉及内存页面在写次数记录区的相应写次数数值;S7:将元数据所在页面内容拷贝到从空闲页面管理模块获得的空闲页中,修改元数据及指针,更新所涉及内存页面在写次数记录区的相应写次数数值;S8:当修改目标文件的文件索引时,判断文件索引所在页面的在写次数记录区中记录的磨损值是否需要迁移页面,如果是,则执行步骤S8;如果否,则直接修改文件索引,将文件索引指向步骤S2中的存放更新后数据的内存页面;更新所涉及内存页面在写次数记录区的相应写次数数值;S9:将文件索引所在页面内容拷贝到从空闲页面管理模块获得的空闲页中,修改文件索引值及指针,更新所涉及内存页面在写次数记录区的相应写次数数值;S10:更新日志记录中的交易状态为“CHECKPOINT”,所述CHECKPOINT表示写操作已经正确完成;并更新所涉及内存页面在写次数记录区的相应写次数数值;S11:释放并回收存放目标文件中的受影响的文件数据的旧页面。2.如权利要求1所述的数据一致性及磨损均衡的内存文件系统管理方法,其特征在于:所述内存页面的写次数均在写次数记录区保存并在所有写操作的过程中进行更新;所述写操作包括文件数据、元数据、日志和文件索引的所有数据的更新和追加;内存页面与页面写次数记录区的记录一一对应。3.如权利要求1所述的数据一致性及磨损均衡的内存文件系统管理方法,其特征在于:所述页面写次数记录区的写操作均匀分布。4.如权利要求1所述的数据一致性及磨损均衡的内存文件系统管理方法,其特征在于:所述每一次写操作需要的新页面均由空闲页面管理模块根据写次数记录区的数值找到的磨损程度最小的空闲页面;或者所述每一次写操作均将更新后的完整数据写入新页面,旧页面的数据不更改,并由新页面替换旧页面。5.如权利要求1所述的数据一致性及磨损均衡的内存文件系统管理方法,其特征在于:所述页面的磨损阈值按照下述方法设置:(系统所用非易失性存储器的最大可容忍写次数+系统非易失性内存页面的当前最大写次数)*50%。6.如权利要求1所述的数据一致性及磨损均衡的内存文件系统管理方法,其特征在于:还包括以下步骤:当系统崩溃或掉电后重启时,保持日志记录状态为“CHECKPOINT”的文件不变;及将日志记录状态为“COMMIT”的文件恢复为写操作发生之前的完整数据或写操作完成之后的完整数据;将其他日志记录状态的文件恢复为写操作发生之前的完整数据。7.如权利要求1所述的数据一致性及磨损均衡的内存文件系统管理方法,其特征在于:所述步骤S11中的回收旧页面在每次日志设置正确完成状态后、文件下一次产生日志时或者文件关闭时进行旧页面回收。8...

【专利技术属性】
技术研发人员:诸葛晴凤沙行勉
申请(专利权)人:诸葛晴凤
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1