CN116401220A - 文件系统的数据恢复方法、装置、设备及介质 - Google Patents

文件系统的数据恢复方法、装置、设备及介质 Download PDF

Info

Publication number
CN116401220A
CN116401220A CN202310635765.1A CN202310635765A CN116401220A CN 116401220 A CN116401220 A CN 116401220A CN 202310635765 A CN202310635765 A CN 202310635765A CN 116401220 A CN116401220 A CN 116401220A
Authority
CN
China
Prior art keywords
data
file system
information
snapshot
reverse
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.)
Pending
Application number
CN202310635765.1A
Other languages
English (en)
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.)
Lenovo Netapp Technology Ltd
Original Assignee
Lenovo Netapp Technology Ltd
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 Lenovo Netapp Technology Ltd filed Critical Lenovo Netapp Technology Ltd
Priority to CN202310635765.1A priority Critical patent/CN116401220A/zh
Publication of CN116401220A publication Critical patent/CN116401220A/zh
Pending legal-status Critical Current

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/17Details of further file system functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion

Landscapes

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

Abstract

本公开提供了一种文件系统的数据恢复方法、装置、设备及介质。本公开提供的方法包括:基于文件系统的快照信息,获取反向增量数据,其中,反向增量数据指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息;基于反向增量数据,将文件系统中的数据恢复到特定时刻。本公开提供的方法可以在文件系统数据损坏需要恢复时,只需通过文件系统的快照信息,就可以准确获取到某个时间段内文件系统发生的反向增量数据,从而根据反向增量数据将文件系统的数据恢复到之前特定时间。本公开提供的方法的优势是仅对更新的数据进行恢复处理,从而使得本公开提供的方法在恢复数据时操作的数据量小、恢复时间短、恢复效率高。

Description

文件系统的数据恢复方法、装置、设备及介质
技术领域
本公开涉及数据恢复领域,更具体地,涉及一种文件系统的数据恢复方法、装置、设备及介质。
背景技术
在存储行业中,随着数据体积的日益增长,数据备份恢复的重要性逐渐凸显。目前通常使用全量备份恢复的方法,即定期将文件系统的所有数据通过拷贝的方法把数据备份起来,然后在数据发生损坏时,用全部备份的数据覆盖发生损坏时的整个数据以实现数据的恢复。
此种备份恢复方法存在备份时间长、无效数据多、恢复时间长、恢复效率低等问题。
因此,需要一种新的数据恢复方法。
发明内容
针对上述问题,本公开提供了一种文件系统的数据恢复方法。本公开提供的方法可以在文件系统数据损坏需要恢复时,只需通过文件系统的快照信息,就可以准确获取到某个时间段内文件系统发生的反向增量数据,从而根据反向增量数据将文件系统的数据恢复到之前特定时间。本公开提供的数据恢复方法的优势是仅对更新的数据进行恢复处理,从而使得本公开提供的数据恢复方法在恢复数据时操作的数据量小、恢复时间短、恢复效率高。
本公开实施例提供了一种文件系统的数据恢复方法,包括:基于文件系统的快照信息,获取反向增量数据,其中,所述反向增量数据指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息;基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻。
根据本公开实施例,其中,所述基于文件系统的快照信息,获取反向增量数据,包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据。
根据本公开实施例,其中,所述快照信息包括指示当前时刻相对于所述特定时刻发生了数据新增的第一快照信息和/或指示当前时刻相对于所述特定时刻发生了数据修改或删除的第二快照信息。
根据本公开实施例,其中,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第一快照信息;基于所述第一快照信息,获取第一反向增量数据,其中所述第一反向增量数据指示当前时刻相对于所述特定时刻发生了数据新增。
根据本公开实施例,其中,基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻,包括:基于所述第一反向增量数据,从所述当前时刻的文件系统中删除与所述第一反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
根据本公开实施例,其中,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第二快照信息;确定当前时刻的文件系统中是否存在与所述第二快照信息对应的信息;在所述当前时刻的文件系统存在与所述第二快照信息对应的信息的情况下,获取第二反向增量数据,其中所述第二反向增量数据指示当前时刻相对于所述特定时刻发生了数据修改;在所述当前时刻的文件系统不存在与所述第二快照信息对应的信息的情况下,获取第三反向增量数据,其中所述第三反向增量数据指示当前时刻相对于所述特定时刻发生了数据删除。
根据本公开实施例,其中,基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻,包括:在获取第二反向增量数据的情况下,基于所述第二反向增量数据,对当前时刻的文件系统进行与所述第二反向增量数据对应的数据修改,以将所述文件系统中的数据恢复到所述特定时刻;在获取第三反向增量数据的情况下,基于所述第三反向增量数据,在当前时刻的文件系统中增加与所述第三反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
本公开实施例提供了一种文件系统的数据恢复装置,包括:获取单元,被配置为基于文件系统的快照信息,获取反向增量数据,其中,所述反向增量数据指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息;恢复单元,被配置为基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻。
根据本公开实施例,其中,所述获取单元被配置为:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据。
根据本公开实施例,其中,所述快照信息包括指示当前时刻相对于所述特定时刻发生了数据新增的第一快照信息和/或指示当前时刻相对于所述特定时刻发生了数据修改或删除的第二快照信息。
根据本公开实施例,其中,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第一快照信息;基于所述第一快照信息,获取第一反向增量数据,其中所述第一反向增量数据指示当前时刻相对于所述特定时刻发生了数据新增。
根据本公开实施例,其中,所述恢复单元被配置为包括:基于所述第一反向增量数据,从所述当前时刻的文件系统中删除与所述第一反向增量数据对应的数据,以将所述文件系统中的数据恢复所述特定时刻。
根据本公开实施例,其中,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第二快照信息;确定当前时刻的文件系统中是否存在与所述第二快照信息对应的信息;在所述当前时刻的文件系统存在与所述第二快照信息对应的信息的情况下,获取第二反向增量数据,其中所述第二反向增量数据指示当前时刻相对于所述特定时刻发生了数据修改;在所述当前时刻的文件系统不存在与所述第二快照信息对应的信息的情况下,获取第三反向增量数据,其中所述第三反向增量数据指示当前时刻相对于所述特定时刻发生了数据删除。
根据本公开实施例,其中,所述恢复单元被配置为:在获取第二反向增量数据的情况下,基于所述第二反向增量数据,对当前时刻的文件系统进行与所述第二反向增量数据对应的数据修改,以将所述文件系统中的数据恢复到所述特定时刻;在获取第三反向增量数据的情况下,基于所述第三反向增量数据,在当前时刻的文件系统中增加与所述第三反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
本公开实施例提供了一种文件系统的数据恢复设备,包括:处理器,和存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令当由处理器执行时促使处理器执行如所述的数据恢复方法。
本公开实施例提供了一种计算机可读记录介质,存储有计算机可执行指令,其中,所述计算机可执行指令当由处理器执行时促使处理器执行如所述的数据恢复方法。
本公开提供了一种文件系统的数据恢复方法、装置、设备及介质。本公开提供的方法可以在文件系统数据损坏需要恢复时,只需通过文件系统的快照信息,就可以准确获取到某个时间段内文件系统发生的反向增量数据,从而根据反向增量数据将文件系统的数据恢复到之前特定时间。本公开提供的数据恢复方法仅对更新的数据进行恢复处理,从而使得本公开提供的数据恢复方法在恢复数据时操作的数据量小、恢复时间短、恢复效率高。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本公开的一些示例性实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了根据本公开实施例的一种文件系统的目录项示意图;
图2示出了根据本公开实施例的文件系统的数据恢复方法200的流程图;
图3示出了根据本公开实施例的获取反向增量数据并应用的流程图;
图4示出了根据本公开实施例的获取并应用第一反向增量数据的示意图;
图5示出了根据本公开实施例的获取并应用第二和第三反向增量数据的示意图;
图6示出了根据本公开实施例的文件系统的数据恢复装置600的框图;
图7是示出根据本公开实施例的数据恢复设备700的框图;
图8示出了根据本公开的记录介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在现有技术中,为了提高文件系统的数据保护能力,文件系统通常会提供本地备份恢复策略(如背景技术中介绍的全量备份恢复策略)。当存储设备发生应用故障、文件损坏等非物理性损坏时,用户可以选择把数据恢复到之前某个可用时间点的状态,从而提高数据的可用性。但现有技术中的本地备份恢复策略存在备份时间长、无效数据多、恢复时间长、恢复效率低等问题。
为了解决上述问题,本公开提供了一种文件系统的数据恢复方法。本公开提供的方法可以在文件系统数据损坏需要恢复时,只需通过文件系统的快照信息,就可以准确获取到某个时间段内文件系统发生的反向增量数据,从而根据反向增量数据将文件系统的数据恢复到之前特定时间。本公开提供的数据恢复方法的优势是仅对更新的数据发生进行恢复处理,从而使得本公开提供的数据恢复方法在恢复数据时操作的数据量小、恢复时间短、恢复效率高。
下面将参照附图对上述本公开提供的数据恢复方法进行详细的说明。
图1示出了根据本公开实施例的一种文件系统的目录项示意图。
根据本公开实施例,文件系统通常包括数据和元数据。
作为示例,元数据可以是用于描述数据的数据(data about data)。元数据可以是主要描述数据属性的信息,以用来支持例如指示存储位置、历史数据、资源查找、文件记录等功能。
作为示例,文件系统的元数据可以包括目录项(dentry)和索引节点(inode)。目录项可以用于描述文件系统中文件或文件夹的组织形式,索引节点为文件或文件夹的属性信息。在文件系统中,每个文件或文件夹都对应一个索引节点,以作为该文件或文件夹的唯一编号。文件系统通过索引节点编号(inodeid)来访问索引节点的信息。
例如,元数据中的目录项记录了文件名、上级目录等信息,将所有的目录项以父目录/子目录的方式连接起来,即可形成反映文件系统组织信息的树状结构。例如,在一些示例中,如图1所示,利用该文件系统的目录项,可以得到反映该文件系统组织信息的树状结构,然后,利用文件或文件夹dir1、dir2、dir3、file1、file2的索引节点编号获取对应的索引节点的信息,从而可以读取到该文件系统的完整信息。例如,在该示例中,dir1、dir2、dir3表示文件夹,file1、file2表示文件。
根据本公开实施例,本公开提供的文件系统的元数据可以包括多个目录项条目和多个索引节点条目。例如,目录项条目为前述的目录项(dentry),索引节点条目为前述的索引节点(inode)。
多个目录项条目可以包括至少一个原生目录项条目和至少一个快照目录项条目,也即是,多个目录项条目划分为原生目录项条目和快照目录项条目两类。原生目录项条目可以记载该文件系统当前的组织信息。快照目录项条目可以记载该文件系统中当前可能不存在、在生成快照时存在的组织信息。
多个索引节点条目可以包括至少一个原生索引节点条目和至少一个快照索引节点条目,也即是,多个索引节点条目划分为原生索引节点条目和快照索引节点条目两类。原生节点条目可以记载该文件系统当前的文件属性信息。快照节点条目可以记载该文件系统中当前可能不存在、在生成快照时存在的文件属性信息。
本公开提供的数据恢复方法是重点基于文件系统的快照信息,而该快照信息包括上述至少一个快照目录项条目和至少一个快照索引节点条目。因此,接下来将以快照目录项条目和快照索引节点条目为示例详细说明本公开提供的数据恢复方法。关于原生目录项条目和原生索引节点条目的相关格式分别与快照目录项条目和快照索引节点条目类似,在此不再赘述。
图2示出了根据本公开实施例的文件系统的数据恢复方法200的流程图。作为示例,该数据恢复方法200可以由文件系统的处理器执行。作为另一示例,该数据恢复方法200可以由文件系统中专门用于数据恢复的处理器执行。
参照图2,在步骤S210,可以基于文件系统的快照信息来获取反向增量数据。根据本公开实施例,所述反向增量数据可以指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息。
根据本公开实施例,文件系统的快照信息可以是响应于文件或文件夹的更新操作(如修改、删除或新增操作)而产生的信息。
作为示例,当在文件系统中新建一个文件夹时,会产生一个针对新建操作的快照信息,并且该快照信息可以记录针对该新建的文件夹的目录项(dentry)和索引节点(inode)信息。
例如,针对该新建的文件夹产生的目录项信息如下表1所示。针对该新建的文件夹产生的索引节点信息如下表2所示。需要说明的是,出于说明的目的,以文件夹为例描述了目录项信息和索引节点信息。针对文件的目录项信息和索引节点信息分别与针对文件夹的目录项信息和索引节点信息类似,在此不再赘述。
表1 针对该新建的文件夹产生的目录项信息
Figure SMS_1
表2 针对该新建的文件夹产生的索引节点信息
Figure SMS_2
由表1和表2可以看出,该目录项信息和索引节点信息均是一种KV结构。表1和表2中的信息可以存储于KV数据库中一张表或多张表中。
针对目录项信息,key=“R_D”/birthid/parent_inodeid/dname,value= dentry_val,其中各字段的含义可以如下所示:
R_D用于标识该目录项信息是针对新建操作的(例如,R可以表示新建操作,D表示目录项)。本领域技术人员也可以通过其它标识来表示上述含义,在此不再赘述。
birthid表示快照的标识信息,其用于表示创建操作是在哪个快照版本的基础上发生的。文件系统的使用者可能在文件系统的使用过程中,针对文件系统或者文件系统的文件或文件夹打了多个快照。例如,针对文件系统,使用者可能在时间t1对整个文件系统打了快照snap1,而后在继续使用中,又在时间t2对整个文件系统打了快照snap2,则此时针对该文件系统存在两个快照版本,即snap1和snap2。如果文件系统的使用者在时间t1和t2之间的某个时间点,创建了一个新的文件夹,则此时的birthid可以为snap1的标识信息,表示该新建的文件夹是在快照版本snap1的基础上创建的。如果文件系统的使用者在时间t2之后的某个时间点,创建了一个新的文件夹,则此时的birthid可以为snap2的标识信息,表示该新建的文件夹是在快照版本snap2的基础上创建的。
parent_inodeid可以表示父目录的索引节点编号。例如,当新建的文件夹是图1中所示的dir3时,则parent_inodeid可以表示父目录dir1的索引节点编号。
dname可以表示该新建的文件夹的名称。例如,当新建的文件夹为图1中的dir3时,则dname可以是dir3。
dentry_val可以表示具体的目录项的值,例如其可以包括表示该文件夹的索引节点编号的inodeid值。
针对索引节点信息,key=“R_I”/birthid/inodeid,value= inode,其中各字段的含义可以如下所示:
R_I用于标识该索引节点信息是针对新建操作的(例如,R可以表示新建操作,I表示索引节点)。本领域技术人员也可以通过其它标识来表示上述含义,在此不再赘述。
birthid表示快照的标识信息,其用于表示创建操作是在哪个快照版本的基础上发生的。文件系统的使用者可能在文件系统的使用过程中,针对文件系统或者文件系统的文件或文件夹打了多个快照。例如,针对文件系统,使用者可能在时间t1对整个文件系统打了快照snap1,而后在继续使用中,又在时间t2对对整个文件系统打了快照snap2,则此时针对该文件系统存在两个快照版本,即snap1和snap2。如果文件系统的使用者在时间t1和t2之间的某个时间点,创建了一个新的文件夹,则此时的birthid可以为snap1的标识信息,表示该新建的文件夹是在快照版本snap1的基础上创建的。如果文件系统的使用者在时间t2之后的某个时间点,创建了一个新的文件夹,则此时的birthid可以为snap2的标识信息,表示该新建的文件夹是在快照版本snap2的基础上创建的。
inodeid可以表示该文件夹的索引节点编号。
inode可以表示该文件夹的属性信息,例如文件夹大小、创建时间、修改时间等。
作为另一示例,当在文件系统中修改或删除一个文件夹时,会产生一个针对该修改或删除操作的快照信息,并且该快照信息可以记录针对该修改或删除的文件夹的目录项(dentry)和索引节点(inode)信息。
例如,针对该修改或删除的文件夹产生的目录项信息如下表3所示。针对该修改或删除的文件夹产生的索引节点信息如下表4所示。需要说明的是,出于说明的目的,以文件夹为例描述了目录项信息和索引节点信息。针对文件的目录项信息和索引节点信息分别与针对文件夹的目录项信息和索引节点信息类似,在此不再赘述。
表3 针对该修改或删除的文件夹产生的目录项信息
Figure SMS_3
表4 针对该修改或删除的文件夹产生的索引节点信息
Figure SMS_4
由表3和表4可以看出,该目录项信息和索引节点信息均是一种KV结构。表3和表4中的信息可以存储于KV数据库中一张表或多张表中。
针对目录项信息,key= S/snapid/parent_inodeid/dname,value= count[inodeid, s_id, e_id],其中各字段的含义可以如下所示:
S用于标识该目录项信息是针对快照的,也就是,该目录项信息是快照目录项信息,而非上述介绍的原生目录项信息。需要说明的是,本领域技术人员也可以使用其它的任何合适的标识来表示上述含义,在此不再赘述。
snapid可以表示快照的标识信息。如上述关于表1和表2所述的内容,该文件系统可能存在多个快照,如上述的快照snap1和snap2。此时,根据具体应用,snapid可以表示快照snap1或snap2的标识信息。
parent_inodeid可以表示父目录的索引节点编号。例如,当修改或删除的文件夹是图1中所示的dir3时,则parent_inodeid可以表示父目录dir1的索引节点编号。
dname可以表示该修改或删除的文件夹的名称。例如,当修改或删除的文件夹为图1中的dir3时,则dname可以是dir3。
inodeid可以表示该文件夹的索引节点编号。
s_id为快照的标识,其用于表示该文件夹是在哪个快照版本的基础上存在的。e_id也是快照的标识,其用于表示该文件夹是在哪个快照版本之前(包括该快照版本时)是存在的,e_id可以为空,表示该文件夹一直存在。
count[]可以表示一个数组,其可以用于针对同名称的文件夹。例如,参照图1,在dir2这个目录下,第一次新建了一个文件file2,此时针对该文件系统了打了快照1,然后过了一段时间又打了快照2,然后把file2删除,此时,count [inodeid, s_id, e_id]中的inodeid可以是file2的索引节点编号,s_id为快照1的标识,e_id为快照2的标识,说明file2在快照1的基础上存在并且在快照2之前均是存在的。接着,再在dir2这个目录下创建一个同名的文件fi1e2,然后,又分别打了快照3和4,则此时count [inodeid, s_id, e_id]可以是[之前删除的file2的索引节点编号,1,2][之后创建的同名的file2的索引节点编号,3,4];此时count [inodeid, s_id, e_id]也可以是[之前删除的file2的索引节点编号,1,2,之后创建的同名的file2的索引节点编号,3,4]。
针对索引节点信息,key= S/snapid/inodeid,value= inode,其中各字段的含义可以如下所示:
S用于标识该索引节点信息是针对快照的,也就是,该索引节点信息是快照索引节点信息,而非上述介绍的原生索引节点信息。需要说明的是,本领域技术人员也可以使用其它的任何合适的标识来表示上述含义,在此不再赘述。
snapid可以表示快照的标识信息。如上述关于表1和表2所述的内容,该文件系统可能存在多个快照,如上述的快照snap1和snap2。此时,根据具体应用,snapid可以表示快照snap1或snap2的标识信息。
inode可以表示该文件夹的属性信息,例如文件夹大小、创建时间、修改时间等。
根据本公开实施例,上述文件系统的快照信息可以事先存储于本地或外部的存储器中,具体地,可以是事先存储于存储器中的数据库(database,db)中。
由上述描述可知,文件系统的快照信息中记录有所有的更新信息,其不仅记录有针对修改、删除或新增操作而产生的信息,而且还记录有与该产生的信息对应的快照标识信息。
由上述描述还可知,文件系统的快照信息中记录了发生数据更新的信息。可以通过任何合适的方式来获取到上述快照信息,例如通过直接在存储快照信息的数据库中进行检索来获取上述快照信息。该获取快照信息的速度快并且不会对原生文件系统造成影响,应用时效率较高。
由上述描述又可知,反向增量数据可以指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息。
作为示例,当前时刻为T1,在该时刻T1发生了应用故障、文件损坏等非物理性损坏,需要对文件系统中的数据进行恢复。假设想要恢复到上述快照1对应的特定时刻T2,则此时获取到的反向增量数据可以指示文件系统从当前时刻T1到之前特定时刻T2的数据和/或元数据的更新信息。
作为另一示例,当前时刻为T1,在该时刻T1发生了应用故障、文件损坏等非物理性损坏,需要对文件系统中的数据进行恢复。假设想要恢复到上述快照2对应的特定时刻T3,则此时获取到的反向增量数据可以指示文件系统从当前时刻T1到之前特定时刻T3的数据和/或元数据的更新信息。
根据本公开实施例,所述基于文件系统的快照信息,获取反向增量数据可以包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据。
作为示例,假设使用者想要将发生损坏的文件file2恢复到快照snap2所对应的特定时刻T2,则基于特定时刻T2的快照snap2的标识信息以及文件file2的标识信息,在上述快照信息中进行搜索,以获取所述反向增量数据。
根据本公开实施例,所述快照信息可以包括指示当前时刻相对于所述特定时刻发生了数据新增的第一快照信息和/或指示当前时刻相对于所述特定时刻发生了数据修改或删除的第二快照信息。
作为示例,第一快照信息可以是上述关于表1和表2所描述的目录项信息和索引节点信息。由于存在对应的标识信息(如R_D和R_I),因此很容易便可以确定上述第一快照信息。
作为示例,第二快照信息可以是上述关于表3和表4所描述的目录项信息和索引节点信息。由于存在对应的标识信息(如S),因此很容易便可以确定上述第二快照信息。
根据本公开实施例,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,可以包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第一快照信息;基于所述第一快照信息,获取第一反向增量数据,其中所述第一反向增量数据指示当前时刻相对于所述特定时刻发生了数据新增。
作为示例,假设当前时刻T发生了文件file2的损坏,然后使用者想要将发生损坏的文件file2恢复到快照snap2所对应的特定时刻T2,则基于特定时刻T2的快照snap2的标识信息以及文件file2的标识信息,在上述快照信息中搜索所述第一快照信息,例如通过标识信息(如R_D和R_I)进行搜索。基于所述第一快照信息便可以获取指示当前时刻T相对于所述特定时刻T2发生了数据新增的第一反向增量数据,例如将搜索到的第一快照信息中记录的数据直接作为该第一反向增量数据。
继续参照图2,在步骤S220,可以基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻。根据本公开实施例,基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻可以包括:基于所述第一反向增量数据,从所述当前时刻的文件系统中删除与所述第一反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
作为示例,由于已经获得指示当前时刻相对于之前的特定时刻发生了数据新增的第一反向增量数据,则此时仅需要在当前时刻的文件系统中删除与第一反向增量数据对应的数据,便可以将文件系统的数据恢复到该特定时刻。如,当前时刻相对于之前的特定时刻仅新增了关于图1介绍的文件file1和文件夹dir3,并且已通过第一反向增量数据获得上述文件file1和文件夹dir3的信息,则此时仅需要从当前时刻的文件系统中删除掉上述文件file1和文件夹dir3,便可以将文件系统中的数据恢复到之前的特定时刻。
根据本公开实施例,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,可以包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第二快照信息;确定当前时刻的文件系统中是否存在与所述第二快照信息对应的信息;在所述当前时刻的文件系统存在与所述第二快照信息对应的信息的情况下,获取第二反向增量数据,其中所述第二反向增量数据指示当前时刻相对于所述特定时刻发生了数据修改;在所述当前时刻的文件系统不存在与所述第二快照信息对应的信息的情况下,获取第三反向增量数据,其中所述第三反向增量数据指示当前时刻相对于所述特定时刻发生了数据删除。
作为示例,假设当前时刻T发生了文件file2的损坏,然后使用者想要将发生损坏的文件file2恢复到快照snap2所对应的特定时刻T2,则基于特定时刻T2的快照snap2的标识信息以及文件file2的标识信息,在上述快照信息中搜索所述第二快照信息,例如通过标识信息(如S)进行搜索。搜索得到的第二快照信息指示了当前时刻相对于所述特定时刻发生了数据修改或删除。
接下来需要判断是发生了数据修改还是数据删除。具体地,可以通过确定当前时刻的文件系统中是否存在与所述第二快照信息对应的信息的方式来确定是发生了数据修改还是数据删除。
例如,第二快照信息中记录了文件夹dir3发生了修改或删除。在当前的文件系统中依然存在与文件夹dir3对应的信息,则说明文件夹dir3被修改了,则此时获取的是指示当前时刻相对于所述特定时刻发生了数据修改的第二反向增量数据。
又例如,第二快照信息中记录了文件file2发生了修改或删除。在当前的文件系统中不存在与文件file2对应的信息,则说明文件file2被删除了,则此时获取的是指示当前时刻相对于所述特定时刻发生了数据删除的第三反向增量数据。
再继续参照图2,基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻,可以包括:在获取第二反向增量数据的情况下,基于所述第二反向增量数据,对当前时刻的文件系统进行与所述第二反向增量数据对应的数据修改,以将所述文件系统中的数据恢复到所述特定时刻;在获取第三反向增量数据的情况下,基于所述第三反向增量数据,在当前时刻的文件系统中增加与所述第三反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
作为示例,由于已经获得指示当前时刻相对于之前的特定时刻发生了数据修改的第二反向增量数据,则此时仅需要在当前时刻的文件系统中对应修改回与第二反向增量数据对应的数据,便可以将文件系统的数据恢复到该特定时刻。如,当前时刻相对于之前的特定时刻仅修改了关于图1介绍的文件file1和文件夹dir3,并且已通过第二反向增量数据获得上述文件file1和文件夹dir3的修改信息(如修改前的文件file1和文件夹dir3的备份数据),则此时仅需要从当前时刻的文件系统中修改回上述文件file1和文件夹dir3,便可以将文件系统中的数据恢复到之前的特定时刻。
作为另一示例,由于已经获得指示当前时刻相对于之前的特定时刻发生了数据删除的第三反向增量数据,则此时仅需要在当前时刻的文件系统中新增与第三反向增量数据对应的数据,便可以将文件系统的数据恢复到该特定时刻。如,当前时刻相对于之前的特定时刻仅删除了关于图1介绍的文件file1和文件夹dir3,并且已通过第三反向增量数据获得上述文件file1和文件夹dir3的删除信息(如删除前的文件file1和文件夹dir3的备份数据),则此时仅需要从当前时刻的文件系统中新增上述文件file1和文件夹dir3,便可以将文件系统中的数据恢复到之前的特定时刻。
上述已经结合图1-2以及表1-4详细描述了本公开提供的数据恢复方法。本公开提供的方法可以在文件系统数据损坏需要恢复时,只需通过文件系统的快照信息,就可以准确获取到某个时间段内文件系统发生的反向增量数据,从而根据反向增量数据将文件系统的数据恢复到之前特定时间。本公开提供的数据恢复方法仅对更新的数据进行恢复处理,从而使得本公开提供的数据恢复方法在恢复数据时操作的数据量小、恢复时间短、恢复效率高。
为了便于更好地理解上述本公开提供的数据恢复方法,接下来将以示例的形式,对本公开提供的上述方法进行进一步说明。
图3示出了根据本公开实施例的获取反向增量数据并应用的流程图。
参照图3,可以针对文件系统部署三个元数据服务(Meta data Service,MDS),即元数据服务301、302和303,其中一个作为运行快照的主服务(如图3中的301,MDS:Snapserver),另外两个(如图3中的302和303)作为辅服务。上述三个元数据服务可以一起位于一个物理机器上,也可以分别位于相互通信的三个独立的物理机器上。
当存储设备发生应用故障、文件损坏等非物理性损坏时,用户需要恢复数据,则此时用户可以通过执行回滚恢复(rollback)操作,该操作中包含用户想要恢复的文件或文件夹的inodeid以及想要恢复到的之前特定时刻的快照的标识信息(snapid)。需要说明的是,当需要将文件系统中的全部数据整体恢复到之前的特定时刻,则上述回滚恢复(rollback)操作中仅需要包括想要恢复到的之前特定时刻的快照的标识信息(snapid)即可。
上述rollback操作首先发送到主服务301。主服务301根据snapid和inodeid在快照信息中搜索到相关信息便可以确定该文件或文件夹发生了更新,然后获取到反向增量数据(包括上述第一反向增量数据、第二反向增量数据和第三反向增量数据中的至少一个),接着将获取到的反向增量数据存储于数据库(DB)中。
然后,主服务301向辅服务302发送获取反向增量数据的请求,辅服务302接到该请求后进行与主服务301类似的操作后,获取到反向增量数据(包括上述第一反向增量数据、第二反向增量数据和第三反向增量数据中的至少一个),并将获取到的反向增量数据存储于数据库(DB)中,然后向主服务301反馈完成获取反向增量数据的响应(图中的虚线所示的操作)。
接着,主服务301向辅服务303发送获取反向增量数据的请求,辅服务303接到该请求后进行与主服务301类似的操作后,获取到反向增量数据(包括上述第一反向增量数据、第二反向增量数据和第三反向增量数据中的至少一个),并将获取到的反向增量数据存储于数据库(DB)中,然后向主服务301反馈完成获取反向增量数据的响应(图中的虚线所示的操作)。
通过上面几个步骤已经获取到所有的反向增量数据并存储于DB中,接下来开始基于获取到的反向增量数据来进行数据恢复操作。
首先,通过主服务301来将存储于DB中的反向增量数据应用于当前文件系统中(如上述介绍的增加、修改和/或删除操作),以将当前文件系统中的数据恢复到特定时刻。
然后,主服务301向辅服务302发送将存储于DB中的反向增量数据应用于当前文件系统中的请求。辅服务302接收到该请求后,将存储于DB中的反向增量数据应用于当前文件系统中(如上述介绍的增加、修改和/或删除操作),以将当前文件系统中的数据恢复到特定时刻。然后,辅服务302向主服务301反馈完成应用反向增量数据的响应(图中的虚线所示的操作)。
接着,主服务301向辅服务303发送将存储于DB中的反向增量数据应用于当前文件系统中的请求。辅服务303接收到该请求后,将存储于DB中的反向增量数据应用于当前文件系统中(如上述介绍的增加、修改和/或删除操作),以将当前文件系统中的数据恢复到特定时刻。然后,辅服务303向主服务301反馈完成应用反向增量数据的响应(图中的虚线所示的操作)。
最后,主服务301接收到辅服务303反馈的响应之后,向用户发送恢复完成或成功的响应(图中的虚线所示的操作)。
图4示出了根据本公开实施例的获取并应用第一反向增量数据的示意图。
参照图4,在S401,MDS接收到数据恢复操作,例如上述关于图3描述的MDS 301接收到来自用户的rollback操作,或者MDS 302或303接收到来自MDS 301的获取反向增量数据的请求。
在S402,MDS服务根据所传递的snapid来构建用于在KV数据库(如上述的DB)中进行检索的索引。
具体地,在S403,构建目录项索引以获取所有的目录项信息。例如构建的目录项索引可以是:“R_D”/birthid/*,其中birthid的值即为所传递的snapid的值,“/*”可以表示任意数字。也就是说,通过“R_D”/birthid/*这种模糊匹配的方式,能够在数据库中检索到所有的目录项信息。然后将基于获取到目录项信息来构建以RB_RMD为前缀的KV记录并存储于数据库中,其中RB_RMD表示该KV记录是将要删除的目录项记录。在S404,构建索引节点索引以获取所有的索引节点信息。例如构建的索引节点索引可以是:“R_I”/birthid/*,其中birthid的值即为所传递的snapid的值,“/*”可以表示任意数字。也就是说,通过“R_I”/birthid/*这种模糊匹配的方式,能够在数据库中检索到所有的索引节点信息。然后将基于获取到索引节点信息来构建以RB_RMI为前缀的KV记录并存储于数据库中,其中RB_RMI表示该KV记录是将要删除的索引节点记录。
最后,在S405中,MDS遍历数据库中所有的以RB_RMD和RB_RMI为前缀的KV记录,并将它们应用于当前的文件系统中(即将他们从当前的文件系统中删除),以将文件系统中的数据恢复到之前的与snapid对应的特定时刻。
图5示出了根据本公开实施例的获取并应用第二和第三反向增量数据的示意图。
参照图5,当文件系统发生了数据修改或删除操作时,首先发生的是写时拷贝(copy on write,cow)操作,该操作会构建上述表3或表4所示的dentry和inode信息,并将该信息存储于数据库中,此外会将修改或删除操作之前的数据保存于数据库中。因此在获取并应用第二和第三反向增量数据时,便可以基于上述机制来进行。具体如下。
在S501,MDS正常运行。
在S502,当文件或文件夹发生修改或删除时,会发生cow操作,并将修改或删除前的数据通过使用对应的快照标识信息保存于数据库中。
在S503,MDS接收到数据恢复操作,例如上述关于图3描述的MDS 301接收到来自用户的rollback操作,或者MDS 302或303接收到来自MDS 301的获取反向增量数据的请求。
在S504,MDS服务根据所传递的snapid来构建用于在KV数据库(如上述的DB)中进行检索的索引。
具体地,在S505,构建目录项索引以获取所有的目录项信息。例如构建的目录项索引可以是:S/snapid/*,其中snapid的值即为所传递的snapid的值,“/*”可以表示任意数字。也就是说,通过S/snapid/*这种模糊匹配的方式,能够在数据库中检索到所有的目录项信息。然后将基于获取到目录项信息来构建以RB_D为前缀的KV记录并存储于数据库中,其中RB_D表示该KV记录是将要修改或新增的目录项记录。在S506,构建索引节点索引以获取所有的索引节点信息。例如构建的索引节点索引可以是:S/snapid/*,其中snapid的值即为所传递的snapid的值,“/*”可以表示任意数字。也就是说,通过S/snapid/*这种模糊匹配的方式,能够在数据库中检索到所有的索引节点信息。然后在当前的文件系统中查询该发生修改或删除的文件或文件夹是否还存在。如果在S507判断不存在,则在S508,表示该文件或文件夹发生已经删除了,将构建以RB_I为前缀的新增KV记录并存储于数据库中,其中RB_I表示该KV记录是将要新增的索引节点记录并且上述RB_D表示对应的KV记录是将要新增的目录项记录。最后,在S509,MDS遍历数据库中所有的RB_D和RB_I前缀的KV记录,并将它们新增到当前的文件系统中,以将文件系统中的数据恢复到之前的与snapid对应的特定时刻。上述获取到的目录项信息和索引节点信息即为前述的第三反向增量数据。
如果在S507判断存在,则在S510,表示该文件或文件夹发生已经修改了,将构建以RB_I为前缀的修改KV记录并存储于数据库中,其中RB_I表示该KV记录是将要修改的索引节点记录(此时S505步骤可以不存在)。最后,在S511,MDS遍历数据库中所有的RB_I前缀的KV记录,并将它们应用于当前的生文件系统中(即修改回之前的文件或文件夹),以将文件系统中的数据恢复到之前的与snapid对应的特定时刻。上述获取到的目录项信息和索引节点信息即为前述的第二反向增量数据。
本公开除了提供上述文件系统的数据恢复方法之外,还提供了文件系统的数据恢复装置,上述针对文件系统的数据恢复方法的说明同样适用于下文将要描述的文件系统的数据恢复装置,除非另有明确说明。
图6示出了根据本公开实施例的文件系统的数据恢复装置600的框图。
参照图6,装置600可以包括获取单元610和恢复单元620。
根据本公开实施例,获取单元610可以被配置为基于文件系统的快照信息来获取反向增量数据。根据本公开实施例,所述反向增量数据可以指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息。
根据本公开实施例,文件系统的快照信息可以是响应于文件或文件夹的更新而产生的信息。
作为示例,当在文件系统中新建一个文件夹时,会产生一个针对新建操作的快照信息,并且该快照信息可以记录针对该新建的文件夹的目录项(dentry)和索引节点(inode)信息。
例如,针对该新建的文件夹产生的目录项信息可以如上表1所示。针对该新建的文件夹产生的索引节点信息可以如上表2所示。需要说明的是,出于说明的目的,以文件夹为例描述了目录项信息和索引节点信息。针对文件的目录项信息和索引节点信息分别与针对文件夹的目录项信息和索引节点信息类似,在此不再赘述。
作为另一示例,当在文件系统中修改或删除一个文件夹时,会产生一个针对该修改或删除操作的快照信息,并且该快照信息可以记录针对该修改或删除的文件夹的目录项(dentry)和索引节点(inode)信息。
例如,针对该修改或删除的文件夹产生的目录项信息可以如上表3所示。针对该修改或删除的文件夹产生的索引节点信息可以如上表4所示。需要说明的是,出于说明的目的,以文件夹为例描述了目录项信息和索引节点信息。针对文件的目录项信息和索引节点信息分别与针对文件夹的目录项信息和索引节点信息类似,在此不再赘述。
根据本公开实施例,上述文件系统的快照信息可以事先存储于本地或外部的存储器中,具体地,可以是事先存储于存储器中的数据库(database,db)中。
由上述描述可知,文件系统的快照信息中记录有所有的更新信息,其不仅记录有针对修改、删除或新增操作而产生的信息,而且还记录有与该产生的信息对应的快照标识信息。
由上述描述还可知,文件系统的快照信息中记录了发生数据更新的信息。可以通过任何合适的方式来获取到上述快照信息,例如通过直接在存储快照信息的数据库中进行检索来获取上述快照信息。该获取快照信息的速度快并且不会对原生文件系统造成影响,应用时效率较高。
由上述描述又可知,反向增量数据可以指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息。
作为示例,当前时刻为T1,在该时刻T1发生了应用故障、文件损坏等非物理性损坏,需要对文件系统中的数据进行恢复。假设想要恢复到上述快照1对应的特定时刻T2,则此时获取到的反向增量数据可以指示文件系统从当前时刻T1到之前特定时刻T2的数据和/或元数据的更新信息。
作为另一示例,当前时刻为T1,在该时刻T1发生了应用故障、文件损坏等非物理性损坏,需要对文件系统中的数据进行恢复。假设想要恢复到上述快照2对应的特定时刻T3,则此时获取到的反向增量数据可以指示文件系统从当前时刻T1到之前特定时刻T3的数据和/或元数据的更新信息。
根据本公开实施例,所述获取单元610可以被配置为:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据。
作为示例,假设使用者想要将发生损坏的文件file2恢复到快照snap2所对应的特定时刻T2,则基于特定时刻T2的快照snap2的标识信息以及文件file2的标识信息,在上述快照信息中进行搜索,以获取所述反向增量数据。
根据本公开实施例,所述快照信息可以包括指示当前时刻相对于所述特定时刻发生了数据新增的第一快照信息和/或指示当前时刻相对于所述特定时刻发生了数据修改或删除的第二快照信息。
作为示例,第一快照信息可以是上述关于表1和表2所描述的目录项信息和索引节点信息。由于存在对应的标识信息(如R_D和R_I),因此很容易便可以确定上述第一快照信息。
作为示例,第二快照信息可以是上述关于表3和表4所描述的目录项信息和索引节点信息。由于存在对应的标识信息(如S),因此很容易便可以确定上述第二快照信息。
根据本公开实施例,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,可以包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第一快照信息;基于所述第一快照信息,获取第一反向增量数据,其中所述第一反向增量数据指示当前时刻相对于所述特定时刻发生了数据新增。
作为示例,假设当前时刻T发生了文件file2的损坏,然后使用者想要将发生损坏的文件file2恢复到快照snap2所对应的特定时刻T2,则基于特定时刻T2的快照snap2的标识信息以及文件file2的标识信息,在上述快照信息中搜索所述第一快照信息,例如通过标识信息(如R_D和R_I)进行搜索。基于所述第一快照信息便可以获取指示当前时刻T相对于所述特定时刻T2发生了数据新增的第一反向增量数据,例如将搜索到的第一快照信息中记录的数据直接作为该第一反向增量数据。
继续参照图6,所述恢复单元620可以被配置为基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻。根据本公开实施例,所恢复单元620可以被配置为:基于所述第一反向增量数据,从所述当前时刻的文件系统中删除与所述第一反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
作为示例,由于已经获得指示当前时刻相对于之前的特定时刻发生了数据新增的第一反向增量数据,则此时仅需要在当前时刻的文件系统中删除与第一反向增量数据对应的数据,便可以将文件系统的数据恢复到该特定时刻。如,当前时刻相对于之前的特定时刻仅新增了关于图1介绍的文件file1和文件夹dir3,并且已通过第一反向增量数据获得上述文件file1和文件夹dir3的信息,则此时仅需要从当前时刻的文件系统中删除掉上述文件file1和文件夹dir3,便可以将文件系统中的数据恢复到之前的特定时刻。
根据本公开实施例,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,可以包括:基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第二快照信息;确定当前时刻的文件系统中是否存在与所述第二快照信息对应的信息;在所述当前时刻的文件系统存在与所述第二快照信息对应的信息的情况下,获取第二反向增量数据,其中所述第二反向增量数据指示当前时刻相对于所述特定时刻发生了数据修改;在所述当前时刻的文件系统不存在与所述第二快照信息对应的信息的情况下,获取第三反向增量数据,其中所述第三反向增量数据指示当前时刻相对于所述特定时刻发生了数据删除。
作为示例,假设当前时刻T发生了文件file2的损坏,然后使用者想要将发生损坏的文件file2恢复到快照snap2所对应的特定时刻T2,则基于特定时刻T2的快照snap2的标识信息以及文件file2的标识信息,在上述快照信息中搜索所述第二快照信息,例如通过标识信息(如S)进行搜索。搜索得到的第二快照信息指示了当前时刻相对于所述特定时刻发生了数据修改或删除。
接下来需要判断是发生了数据修改还是数据删除。具体地,可以通过确定当前时刻的文件系统中是否存在与所述第二快照信息对应的信息的方式来确定是发生了数据修改还是数据删除。
例如,第二快照信息中记录了文件夹dir3发生了修改或删除。在当前的文件系统中依然存在与文件夹dir3对应的信息,则说明文件夹dir3被修改了,则此时获取的是指示当前时刻相对于所述特定时刻发生了数据修改的第二反向增量数据。
又例如,第二快照信息中记录了文件file2发生了修改或删除。在当前的文件系统中不存在与文件file2对应的信息,则说明文件file2被删除了,则此时获取的是指示当前时刻相对于所述特定时刻发生了数据删除的第三反向增量数据。
再继续参照图6,所述恢复单元620可以被配置为:在获取第二反向增量数据的情况下,基于所述第二反向增量数据,对当前时刻的文件系统进行与所述第二反向增量数据对应的数据修改,以将所述文件系统中的数据恢复到所述特定时刻;在获取第三反向增量数据的情况下,基于所述第三反向增量数据,在当前时刻的文件系统中增加与所述第三反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
作为示例,由于已经获得指示当前时刻相对于之前的特定时刻发生了数据修改的第二反向增量数据,则此时仅需要在当前时刻的文件系统中对应修改回与第二反向增量数据对应的数据,便可以将文件系统的数据恢复到该特定时刻。如,当前时刻相对于之前的特定时刻仅修改了关于图1介绍的文件file1和文件夹dir3,并且已通过第二反向增量数据获得上述文件file1和文件夹dir3的修改信息(如修改前的文件file1和文件夹dir3的备份数据),则此时仅需要从当前时刻的文件系统中修改回上述文件file1和文件夹dir3,便可以将文件系统中的数据恢复到之前的特定时刻。
作为另一示例,由于已经获得指示当前时刻相对于之前的特定时刻发生了数据删除的第三反向增量数据,则此时仅需要在当前时刻的文件系统中新增与第三反向增量数据对应的数据,便可以将文件系统的数据恢复到该特定时刻。如,当前时刻相对于之前的特定时刻仅删除了关于图1介绍的文件file1和文件夹dir3,并且已通过第三反向增量数据获得上述文件file1和文件夹dir3的删除信息(如删除前的文件file1和文件夹dir3的备份数据),则此时仅需要从当前时刻的文件系统中新增上述文件file1和文件夹dir3,便可以将文件系统中的数据恢复到之前的特定时刻。
上述已经结合图1-6以及表1-4详细描述了本公开提供的数据恢复方法及装置。本公开提供的方法及装置可以在文件系统数据损坏需要恢复时,只需通过文件系统的快照信息,就可以准确获取到某个时间段内文件系统发生的反向增量数据,从而根据反向增量数据将文件系统的数据恢复到之前特定时间。本公开提供的数据恢复方法及装置仅对更新的数据进行恢复处理,从而使得本公开提供的数据恢复方法及装置在恢复数据时操作的数据量小、恢复时间短、恢复效率高。
本公开除了提供上述数据恢复方法及装置之外,还提供了数据恢复设备以及介质。下面将结合附图进行说明。上述针对数据恢复方法及装置的说明同样适用于下文将要描述的数据恢复设备及介质,除非另有明确说明。
图7是示出根据本公开实施例的数据恢复设备700的框图。
参见图7,设备700可以包括处理器701和存储器702。处理器701和存储器702都可以通过总线703相连。
处理器701可以根据存储在存储器702中的程序执行各种动作和处理。具体地,处理器701可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或ARM架构的。
存储器702存储有计算机指令,在计算机指令被处理器701执行时实现上述数据恢复方法。存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DR RAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
图8示出了根据本公开的记录介质的示意图。
如图8所示,记录介质800上存储有计算机可执行指令810。当所述计算机可执行指令810由处理器执行时,可以执行参照以上附图描述的根据本公开实施例的方法。本公开实施例中的记录介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DR RAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
在上面详细描述的本发明的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本发明的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本发明的范围内。

Claims (16)

1.一种文件系统的数据恢复方法,包括:
基于文件系统的快照信息,获取反向增量数据,其中,所述反向增量数据指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息;
基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻。
2.根据权利要求1所述的数据恢复方法,其中,所述基于文件系统的快照信息,获取反向增量数据,包括:
基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据。
3.根据权利要求2所述的数据恢复方法,其中,所述快照信息包括指示当前时刻相对于所述特定时刻发生了数据新增的第一快照信息和/或指示当前时刻相对于所述特定时刻发生了数据修改或删除的第二快照信息。
4.根据权利要求3所述的数据恢复方法,其中,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,包括:
基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第一快照信息;
基于所述第一快照信息,获取第一反向增量数据,其中所述第一反向增量数据指示当前时刻相对于所述特定时刻发生了数据新增。
5.根据权利要求4所述的数据恢复方法,其中,基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻,包括:
基于所述第一反向增量数据,从所述当前时刻的文件系统中删除与所述第一反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
6.根据权利要求3所述的数据恢复方法,其中,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,包括:
基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第二快照信息;
确定当前时刻的文件系统中是否存在与所述第二快照信息对应的信息;
在所述当前时刻的文件系统存在与所述第二快照信息对应的信息的情况下,获取第二反向增量数据,其中所述第二反向增量数据指示当前时刻相对于所述特定时刻发生了数据修改;
在所述当前时刻的文件系统不存在与所述第二快照信息对应的信息的情况下,获取第三反向增量数据,其中所述第三反向增量数据指示当前时刻相对于所述特定时刻发生了数据删除。
7.根据权利要求6所述的数据恢复方法,其中,基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻,包括:
在获取第二反向增量数据的情况下,基于所述第二反向增量数据,对当前时刻的文件系统进行与所述第二反向增量数据对应的数据修改,以将所述文件系统中的数据恢复到所述特定时刻;
在获取第三反向增量数据的情况下,基于所述第三反向增量数据,在当前时刻的文件系统中增加与所述第三反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
8.一种文件系统的数据恢复装置,包括:
获取单元,被配置为基于文件系统的快照信息,获取反向增量数据,其中,所述反向增量数据指示文件系统从当前时刻到之前特定时刻的数据和/或元数据的更新信息;
恢复单元,被配置为基于所述反向增量数据,将所述文件系统中的数据恢复到所述特定时刻。
9.根据权利要求8所述的数据恢复装置,其中,所述获取单元被配置为:
基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据。
10.根据权利要求9所述的数据恢复装置,其中,所述快照信息包括指示当前时刻相对于所述特定时刻发生了数据新增的第一快照信息和/或指示当前时刻相对于所述特定时刻发生了数据修改或删除的第二快照信息。
11.根据权利要求10所述的数据恢复装置,其中,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,包括:
基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第一快照信息;
基于所述第一快照信息,获取第一反向增量数据,其中所述第一反向增量数据指示当前时刻相对于所述特定时刻发生了数据新增。
12.根据权利要求11所述的数据恢复装置,其中,所述恢复单元被配置为包括:
基于所述第一反向增量数据,从所述当前时刻的文件系统中删除与所述第一反向增量数据对应的数据,以将所述文件系统中的数据恢复所述特定时刻。
13.根据权利要求10所述的数据恢复装置,其中,所述基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中进行搜索,以获取所述反向增量数据,包括:
基于所述特定时刻的文件系统的快照的标识信息以及待恢复数据的标识信息,在所述快照信息中,搜索所述第二快照信息;
确定当前时刻的文件系统中是否存在与所述第二快照信息对应的信息;
在所述当前时刻的文件系统存在与所述第二快照信息对应的信息的情况下,获取第二反向增量数据,其中所述第二反向增量数据指示当前时刻相对于所述特定时刻发生了数据修改;
在所述当前时刻的文件系统不存在与所述第二快照信息对应的信息的情况下,获取第三反向增量数据,其中所述第三反向增量数据指示当前时刻相对于所述特定时刻发生了数据删除。
14.根据权利要求13所述的数据恢复装置,其中,所述恢复单元被配置为:
在获取第二反向增量数据的情况下,基于所述第二反向增量数据,对当前时刻的文件系统进行与所述第二反向增量数据对应的数据修改,以将所述文件系统中的数据恢复到所述特定时刻;
在获取第三反向增量数据的情况下,基于所述第三反向增量数据,在当前时刻的文件系统中增加与所述第三反向增量数据对应的数据,以将所述文件系统中的数据恢复到所述特定时刻。
15. 一种文件系统的数据恢复设备,包括:
处理器,和
存储器,所述存储器存储有计算机可执行指令,所述计算机可执行指令当由处理器执行时促使处理器执行如权利要求1-7中的任一项所述的数据恢复方法。
16.一种计算机可读记录介质,存储有计算机可执行指令,其中,所述计算机可执行指令当由处理器执行时促使处理器执行如权利要求1-7中的任一项所述的数据恢复方法。
CN202310635765.1A 2023-06-01 2023-06-01 文件系统的数据恢复方法、装置、设备及介质 Pending CN116401220A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310635765.1A CN116401220A (zh) 2023-06-01 2023-06-01 文件系统的数据恢复方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310635765.1A CN116401220A (zh) 2023-06-01 2023-06-01 文件系统的数据恢复方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN116401220A true CN116401220A (zh) 2023-07-07

Family

ID=87010802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310635765.1A Pending CN116401220A (zh) 2023-06-01 2023-06-01 文件系统的数据恢复方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116401220A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116610501A (zh) * 2023-07-20 2023-08-18 深圳市科力锐科技有限公司 Nas数据还原方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521225A (zh) * 2011-09-29 2012-06-27 用友软件股份有限公司 增量数据抽取装置和增量数据抽取方法
CN105373448A (zh) * 2015-10-27 2016-03-02 北京百度网讯科技有限公司 数据库中故障数据的恢复方法和系统
CN107957918A (zh) * 2016-10-14 2018-04-24 腾讯科技(深圳)有限公司 数据恢复方法和装置
CN115114301A (zh) * 2021-03-18 2022-09-27 腾讯科技(深圳)有限公司 数据处理方法、装置与电子设备
CN115185891A (zh) * 2022-09-14 2022-10-14 联想凌拓科技有限公司 文件系统的数据管理方法及装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521225A (zh) * 2011-09-29 2012-06-27 用友软件股份有限公司 增量数据抽取装置和增量数据抽取方法
CN105373448A (zh) * 2015-10-27 2016-03-02 北京百度网讯科技有限公司 数据库中故障数据的恢复方法和系统
CN107957918A (zh) * 2016-10-14 2018-04-24 腾讯科技(深圳)有限公司 数据恢复方法和装置
CN115114301A (zh) * 2021-03-18 2022-09-27 腾讯科技(深圳)有限公司 数据处理方法、装置与电子设备
CN115185891A (zh) * 2022-09-14 2022-10-14 联想凌拓科技有限公司 文件系统的数据管理方法及装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116610501A (zh) * 2023-07-20 2023-08-18 深圳市科力锐科技有限公司 Nas数据还原方法、装置、设备及存储介质
CN116610501B (zh) * 2023-07-20 2024-05-14 深圳市科力锐科技有限公司 Nas数据还原方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN104714755B (zh) 一种快照管理方法及装置
US9910620B1 (en) Method and system for leveraging secondary storage for primary storage snapshots
US7478113B1 (en) Boundaries
EP3862883B1 (en) Data backup method and apparatus, and system
JP2019532401A (ja) ブロックチェーンのブロックデータのアーカイブ方法、装置及び照会方法、装置
TWI540432B (zh) Method and apparatus for collapsing virtual disk mirrors
US20190213089A1 (en) Restoration of specified content from an archive
US20070043715A1 (en) Data object search and retrieval
US20150339314A1 (en) Compaction mechanism for file system
WO2017041654A1 (zh) 用于分布式存储系统的写入数据、获取数据的方法和设备
US20160283501A1 (en) Posix-compatible file system, method of creating a file list and storage device
US11500817B2 (en) Asynchronous deletion of large directories
EP2324440A1 (en) Providing data structures for determining whether keys of an index are present in a storage system
US11061569B2 (en) Method and system for providing improved efficiency snapshots using snaplines
JP2022501747A (ja) データバックアップ方法、装置、サーバ及びコンピュータプログラム
CN115185891B (zh) 文件系统的数据管理方法及装置、电子设备及存储介质
US11544150B2 (en) Method of detecting source change for file level incremental backup
CN110998537A (zh) 一种过期备份处理方法及备份服务器
CN116401220A (zh) 文件系统的数据恢复方法、装置、设备及介质
CN113254394B (zh) 一种快照处理方法、系统、设备及存储介质
CN113342741B (zh) 快照实现方法及装置、电子设备及计算机可读存储介质
CN109753381B (zh) 一种基于对象存储的持续数据保护方法
JP3985430B2 (ja) データベース管理装置及び方法
CN113419897A (zh) 一种文件处理方法、装置、电子设备及其存储介质
US20190377709A1 (en) Browsability of backup files using data storage partitioning

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20230707

RJ01 Rejection of invention patent application after publication