一种文件修复方法及装置与流程

文档序号:12665101阅读:181来源:国知局
一种文件修复方法及装置与流程

本发明涉及存储技术领域,尤其涉及一种文件修复方法及装置。



背景技术:

随着互联网和信息技术的不断发展,诸如本地文件系统和分布式文件系统等文件系统中存储有越来越多的文件。要充分利用文件系统中存储的文件,首先要保证文件的可靠性。提高文件可靠性除了要对文件进行冗余备份外,还需要对损坏的文件进行修复。

现有技术中对文件进行修复时需要依靠用户进行手动操作。比如,当通过容灾方式对文件系统进行冗余备份时,文件修复的过程可如图1所示。终端设备向生产系统发送读取指定文件的请求,当指定文件中存在坏块而导致无法读取指定文件时,生产系统向终端设备报错,读取业务中断;终端设备在接收到生产系统的报错后,用户手动切换到与生产系统存储有相同文件的灾备系统,灾备系统将坏块对应的数据块返回给终端设备,终端设备将该数据块发送给生产系统,生产系统可利用该数据块对自身存储的指定文件进行修复。由此可见,这种文件修复过程需要用户手动切换文件系统,修复过程会导致文件系统的业务中断。

综上,现有技术中对文件系统中的文件进行修复时存在文件系统业务中断的问题。



技术实现要素:

本发明实施例提供一种文件修复方法及装置,用以解决现有技术中对文件系统中的文件进行修复时存在的文件系统业务中断的问题。

第一方面,本发明实施例提供一种文件修复方法,该方法包括:生产系统接收终端设备发送的第一读取请求,第一读取请求用于请求读取生产系统存储的指定文件;生产系统确定生产系统存储的指定文件中存在至少一个坏块后,向备份系统发送第二读取请求,该备份系统与生产系统存储有相同的文件,该第二读取请求用于请求读取备份系统存储的指定文件中与至少一个坏块对应的至少一个数据块;生产系统接收备份系统发送的至少一个数据块后,可根据至少一个数据块对生产系统存储的指定文件进行修复。

采用上述方案,由于生产系统在确定自身存储的指定文件中存在至少一个坏块后,根据备份系统发送的、与至少一个坏块对应的至少一个数据块对自身存储的指定文件进行修复,因而在生产系统存储的指定文件需要修复时,不必像现有技术那样由生产系统向终端设备报错,并中断读取业务,然后通过用户手动切换到灾备系统来对生产系统存储的指定文件进行修复。采用第一方面提供的文件修复方法,生产系统可根据备份系统发送的至少一个数据块对自身存储的指定文件进行修复,由于修复过程是通过生产系统和备份系统的交互实现的,终端设备没有参与修复过程,也就不会感知该修复过程的执行,因此,该修复过程不会导致终端设备的读取业务中断,因而提高了系统为终端设备提供文件读写服务的效率,避免了系统的业务中断;此外,生产系统对指定文件的修复过程无需用户手动参与,简化了修复过程,提升了用户体验。

在上述第一方面中,备份系统与生产系统存储有相同的文件可通过同步复制、异步复制和备份三种方式实现。采用不同的实现方式,修复生产系统存储的指定文件的具体过程会有所不同。

其中,采用同步复制方式时,备份系统与生产系统中存储的文件完全一致;采用异步复制或备份方式时,备份系统周期性地同步生产系统中存储的文件,备份系统与生产系统中存储的文件中包含的数据块不一定完全一致。

当备份系统同步复制有生产系统存储的文件时,生产系统根据至少一个数据块对生产系统存储的指定文件进行修复,可通过如下过程实现:生产系统在接收到至少一个数据块后,在至少一个坏块的存储地址下写入该至少一个数据块,即可完成对生产系统存储的指定文件的修复过程。

由于备份系统同步复制有生产系统存储的文件,因而备份系统与生产系统中存储的文件完全一致。生产系统对自身存储的指定文件进行修复时,可直接在至少一个坏块的存储地址下写入备份系统发送的至少一个数据块。采用上述方案,在备份系统同步复制有生产系统存储的文件时,提供了一种修复生产系统存储的指定文件的方法。

当备份系统异步复制或备份有生产系统存储的文件时,生产系统根据至少一个数据块对生产系统存储的指定文件进行修复,可通过如下过程实现:生产系统在接收到至少一个数据块后可基于自身存储的差异位图中是否记录有至少一个坏块的情况,使用至少一个数据块对至少一个坏块进行修复。

其中,生产系统基于差异位图中是否记录有至少一个坏块的情况,使用至少一个数据块对至少一个坏块进行修复,具体可通过如下方式实现:当差异位图中未记录有至少一个坏块时,生产系统在至少一个坏块的存储地址下写入至少一个数据块;或者当差异位图中记录有至少一个坏块时,生产系统根据自身存储的至少一个坏块的修改方式,对至少一个数据块进行修改;生产系统在至少一个坏块的存储地址下写入修改后的至少一个数据块。

由于备份系统异步复制或备份有生产系统存储的文件,因而备份系统与生产系统中存储的文件所包含的数据块并不一定完全一致。生产系统对自身存储的指定文件进行修复时,需要基于差异位图中是否记录有至少一个坏块的情况进行修复。采用上述方案,在备份系统异步复制或备份有生产系统存储的文件时,提供了一种修复生产系统存储的指定文件的方法。

此外,在生产系统根据至少一个数据块对生产系统存储的指定文件进行修复之后,生产系统可将生产系统存储的指定文件发送给终端设备;或者,在生产系统接收备份系统发送的至少一个数据块之前,生产系统还可将指定文件中除至少一个坏块之外的其他数据块发送给终端设备;在生产系统接收备份系统发送的至少一个数据块之后,生产系统将至少一个数据块发送给终端设备。

采用上述方案,生产系统不仅可以修复自身存储的指定文件,还可通过上述过程实现为终端设备提供读取指定文件的服务。

第二方面,本发明实施例提供一种文件修复方法,该方法包括:备份系统接收生产系统发送的第二读取请求,该备份系统与生产系统存储有相同的文件,且生产系统存储的指定文件中存在至少一个坏块,该第二读取请求用于请求读取备份系统存储的指定文件中与至少一个坏块对应的至少一个数据块,该至少一个数据块可用于生产系统根据该至少一个数据块对生产系统存储的指定文件进行修复;备份系统将该至少一个数据块发送给生产系统。

采用上述方案,在生产系统在确定自身存储的指定文件中存在至少一个坏块后,生产系统可根据备份系统发送的、与至少一个坏块对应的至少一个数据块对自身存储的指定文件进行修复,因而在生产系统存储的指定文件需要修复时,不必像现有技术那样由生产系统向终端设备报错,并中断读取业务,然后通过用户手动切换到灾备系统来对生产系统存储的指定文件进行修复。采用第二方面提供的文件修复方法,生产系统可根据备份系统发送的至少一个数据块对自身存储的指定文件进行修复,由于修复过程是通过生产系统和备份系统的交互实现的,终端设备没有参与修复过程,也就不会感知该修复过程的执行,因此,该修复过程不会导致终端设备的读取业务中断,因而提高了系统为终端设备提供文件读写服务的效率,避免了系统的业务中断;此外,生产系统对指定文件的修复过程无需用户手动参与,简化了修复过程,提升了用户体验。

第三方面,本发明实施例提供一种文件修复装置,该装置包括收发模块、存储模块和修复模块。其中,收发模块用于接收终端设备发送的第一读取请求,第一读取请求用于请求读取指定文件;存储模块用于存储指定文件;修复模块用于确定存储模块存储的指定文件中存在至少一个坏块;收发模块还用于向备份系统发送第二读取请求,以及接收备份系统发送的至少一个数据块,该备份系统与生产系统存储有相同的文件,该第二读取请求用于请求读取备份系统存储的指定文件中与至少一个坏块对应的至少一个数据块;修复模块,还用于根据备份系统发送的至少一个数据块对存储模块存储的指定文件进行修复。

其中,第三方面提供的文件修复装置可视为本发明实施例中的生产系统中的装置,该装置可用于对生产系统存储的指定文件进行修复。

采用上述方案,由于修复模块在确定存储模块存储的指定文件中存在至少一个坏块后,根据备份系统发送的至少一个数据块对存储模块存储的指定文件进行修复,因而在存储模块存储的指定文件需要修复时,不必像现有技术那样向终端设备报错,并中断读取业务,然后通过用户手动切换到灾备系统来对存储模块存储的指定文件进行修复。在第三方面提供的文件修复装置中,修复模块可根据备份系统发送的至少一个数据块对存储模块存储的指定文件进行修复,由于修复过程是通过第三方面提供的文件修复装置和备份系统的交互实现的,终端设备没有参与修复过程,也就不会感知该修复过程的执行,因此,该修复过程不会导致终端设备的读取业务中断,因而提高了文件修复装置为终端设备提供文件读写服务的效率,避免了系统的业务中断;此外,修复模块对指定文件的修复过程无需用户手动参与,简化了修复过程,提升了用户体验。

在上述第三方面中,备份系统与存储模块存储有相同的文件可通过同步复制、异步复制和备份三种方式实现。采用不同的实现方式,修复存储模块存储的指定文件的具体过程会有所不同。

其中,采用同步复制方式时,备份系统与存储模块中存储的文件完全一致;采用异步复制或备份方式时,备份系统周期性地同步存储模块中存储的文件,备份系统与存储模块中存储的文件中包含的数据块不一定完全一致。

当备份系统同步复制有存储模块存储的文件时,修复模块在根据至少一个数据块对存储模块存储的指定文件进行修复时,可在至少一个坏块的存储地址下写入收发模块接收到的至少一个数据块。

由于备份系统同步复制有存储模块存储的文件,因而备份系统与存储模块中存储的文件完全一致。修复模块对存储模块存储的指定文件进行修复时,可直接在至少一个坏块的存储地址下写入备份系统发送的至少一个数据块。采用上述方案,在备份系统同步复制有存储模块存储的文件时,提供了一种修复存储模块存储的指定文件的方法。

当备份系统异步复制或备份有存储模块存储的文件时,修复模块在根据至少一个数据块对存储模块存储的指定文件进行修复时,可基于存储模块存储的差异位图中是否记录有至少一个坏块的情况,使用至少一个数据块对至少一个坏块进行修复。其中,差异位图用于记录存储模块中进行过修改、且备份系统未进行过相应修改的数据块。

修复模块在基于差异位图中是否记录有至少一个坏块的情况,使用至少一个数据块对至少一个坏块进行修复时,具体可通过如下过程实现:当差异位图中未记录有至少一个坏块时,在至少一个坏块的存储地址下写入至少一个数据块;或者当差异位图中记录有至少一个坏块时,根据至少一个坏块的修改方式,对至少一个数据块进行修改;在至少一个坏块的存储地址下写入修改后的至少一个数据块。其中,至少一个坏块的修改方式存储在存储模块中。

由于备份系统异步复制或备份有存储模块存储的文件,因而备份系统与存储模块中存储的文件所包含的数据块并不一定完全一致。修复模块对存储模块存储的指定文件进行修复时,需要基于差异位图中是否记录有至少一个坏块的情况进行修复。采用上述方案,在备份系统异步复制或备份有存储模块存储的文件时,提供了一种修复存储模块存储的指定文件的方法。

此外,收发模块还可在修复模块根据至少一个数据块对存储模块存储的指定文件进行修复之后,将存储模块存储的指定文件发送给终端设备;或者收发模块还可在接收备份系统发送的至少一个数据块之前,将指定文件中除至少一个坏块之外的其他数据块发送给终端设备,然后在接收备份系统发送的至少一个数据块之后,将至少一个数据块发送给终端设备。

采用上述方案,文件修复装置不仅可以通过修复模块对存储模块存储的指定文件进行修复,文件修复装置的收发模块还可为终端设备提供读取指定文件的服务。

第四方面,本发明实施例提供一种文件修复装置,该装置包括存储模块和收发模块。

存储模块用于存储指定文件;收发模块用于接收生产系统发送的第二读取请求,以及将至少一个数据块发送给生产系统。其中,存储模块与生产系统存储有相同的文件,且生产系统存储的指定文件中存在至少一个坏块,该第二读取请求用于请求读取存储模块存储的指定文件中与至少一个坏块对应的至少一个数据块,该至少一个数据块用于生产系统根据至少一个数据块对生产系统存储的指定文件进行修复。

在生产系统在确定自身存储的指定文件中存在至少一个坏块后,生产系统可根据收发模块发送的、与至少一个坏块对应的至少一个数据块对自身存储的指定文件进行修复,因而在生产系统存储的指定文件需要修复时,不必像现有技术那样由生产系统向终端设备报错,并中断读取业务,然后通过用户手动切换到灾备系统来对生产系统存储的指定文件进行修复。采用第四方面提供的文件修复装置,生产系统可根据收发模块发送的至少一个数据块对自身存储的指定文件进行修复,由于修复过程是通过生产系统和第四方面提供的文件修复装置的交互实现的,终端设备没有参与修复过程,也就不会感知该修复过程的执行,因此,该修复过程不会导致终端设备的读取业务中断,因而提高了系统为终端设备提供文件读写服务的效率,避免了系统的业务中断;此外,生产系统对指定文件的修复过程无需用户手动参与,简化了修复过程,提升了用户体验。

第五方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当计算节点的至少一个处理器执行该计算机执行指令时,计算节点执行上述第一方面或者第一方面的各种可能设计提供的方法,或者执行上述第二方面或者第二方面的各种可能设计提供的方法。

第六方面,本发明实施例提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中。计算节点的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得计算节点实施上述第一方面或者第一方面的各种可能设计提供的方法,或者实施上述第二方面或者第二方面的各种可能设计提供的方法。

附图说明

图1为现有技术提供的文件修复的过程的流程示意图;

图2为本发明实施例提供的第一种文件写入过程的流程示意图;

图3为本发明实施例提供的第二种文件写入过程的流程示意图;

图4为本发明实施例提供的第三种文件写入过程的流程示意图;

图5为本发明实施例提供的一种文件修复方法的流程示意图;

图6为本发明实施例提供的第一种文件修复装置的结构示意图;

图7为本发明实施例提供的第二种文件修复装置的结构示意图;

图8为本发明实施例提供的第三种文件修复装置的结构示意图;

图9为本发明实施例提供的第四种文件修复装置的结构示意图;

图10为本发明实施例提供的一种文件系统的结构示意图。

具体实施方式

为了更好地理解本发明实施例的上述目的、方案和优势,下文提供了详细描述。该详细描述通过使用框图、流程图等附图和/或示例,阐明了装置和/或方法的各种实施方式。在这些框图、流程图和/或示例中,包含一个或多个功能和/或操作。本领域技术人员将理解到:这些框图、流程图或示例内的各个功能和/或操作,能够通过各种各样的硬件、软件、固件单独或共同实施,或者通过硬件、软件和固件的任意组合实施。

本发明实施例涉及对指定文件进行修复,其中,指定文件为采用本发明实施例提供的文件修复方法进行修复的文件,本发明实施例中对指定文件的文件类型不做限制,只要生产系统中的某个文件可采用本发明实施例提供的文件修复方法进行修复,该文件即可视为指定文件。在对指定文件进行修复时涉及两个文件系统,即生产系统和备份系统。

其中,生产系统用于为终端设备提供文件读写服务,备份系统与生产系统存储有相同的文件。也就是说,当生产系统中存储的指定文件未损坏时,生产系统可为终端设备提供文件读写服务;当生产系统中存储的指定文件中部分数据块损坏时,生产系统可根据备份系统中存储的指定文件对自身存储的指定文件进行修复,修复完成后,生产系统可继续为终端设备提供文件读写服务;当生产系统中存储的文件无法修复时,用户可通过终端设备将备份系统切换为提供文件读写服务的文件系统。

备份系统与生产系统存储有相同的文件,可通过如下三种方式实现:

第一种方式:同步复制

备份系统同步复制有生产系统存储的文件可通过图2所示的文件写入过程实现。图2中,假设终端设备要向生产系统中写入的文件1包含A、B、C、D和E这五个数据块,那么终端设备向生产系统中写入文件1时,需要向生产系统分别写入A、B、C、D和E五个数据块。以写入数据块A为例,终端设备首先在生产系统中写入数据块A,然后生产系统向备份系统发送写入数据块A的指令,在备份系统成功写入数据块A后,备份系统向生产系统发送写入成功的指示消息,生产系统在确认备份系统已成功写入数据块A后,向终端设备发送写入成功的指示消息。数据块B、C、D和E的写入过程和数据块A的写入过程相同,此处不再赘述。当数据块A、B、C、D和E都完成写入过程后,即完成文件1的写入过程。

此外,当备份系统同步复制有生产系统存储的文件时,若终端设备要对生产系统中存储的数据块进行修改,也需要同时对备份系统中存储的相应数据块进行修改。

第二种方式:异步复制

备份系统异步复制有生产系统存储的文件可通过图3所示的文件写入过程实现。在图3中,备份系统和生产系统间需要配置同步周期,在同步周期未到来时,对于终端设备向生产系统写入的数据块,生产系统仅需在自身存储的差异位图中记录下该数据块,而无需将该数据块写入备份系统;在同步周期到来时,生产系统将差异位图中记录的数据块写入备份系统。比如,终端设备要向生产系统中写入的文件1包含A、B、C、D和E这五个数据块,假设在上一个同步周期结束时,生产系统和备份系统中均已写入了A、B、C这三个数据块。在本次同步周期未到来时,终端设备向生产系统写入数据块D,生产系统在差异位图中记录下数据块D,然后终端设备向生产系统写入数据块E,生产系统在差异位图中记录下数据块E;在本次同步周期到来时,生产系统将差异位图中记录的数据块D和数据块E写入备份系统。

此外,当备份系统异步复制有生产系统存储的文件时,若终端设备要对生产系统中存储的数据块进行修改,生产系统需在同步周期未到来时在差异位图中记录下进行过修改的数据块。当同步周期到来时,生产系统将差异位图中记录的数据块写入备份系统。

特别地,当备份系统同步复制或异步复制有生产系统存储的文件时,备份系统又可以称为灾备系统。生产系统不仅可以根据灾备系统中存储的文件对自身存储的文件进行修复,而且在生产系统因意外(如火灾、地震等)停止工作时,用户可通过终端设备将灾备系统切换为提供文件读写服务的文件系统,灾备系统可代替生产系统继续为终端设备提供文件读写服务。

第三种方式:备份

备份系统备份有生产系统存储的文件可通过图4所示的文件写入过程实现。与备份系统异步复制生产系统中的文件的过程类似,备份系统中备份有生产系统中存储的文件的过程可通过周期性地将差异位图中记录的数据块写入备份系统来实现。与异步复制过程不同的是,针对某个文件,备份系统中可能会备份有多个副本。比如,终端设备要向生产系统中写入的文件1包含A、B、C、D和E这五个数据块,假设在上一个同步周期结束时,生产系统和备份系统中均已写入了A、B、C这三个数据块,备份系统中文件1的副本1由数据块A、B、C组成。在本次同步周期未到来时,终端设备向生产系统写入数据块D,生产系统在差异位图中记录下数据块D,然后终端设备向生产系统写入数据块E,生产系统在差异位图中记录下数据块E;在本次同步周期到来时,生产系统将差异位图中记录的数据块D和数据块E备份到备份系统中,备份系统中文件1的副本2由数据块A、B、C、D、E组成。其中,副本2为最新版本的副本。

此外,当备份系统备份有生产系统存储的文件时,若终端设备要对生产系统中的数据块进行修改,生产系统需在同步周期未到来时在差异位图中记录下进行过修改的数据块。当同步周期到来时,生产系统将差异位图中记录的数据块写入备份系统,形成另一个副本。

在上述三种方式中,采用同步复制方式时,备份系统与生产系统中存储的文件完全一致;采用异步复制或备份方式时,备份系统周期性地同步生产系统中存储的文件,备份系统与生产系统中存储的文件中包含的数据块不一定完全一致。备份系统与生产系统中存储的文件中包含的数据块不一定完全一致的具体含义是:备份系统与生产系统中存储的文件相同,但是对于同一文件,在同步周期未到来时,生产系统可能对该文件中的某些数据块做了修改,并将修改的数据块记录在差异位图中,但是由于该修改发生的时间为同步周期到来之前,因此备份系统中该文件中的数据块并未做相应修改。

现有技术中,对生产系统中存储的文件进行修复时,需要依靠用户进行手动操作。当生产系统确定自身存储的文件中某些数据块已损坏时,生产系统向终端设备报错,读取业务中断;终端设备在接收到生产系统的报错后,用户手动切换到备份系统,备份系统将坏块对应的数据块返回给终端设备,终端设备将该数据块发送给生产系统,生产系统可利用该数据块对相应文件中损坏的数据块进行修复。这种文件修复过程需要用户手动切换文件系统,修复过程会导致生产系统停止为终端设备提供文件读写服务,即导致文件系统的业务中断。

为了解决现有技术中对文件系统中的文件进行修复时存在的文件系统业务中断的问题,本发明实施例提供一种文件修复方法。如图5所示,该方法包括如下步骤:

S501:生产系统接收终端设备发送的第一读取请求。

该第一读取请求用于请求读取生产系统存储的指定文件。

本发明实施例中,终端设备包括但不限于智能手机、智能手表、平板电脑、虚拟现实(Virtual Reality,VR)设备、增强现实(Augmented Reality,AR)设备、个人计算机、手持式计算机、个人数字助理。

S502:生产系统确定生产系统存储的指定文件中存在至少一个坏块。

S503:生产系统向备份系统发送第二读取请求。

其中,备份系统与生产系统存储有相同的文件,第二读取请求用于请求读取备份系统存储的指定文件中与至少一个坏块对应的至少一个数据块。

其中,至少一个数据块为与至少一个坏块对应的数据块。假设生产系统中存储的文件1包含A、B、C、D、E五个数据块,其中的数据块C和数据块D为两个坏块,那么备份系统中存储的文件1也包含A、B、C、D、E五个数据块,与至少上述两个坏块一一对应的两个数据块即为备份系统中存储的数据块C和数据块D。

S504:备份系统向生产系统发送至少一个数据块。

S505:生产系统根据至少一个数据块对生产系统存储的指定文件进行修复。

本发明实施例中,备份系统与生产系统存储有相同的文件可通过上述三种方式实现,即同步复制、异步复制和备份,此处不再赘述。

可选地,生产系统在执行S505对自身存储的指定文件进行修复后,可将修复后的指定文件发送给终端设备,从而在指定文件修复完成后,实现生产系统为终端设备提供读取指定文件的服务。

可选地,生产系统在执行S504接收至少一个数据块之前,还可将指定文件中除至少一个坏块之外的其他数据块发送给终端设备;在执行S504接收至少一个数据块之后,还可将至少一个数据块发送给终端设备,从而,生产系统可在对指定文件进行修复的同时,实现为终端设备提供文件读写服务。

备份系统与生产系统存储有相同的文件通过上述三种方式实现时,采用不同的实现方式,修复生产系统存储的指定文件的具体实现方式会有所不同。

当备份系统同步复制有生产系统存储的文件时,S505中,生产系统根据至少一个数据块对生产系统存储的指定文件进行修复,可通过如下方式实现:生产系统在接收到至少一个数据块后,在至少一个坏块的存储地址下写入该至少一个数据块,即可完成对生产系统存储的指定文件的修复过程。

由于备份系统同步复制有生产系统存储的文件,因而备份系统与生产系统中存储的文件完全一致。生产系统对自身存储的指定文件进行修复时,可直接在至少一个坏块的存储地址下写入备份系统发送的至少一个数据块。采用上述方案,在备份系统同步复制有生产系统存储的文件时,提供了一种修复生产系统存储的指定文件的方法。

当备份系统异步复制或备份有生产系统存储的文件时,S505中,生产系统根据备份系统发送的至少一个数据块对生产系统存储的指定文件进行修复,可通过如下方式实现:生产系统在接收到至少一个数据块后可基于自身存储的差异位图中是否记录有至少一个坏块的情况,使用至少一个数据块对至少一个坏块进行修复。其中,差异位图用于记录生产系统中进行过修改、且备份系统未进行过相应修改的数据块。

由于备份系统异步复制或备份有生产系统存储的文件,因而备份系统与生产系统中存储的文件所包含的数据块并不一定完全一致。生产系统对自身存储的指定文件进行修复时,需要基于差异位图中是否记录有至少一个坏块的情况进行修复。采用上述方案,在备份系统异步复制或备份有生产系统存储的文件时,提供了一种修复生产系统存储的指定文件的方法。

具体地,生产系统在基于差异位图中是否记录有至少一个坏块的情况对指定文件进行修复时,有以下两种情况:

第一种情况

当差异位图中未记录有至少一个坏块时,生产系统在至少一个坏块的存储地址下写入至少一个数据块,即可完成对生产系统存储的指定文件的修复过程;

第二种情况

当差异位图中记录有至少一个坏块时,生产系统根据自身存储的对至少一个坏块进行修改的修改方式,对至少一个数据块进行相应修改,并在修改完成后在至少一个坏块的存储地址下写入修改后的至少一个数据块。

当备份系统异步复制或备份有生产系统存储的指定文件时,由于备份系统仅在同步周期到来时与生产系统进行数据块的同步,因此,生产系统中需存储有差异位图,用来记录哪些数据块为生产系统中进行过修改、备份系统中未进行过相应修改的数据块。此外,生产系统中还可存储有差异位图中所记录的数据块的修改方式,以便生产系统在修复自身存储的指定文件时,根据至少一个坏块的修改方式对至少一个数据块做相应修改。

需要说明的是,当差异位图中记录有至少一个坏块中的部分数据块时,生产系统在接收到至少一个数据块后,可根据自身存储的部分数据块的修改方式,对部分数据块进行修改,并将修改过部分数据块的至少一个数据块作为修改后的至少一个数据块,然后将修改后的至少一个数据块写在至少一个坏块的存储地址,即可完成对生产系统存储的指定文件的修复过程。

比如,生产系统存储的指定文件中包含四个坏块A、B、C、D,那么与四个坏块对应的四个数据块为备份系统存储的指定文件中的A、B、C、D四个数据块,即生产系统发送第二读取请求后,备份系统会将A、B、C、D四个数据块发送给生产系统。若差异位图中记录有A和B两个数据块,即A和B在生产系统中进行过修改、在备份系统中未进行过相应修改,那么生产系统在接收到备份系统发送的A、B、C、D四个数据块后,可根据自身存储的A和B的修改方式对备份系统发送的A、B、C、D四个数据块中的数据块A和数据块B进行修改,并将修改过A和B的四个数据块作为修改后的四个数据块,然后将修改后的四个数据块写在四个坏块的存储地址。

采用图5所示的文件修复方法,由于生产系统在确定自身存储的指定文件中存在至少一个坏块后,根据备份系统发送的、与至少一个坏块对应的至少一个数据块对自身存储的指定文件进行修复,因而在生产系统存储的指定文件需要修复时,不必像现有技术那样由生产系统向终端设备报错,并中断读取业务,然后通过用户手动切换到灾备系统来对生产系统存储的指定文件进行修复。采用本发明实施例提供的文件修复方法,生产系统可根据备份系统发送的至少一个数据块对自身存储的指定文件进行修复,由于修复过程是通过生产系统和备份系统的交互实现的,终端设备没有参与修复过程,也就不会感知该修复过程的执行,因此,该修复过程不会导致终端设备的读取业务中断,因而提高了系统为终端设备提供文件读写服务的效率,避免了系统的业务中断;此外,生产系统对指定文件的修复过程无需用户手动参与,简化了修复过程,提升了用户体验。

本发明实施例提供一种文件修复装置,该装置可用于执行图5所示的文件修复方法中生产系统所执行的操作。如图6所示,该装置600包括收发模块601、存储模块602和修复模块603。

其中,收发模块601用于接收终端设备发送的第一读取请求,该第一读取请求用于请求读取指定文件;存储模块602,用于存储指定文件;修复模块603,用于确定存储模块602存储的指定文件中存在至少一个坏块;收发模块601还用于向备份系统发送第二读取请求,以及接收备份系统发送的至少一个数据块,该备份系统与生产系统存储有相同的文件,该第二读取请求用于请求读取备份系统存储的指定文件中与至少一个坏块对应的至少一个数据块;修复模块603,还用于根据备份系统发送的至少一个数据块对存储模块602存储的指定文件进行修复。

可选地,备份系统与存储模块602存储有相同的文件,具体为:备份系统同步复制有存储模块602存储的文件。

可选地,修复模块603在根据备份系统发送的至少一个数据块对存储模块602存储的指定文件进行修复时,具体用于:在至少一个坏块的存储地址下写入至少一个数据块。

可选地,备份系统与存储模块602存储有相同的文件,具体为:备份系统异步复制或备份有存储模块602存储的文件。

可选地,存储模块602还用于:存储差异位图,差异位图用于记录存储模块602中进行过修改、且备份系统未进行过相应修改的数据块;修复模块603在根据备份系统发送的至少一个数据块对存储模块602存储的指定文件进行修复时,具体用于:基于差异位图中是否记录有至少一个坏块的情况,使用至少一个数据块对至少一个坏块进行修复。

可选地,存储模块602还用于存储至少一个坏块的修改方式;修复模块603在基于差异位图中是否记录有至少一个坏块的情况,使用至少一个数据块对至少一个坏块进行修复时,具体用于:当差异位图中未记录有至少一个坏块时,在至少一个坏块的存储地址下写入至少一个数据块;或者当差异位图中记录有至少一个坏块时,根据至少一个坏块的修改方式,对至少一个数据块进行修改;在至少一个坏块的存储地址下写入修改后的至少一个数据块。

可选地,收发模块601还用于在修复模块603根据备份系统发送的至少一个数据块对存储模块602存储的指定文件进行修复之后,可将存储模块602存储的指定文件发送给终端设备;或者,收发模块601在接收备份系统发送的至少一个数据块之前,将指定文件中除至少一个坏块之外的其他数据块发送给终端设备,并在接收备份系统发送的至少一个数据块之后,将至少一个数据块发送给终端设备。

在文件修复装置600中,由于修复模块603在确定存储模块602存储的指定文件中存在至少一个坏块后,根据备份系统发送的至少一个数据块对存储模块602存储的指定文件进行修复,因而在存储模块602存储的指定文件需要修复时,不必像现有技术那样向终端设备报错,并中断读取业务,然后通过用户手动切换到灾备系统来对存储模块602存储的指定文件进行修复。在文件修复装置600中,修复模块603可根据备份系统发送的至少一个数据块对存储模块602存储的指定文件进行修复,由于修复过程是通过文件修复装置600和备份系统的交互实现的,终端设备没有参与修复过程,也就不会感知该修复过程的执行,因此,该修复过程不会导致终端设备的读取业务中断,因而提高了文件修复装置为终端设备提供文件读写服务的效率,避免了系统的业务中断;此外,修复模块603对指定文件的修复过程无需用户手动参与,简化了修复过程,提升了用户体验。

需要说明的是本发明实施例提供的文件修复装置600可用于执行图5所示的文件修复方法中生产系统执行的操作,文件修复装置600未详细解释和描述的实现方式可参考图5所示的文件修复方法中的相关描述。

需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

基于以上实施例,本发明实施例还提供了一种文件修复装置,该文件修复装置可以执行图5对应的实施例提供的方法,可以与图6所示的文件修复装置600相同。

参见图7,文件修复装置700包括至少一个处理器701、存储器702和通信接口703;所述至少一个处理器701、所述存储器702和所述通信接口703均通过总线704连接;

所述存储器702,用于存储计算机执行指令;

所述至少一个处理器701,用于执行所述存储器702存储的计算机执行指令,使得所述文件修复装置700通过所述通信接口703与其它设备(例如终端设备和备份系统)进行数据交互来执行上述实施例提供的文件修复方法。

至少一个处理器701,可以包括不同类型的处理器701,或者包括相同类型的处理器701;处理器701可以是以下的任一种:中央处理器(Central Processing Unit,简称CPU)、ARM处理器、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、专用处理器等具有计算处理能力的器件。一种可选实施方式,所述至少一个处理器701还可以集成为众核处理器。

存储器702可以是以下的任一种或任一种组合:随机存取存储器(Random Access Memory,简称RAM)、只读存储器(read only memory,简称ROM)、非易失性存储器(non-volatile memory,简称NVM)、固态硬盘(Solid State Drives,简称SSD)、机械硬盘、磁盘、磁盘阵列等存储介质。

通信接口703用于文件修复装置700与其他设备(例如终端设备和备份系统)进行数据交互。通信接口703可以是以下的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。

该总线704可以包括地址总线、数据总线、控制总线等,为便于表示,图7用一条粗线表示该总线。总线704可以是以下的任一种或任一种组合:工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外设组件互连标准(Peripheral Component Interconnect,简称PCI)总线、扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等有线数据传输的器件。

本发明实施例提供一种文件修复装置,该装置可用于执行图5所示的文件修复方法中备份系统所执行的操作。如图8所示,该装置800包括存储模块801和收发模块802。

存储模块801,用于存储指定文件;

收发模块802,用于接收生产系统发送的第二读取请求,以及将至少一个数据块发送给生产系统。其中,该存储模块801与生产系统存储有相同的文件,生产系统存储的指定文件中存在至少一个坏块,该第二读取请求用于请求读取存储模块801存储的指定文件中与至少一个坏块对应的至少一个数据块,该至少一个数据块用于生产系统根据该至少一个数据块对生产系统存储的指定文件进行修复。

在生产系统在确定自身存储的指定文件中存在至少一个坏块后,生产系统可根据收发模块802发送的、与至少一个坏块对应的至少一个数据块对自身存储的指定文件进行修复,因而在生产系统存储的指定文件需要修复时,不必像现有技术那样由生产系统向终端设备报错,并中断读取业务,然后通过用户手动切换到灾备系统来对生产系统存储的指定文件进行修复。采用第四方面提供的文件修复装置,生产系统可根据收发模块802发送的至少一个数据块对自身存储的指定文件进行修复,由于修复过程是通过生产系统和文件修复装置800的交互实现的,终端设备没有参与修复过程,也就不会感知该修复过程的执行,因此,该修复过程不会导致读取业务中断,因而提高了系统为终端设备提供文件读写服务的效率,避免了系统的业务中断;此外,生产系统对指定文件的修复过程无需用户手动参与,简化了修复过程,提升了用户体验。

需要说明的是本发明实施例提供的文件修复装置800可用于执行图5所示的文件修复方法中备份系统执行的操作,文件修复装置800未详细解释和描述的实现方式可参考图5所示的文件修复方法中的相关描述。

基于以上实施例,本发明实施例还提供了一种文件修复装置,该文件修复装置可以执行图5对应的实施例提供的方法,可以与图8所示的文件修复装置800相同。

参见图9,文件修复装置900包括至少一个处理器901、存储器902和通信接口903;所述至少一个处理器901、所述存储器902和所述通信接口903均通过总线904连接;

所述存储器902,用于存储计算机执行指令;

所述至少一个处理器901,用于执行所述存储器902存储的计算机执行指令,使得所述文件修复装置900通过所述通信接口903与其它设备(例如终端设备和生产系统)进行数据交互来执行上述实施例提供的文件修复方法。

至少一个处理器901,可以包括不同类型的处理器901,或者包括相同类型的处理器901;处理器901可以是以下的任一种CPU、ARM处理器、FPGA、专用处理器等具有计算处理能力的器件。一种可选实施方式,所述至少一个处理器901还可以集成为众核处理器。

存储器902可以是以下的任一种或任一种组合:RAM、ROM、NVM、SSD、机械硬盘、磁盘、磁盘阵列等存储介质。

通信接口903用于文件修复装置900与其他设备(例如终端设备和生产系统)进行数据交互。通信接口903可以是以下的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。

该总线904可以包括地址总线、数据总线、控制总线等,为便于表示,图9用一条粗线表示该总线。总线904可以是以下的任一种或任一种组合:ISA总线、PCI总线、EISA总线等有线数据传输的器件。

本发明实施例还提供一种文件系统。如图10所示,该文件系统1000包含图6所示的文件修复装置600和图8所示的文件修复装置800,该文件系统1000中的文件修复装置600和文件修复装置800可进行交互,从而完成图5所示的文件修复方法。

综上,采用本发明实施例提供的文件修复方法和装置,生产系统可根据备份系统发送的至少一个数据块对自身存储的指定文件进行修复,由于修复过程是通过生产系统和备份系统的交互实现的,终端设备没有参与修复过程,也就不会感知该修复过程的执行,因此,该修复过程不会导致终端设备的读取业务中断,因而提高了系统为终端设备提供文件读写服务的效率,避免了系统的业务中断;此外,生产系统对指定文件的修复过程无需用户手动参与,简化了修复过程,提升了用户体验。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1