CN103744961A - 用可重构的文件系统目录树提高非易失性存储寿命的方法 - Google Patents

用可重构的文件系统目录树提高非易失性存储寿命的方法 Download PDF

Info

Publication number
CN103744961A
CN103744961A CN201410005081.4A CN201410005081A CN103744961A CN 103744961 A CN103744961 A CN 103744961A CN 201410005081 A CN201410005081 A CN 201410005081A CN 103744961 A CN103744961 A CN 103744961A
Authority
CN
China
Prior art keywords
page
metadata
tree
file system
directory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410005081.4A
Other languages
English (en)
Other versions
CN103744961B (zh
Inventor
舒继武
陆游游
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201410005081.4A priority Critical patent/CN103744961B/zh
Publication of CN103744961A publication Critical patent/CN103744961A/zh
Application granted granted Critical
Publication of CN103744961B publication Critical patent/CN103744961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

用可重构的文件系统目录树提高非易失性存储寿命的方法属于文件系统领域。其特征在于,包括内存虚拟目录树,将文件系统目录树元数据的更新记录到内存,而无需写回持久目录树;通过嵌入式链接方法提供文件系统目录树的树形结构,即在被索引页面中嵌入索引链接信息的方式;通过持久元数据日志式写入方法提供的文件系统目录树的内容更新,即将多个元数据页面压缩并以日志形式写入的方式;以及故障恢复后的文件系统目录树的快速重构方法。根据本发明的实施例的方法,可有效缓解元数据写回操作造成的存储系统性能与寿命影响,并提供了文件系统目录树元数据的高速访问以及故障恢复后的快速重构。

Description

用可重构的文件系统目录树提高非易失性存储寿命的方法
技术领域
本发明涉及文件系统领域,特别涉及文件系统目录树的组织方式与故障恢复方法。
背景技术
非易失性存储(non-volatile memory,即NVM),如闪存(flash memory),的存储单元存在写入次数有限的问题。随着写入次数的增加,存储单元保存数据的能力减弱,直至不能有效地保持数据的状态。这种有限次写入次数的问题被称为非易失性存储的寿命问题。
传统针对磁盘存储设计的文件系统尚未有效考虑写入数据量引入的存储设备寿命问题。其中,文件系统目录树的设计会导致元数据页面频繁地分散写回到存储设备,其呈现“分散小写”与“频繁写回”两个显著特征。“分散小写”是指在文件系统中单个元数据操作通常涉及多个页面的写入,但每个页面更新的字节数很小。例如,文件创建操作需要修改包括文件inode,文件目录项,父目录inode以及空间管理bitmap等多个元数据页面;但每个页面里面的修改极小,如inode仅为128字节(ext2),空间管理bitmap仅修改几个比特,远小于4K的页面大小。“频繁写回”是指文件系统为防止意外掉电等故障发生导致数据不一致或者数据丢失,从而频繁地写回内存中的脏元数据页面。
文件系统目录树的“分散小写”与“频繁写回”不仅影响存储系统性能,也损害了存储设备的寿命。一方面,文件系统目录树的元数据页面频繁分散写回,既体现为随机写入,又体现为操作次数的增加,从而影响存储性能。另一方面,由于存储设备以页面粒度大小写回,文件系统目录树的“分散小写”使得写回到存储设备的数据量远大于元数据实际更新大小。同时,“频繁写回”也降低了缓存的缓冲作用,使得写回的数据量大大增加。因而文件系统目录树的维护也极大地影响了存储设备的寿命。
发明内容
本发明的目的旨在至少解决上述的技术缺陷之一。
本发明的特征在于,是在文件系统中依次按以下步骤实现的:
步骤(1),在所述文件系统中构建一个文件系统目录树管理模块,包括:内存中的内存虚拟目录树Virtual Directory Tree,简称VDT,和持久性存储;所述持久性存储包括:持久目录树Persistent Directory Tree,简称PDT,和持久元数据日志;其中,
内存虚拟目录树VDT是用所述内存虚拟目录树元数据页面Mvdt表示,包括:内存目录树元数据页面Mmemory和因内存替换而需写回到持久性存储的元数据页面Muptodate,因而Mvdt=Mmemory+Muptodate
持久目录树PDT是用所述持久目录树元数据页面Mpdt表示,即存储于持久性存储中的目录树元数据页面Mdisk,包括:所述因内存替换而写回的Muptodate,内存中未被访问的元数据页面Muntouched以及内存中有该页面缓存的元数据页面Mobsolete,因而Mpdt=Mdisk=Muptodate+Muntouched+Mobsolete
两种所述目录树元数据页面至少包括:索引节点页面inode page和目录项节点页面directory entry node page;其中:
索引节点页面是索引节点的集合,索引节点包括:文件的索引节点和目录的索引节点;其中,文件/目录的索引节点记录了一个文件/目录的创建者、拥有者、文件大小、创建时间、修改时间、访问时间、访问控制列表以及数据页面索引;
目录项节点页面是目录项的集合,目录项记录了文件/目录的名字及其索引节点号;
所述文件系统目录树管理模块还含有:
在被索引页面中嵌入索引链接信息的两种嵌入式链接方式以维护文件系统目录树的树形结构一致性:
“文件/目录索引节点-数据页面”链接方式,在数据页面的元数据区域至少记录以下信息:所述的文件/目录的索引节点号ino、数据逻辑偏移off、有效数据长度len以及当前页面更新版本ver,
“目录项-文件/目录索引节点”链接方式,用于生成创建记录,其中至少包括:父目录的索引节点号ino,自身索引节点号以及目录项内容,以写入持久元数据日志,
为了实现所述的两种嵌入式链接方式,所述索引节点的信息中还包括:索引节点的生命周期<Vborn,Vcur>,Vborn表示该索引节点的创建版本,Vcur表示该索引节点的当前更新版本;在所述索引节点被删除时,Vborn值置为(Vcur+1),
从而形成了一个在意外故障发生后,由于内存数据丢失而需要把所述持久性存储中记录的信息写回内存以重构的内存虚拟目录树,
由于触发条件不同,在写回时要分别执行a-d四类不同的操作:
a.内存替换写回,是一种因内存容量紧张而导致的元数据页面写回,所述元数据页面被写回到所述持久目录树,即加入所述的因内存替换而需写回到持久性存储的元数据页面Muptodate
b.检查点写回,是一种因检查点操作导致的元数据页面写回,所述元数据页面写回到所述持久目录树,
c.对因维护文件系统目录树一致性导致的元数据页面写回,按照所述的两种嵌入式链接方式分别写回:对“文件/目录索引节点-数据页面”链接方式,在数据页面中嵌入索引链接信息的方式写回到所述的持久目录树;对“目录项-文件/目录索引节点”链接方式,生成创建记录,写回到所述的持久元数据日志,
d.对因维护文件系统目录树内容持久性导致的元数据页面写回,用持久元数据日志式写入方法写回到所述的持久元数据日志;
步骤(2),构建一个文件系统目录树管理系统,包括:持久性存储器、内存储器以及一个所述文件系统目录树管理模块,
其中,文件系统目录树管理模块设有:维护文件系统目录树的控制信号,所述写回控制信号包括:内存紧张控制信号,检查点控制信号、维护文件系统目录树一致性控制信号、文件系统目录树内容更新持久性控制信号以及故障修复控制信号,
还设有:不同类型的元数据写回操作指令以及文件系统内存虚拟目录树维护操作指令;
步骤(3),系统依次按以下步骤实现文件系统目录树的重构:
步骤(3.1),文件系统目录树管理模块维护内存虚拟目录树结构,将文件系统对文件系统目录树元数据页面的修改操作执行更新到内存虚拟目录树的操作,
步骤(3.2),所述持久性存储控制器判断写回控制信号的类型,执行写回操作,执行步骤(3.1),
若为内存紧张控制信号,则判为因内存容量紧张导致的元数据页面写回操作,把所述元数据页面写回到所述持久目录树,
若为检查点操作控制信号,其中至少包括正常关机和日志删除信号,则把因所述检查点操作导致的元数据页面写回操作中的元数据页面写回到所述持久目录树,
若为维护文件系统目录树树形结构一致性的控制信号,则把所需维护文件系统目录树一致性的元数据页面用嵌入式链接方法写回所述的持久目录树或持久元数据日志,再通过比对所记录的版本信息判断被维护数据页面的有效性,所述嵌入式链接方法包括“索引节点-数据页面”和“目录项-索引节点”两种链接:
若为“索引节点-数据页面”链接,则在数据页面的元数据区域至少记录一下信息:索引节点号、数据偏移、有效数据长度和版本号,
若为“目录项-索引节点”链接,则声称记录以下信息的创建记录:索引节点内容、父目录索引节点号以及目录项内容,并把所述创建记录写回持久元数据日志,
在所述索引节点中还包括:所述节点的生命周期<Vborn,Vcur>,Vborn表示该索引节点的创建版本,Vcur表示该索引节点的当前更新版本,
若为文件系统目录树的内容更新持久化控制信号,则把多个元数据页面压缩并以日志形式写回持久元数据日志,或者文件系统目录树跟踪被修改的脏数据的位置及大小,再把多个元数据页面的脏数据紧凑组合后写回所述持久元数据日志,
步骤(3.3),若为故障修复控制信号,则依次通过重构单个文件/目录的结构、重构目录树结构以及更新目录树内容以完成文件系统目录树的快速重构,
步骤(3.3.1),扫描未索引空间位置中的数据页面,读取其中的“索引节点-数据页面”节点链接,把所述数据页面链接到相应索引节点,重复执行步骤(3.3.1),一直到所述为索引空间位置扫描结束为止,完成单个文件/目录的重构,
步骤(3.3.2),扫描持久元数据日志,查找所有的创建和删除记录,把索引节点<Vborn,Vcur>更新到最新状态,删除小于Vborn的数据页面版本,一直到步骤(3.3.1)得到的单个文件/目录中的所有数据页面的有效性检查执行完毕,对得到的有效的数据节点,执行创建操作,按其中记录的“目录项-索引节点”链接关系,更新存储于父目录中的目录项,从而把所述索引节点链接到文件系统目录树中,完成文件系统目录树的结构重建,
步骤(3.3.3),扫描持久元数据日志中的其它元数据,把文件系统目录树中的元数据页面更新到最新状态,完成文件系统目录树的内容更新,从而完成文件系统目录树的恢复,结束。
为此,本发明的目的在于用可重构的文件系统目录树提高非易失性存储寿命,同时降低文件系统目录树元数据随机写回频率,减少写回数据量。
根据本发明的方法,内存虚拟目录树可提供高速的目录树元数据访问,且脏元数据页面无需写回到持久目录树中原有位置,从而避免了元数据页面写回引入的频繁的随机小写。同时,该方法提供了故障恢复后文件系统目录树的快速重构。尽管由于脏元数据页面未能及时写回持久目录树中原有位置,持久目录树的树形结构与元数据页面内容未能维持最新状态。该方法利用嵌入式链接和持久元数据日志式写入两种方法分别提供文件系统目录树的一致性(树形结构)与持久性(元数据页面内容)的更新。在故障恢复阶段,通过分步扫描从而快速重构文件系统目录树。
根据本发明的方法,用可重构的文件系统目录树提高非易失性存储寿命的方法既缓解了文件系统目录树元数据操作对存储系统的性能和寿命的影响,也保证了文件系统目录树的一致性、持久性等特性,并提供了故障发生后的快速恢复。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对本发明的描述中将变得明显和容易理解,其中:
图1为本发明的用可重构的文件系统目录树提高非易失性存储寿命的方法的主要模块示意图;
图2为本发明的文件系统目录树的结构示意图:实线箭头
Figure BDA0000453700190000051
表示“索引节点-数据页面”链接,虚线箭头
Figure BDA0000453700190000052
表示“目录项-索引节点”链接;
图3为本发明的索引节点-数据页面链接的嵌入式链接方法的示意图;
图4为本发明的目录项-索引节点链接的嵌入式链接方法以及内存中元数据页面中脏数据部分标记的示意图;
图5为本发明的文件系统目录树的故障恢复的流程图;
图6为本发明的程序流程框图。
具体实施方式
下面详细描述本发明的具体实施方式,并在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
文件系统由两个主要模块构成:文件系统命名空间管理模块和文件系统存储管理模块。文件系统存储管理模块主要功能为管理文件数据在存储设备上的数据分布与数据布局,为文件系统提供文件逻辑偏移到存储设备地址的查询。文件系统命名空间管理模块主要功能为维护文件系统目录树,为文件系统提供文件名到文件索引节点的查询。
文件系统目录树维护包括结构和内容两方面的维护。文件系统目录树的结构维护指维护目录树的树形结构的一致性状态。该一致性要求树形结构中每两个有链接关系的页面同时被原子性更新,即同时维持旧状态,或者同时更新到新状态。文件系统目录树的内容维护指维护目录树中元数据页面更新的持久性,即其中数据在系统故障后仍能恢复。由于内存为易失性存储,因而文件系统目录树维护要求目录树元数据页面及时地写回非易失性存储设备。
文件系统目录树元数据页面主要包括索引节点页面(inode page)和目录项节点页面(directory entry node page)两类。索引节点页面为索引节点的集合,目录项节点页面为目录项的集合。索引节点既包括目录的索引节点,也包括文件的索引节点。索引节点记录了一个文件/目录的创建者,拥有者,文件大小,创建时间,修改时间,访问时间,访问控制列表,数据页面索引等信息。目录项节点指目录的内容,即该目录下所有文件与目录的目录项(directory entry,即dirent)集合。目录项记录了一个文件/目录的名字与索引节点号等信息。
图1为本发明的主要模块示意图。如图1所示,文件系统目录树的管理模块包括内存中的内存虚拟目录树,持久化存储中的文件系统持久数据结构(包括持久目录树、持久数据等)、持久元数据日志,以及软件系统中写回逻辑(包括内存替换/检查点写回、一致性写回、持久性写回)。
本发明的用可重构的文件系统目录树提高非易失性存储寿命的方法,包括以下步骤:
步骤1:文件系统维护内存虚拟目录树,该目录树中的元数据页面更新仅更新至内存目录树,而无需更新至持久目录树;
步骤2:文件系统目录树的树形结构维护,即一致性写回,通过嵌入式链接方法提供,即在被索引页面中嵌入索引链接信息的方式;
步骤3:文件系统目录树的内容更新,即持久性写回,通过持久元数据日志式写入方法提供,即将多个元数据页面压缩并以日志形式写入的方式;
步骤4:在故障发生后,通过重构单个文件/目录的结构、重构目录树结构以及更新目录树内容等步骤完成文件系统目录树的快速重构。
在本发明中,内存虚拟目录树(Volatile Directory Tree,VDT)由两部分组成:内存目录树元数据页面部分(Mmemory)和因内存替换写回持久性存储的元数据页面部分(Muptodate)。持久目录树(Persistent Directory Tree,PDT)指持久性存储中的目录树元数据页面(Mdisk)。持久性存储中目录树元数据页面包含三部分:因内存替换写回的元数据页面部分(Muptodate),未被访问(即内存没有该页面缓存)的元数据页面部分(Muntouched),以及内存含有该页面缓存的元数据页面部分(Mobsolete)。用Mvdt、Mpdt分别表示内存虚拟目录树、持久目录树的元数据页面集合,则应有:
Mvdt=Mmemory+Muptodate
Mpdt=Mdisk=Muptodate+Muntouched+Mobsolete
由于元数据页面仅更新至内存元数据页面,内存目录树维持最新的结构与内容,而持久目录树不能维持最新的结构与内容。在意外故障发生后,内存数据丢失,需要从持久性存储中记录的信息中重构目录树。以下部分将对写回操作与故障恢复做示例说明。
在本发明中,写回操作根据触发条件不同分为四类:(1)内存替换写回:对因内存容量紧张导致的元数据页面替换写回,该元数据页面写回到持久目录树;(2)检查点写回:对因检查点操作导致的元数据页面写回,该元数据页面写回到持久目录树;(3)一致性写回:对因维护文件系统目录树一致性导致的元数据页面写回,该元数据页面通过步骤2中所述嵌入式链接方法写回;(4)持久性写回:对因维护文件系统目录树内容持久性导致的元数据页面写回,该元数据页面通过步骤3中所述持久元数据日志式写入方法写回。
检查点(checkpoint)操作指将内存目录树元数据页面中脏数据页面写回持久性存储的操作,即使得持久目录树更新到最新状态,与内存虚拟目录树一致。检查点操作触发条件包括正常关机、日志删除等。检查点操作可降低故障恢复时的重构代价。例如在正常关机时进行检查点操作,下次开机无需故障恢复操作,因为所读取的持久目录树已为最新状态。
在本发明中,一致性写回采用嵌入式链接的方法。嵌入式链接的方法的主要特征为:将树形结构每个链接中链接元数据部分与被链接元数据部分合并存储。文件系统目录树链接包含两种链接形式:索引节点-数据页面(inode-data)链接,目录项-索引节点(dirent-inode)链接。图2为文件系统目录树链接示意图。索引节点-数据页面链接包含两类链接:文件的索引节点-数据页面链接,和目录的索引节点-目录项页面链接。
这两种不同形式的链接采用了不同了组织方式。图3为索引节点-数据页面链接的嵌入式链接方法示例。数据页面将索引节点信息记录于数据页面中。在数据页面中记录的索引节点信息为<ino,off,len,ver>,其中ino表示索引节点号,off表示该数据页面在索引节点所指示的文件中的逻辑偏移,len指该页面中有效数据长度,ver表示当前页面更新的版本。该方法可以两种方式实施:一种方式是利用页面的元数据区域记录,该方式适用于,如闪存存储中每个页面包含一定大小的元数据区域,该元数据区域与页面数据的读写为原子性操作(即读写同时成功或失败);另一种方式将该部分记录于数据内容部分,该方式适用于数据页面没有额外元数据区域的情况,如传统磁盘未提供用户可访问的额外元数据区域。
图4为目录项-索引节点链接的嵌入式链接方法示例。由于目录项中包含文件/目录名字,为非定长字段,因此索引节点-数据页面链接的嵌入式链接方法中在被链接页面记录链接信息的方式不适用。目录项-索引节点链接的嵌入式链接方法将目录项部分与索引节点部分合并为一个创建记录(create record),并写入持久元数据日志中的新的页面中。在创建记录中除了记录着两部分的内容外,还包括<lba,off,len,ver>的信息,其中lba表示原有元数据页面的逻辑地址,off表示目录项/索引节点在元数据页面内部偏移,len表示目录项/索引节点的有效数据长度,ver表示目录项/索引节点的更新版本。创建记录被标记为创建的类型,并与其它元数据更新一同写入持久元数据日志区域。
嵌入式链接方法减少了元数据页面的写入,且提供了元数据操作的一致性。嵌入式链接方式将链接元数据部分与被链接数据部分组合,仅更新数据页面或含有创建记录的页面,从而避免了多个元数据页面的更新。同时,由于在持久性存储中的单个页面更新为原子操作,提供了元数据操作的一致性,故而避免了因多个元数据页面更新引入的文件系统日志(journaling)机制。
在本发明中,删除操作采用了版本标记的方法标记索引节点与数据页面的有效期。由于文件系统中文件删除后,索引节点可被重用为新的文件,为避免上述嵌入式方法中将过期数据页面链接到新的索引节点,故采用版本标记方法。版本标记方法具体为:在索引节点中增加该索引节点的生命周期<Vborn,Vcur>,Vborn表示该索引节点的创建版本,Vcur表示该索引节点的当前更新版本;当该索引节点被删除时,Vborn的值被置为(Vcur+1)。数据页面通过比对其所记录版本信息判断该数据页面的有效性:当且仅当数据页面的版本不小于Vborn,数据页面有效。
在本发明中,为减少故障失效后扫描查找未链接数据页面的代价,数据页面更新到特定的逻辑地址空间,该空间被称为未索引数据空间。由于故障发生后,内存虚拟目录树丢失,且数据页面采用嵌入式链接方式,从持久目录树中并不能访问到数据页面,因而需要扫描查找出未链接的数据页面。使用未索引数据空间限制数据页面更新地址的方法可减少故障恢复时的扫描代价。
在本发明中,持久性写回采用持久元数据日志式写入方法。持久元数据日志式写入方法在内存中跟踪文件系统目录树的元数据页面中的修改部分,即脏元数据部分。如图4所示,标记方法采用仅需记录每次修改部分在其所在元数据页面中的偏移,以及修改部分的大小,用<len,off>元组表示。对于单个元数据页面的多次修改采用链表的方式将<len,off>元组链接到元数据页面上。
持久性写回的触发条件包括用户显式调用同步操作(如sync)、内核后台线程周期性写回(如pdflush)等。在持久性写回时,持久元数据日志式写入方法查找多个脏元数据页面,将其中脏元数据部分拼接后写入持久性存储中的持久元数据日志部分。
持久化元数据日志写满后需要删除时,需要先执行检查点操作,然后直接丢弃已写日志即可。
持久元数据日志(metadata persistence logs)与传统文件系统日志(journaling)有以下不同。(1)作用不同:持久元数据日志主要作为用提供系统持久性,仅记录因持久化需求而导致的元数据页面写回,而文件系统日志主要作用为提供系统一致性,记录所有元数据页面的写回操作;(2)页面组织方式不同:持久元数据日志以记录(record)为粒度,仅记录元数据页面中脏元数据部分,而文件系统日志以页面(page)为粒度,记录元数据页面的所有内容;(3)访问方式不同:持久性元数据仅在故障恢复时读取,而文件系统日志需要周期性访问以写回到元数据元数据位置(即持久目录树中的位置)。
在本发明中,如图5所示,用可重构的文件系统目录树提高非易失性存储寿命的方法的故障恢复,包括以下步骤:
步骤(1)扫描未索引空间区域,查找所有未链接数据页面,并链接到相应索引节点,完成单个文件/目录的结构重构;
步骤(1.1)根据记录的未索引空间位置,依次检查其中数据页面;
步骤(1.2)读取该数据页面中的嵌入式链接信息,即“索引节点-数据页面”链接,将该页面链接到相应索引节点;
步骤(1.3)等待未索引空间区域扫描完毕,所有未链接数据页面已被链接到相应索引节点;
步骤(2)扫描持久元数据日志,查找所有创建、删除记录,更新索引节点版本,完成单个文件/目录中有效数据的筛选;同时根据最新创建记录,将有效索引节点链接到其父目录的目录项中,完成文件系统目录树的结构重构;
步骤(2.1)查找所有创建、删除操作,更新索引节点的<Vborn,Vcur>到最新状态;
步骤(2.2)对步骤(1)中重构的单个文件/目录中的数据页面进行有效性检查:若页面版本小于Vborn,则删除该数据页面;否则,保留该数据页面;
步骤(2.3)等到步骤(1)中重构的单个文件/目录的有效性数据页面筛选完成,完成单个文件/目录的结构重构和数据内容更新;
步骤(2.4)对有效的索引节点,根据最新创建记录中“目录项-索引节点”链接关系,更新其父目录的目录项,从而将该索引节点链接到文件系统目录树中,完成文件系统目录树的结构重构;
步骤(3)扫描持久元数据日志中的其它内容,将文件系统目录树中的元数据页面更新到最新状态,从而完成文件系统目录树的内容更新;
步骤(4)至此,完成文件系统目录树的恢复。
在本发明中,用可重构的文件系统目录树提高非易失性存储寿命的方法既缓解了文件系统目录树元数据操作对存储系统的性能和寿命的影响,也保证了文件系统目录树的一致性、持久性等特性,并提供了故障发生后的快速恢复。
内存虚拟目录树可提供高速的目录树元数据访问,且脏元数据页面无需写回到持久目录树中原有位置,从而避免了元数据页面写回引入的频繁的随机小写。同时,该方法提供了故障恢复后文件系统目录树的快速重构。尽管由于脏元数据页面未能及时写回持久目录树中原有位置,持久目录树的树形结构与元数据页面内容未能维持最新状态。该方法利用嵌入式链接和持久元数据日志式写入两种方法分别提供文件系统目录树的一致性(树形结构)与持久性(元数据页面内容)的更新,从而分别提供了故障发生后的文件系统目录树的结构重构和内容更新的信息。在故障恢复阶段,通过分步扫描从而快速重构文件系统目录树。
尽管上面已经示出和描述了本发明的实施方式,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (1)

1.用可重构的文件系统目录树提高非易失性存储寿命的方法,其特征在于,是在文件系统中依次按以下步骤实现的:
步骤(1),在所述文件系统中构建一个文件系统目录树管理模块,包括:内存中的内存虚拟目录树Virtual Directory Tree,简称VDT,和持久性存储;所述持久性存储包括:持久目录树Persistent Directory Tree,简称PDT,和持久元数据日志;其中,
内存虚拟目录树VDT是用所述内存虚拟目录树元数据页面Mvdt表示,包括:内存目录树元数据页面Mmemory和因内存替换而需写回到持久性存储的元数据页面Muptodate,因而Mvdt=Mmemory+Muptodate
持久目录树PDT是用所述持久目录树元数据页面Mpdt表示,即存储于持久性存储中的目录树元数据页面Mdisk,包括:所述因内存替换而写回的Muptodate,内存中未被访问的元数据页面Muntouched以及内存中有该页面缓存的元数据页面Mobsolete,因而Mpdt=Mdisk=Muptodate+Muntouched+Mobsolete
两种所述目录树元数据页面至少包括:索引节点页面inode page和目录项节点页面directory entry node page;其中:
索引节点页面是索引节点的集合,索引节点包括:文件的索引节点和目录的索引节点;其中,文件/目录的索引节点记录了一个文件/目录的创建者、拥有者、文件大小、创建时间、修改时间、访问时间、访问控制列表以及数据页面索引;
目录项节点页面是目录项的集合,目录项记录了文件/目录的名字及其索引节点号;
所述文件系统目录树管理模块还含有:
在被索引页面中嵌入索引链接信息的两种嵌入式链接方式以维护文件系统目录树的树形结构一致性:
“文件/目录索引节点-数据页面”链接方式,在数据页面的元数据区域至少记录以下信息:所述的文件/目录的索引节点号ino、数据逻辑偏移off、有效数据长度len以及当前页面更新版本ver,
“目录项-文件/目录索引节点”链接方式,用于生成创建记录,其中至少包括:父目录的索引节点号ino,自身索引节点号以及目录项内容,以写入持久元数据日志,
为了实现所述的两种嵌入式链接方式,所述索引节点的信息中还包括:索引节点的生命周期<Vborn,Vcur>,Vborn表示该索引节点的创建版本,Vcur表示该索引节点的当前更新版本;在所述索引节点被删除时,Vborn值置为(Vcur+1),
从而形成了一个在意外故障发生后,由于内存数据丢失而需要把所述持久性存储中记录的信息写回内存以重构的内存虚拟目录树,
由于触发条件不同,在写回时要分别执行a-d四类不同的操作:
a.内存替换写回,是一种因内存容量紧张而导致的元数据页面写回,所述元数据页面被写回到所述持久目录树,即加入所述的因内存替换而需写回到持久性存储的元数据页面Muptodate
b.检查点写回,是一种因检查点操作导致的元数据页面写回,所述元数据页面写回到所述持久目录树,
c.对因维护文件系统目录树一致性导致的元数据页面写回,按照所述的两种嵌入式链接方式分别写回:对“文件/目录索引节点-数据页面”链接方式,在数据页面中嵌入索引链接信息的方式写回到所述的持久目录树;对“目录项-文件/目录索引节点”链接方式,生成创建记录,写回到所述的持久元数据日志,
d.对因维护文件系统目录树内容持久性导致的元数据页面写回,用持久元数据日志式写入方法写回到所述的持久元数据日志;
步骤(2),构建一个文件系统目录树管理系统,包括:持久性存储器、内存储器以及一个所述文件系统目录树管理模块,
其中,文件系统目录树管理模块设有:维护文件系统目录树的控制信号,所述写回控制信号包括:内存紧张控制信号,检查点控制信号、维护文件系统目录树一致性控制信号、文件系统目录树内容更新持久性控制信号以及故障修复控制信号,
还设有:不同类型的元数据写回操作指令以及文件系统内存虚拟目录树维护操作指令;
步骤(3),系统依次按以下步骤实现文件系统目录树的重构:
步骤(3.1),文件系统目录树管理模块维护内存虚拟目录树结构,将文件系统对文件系统目录树元数据页面的修改操作执行更新到内存虚拟目录树的操作,
步骤(3.2),所述持久性存储控制器判断写回控制信号的类型,执行写回操作,执行步骤(3.1),
若为内存紧张控制信号,则判为因内存容量紧张导致的元数据页面写回操作,把所述元数据页面写回到所述持久目录树,
若为检查点操作控制信号,其中至少包括正常关机和日志删除信号,则把因所述检查点操作导致的元数据页面写回操作中的元数据页面写回到所述持久目录树,
若为维护文件系统目录树树形结构一致性的控制信号,则把所需维护文件系统目录树一致性的元数据页面用嵌入式链接方法写回所述的持久目录树或持久元数据日志,再通过比对所记录的版本信息判断被维护数据页面的有效性,所述嵌入式链接方法包括“索引节点-数据页面”和“目录项-索引节点”两种链接:
若为“索引节点-数据页面”链接,则在数据页面的元数据区域至少记录一下信息:索引节点号、数据偏移、有效数据长度和版本号,
若为“目录项-索引节点”链接,则声称记录以下信息的创建记录:索引节点内容、父目录索引节点号以及目录项内容,并把所述创建记录写回持久元数据日志,
在所述索引节点中还包括:所述节点的生命周期<Vborn,Vcur>,Vborn表示该索引节点的创建版本,Vcur表示该索引节点的当前更新版本,
若为文件系统目录树的内容更新持久化控制信号,则把多个元数据页面压缩并以日志形式写回持久元数据日志,或者文件系统目录树跟踪被修改的脏数据的位置及大小,再把多个元数据页面的脏数据紧凑组合后写回所述持久元数据日志,
步骤(3.3),若为故障修复控制信号,则依次通过重构单个文件/目录的结构、重构目录树结构以及更新目录树内容以完成文件系统目录树的快速重构,
步骤(3.3.1),扫描未索引空间位置中的数据页面,读取其中的“索引节点-数据页面”节点链接,把所述数据页面链接到相应索引节点,重复执行步骤(3.3.1),一直到所述为索引空间位置扫描结束为止,完成单个文件/目录的重构,
步骤(3.3.2),扫描持久元数据日志,查找所有的创建和删除记录,把索引节点<Vborn,Vcur>更新到最新状态,删除小于Vborn的数据页面版本,一直到步骤(3.3.1)得到的单个文件/目录中的所有数据页面的有效性检查执行完毕,对得到的有效的数据节点,执行创建操作,按其中记录的“目录项-索引节点”链接关系,更新存储于父目录中的目录项,从而把所述索引节点链接到文件系统目录树中,完成文件系统目录树的结构重建,
步骤(3.3.3),扫描持久元数据日志中的其它元数据,把文件系统目录树中的元数据页面更新到最新状态,完成文件系统目录树的内容更新,从而完成文件系统目录树的恢复,结束。
CN201410005081.4A 2014-01-06 2014-01-06 用可重构的文件系统目录树提高非易失性存储寿命的方法 Active CN103744961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410005081.4A CN103744961B (zh) 2014-01-06 2014-01-06 用可重构的文件系统目录树提高非易失性存储寿命的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410005081.4A CN103744961B (zh) 2014-01-06 2014-01-06 用可重构的文件系统目录树提高非易失性存储寿命的方法

Publications (2)

Publication Number Publication Date
CN103744961A true CN103744961A (zh) 2014-04-23
CN103744961B CN103744961B (zh) 2016-10-19

Family

ID=50501979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410005081.4A Active CN103744961B (zh) 2014-01-06 2014-01-06 用可重构的文件系统目录树提高非易失性存储寿命的方法

Country Status (1)

Country Link
CN (1) CN103744961B (zh)

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105607960A (zh) * 2015-10-26 2016-05-25 成都华为技术有限公司 文件系统目录树修复方法和装置
WO2016082156A1 (zh) * 2014-11-27 2016-06-02 华为技术有限公司 元数据的恢复方法及装置
CN105653411A (zh) * 2015-12-28 2016-06-08 哈尔滨工业大学 支持局部永久故障恢复的多核处理器芯片可重构系统
CN105701146A (zh) * 2015-12-28 2016-06-22 小米科技有限责任公司 创建目录的方法和装置
CN105868396A (zh) * 2016-04-19 2016-08-17 上海交通大学 内存文件系统的多版本控制方法
CN106202492A (zh) * 2016-07-19 2016-12-07 浪潮(北京)电子信息产业有限公司 一种网络文件系统的元数据服务优化方法及系统
CN106326229A (zh) * 2015-06-17 2017-01-11 百富计算机技术(深圳)有限公司 一种嵌入式系统的文件存储方法和装置
CN106649608A (zh) * 2016-11-29 2017-05-10 郑州云海信息技术有限公司 分布式文件系统小文件性能提升方法、目录生成器及系统
CN106682186A (zh) * 2016-12-29 2017-05-17 华为技术有限公司 文件访问控制列表管理方法和相关装置和系统
CN107015886A (zh) * 2015-11-20 2017-08-04 三星电子株式会社 操作存储设备的方法和操作包括其的数据处理系统的方法
CN107315746A (zh) * 2016-04-26 2017-11-03 清华大学 基于非易失性主存的高效事务文件系统构建方法
CN108021472A (zh) * 2017-11-28 2018-05-11 厦门市美亚柏科信息股份有限公司 ReFS文件系统的格式化恢复方法及存储介质
CN108427648A (zh) * 2017-02-14 2018-08-21 中兴通讯股份有限公司 存储系统页内脏数据索引方法和装置
CN108804625A (zh) * 2018-05-31 2018-11-13 阿里巴巴集团控股有限公司 一种lsm树的优化方法、装置及计算机设备
CN108829345A (zh) * 2018-05-25 2018-11-16 华为技术有限公司 日志文件的数据处理方法和终端设备
CN108897642A (zh) * 2018-06-27 2018-11-27 清华大学 持久性事务内存系统中日志机制的优化方法及装置
CN109491962A (zh) * 2018-11-06 2019-03-19 深圳市网心科技有限公司 一种文件目录树管理方法及相关装置
CN110032542A (zh) * 2019-04-19 2019-07-19 宁波三星医疗电气股份有限公司 一种cramfs文件系统管理方法、装置及电子设备
CN110347647A (zh) * 2019-07-08 2019-10-18 紫光云技术有限公司 一种简易高效的文件系统缓存实现方法
CN110413229A (zh) * 2019-07-10 2019-11-05 华中科技大学 一种数据写入方法
CN111400249A (zh) * 2020-03-06 2020-07-10 深圳市瑞驰信息技术有限公司 一种易于统计文件数量的文件存储系统及存储方法
CN111587428A (zh) * 2017-11-13 2020-08-25 维卡艾欧有限公司 分布式存储系统中的元数据日志
CN111857539A (zh) * 2019-04-25 2020-10-30 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN112307033A (zh) * 2020-11-23 2021-02-02 杭州迪普科技股份有限公司 数据包文件的重构方法、装置及设备
CN112416812A (zh) * 2015-12-30 2021-02-26 华为技术有限公司 访问请求处理方法、装置及计算机系统
CN113297432A (zh) * 2021-06-01 2021-08-24 阿里巴巴新加坡控股有限公司 用于分区拆分与合并的方法、处理器可读介质和系统
CN113467698A (zh) * 2020-03-30 2021-10-01 珠海全志科技股份有限公司 基于文件系统的写方法、装置、计算机设备和存储介质
CN113626380A (zh) * 2020-05-06 2021-11-09 浙江宇视科技有限公司 一种目录结构调整方法、装置、设备及存储介质
CN113742127A (zh) * 2021-09-16 2021-12-03 重庆大学 一种裸闪存文件系统的故障恢复方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1805049A (zh) * 2005-11-22 2006-07-19 武汉国光通信有限公司 一种嵌入式系统中非易失性存储器的数据存取方法
US20120215958A1 (en) * 2011-02-22 2012-08-23 Apple Inc. Variable Impedance Control for Memory Devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1805049A (zh) * 2005-11-22 2006-07-19 武汉国光通信有限公司 一种嵌入式系统中非易失性存储器的数据存取方法
US20120215958A1 (en) * 2011-02-22 2012-08-23 Apple Inc. Variable Impedance Control for Memory Devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曾俊 等: "SONOS非易失性存储器件研究进展", 《电子与封装》 *

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016082156A1 (zh) * 2014-11-27 2016-06-02 华为技术有限公司 元数据的恢复方法及装置
CN105830041A (zh) * 2014-11-27 2016-08-03 华为技术有限公司 元数据的恢复方法及装置
US10423501B2 (en) 2014-11-27 2019-09-24 Huawei Technologies Co., Ltd. Metadata recovery method and apparatus
CN105830041B (zh) * 2014-11-27 2019-06-18 华为技术有限公司 元数据的恢复方法及装置
CN106326229B (zh) * 2015-06-17 2020-04-03 百富计算机技术(深圳)有限公司 一种嵌入式系统的文件存储方法和装置
CN106326229A (zh) * 2015-06-17 2017-01-11 百富计算机技术(深圳)有限公司 一种嵌入式系统的文件存储方法和装置
CN105607960A (zh) * 2015-10-26 2016-05-25 成都华为技术有限公司 文件系统目录树修复方法和装置
US10817469B2 (en) 2015-10-26 2020-10-27 Huawei Technologies Co., Ltd. Method and apparatus for repairing file system directory tree
CN107015886A (zh) * 2015-11-20 2017-08-04 三星电子株式会社 操作存储设备的方法和操作包括其的数据处理系统的方法
CN107015886B (zh) * 2015-11-20 2021-12-21 三星电子株式会社 操作存储设备的方法和操作包括其的数据处理系统的方法
CN105701146A (zh) * 2015-12-28 2016-06-22 小米科技有限责任公司 创建目录的方法和装置
CN105701146B (zh) * 2015-12-28 2019-07-05 小米科技有限责任公司 创建目录的方法和装置
CN105653411A (zh) * 2015-12-28 2016-06-08 哈尔滨工业大学 支持局部永久故障恢复的多核处理器芯片可重构系统
CN105653411B (zh) * 2015-12-28 2019-01-18 哈尔滨工业大学 支持局部永久故障恢复的多核处理器芯片可重构系统
CN112416812A (zh) * 2015-12-30 2021-02-26 华为技术有限公司 访问请求处理方法、装置及计算机系统
CN105868396A (zh) * 2016-04-19 2016-08-17 上海交通大学 内存文件系统的多版本控制方法
CN107315746A (zh) * 2016-04-26 2017-11-03 清华大学 基于非易失性主存的高效事务文件系统构建方法
CN107315746B (zh) * 2016-04-26 2020-08-25 清华大学 基于非易失性主存的高效事务文件系统构建方法
CN106202492A (zh) * 2016-07-19 2016-12-07 浪潮(北京)电子信息产业有限公司 一种网络文件系统的元数据服务优化方法及系统
CN106649608A (zh) * 2016-11-29 2017-05-10 郑州云海信息技术有限公司 分布式文件系统小文件性能提升方法、目录生成器及系统
CN106682186B (zh) * 2016-12-29 2020-06-16 华为技术有限公司 文件访问控制列表管理方法和相关装置和系统
CN106682186A (zh) * 2016-12-29 2017-05-17 华为技术有限公司 文件访问控制列表管理方法和相关装置和系统
CN108427648B (zh) * 2017-02-14 2023-12-01 中兴通讯股份有限公司 存储系统页内脏数据索引方法和装置
CN108427648A (zh) * 2017-02-14 2018-08-21 中兴通讯股份有限公司 存储系统页内脏数据索引方法和装置
CN111587428B (zh) * 2017-11-13 2023-12-19 维卡艾欧有限公司 分布式存储系统中的元数据日志
CN111587428A (zh) * 2017-11-13 2020-08-25 维卡艾欧有限公司 分布式存储系统中的元数据日志
CN108021472A (zh) * 2017-11-28 2018-05-11 厦门市美亚柏科信息股份有限公司 ReFS文件系统的格式化恢复方法及存储介质
CN108021472B (zh) * 2017-11-28 2021-02-02 厦门市美亚柏科信息股份有限公司 ReFS文件系统的格式化恢复方法及存储介质
CN108829345A (zh) * 2018-05-25 2018-11-16 华为技术有限公司 日志文件的数据处理方法和终端设备
CN108804625A (zh) * 2018-05-31 2018-11-13 阿里巴巴集团控股有限公司 一种lsm树的优化方法、装置及计算机设备
CN108804625B (zh) * 2018-05-31 2020-05-12 阿里巴巴集团控股有限公司 一种lsm树的优化方法、装置及计算机设备
CN108897642B (zh) * 2018-06-27 2020-11-27 清华大学 持久性事务内存系统中日志机制的优化方法及装置
CN108897642A (zh) * 2018-06-27 2018-11-27 清华大学 持久性事务内存系统中日志机制的优化方法及装置
CN109491962A (zh) * 2018-11-06 2019-03-19 深圳市网心科技有限公司 一种文件目录树管理方法及相关装置
CN109491962B (zh) * 2018-11-06 2022-02-22 深圳市迅雷网络技术有限公司 一种文件目录树管理方法及相关装置
CN110032542A (zh) * 2019-04-19 2019-07-19 宁波三星医疗电气股份有限公司 一种cramfs文件系统管理方法、装置及电子设备
CN111857539A (zh) * 2019-04-25 2020-10-30 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
CN111857539B (zh) * 2019-04-25 2024-04-12 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
CN110347647A (zh) * 2019-07-08 2019-10-18 紫光云技术有限公司 一种简易高效的文件系统缓存实现方法
CN110413229A (zh) * 2019-07-10 2019-11-05 华中科技大学 一种数据写入方法
CN111400249A (zh) * 2020-03-06 2020-07-10 深圳市瑞驰信息技术有限公司 一种易于统计文件数量的文件存储系统及存储方法
CN113467698A (zh) * 2020-03-30 2021-10-01 珠海全志科技股份有限公司 基于文件系统的写方法、装置、计算机设备和存储介质
CN113626380A (zh) * 2020-05-06 2021-11-09 浙江宇视科技有限公司 一种目录结构调整方法、装置、设备及存储介质
CN113626380B (zh) * 2020-05-06 2024-04-05 浙江宇视科技有限公司 一种目录结构调整方法、装置、设备及存储介质
CN112307033A (zh) * 2020-11-23 2021-02-02 杭州迪普科技股份有限公司 数据包文件的重构方法、装置及设备
CN112307033B (zh) * 2020-11-23 2023-04-25 杭州迪普科技股份有限公司 数据包文件的重构方法、装置及设备
CN113297432A (zh) * 2021-06-01 2021-08-24 阿里巴巴新加坡控股有限公司 用于分区拆分与合并的方法、处理器可读介质和系统
CN113297432B (zh) * 2021-06-01 2023-11-07 阿里巴巴新加坡控股有限公司 用于分区拆分与合并的方法、处理器可读介质和系统
CN113742127A (zh) * 2021-09-16 2021-12-03 重庆大学 一种裸闪存文件系统的故障恢复方法

Also Published As

Publication number Publication date
CN103744961B (zh) 2016-10-19

Similar Documents

Publication Publication Date Title
CN103744961A (zh) 用可重构的文件系统目录树提高非易失性存储寿命的方法
CN111480149B (zh) 持久存储器设备中的预写式日志记录
US7809777B2 (en) File system having deferred verification of data integrity
KR101644125B1 (ko) 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법
US7873683B2 (en) File system having transaction record coalescing
CA2818472C (en) Optimized startup verification of file system integrity
US8959125B2 (en) File system having inverted hierarchical structure
US20070005874A1 (en) File system storing transaction records in flash-like media
JP2011513853A (ja) 連想ストレージのシステムと方法
CN108431783A (zh) 访问请求处理方法、装置及计算机系统
US11537582B2 (en) Data access method, a data access control device, and a data access system
CN111414320B (zh) 基于日志文件系统的非易失内存构建磁盘cache的方法及系统
CN112035294A (zh) 安全日志文件系统及其实现方法和介质
CN108431784A (zh) 访问请求处理方法、装置及计算机系统
KR101456104B1 (ko) 비휘발성 메모리를 위한 듀얼 버퍼링 파일 관리 방법, 파일 관리 시스템 및 대용량 저장 장치
KR100995546B1 (ko) 낸드 플래시 메모리와 비휘발성 램을 사용하는 하이브리드 저장 장치 기반의 데이터베이스 시스템 및 데이터베이스 시스템에서 데이터를 업데이트하는 방법
KR20210052981A (ko) 비휘발성 메모리를 이용한 로그 구조 병합 트리 기반의 데이터 베이스의 데이터 처리 방법
KR101618999B1 (ko) 네트워크 부트 시스템
KR102160527B1 (ko) 스냅샷을 이용한 인메모리 데이터베이스의 데이터 처리 방법 및 인메모리 데이터베이스
JP6644427B2 (ja) Fatファイルシステム及びそのプログラム
JP5751488B2 (ja) ファイル管理装置
Mäkinen Tracing Android applications for file system optimization
KR20140001335A (ko) 데이터 저장 시스템 및 데이터 관리 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant