技术简介:
本专利针对写重定向ROW型文件系统中元数据损坏导致文件无法完全恢复的问题,提出利用系统快照与分配记录信息相结合的解决方案。当检测到元数据损坏时,先将最近系统快照中的文件内容写入当前文件系统形成新文件,再通过该时间段内记录的分配信息(如数据块地址、长度、偏移等)更新新文件内容,从而实现元数据与数据的完整恢复。
关键词:系统快照,分配记录
文件恢复方法及装置制造方法
【专利摘要】本发明涉及一种文件恢复方法及装置,主要应用于写重定向ROW型文件系统,所述文件系统用于管理和存储文件,其中,该方法包括:当检测到第一文件的元数据损坏时,将第一时间点的系统快照对应的所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,其中,所述第一时间点在所述第二时间点之前,所述第二时间点为所述元数据损坏的时间点;根据所述第一文件的分配记录信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。本发明实施例提供的文件恢复方法及装置,通过内部快照技术和文件系统的分配记录信息,就可以快速准确的恢复文件。
【专利说明】文件恢复方法及装置
【技术领域】
[0001]本发明涉及存储【技术领域】,尤其涉及一种文件恢复方法及装置。
【背景技术】
[0002]目前,存储系统大多通过 RAID (Redundant Arrays of Inexpensive Disks,磁盘阵列)冗余备份、远程复制、快照等备份手段增强系统的可靠性。当这些备份手段全部失效时,若有文件的元数据损坏,系统通常采用内部快照即系统快照技术来恢复文件的元数据。
[0003]系统快照技术是指系统每隔一段时间对文件备份一次,当有文件的元数据损坏且其他备份手段全部失效时,通过将系统快照中的数据读出来并写到当前文件系统中来恢复该文件,从而恢复该文件的元数据。但是,若最近一次系统快照到文件的元数据损坏的这段时间,系统对文件中的数据进行过修改,即此时文件的元数据改变,那么利用系统快照恢复的的元数据并不是最新的元数据,因此,系统快照技术并不能恢复全部元数据,仍有可能导致文件部分元数据丢失,从而导致该文件这部分元数据对应的数据丢失。
【发明内容】
[0004]抟术问是页
[0005]有鉴于此,本发明可以解决的技术问题是当文件的元数据损坏且所有备份手段无法恢复时,如何快速恢复该文件。
[0006]解决方案
[0007]为了解决上述技术问题,根据本发明一实施例,提供了一种文件恢复方法,应用于写重定向ROW型文件系统,所述文件系统用于管理和存储文件,该方法包括:
[0008]当检测到第一文件的元数据损坏时,将第一时间点的系统快照对应的所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,
[0009]其中,所述第一时间点在所述第二时间点之前,所述第二时间点为所述元数据损坏的时间点;
[0010]根据所述第一文件的分配记录信息,更新所述第二文件,
[0011]其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。
[0012]对于上述文件恢复方法,在一种可能的实现方式中,所述根据所述第一文件的分配记录信息,更新所述第二文件,包括:
[0013]根据所述系统快照的标识信息,查找所述分配记录信息;
[0014]根据查找到的分配记录信息,更新所述第二文件。
[0015]对于上述文件恢复方法,在一种可能的实现方式中,所述分配记录信息包括所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息。
[0016]对于上述文件恢复方法,在一种可能的实现方式中,所述根据所述系统快照的标识信息,查找所述分配记录信息,包括:
[0017]根据所述系统快照的标识信息,查找所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息;
[0018]根据查找到的分配记录信息,更新所述第二文件,包括:
[0019]根据所述第一文件的每个数据块的块虚拟地址信息,读取所述块虚拟地址信息对应的数据块的内容;
[0020]根据所述每个数据块的长度信息、每个数据块在所述第一文件中的偏移信息以及读取到的每个数据块的内容,更新所述第二文件。
[0021]为了解决上述技术问题,根据本发明另一实施例,提供了一种文件恢复装置,应用于写重定向ROW型文件系统,所述文件系统用于管理和存储文件,该装置包括:
[0022]写入模块,用于当检测到第一文件的元数据损坏时,将第一时间点的系统快照对应的所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,
[0023]其中,所述第一时间点在所述第二时间点之前,所述第二时间点为所述元数据损坏的时间点;
[0024]更新模块,与所述写入模块连接,用于根据所述第一文件的分配记录信息,更新所述第二文件,
[0025]其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。
[0026]对于上述文件恢复装置,在一种可能的实现方式中,所述根据所述第一文件的分配记录信息,更新所述第二文件,包括:
[0027]查找单元,用于根据所述系统快照的标识信息,查找所述分配记录信息;
[0028]更新单元,与所述查找单元连接,用于根据所述查找单元查找到的分配记录信息,更新所述第二文件。
[0029]对于上述文件恢复装置,在一种可能的实现方式中,所述分配记录信息包括所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息。
[0030]对于上述文件恢复装置,在一种可能的实现方式中,所述查找单元用于根据所述系统快照的标识信息,查找所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息;
[0031]所述更新单元用于根据所述第一文件的每个数据块的块虚拟地址信息,读取所述块虚拟地址信息对应的数据块的内容;以及用于根据所述每个数据块的长度信息、每个数据块在所述第一文件中的偏移信息以及读取到的每个数据块的内容,更新所述第二文件。
[0032]有益.效果
[0033]本发明实施例的文件恢复方法及装置,当检测到第一文件的元数据损坏时,将第一时间点对应的系统快照中所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,其中,所述第一时间点为所述第二时间点之前距离最近的系统快照对应的时间点,所述第二时间点为所述元数据损坏对应的时间点;根据所述第一文件的分配记录信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。这样,本发明实施例提供的文件恢复方法及装置,通过内部快照技术和文件系统的分配记录信息,就可以快速准确的恢复文件。
[0034]根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
【专利附图】
【附图说明】
[0035]包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
[0036]图1示出根据本发明一实施例的文件恢复方法的流程图;
[0037]图2示出根据本发明另一实施例的文件恢复方法的流程图;
[0038]图3为事务机制流程的示意图;
[0039]图4为第一时间点的第一文件的结构不意图;
[0040]图5为第二时间点的第一文件的结构示意图;
[0041]图6示出根据本发明一实施例的文件恢复装置的结构框图;
[0042]图7示出根据本发明另一实施例的文件恢复装置的结构框图;
[0043]图8示出根据本发明又一实施例的文件恢复装置的结构框图。
【具体实施方式】
[0044]以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
[0045]在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
[0046]另外,为了更好的说明本发明,在下文的【具体实施方式】中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
[0047]实施例1
[0048]图1示出根据本发明一实施例的文件恢复方法的流程图,该方法主要应用于ROW(Redirect On Write,写重定向)型文件系统,所述文件系统用于管理和存储文件。如图1所示,该方法主要可以包括以下步骤:
[0049]步骤S100、当检测到第一文件的元数据损坏时,将第一时间点的系统快照对应的所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,
[0050]其中,所述第一时间点在所述第二时间点之前,所述第二时间点为所述元数据损坏的时间点;
[0051]步骤S110、根据所述第一文件的分配记录信息,更新所述第二文件,
[0052]其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。
[0053]具体地,本申请方案是基于ROW型文件系统,该文件系统的写是完全重新写,即当修改一个数据块的内容时,在缓冲区对该数据块的内容进行修改,将修改完成后的数据块的内容再重新写到磁盘上一个新的空白块中。[0054]对于上述步骤S100,文件系统每隔一个预定的时间例如两个小时会对系统做一次系统快照,这个动作对于用户而言是不可见的,在该文件系统中可以保存一定数量例如12个系统快照。系统快照是文件系统或卷的只读副本,主要可以包括文件系统中所有文件的元数据信息。系统快照几乎可以即时创建,而且最初不占用存储池中的其他磁盘空间。文件系统或卷打上系统快照后,其文件上的数据在该系统快照没有被删除之前即使被更改也不会被删除,因此,当文件系统或卷有文件的元数据损坏时,可以利用这没有被删除的数据来恢复系统的元数据,从而恢复文件。其中,文件的元数据是指负责管理文件数据的信息。比如文件大小,数据块大小,在磁盘上存储在哪些数据块等。用户可以通过文件的元数据来访问文件的数据。
[0055]当文件系统中有某个文件的元数据损坏时,可以利用上述系统快照来恢复文件的元数据。例如,当在某一个时间点(下称第二时间点)某一个文件(下称第一文件)的元数据损坏时,文件系统可以将第一时间点的系统快照中第一文件的内容写入第二时间点对应的文件系统,形成第二文件。其中,所述第一时间点在第二时间点之前。恢复出来的第二文件即为第一文件在第一时间点的状态,此时恢复出来的元数据也即是第一文件在第一时间点的状态。优选的,所述第一时间点为在第二时间点之前,离第一时间点最近的时间点。
[0056]对于上述步骤SI 10,在文件系统中,每个系统快照对应一个一致性点即时间点。利用系统快照技术可以恢复出第一文件在第一时间点的状态。但如果在第一时间点到第二时间点之间,文件系统对第一文件有过修改,即第一文件在第二时间点的状态与在第一时间点的状态不一样,即这两个时间点对应的第一文件的元数据也不一样。则此时系统快照技术并不能恢复第一文件全部的元数据。
[0057]因此,在利用系统快照技术可以恢复出第一文件在第一时间点的状态后,本申请的技术方案可以根据第一文件的分配记录信息,将所述第二文件的内容进行更新。其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。将所述第二文件的内容进行更新,主要可以包括修改第二文件的数据、删除第二文件的数据以及增加数据到第二文件中。
[0058]本发明实施例的文件恢复方法,当检测到第一文件的元数据损坏时,将第一时间点对应的系统快照中所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,其中,所述第一时间点为所述第二时间点之前距离最近的系统快照对应的时间点,所述第二时间点为所述元数据损坏对应的时间点;根据所述第一文件的分配记录信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。这样,本发明实施例提供的文件恢复方法,通过系统快照技术和文件系统的分配记录信息,就可以快速准确的恢复文件。
[0059]实施例2
[0060]图2示出根据本发明另一实施例的文件恢复方法的流程图。图2中标号与图1相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
[0061]如图2所示,本实施例的文件恢复方法与上一实施例的文件恢复方法的主要区别在于,步骤SllO具体可以包括以下步骤:
[0062]步骤S1101、根据所述系统快照的标识信息,查找所述分配记录信息;
[0063]步骤S1102、根据查找到的分配记录信息,更新所述第二文件。[0064]具体地,在利用系统快照技术将第一文件的状态恢复到第一时间点的状态后,为了将第一文件的状态恢复到第二时间点时的状态,可以查找第一时间点的系统快照的标识信息。在一种可能的实现方式中,该标识信息可以为一个事务号。
[0065]在文件系统中,很多操作通常需要更新多个不同的元数据,例如创建文件操作需要修改以下这些元数据:一是创建一个新的节点(inode),插入该文件系统的节点树(inode tree)中;二是增加一个目录项,插入文件系统目录树中;三是修改分配器中的元数据,分配一段磁盘空间。这三个步骤中任一步骤出错,创建文件的操作就不能成功。即相当于这三个步骤都没有被执行过。因此可以将创建文件的操作定义为一个事务。
[0066]在文件系统中,单个文件操作涉及的数据量少但是下发频繁,而且连续下发的文件操作的数据具有一定的局部性,所以为了保证文件系统的性能,文件系统往往会做操作数据的缓存和合并,因此文件系统通常把一组事务缓存合并后进行下盘。
[0067]为了适应文件系统的这种特点,事务机制考虑两阶段的流程设计,如图3所示。在阶段一,事务与文件系统产生的所有操作关联,形成一个事务组,文件系统为该事务组分配一个事务号。当事务组关联数据足够多或持续时间足够长时,事务组将关闭即不再关联新的文件系统操作。然后进入第二阶段,此阶段主要实现将关联的操作数据的整体提交给分配器。提交过程中保证操作数据的原子性和一致性,即保证所有关联的操作数据都执行成功,如果有一个执行不成功,则所有关联的操作都将不执行。
[0068]对于上述步骤S1101,事务组会将文件系统的一组操作数据缓存与合并后,在适当的时机下盘。在下盘的时候,虚拟设备层会给每个事务组分配虚拟地址空间,并将分配信息记录在文件系统的一个对象中,形成分配记录信息。因此,根据系统快照的标识信息即事务号,就能够查找到在第一时间点到第二时间点之间对应于第一文件的分配记录信息。
[0069]在一种可能的实现方式中,第一文件的分配记录信息包括第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及每个数据块在第一文件中的偏移信肩、O
[0070]上述步骤SllOl具体可以包括根据所述系统快照的标识信息,查找所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息。
[0071]在一种可能的实现方式中,上述步骤S1102具体可以包括:根据所述第一文件的每个数据块的块虚拟地址信息,读取所述块虚拟地址信息对应的数据块的内容;以及根据所述每个数据块的长度信息、每个数据块在所述第一文件中的偏移信息以及读取到的每个数据块的内容,更新所述第二文件。
[0072]更新所述第二文件,主要可以包括修改第二文件的数据、删除第二文件的数据以及增加数据到第二文件中。例如,修改文件的某一数据块,首先将该数据块的内容读取到缓冲区中进行修改,然后将修改后的数据块的内容写入文件的一个空白数据块中。这时,文件系统会对文件中该数据块的元数据进行修改,以使用户通过所述元数据能够访问到文件的该数据块。同时生成分配记录信息,包括该数据块的块虚拟地址信息、长度信息、所属文件标识信息以及该数据块在所述文件中的偏移信息。又如,删除文件的某一数据块时,文件系统会修改该数据块的元数据,在一种可能的实现方式中,将该数据块的元数据的内容全写成O。同时生成分配记录信息,包括该数据块的块虚拟地址信息、长度信息、所属文件标识信息以及该数据块在所述文件中的偏移信息。这样,用户就无法通过元数据访问到该数据块,即实现了该数据块从文件中删除。又如,增加某一数据块到文件中,将该数据块的内容写入文件的一个空白数据块中。这时,文件系统还会增加该数据块的元数据,以使用户通过所述元数据能够访问到文件的该数据块。同时生成分配记录信息,包括该数据块的块虚拟地址信息、长度信息、所属文件标识信息以及该数据块在所述文件中的偏移信息。
[0073]图4为第一时间点的第一文件的结构示意图。图5为第二时间点的第一文件的结构示意图。如图4所示,在第一时间点,第一文件的内容包括数据块D1、数据块D2、数据块D3,利用第一文件的元数据可以访问数据块D1、数据块D2、数据块D3。即在第一时间点对应的系统快照的内容和图4中一样。但是,在第一时间点到第二时间点之间,用户修改了第一文件的元数据,使得第一文件增加了数据块D4,利用第一文件的元数据可以访问到数据块D4,此时,第一文件的内容如图5所示。在第二时间点,第一文件的元数据损坏,而离第二时间点最近的系统快照时间为第一时间点。因此,通过第一时间点的系统快照,可以将第一文件恢复到第一时间点的状态,即恢复到如图4所示的状态。但是,通过该恢复的元数据并不能访问到数据块D4,因此,需要利用文件系统中的分配记录信息来恢复对数据块的访问,即恢复第二时间点时第一文件的元数据。这时,可以通过查询第一时间点对应的系统快照的标识信息,即事务号,查找从第一时间点到第二时间点之间对于数据块D4的分配记录信息。根据上述分配记录信息中的数据块D4的块虚拟地址信息,读取数据块D4的块虚拟地址信息对应的内容,然后根据数据块D4的分配记录信息中的长度信息以及数据块D4在第一文件的偏移信息,将数据块D4的内容写入到所述文件系统的第二文件中,此时,这时的第二文件就相当于第一文件恢复到如图5所示的状态。将数据块D4的内容写入第二文件的过程中,文件系统即会恢复对应于数据块D4的元数据。如果从第一时间点到第二时间点之间,用户对第一文件还有其它操作,也可以根据类似的方法进行相应的元数据的恢复。
[0074]本发明实施例的文件恢复方法,本发明实施例的文件恢复方法,当检测到第一文件的元数据损坏时,将第一时间点对应的系统快照中所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,其中,所述第一时间点为所述第二时间点之前距离最近的系统快照对应的时间点,所述第二时间点为所述元数据损坏对应的时间点;根据所述第一文件的分配记录信息中的分配记录信息中的块虚拟地址信息,长度信息,以及偏移信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。这样,本发明实施例提供的文件恢复方法,通过系统快照技术和文件系统的分配记录信息,就可以快速准确的恢复文件。
[0075]实施例3
[0076]图6示出根据本发明一实施例的文件恢复装置的结构框图。如图6所示,该文件恢复装置60主要可以包括写入模块61以及更新模块62。写入模块61主要用于当检测到第一文件的元数据损坏时,将第一时间点的系统快照对应的所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,其中,所述第一时间点在所述第二时间点之前,所述第二时间点为所述元数据损坏的时间点。更新模块62与写入模块61连接,主要用于根据所述第一文件的分配记录信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。
[0077]本发明实施例的文件恢复装置60能够用于执行上述实施例1的文件恢复方法,该文件恢复方法的具体流程参见实施例1的具体阐述。
[0078]本发明实施例的文件恢复装置,写入模块用于当检测到第一文件的元数据损坏时,将第一时间点对应的系统快照中所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,其中,所述第一时间点为所述第二时间点之前距离最近的系统快照对应的时间点,所述第二时间点为所述元数据损坏对应的时间点;更新模块用于根据所述第一文件的分配记录信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。这样,本发明实施例提供的文件恢复装置,通过系统快照技术和文件系统的分配记录信息,就可以快速准确的恢复文件。
[0079]实施例4
[0080]图7示出根据本发明另一实施例的文件恢复装置的结构框图。图7中标号与图6相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。
[0081]如图7所示,图7所示的文件恢复装置70与图6所示的文件恢复装置60的主要区别在于,更新模块62主要可以包括查找单元621以及更新单元622。查找单元621主要用于根据所述系统快照的标识信息,查找所述分配记录信息;更新单元622与查找单元621连接,主要根据所述查找单元621查找到的分配记录信息,更新所述第二文件。
[0082]在一种可能的实现方式中,所述分配记录信息包括所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移息。
[0083]在一种可能的实现方式中,查找单元621具体用于根据所述系统快照的标识信息,查找所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息;更新单元622用于根据所述第一文件的每个数据块的块虚拟地址信息,读取所述块虚拟地址信息对应的数据块的内容;以及用于根据所述每个数据块的长度信息、每个数据块在所述第一文件中的偏移信息以及读取到的每个数据块的内容,更新所述第二文件。
[0084]本发明实施例的文件恢复装置70能够用于执行上述实施例2的文件恢复方法,该文件恢复方法的具体流程参见实施例2的具体阐述。
[0085]本发明实施例的文件恢复装置,写入模块用于当检测到第一文件的元数据损坏时,将第一时间点对应的系统快照中所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,其中,所述第一时间点为所述第二时间点之前距离最近的系统快照对应的时间点,所述第二时间点为所述元数据损坏对应的时间点;更新模块用于根据所述第一文件的分配记录信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。这样,本发明实施例提供的文件恢复装置,通过系统快照技术和文件系统的分配记录信息,就可以快速准确的恢复文件。
[0086]实施例5
[0087]图8示出根据本发明又一实施例的文件恢复装置的结构框图。文件恢复装置800可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。[0088]文件恢复装置800包括处理器(processor) 810、通信接口(CommunicationsInterface)820、存储器(memory)830和总线840。其中,处理器810、通信接口 820、以及存储器830通过总线840完成相互间的通信。
[0089]通信接口 820用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共
享存储等。
[0090]处理器810用于执行程序。处理器810可能是一个中央处理器CPU,或者是专用集成电路ASIC (Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0091]存储器830用于存放文件。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器830也可以是存储器阵列。存储器830还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
[0092]在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序用于写重定向ROW型文件系统,所述文件系统用于管理和存储文件,该程序具体可用于:
[0093]当检测到第一文件的元数据损坏时,将第一时间点的系统快照对应的所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,
[0094]其中,所述第一时间点在所述第二时间点之前,所述第二时间点为所述元数据损坏的时间点;
[0095]根据所述第一文件的分配记录信息,更新所述第二文件,
[0096]其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。
[0097]在一种可能的实现方式中,所述根据所述第一文件的分配记录信息,更新所述第二文件,包括:
[0098]根据所述系统快照的标识信息,查找所述分配记录信息;
[0099]根据查找到的分配记录信息,更新所述第二文件。
[0100]在一种可能的实现方式中,所述分配记录信息包括所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移息。
[0101]在一种可能的实现方式中,所述根据所述系统快照的标识信息,查找所述分配记录信息,包括:
[0102]根据所述系统快照的标识信息,查找所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息;
[0103]根据查找到的分配记录信息,更新所述第二文件,包括:
[0104]根据所述第一文件的每个数据块的块虚拟地址信息,读取所述块虚拟地址信息对应的数据块的内容;
[0105]根据所述每个数据块的长度信息、每个数据块在所述第一文件中的偏移信息以及读取到的每个数据块的内容,更新所述第二文件。
[0106]本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0107]如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)>磁碟或者光盘等各种可以存储程序代码的介质。
[0108]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种文件恢复方法,应用于写重定向ROW型文件系统,所述文件系统用于管理和存储文件,其特征在于,包括:当检测到第一文件的元数据损坏时,将第一时间点的系统快照对应的所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件, 其中,所述第一时间点在所述第二时间点之前,所述第二时间点为所述元数据损坏的时间点;根据所述第一文件的分配记录信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。
2.根据权利要求1所述的文件恢复方法,其特征在于,所述根据所述第一文件的分配记录信息,更新所述第二文件,包括:根据所述系统快照的标识信息,查找所述分配记录信息;根据查找到的分配记录信息,更新所述第二文件。
3.根据权利要求1或2所述的文件恢复方法,其特征在于,所述分配记录信息包括所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息。
4.根据权利要求3所述的文件恢复方法,其特征在于,所述根据所述系统快照的标识信息,查找所述分配记录信息,包括:根据所述系统快照的标识信息,查找所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息;根据查找到的分配记录信息,更新所述第二文件,包括:根据所述第一文件的每个数据块的块虚拟地址信息,读取所述块虚拟地址信息对应的数据块的内容;根据所述每个数据块的长度信息、每个数据块在所述第一文件中的偏移信息以及读取到的每个数据块的内容,更新所述第二文件。
5.一种文件恢复装置,应用于写重定向ROW型文件系统,所述文件系统用于管理和存储文件,其特征在于,包括:写入模块,用于当检测到第一文件的元数据损坏时,将第一时间点的系统快照对应的所述第一文件的内容写入第二时间点对应的文件系统,形成第二文件,其中,所述第一时间点在所述第二时间点之前,所述第二时间点为所述元数据损坏的时间点;更新模块,与所述写入模块连接,用于根据所述第一文件的分配记录信息,更新所述第二文件,其中,所述分配记录信息是在所述第一时间点到所述第二时间点之间写入所述文件系统中的针对所述第一文件的分配记录。
6.根据权利要求5所述的文件恢复装置,其特征在于,所述根据所述第一文件的分配记录信息,更新所述第二文件,包括:查找单元,用于根据所述系统快照的标识信息,查找所述分配记录信息;更新单元,与所述查找单元连接,用于根据所述查找单元查找到的分配记录信息,更新所述第二文件。
7.根据权利要求5或6所述的文件恢复装置,其特征在于,所述分配记录信息包括所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移信息。
8.根据权利要求7所述的文件恢复装置,其特征在于,所述查找单元用于根据所述系统快照的标识信息,查找所述第一文件中每个数据块的块虚拟地址信息、长度信息、所属文件标识信息以及所述每个数据块在所述第一文件中的偏移息;所述更新单元用于根据所述第一文件的每个数据块的块虚拟地址信息,读取所述块虚拟地址信息对应的数据块的内容;以及用于根据所述每个数据块的长度信息、每个数据块在所述第一文件中的偏移信息以及读取到的每个数据块的内容,更新所述第二文件。
【文档编号】G06F11/14GK103617097SQ201310582886
【公开日】2014年3月5日 申请日期:2013年11月19日 优先权日:2013年11月19日
【发明者】海杰 申请人:华为技术有限公司