掌桥专利:专业的专利平台
掌桥专利
首页

脑裂文件的恢复方法、装置、计算机设备及可读存储介质

文献发布时间:2023-06-19 19:28:50


脑裂文件的恢复方法、装置、计算机设备及可读存储介质

技术领域

本发明涉及数据处理领域,尤其涉及一种脑裂文件的恢复方法、装置、计算机设备及可读存储介质。

背景技术

在分布式文件管理中,可能因意外情况的发生如断网或程序错误,导致文件与其副本间不一致,且两个副本间亦存在差异,也即,存在脑裂现象。针对于脑裂现象,通常是利用副本的修改时间或文件大小来确定各个副本中的正确副本,即恢复源文件,进而利用恢复源文件完成脑裂恢复。

但是,因副本的修改时间或文件大小均不能直接表明副本为基于正常写入操作而得到的文件,因此导致恢复源文件的确定不可靠,使得脑裂文件并不一定能正常恢复。

发明内容

有鉴于此,本发明提供一种脑裂文件的恢复方法、装置、计算机设备及可读存储介质,用于改善恢复源文件的确定不可靠的现状。

第一方面,本发明实施例提供一种脑裂文件的恢复方法,包括:

响应于脑裂恢复请求,确定所述脑裂恢复请求对应的目标文件及所述目标文件的各个副本文件;

若各个所述副本文件的文件标识符均一致,则确定各个所述副本文件之间的指责关系;

当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件;

利用所述恢复源文件对所述目标文件对应的恢复操作。

可选的,在本发明实施例提供的一种可行方式中,还包括:

若所有所述副本文件中,存在一个副本文件与其他副本文件的文件标识符均不一致,则从所述其他副本文件中选取一个副本文件以作为所述恢复源文件,并执行所述利用所述恢复源文件对所述目标文件进行恢复操作的步骤。

可选的,在本发明实施例提供的一种可行方式中,还包括:

将被小于所述预设数量的其他副本文件指责的副本文件作为所述恢复源文件,并执行所述利用所述恢复源文件对所述目标文件对应的恢复操作的步骤。

可选的,在本发明实施例提供的一种可行方式中,所述当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件,包括:

当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则确定各个所述副本文件的最近一次的文件更改时间;

若所有所述副本文件中,存在多个可选副本文件,则将容量最大的可选副本文件作为恢复源文件,其中,所述可选副本文件的文件更改时间为最新。

可选的,在本发明实施例提供的一种可行方式中,所述利用所述恢复源文件对所述目标文件对应的恢复操作,包括:

删除所述恢复源文件之外的其他副本文件,并利用所述恢复源文件进行副本同步。

可选的,在本发明实施例提供的一种可行方式中,所述利用所述恢复源文件对所述目标文件对应的恢复操作,包括:

将所述恢复源文件写入至预设中间目录,得到备份文件;

删除所有所述副本文件,将所述备份文件写入至所述目标文件对应的共享目录。

可选的,在本发明实施例提供的一种可行方式中,还包括:

确定所述目标的文件标识信息和所处目录;

基于预设的重要文件标识信息和重要目录标识信息,判断所述目标文件是否为重要文件,或是否位于重要目录;

若是,则执行所述当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件的步骤;

若否,则将所有所述副本文件中文件更改时间最新的副本文件作为恢复源文件,并执行所述利用所述恢复源文件对所述目标文件进行恢复操作的步骤。

第二方面,本发明实施例提供一种脑裂文件的恢复装置,包括:

响应模块,用于响应于脑裂恢复请求,确定所述脑裂恢复请求对应的目标文件及所述目标文件的各个副本文件;

关系确定模块,用于若各个所述副本文件的文件标识符均一致,则确定各个所述副本文件之间的指责关系;

源文件确定模块,用于当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件;

恢复模块,用于利用所述恢复源文件对所述目标文件对应的恢复操作。

第三方面,本发明实施例提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的脑裂文件的恢复方法。

第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的脑裂文件的恢复方法。

本发明提供的脑裂文件的恢复方法中,首先在接收到脑裂恢复请求时,确定脑裂恢复请求对应的目标文件及目标文件的各个副本文件;接着,若各个副本文件的文件标识符均一致,也即,所有副本均无法通过文件标识符确定是否可信,则确定各个副本文件之间的指责关系;然后,当其中任意一个副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件;最后,利用恢复源文件对目标文件对应的恢复操作。基于此,本发明使得脑裂文件的恢复将基于文件标识符、文件指责关系及文件更改时间来确定,即,使恢复源文件选择将基于多个维度的信息来确定,从而确保了恢复源文件的有效性和准确性,并避免了基于单维度的恢复源文件选择方式的不可靠性。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。

图1示出了本发明实施例提供的第一种脑裂文件的恢复方法的流程示意图;

图2示出了本发明实施例提供的第二种脑裂文件的恢复方法的流程示意图;

图3示出了本发明实施例提供的第三种脑裂文件的恢复方法的流程示意图;

图4示出了本发明实施例提供的脑裂文件的恢复装置的结构示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。

此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。

实施例1

参照图1,示出了本发明实施例提供的第一种脑裂文件的恢复方法的流程示意图,本发明实施例提供的脑裂文件的恢复方法包括:

步骤S110,响应于脑裂恢复请求,确定所述脑裂恢复请求对应的目标文件及所述目标文件的各个副本文件。

可以理解的是,本发明实施例应用于分布式文件管理系统,而分布式文件管理系统基于计算机集群实现。并且,在计算机集群存储文件时,集群中的多个节点将对应存储文件的副本,由此避免源文件及存储源文件的节点下线后,计算机集群中存在文件无法恢复/访问的现象。

步骤S120,若各个所述副本文件的文件标识符均一致,则确定各个所述副本文件之间的指责关系。

需说明的是,在计算机设备正常运行、副本创建过程无异常及文件更新/修改无故障时,一个文件的各个副本的文件标识符应一致,也即,每个副本均是以相同的过程完成创建和同步。

还需说明的是,若将本发明实施例基于glusterfs实现,则本发明实施例中的文件标识符指代gfid。

进一步的,若一个文件的各个副本的文件标识符不一致,则表明此文件的副本创建/写入/更新过程中,出现了意料不到的错误如断网或是程序错误,导致一部分副本正常完成写入,另一部分副本未正常完成写入,故各个副本的文件标识符不一致。

更进一步的,在确定存在脑裂现象的情况下,而各个副本文件的文件标识符均一致,则可知各个副本文件中可能存在正确文件和故障/错误文件,进而本发明实施例将读取各个副本间的指责关系。

需说明的是,本发明实施例中的指责关系可基于副本的ChangeLog文件来确定。具体而言,任意一个副本的ChangeLog文件中记载了自身与其他副本的写入状态数值,其中,若自身的写入状态数值为0,则表明自身是基于正常的写入操作而完成的创建/更新,故自身为正常副本;而若写入状态数值不为0,则表明自身是在写入操作异常时完成的创建/更新,故自身为故障/错误副本。

进一步的,因ChangeLog文件记载了其他副本的写入状态数值,则当自身的写入状态数值为0,其他副本的写入状态数值均不为0,则表明此副本文件指责其他副本均为故障文件;而若自身和其他副本的写入状态数值均为0,则表明此副本文件不指责其他副本也不指责自身;又若自身入状态数值均不为0,其他副本的写入状态数值均为0,则此副本文件指责自己为故障/错误文件。

还可以理解的是,基于ChangeLog文件确定指责关系为现阶段广泛应用的技术,故本发明实施例不再进行过多的说明。并且,还能理解的是,虽然上述基于ChangeLog文件确定指责关系的方式仅能在glusterfs系统下实现,但现阶段不同分布式文件管理系统中确定指责关系的方式均能适用于本发明实施例,而其他分布式系统的指责关系确定方式均可直接参照现有技术,故不再进行过多的说明。

步骤S130,当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件。

也即,本发明实施例将基于不同副本间的指责关系,确定每个副本的被指责次数。示范性的,设副本共为3个,分别为F

进一步的,本发明实施例将在每个副本文件均被超过预设数量的其他副本文件指责时,也即,任意一个副本均被多数个副本认定为故障文件时,将所有副本文件中,文件最近更改时间最新的副本文件作为恢复源文件。

步骤S140,利用所述恢复源文件对所述目标文件对应的恢复操作。

也即,本发明实施例将在确定正确的副本文件,即恢复源文件后,利用恢复源文件完成目标文件对应的恢复,从而使存在脑裂现象的文件被更新为恢复源文件,并使得目标文件及其副本均一致。

可以理解的是,利用恢复源文件完成目标文件对应的恢复操作的过程为可根据实际情况设置的内容,如在本发明实施例提供的一种可行方式中,具体参考图2,示出了本发明实施例提供的第二种脑裂文件的恢复方法的流程示意图,即在此种可行方式中,上述步骤S140具体包括:

S141,删除所述恢复源文件之外的其他副本文件,并利用所述恢复源文件进行副本同步。

也即,本发明实施例将保留恢复源文件对应的副本文件,而其他的副本文件均将被删除。而在删除其他的副本文件之后,存储副本文件的各个节点再将恢复源文件拷贝至自身,进而形成新的副本文件,由此完成脑裂恢复。

在本发明实施例提供的另一种利用恢复源文件完成目标文件对应的恢复操作的过程中,上述步骤S140具体包括:

将所述恢复源文件写入至预设中间目录,得到备份文件;

删除所有所述副本文件,将所述备份文件写入至所述目标文件对应的共享目录。

可以理解的是,共享目录是分布式存储卷挂载到主机后形成的一个目录,分布式存储后端各副本组成。还可以理解的是,共享目录的详细作用和详细定义均可直接参考现有技术,因而本发明实施例不再进行详细地说明。

进一步的,本发明实施例确定恢复源文件后,首先将恢复源文件写入至中间目录下以形成备份文件;之后,将各个副本文件均删除;最后,将备份文件写入至共享目录下目标文件对应的存储位置,以重新形成各个副本文件,并使各个副本间的数据一致。

基于上述内容,本发明实施例使得脑裂文件的恢复将基于文件标识符、文件指责关系及文件更改时间来确定,即,使恢复源文件选择将基于多个维度的信息来确定,从而确保了恢复源文件的有效性和准确性,并避免了基于单维度的恢复源文件选择方式的不可靠性。

可选的,在本发明实施例提供的一种可行方式中,所述方法还包括:

若所有所述副本文件中,存在一个副本文件与其他副本文件的文件标识符均不一致,则从所述其他副本文件中选取一个副本文件以作为所述恢复源文件,并执行所述利用所述恢复源文件对所述目标文件进行恢复操作的步骤。

也即,本发明实施例将在均单个副本故障的情况下,即,所有副本文件中,除去一个故障的副本文件外,其他副本文件的文件标识符均一致的情况下,从文件标识符一致的多个副本文件中挑选其中一个以作为恢复源文件,进而利用恢复源文件完成相应的恢复操作。

不难理解的是,若仅有一个所有副本文件中,仅一个副本文件的文件标识符与其他副本文件的文件标识符均不一致,则表明其他副本文件均是已经过同步或均是正常写入的文件,此文件标识符不一致的副本文件为写入错误的文件,即故障文件。

可选的,在本发明实施例提供的一种可行方式中,所述方法还包括:

将被小于所述预设数量的其他副本文件指责的副本文件作为所述恢复源文件,并执行所述利用所述恢复源文件对所述目标文件对应的恢复操作的步骤。

能够想到的是,若所有副本文件中,存在一个或多个副本文件的被指责数小于预设值,则表明此副本文件仅被少数个其他副本认定为错误/故障,换言之,此副本文件的可信度较高,因此,将选取此文件以作为恢复源文件。

在一种优选方式中,预设数量为0,也即,不被任意一个其他副本文件指责的副本文件将被作为恢复源文件。不难想到的是,若某个副本文件不被任何一个其他副本文件指责,则表明其他所有副本文件均认定此副本文件为正常写入而得到的文件。

可选的,在本发明实施例提供的一种可行方式中,具体可参考图3,示出了本发明实施例提供的第三种脑裂文件的恢复方法的流程示意图,也即上述步骤S130在此种可行方式中具体包括:

S131,当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则确定各个所述副本文件的最近一次的文件更改时间;

S132,若所有所述副本文件中,存在多个可选副本文件,则将容量最大的可选副本文件作为恢复源文件,其中,所述可选副本文件的文件更改时间为最新。

也即,在多个副本文件的文件更改时间均为最新时,即存在多个可选副本文件时,本发明实施例将从众多个可选副本文件中,挑选出容量最大的可选副本文件以作为恢复源文件。不难理解的是,副本的容量越高,则其包含的信息越多,进而越有可能为正常写入而得到的文件。

可选的,在本发明实施例提供的一种可行方式中,所述方法还包括:

确定所述目标的文件标识信息和所处目录;

基于预设的重要文件标识信息和重要目录标识信息,判断所述目标文件是否为重要文件,或是否位于重要目录;

若是,则执行所述当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件的步骤;

若否,则将所有所述副本文件中文件更改时间最新的副本文件作为恢复源文件,并执行所述利用所述恢复源文件对所述目标文件进行恢复操作的步骤。

也即,本发明实施例针对于重要文件和非重要文件设置了两种恢复方式。其中,非重要文件的恢复则直接采用文件更改时间最新的副本文件来完成,从而使脑裂文件快速地完成恢复。而针对于重要文件,则本发明实施例将基于多维度信息来确定重要文件的恢复源文件,由此确保恢复源文件能被更新为正确的文件。

可选的,在本发明实施例提供的一种可行方式中,文件标识信息包括文件名,重要文件标识信息包括重要文件的文件名的正则匹配字段。

此外,可以理解的是,重要文件的认定方法为需根据实际情况设置的内容,故本发明实施例不对此进行限定。

实施例2

与本发明实施例1提供的脑裂文件的恢复方法相对应的,本发明实施例2还提供一种脑裂文件的恢复装置,参照图4,示出了本发明实施例提供的脑裂文件的恢复装置的结构示意图,本发明实施例提供的脑裂文件的恢复装置200,包括:

响应模块210,用于响应于脑裂恢复请求,确定所述脑裂恢复请求对应的目标文件及所述目标文件的各个副本文件;

关系确定模块220,用于若各个所述副本文件的文件标识符均一致,则确定各个所述副本文件之间的指责关系;

源文件确定模块230,用于当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件;

恢复模块240,用于利用所述恢复源文件对所述目标文件对应的恢复操作。

可选的,在本发明实施例提供的一种可行方式中,还包括:

第一选取模块,用于若所有所述副本文件中,存在一个副本文件与其他副本文件的文件标识符均不一致,则从所述其他副本文件中选取一个副本文件以作为所述恢复源文件,并执行所述利用所述恢复源文件对所述目标文件进行恢复操作的步骤。

可选的,在本发明实施例提供的一种可行方式中,还包括:

第二选取模块,用于将被小于所述预设数量的其他副本文件指责的副本文件作为所述恢复源文件,并执行所述利用所述恢复源文件对所述目标文件对应的恢复操作的步骤。

可选的,在本发明实施例提供的一种可行方式中,所述源文件确定模块,包括:

时间确定子模块,用于当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则确定各个所述副本文件的最近一次的文件更改时间;

容量筛选子模块,用于若所有所述副本文件中,存在多个可选副本文件,则将容量最大的可选副本文件作为恢复源文件,其中,所述可选副本文件的文件更改时间为最新。

可选的,在本发明实施例提供的一种可行方式中,所述恢复模块还用于删除所述恢复源文件之外的其他副本文件,并利用所述恢复源文件进行副本同步。

可选的,在本发明实施例提供的一种可行方式中,所述恢复模块还包括:

备份文件生成子模块,用于将所述恢复源文件写入至预设中间目录,得到备份文件;

备份文件写入子模块,用于删除所有所述副本文件,将所述备份文件写入至所述目标文件对应的共享目录。

可选的,在本发明实施例提供的一种可行方式中,还包括:

信息确定模块,用于确定所述目标的文件标识信息和所处目录;

判断模块,用于基于预设的重要文件标识信息和重要目录标识信息,判断所述目标文件是否为重要文件,或是否位于重要目录;

关系确定模块还用于若是,则执行所述当其中任意一个所述副本文件均被超过预设数量的其他副本文件指责时,则将文件更改时间最新的副本文件作为恢复源文件的步骤;

非重要文件恢复模块,用于若否,则将所有所述副本文件中文件更改时间最新的副本文件作为恢复源文件,并执行所述利用所述恢复源文件对所述目标文件进行恢复操作的步骤。

本申请实施例提供的脑裂文件的恢复装置200能够实现实施例1对应的脑裂文件的恢复方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如实施例1中所述的脑裂文件的恢复方法。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如实施例1中所述的脑裂文件的恢复方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

相关技术
  • 文件导出方法、装置、计算机设备及计算机可读存储介质
  • 文件加密方法、装置、设备/终端/服务器及计算机可读存储介质
  • 一种文件同步方法、装置、设备及计算机可读存储介质
  • 文件预加载方法、装置、电子设备及计算机可读存储介质
  • 图像文件保存方法、装置、计算机设备及可读存储介质
  • 文件存储方法及装置、计算机设备、计算机可读存储介质
  • 数据恢复方法、装置、计算机可读存储介质和计算机设备
技术分类

06120115920078