一种闪存文件系统及其数据管理方法技术方案

技术编号:18667950 阅读:32 留言:0更新日期:2018-08-14 20:33
本发明专利技术提供了一种闪存文件系统及其数据管理方法,包括创建模块,用于在创建文件系统时,将闪存划分成文件系统区和闪存缓冲区;标记模块,用于在有数据写入且写入的数据量小于或等于预设标记阈值时,在内存缓存中将写入数据标记为脏数据,标记阈值用于表示写入内存缓存的需要按数据粒度进行标记的数据量大小;同步模块,用于在需要进行数据同步时,将内存缓存中的脏数据合并后写入闪存缓冲区,并当闪存缓冲区已满时,通知回填模块;回填模块,用于接收到同步模块的通知,读出闪存缓冲区中的脏数据并将其写入文件系统区,并擦除闪存缓冲区。本发明专利技术避免了不必要的数据写入,从而降低了同步操作的延时,提高了闪存的使用寿命。

A flash file system and its data management method

The invention provides a flash file system and a data management method thereof, including a creation module for dividing flash memory into file system areas and flash buffers when creating a file system, and a marking module for dividing flash memory into file system areas and flash buffers when data is written and the amount of data written is less than or equal to a default marking threshold, in a memory cache. Write data is marked dirty, and the marker threshold is used to indicate the amount of data that needs to be marked according to the data granularity when writing to the memory cache; synchronization module is used to merge dirty data in the memory cache and write it to the flash buffer when data synchronization is needed, and notify the backfill module when the flash buffer is full Block; a backfill module that receives notifications from the synchronization module, reads out dirty data from the flash buffer, writes it to the file system area, and erases the flash buffer. The invention avoids unnecessary data writing, thereby reducing the delay of synchronous operation and improving the service life of flash memory.

【技术实现步骤摘要】
一种闪存文件系统及其数据管理方法
本专利技术涉及但不限于存储
,具体涉及一种闪存文件系统及其数据管理方法。
技术介绍
闪存(FlashMemory)是一种电子式可擦除编程存储器,与传统的磁盘介质相比,闪存具有读写带宽高、访问延迟低、功耗低、稳定性强的特点,目前,闪存已经开始在数据中心、个人电脑、移动设备上普及。闪存以页为单位进行读写,当闪存重写一个页之前,需要先进行擦除操作。闪存以块为单位进行擦除,一个闪存块中包含几百个闪存页。闪存的单元具有有限次的擦写操作,即每个闪存单元具有有限的寿命。在文件系统中,使用页高速缓存来缓存最近操作的数据,以加速读写过程。当需要读取数据时,首先在页高速缓存中查找该部分内容是否驻留在内存中,如果找到,则直接返回数据;如果没找到,再到闪存中进行读取。当需要进行写操作时,不再直接把数据写入到设备中,而是把数据写入到页高速缓存后将相应页面标记为脏页,然后直接返回。当用户发出同步调用或操作系统后台线程启动同步操作时,将页高速缓存中的脏页写入到闪存设备中。由于一次写操作将整个页面标记为脏页,这样,即使本次写操作仅仅涉及到该页面的很少一部分,当执行同步操作时,仍会将整个页面写入到闪存设备中。这使得写入数据量大大增加,不仅增加了同步操作的延时,降低了系统的性能,而且增加了闪存设备的磨损,大大降低了其寿命。
技术实现思路
:本专利技术实施例提供一种闪存文件系统及其数据管理方法,能够避免不必要的数据写入。为了达到本专利技术目的,本专利技术实施例的技术方案是这样实现的:本专利技术实施例提供了一种闪存文件系统,包括:创建模块、标记模块、同步模块和回填模块;其中,创建模块,用于在创建文件系统时,将闪存划分成文件系统区和闪存缓冲区;标记模块,用于在有数据写入且写入的数据量小于或等于预设标记阈值时,在内存缓存中将写入数据标记为脏数据,其中,所述标记阈值用于表示写入内存缓存的需要按数据粒度进行标记的数据量大小;同步模块,用于在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入闪存缓冲区,并当闪存缓冲区已满时,通知回填模块;回填模块,用于接收到同步模块的通知,读出闪存缓冲区中的脏数据并将其写入文件系统区,并擦除闪存缓冲区。进一步地,所述闪存缓冲区包括第一闪存缓冲区和第二闪存缓冲区;其中,所述同步模块具体用于:在需要进行数据同步时,将所述内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入第一闪存缓冲区;当第一闪存缓冲区已满时,发送第一通知至回填模块,并在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入第二闪存缓冲区;第二闪存缓冲区已满时,发送第二通知至回填模块,并在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入第一闪存缓冲区;所述回填模块具体用于:当接收到所述同步模块的第一通知时,读出第一闪存缓冲区中的脏数据并将其写入文件系统区,并擦除第一闪存缓冲区;当接收到同步模块的第二通知时,读出第二闪存缓冲区中的脏数据并将其写入文件系统区,并擦除第二闪存缓冲区。进一步地,所述标记模块具体用于:在有数据写入且写入的数据量小于或等于所述标记阈值时,将所述写入数据对应的文件的索引节点号、数据段所在的页面号、页面内的偏移量、数据段的长度以及数据段内容封装成记录,将记录添加至预设的脏数据列表;并将写入数据对应的内存缓存页面的引用计数加一。进一步地,所述同步模块具体用于:根据所述写入数据对应的文件的索引节点号查找该文件的所有记录,申请新的内存页面,将多个记录的内容顺序拷贝至所述新的内存页面,将所述新的内存页面的内容顺序写入到闪存缓冲区。进一步地,所述系统还包括:恢复模块,用于在闪存文件系统重启时,检测闪存缓冲区中是否有脏数据;如果闪存缓冲区中有脏数据,读出闪存缓冲区的所有脏数据,根据每条脏数据更新所述内存缓存的内容。本专利技术实施例还提供了一种闪存文件系统的数据管理方法,包括:在创建文件系统时,将闪存划分成文件系统区和闪存缓冲区;在有数据写入且写入的数据量小于等于预设标记阈值时,在内存缓存中将写入数据标记为脏数据,其中,所述标记阈值用于表示写入内存缓存的需要按数据粒度进行标记的数据量大小;在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入闪存缓冲区;当闪存缓冲区已满时,读出闪存缓冲区中的脏数据并将其写入文件系统区,并擦除闪存缓冲区。进一步地,所述闪存缓冲区包括第一闪存缓冲区和第二闪存缓冲区;其中,在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入第一闪存缓冲区;当第一闪存缓冲区已满时,将第二闪存缓冲区设成当前缓冲区,用于在需要进行数据同步时,写入数据使用;同时读出第一闪存缓冲区中的脏数据并将其写入文件系统区,并擦除第一闪存缓冲区;当第二闪存缓冲区已满时,将第一闪存缓冲区设成当前缓冲区,用于在需要进行数据同步时,写入数据使用;同时读出第二闪存缓冲区中的脏数据并将其写入文件系统区,并擦除第二闪存缓冲区。进一步地,所述在内存缓存中将写入数据标记为脏数据,具体包括:将所述写入数据对应的文件的索引节点号、数据段所在的页面号、页面内的偏移量、数据段的长度以及数据段内容封装成记录,将记录添加至预设的脏数据列表;并将写入数据对应的内存缓存页面的引用计数加一。进一步地,所述将脏数据列表中的脏数据合并后写入闪存缓冲区,具体包括:根据写入数据对应的文件的索引节点号查找该文件的所有记录,申请新的内存页面,将多个记录的内容顺序拷贝至所述新的内存页面,将所述新的内存页面的内容顺序写入到闪存缓冲区。进一步地,所述的数据管理方法,还包括:在闪存文件系统重启时,检测闪存缓冲区中是否有脏数据;如果闪存缓冲区中有脏数据,读出闪存缓冲区的所有脏数据,根据每条脏数据更新所述内存缓存的内容。本专利技术的闪存文件系统及其数据管理方法,通过对脏数据进行标记,并将脏数据合并后写入闪存,避免了不必要的数据写入,从而降低了同步操作的延时,提高了闪存的使用寿命;进一步地,通过设置第一闪存缓冲区和第二闪存缓冲区,在系统回填其中一个闪存缓冲区期间,由另一缓冲区充当当前缓冲区,期间的同步操作均顺序写入到另一缓冲区中,因此不会因为回填造成整个系统停下来等待的情况;两块缓冲区轮流交替使用,保证了系统的正常运转。附图说明图1是本专利技术实施例提供的一种闪存文件系统的结构示意图;图2是本专利技术实施例提供的闪存文件系统的数据结构示意图;图3是本专利技术实施例的合并记录的数据结构示意图;图4是本专利技术实施例的写入闪存缓冲区的数据结构示意图;图5是本专利技术实施例的回填操作的数据结构示示意图。图6是本专利技术实施例提供的另一种闪存文件系统的结构示意图;图7是本专利技术实施例的故障恢复的数据结构示意图;图8是本专利技术实施例提供的闪存文件系统的数据管理方法的流程示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在本专利技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“本文档来自技高网...

【技术保护点】
1.一种闪存文件系统,其特征在于,包括:创建模块、标记模块、同步模块和回填模块;其中,创建模块,用于在创建文件系统时,将闪存划分成文件系统区和闪存缓冲区;标记模块,用于在有数据写入且写入的数据量小于或等于预设标记阈值时,在内存缓存中将写入数据标记为脏数据,其中,所述标记阈值用于表示写入内存缓存的需要按数据粒度进行标记的数据量大小;同步模块,用于在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入闪存缓冲区,并当闪存缓冲区已满时,通知回填模块;回填模块,用于接收到同步模块的通知,读出闪存缓冲区中的脏数据并将其写入文件系统区,并擦除闪存缓冲区。

【技术特征摘要】
1.一种闪存文件系统,其特征在于,包括:创建模块、标记模块、同步模块和回填模块;其中,创建模块,用于在创建文件系统时,将闪存划分成文件系统区和闪存缓冲区;标记模块,用于在有数据写入且写入的数据量小于或等于预设标记阈值时,在内存缓存中将写入数据标记为脏数据,其中,所述标记阈值用于表示写入内存缓存的需要按数据粒度进行标记的数据量大小;同步模块,用于在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入闪存缓冲区,并当闪存缓冲区已满时,通知回填模块;回填模块,用于接收到同步模块的通知,读出闪存缓冲区中的脏数据并将其写入文件系统区,并擦除闪存缓冲区。2.根据权利要求1所述的闪存文件系统,其特征在于:所述闪存缓冲区包括第一闪存缓冲区和第二闪存缓冲区;其中,所述同步模块具体用于:在需要进行数据同步时,将所述内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入第一闪存缓冲区;当第一闪存缓冲区已满时,发送第一通知至回填模块,并在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入第二闪存缓冲区;第二闪存缓冲区已满时,发送第二通知至回填模块,并在需要进行数据同步时,将内存缓存中的所有脏数据或要同步的文件的脏数据合并后写入第一闪存缓冲区;所述回填模块具体用于:当接收到所述同步模块的第一通知时,读出第一闪存缓冲区中的脏数据并将其写入文件系统区,并擦除第一闪存缓冲区;当接收到同步模块的第二通知时,读出第二闪存缓冲区中的脏数据并将其写入文件系统区,并擦除第二闪存缓冲区。3.根据权利要求1所述的闪存文件系统,其特征在于:所述标记模块具体用于:在有数据写入且写入的数据量小于或等于所述标记阈值时,将所述写入数据对应的文件的索引节点号、数据段所在的页面号、页面内的偏移量、数据段的长度以及数据段内容封装成记录,将记录添加至预设的脏数据列表;并将写入数据对应的内存缓存页面的引用计数加一。4.根据权利要求3所述的闪存文件系统,其特征在于:所述同步模块具体用于:根据所述写入数据对应的文件的索引节点号查找该文件的所有记录,申请新的内存页面,将多个记录的内容顺序拷贝至所述新的内存页面,将所述新的内存页面的内容顺序写入到闪存缓冲区。5.根据权利要求1所述的闪存文件系统,其特征在于:所述...

【专利技术属性】
技术研发人员:舒继武罗圣美陆游游张佳程杨洪章
申请(专利权)人:中兴通讯股份有限公司清华大学
类型:发明
国别省市:广东,44

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

1