CN103761161B - 恢复数据的方法、服务器及系统 - Google Patents

恢复数据的方法、服务器及系统 Download PDF

Info

Publication number
CN103761161B
CN103761161B CN201310754520.7A CN201310754520A CN103761161B CN 103761161 B CN103761161 B CN 103761161B CN 201310754520 A CN201310754520 A CN 201310754520A CN 103761161 B CN103761161 B CN 103761161B
Authority
CN
China
Prior art keywords
journal file
data
server
information
recovery
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.)
Active
Application number
CN201310754520.7A
Other languages
English (en)
Other versions
CN103761161A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310754520.7A priority Critical patent/CN103761161B/zh
Publication of CN103761161A publication Critical patent/CN103761161A/zh
Priority to PCT/CN2014/088962 priority patent/WO2015101084A1/zh
Application granted granted Critical
Publication of CN103761161B publication Critical patent/CN103761161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Abstract

本发明公开了一种恢复数据的方法、服务器及系统,属于信息技术领域。方法包括:主服务器接收存储系统中的各个从服务器根据主服务器发送的日志获取请求返回的第一恢复日志文件,并根据所有第一恢复日志文件及主服务器生成的第二恢复日志文件所记录的最新操作信息对待恢复数据进行操作,第一恢复日志文件及第二恢复日志文件记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息。本发明通过主服务器向存储系统中的各个从服务器发送日志获取请求后,根据各个从服务器返回的所有第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。

Description

恢复数据的方法、服务器及系统
技术领域
本发明涉及信息技术领域,特别涉及一种恢复数据的方法、服务器及系统。
背景技术
随着信息技术的不断发展,存储系统的规模越来越大。在大规模的存储系统中,器件发生故障的频率也随之增加。在器件发生故障时,如何恢复数据,从而保证数据的安全成为人们关注的问题。
目前,有三种恢复数据的方式,第一种方式:通过fsck命令扫描文件系统来查找待恢复数据,并恢复待恢复数据。第二种方式:通过元数据服务器读取系统操作日志中的待恢复数据的日志信息,并根据读取到的待恢复数据的日志信息控制数据服务器重新执行对数据的操作,从而恢复数据。第三种方式:通过元数据服务器读取待恢复数据的日志信息,并根据读取到的待恢复的日志信息控制数据服务器重新执行对数据的操作,从而恢复数据。
现有技术至少存在以下问题:
第一种方式需要扫描所有的数据,造成系统资源的浪费。第二种方式和第三种方式,都需要使用元数据服务器恢复数据,而元数据服务器恢复数据的速度较慢,致使恢复数据的效率较低。
发明内容
本发明实施例提供了一种恢复数据的方法、服务器及系统,可以解决现有技术的问题。所述技术方案如下:
第一方面,提供了一种恢复数据的方法,所述方法应用于存储系统的主服务器,所述存储系统包括主服务器和从服务器,所述主服务器和所述从服务器均用于存储相同数据,所述主服务器为第一个成功存储数据的服务器,所述方法包括:
当所述存储系统中的任意一个服务器存储数据失败时,所述主服务器向所述存储系统中的每个从服务器发送日志获取请求,所述日志获取请求中携带待恢复数据标识;
接收各个从服务器根据所述日志获取请求返回的第一恢复日志文件,每个第一恢复日志文件记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
根据所有所述第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,所述待恢复数据根据所述待恢复数据的位置信息查找得到,所述第二恢复日志文件由所述主服务器生成,且记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
结合第一方面,在第一方面的第一种可能的实现方式中,所述向所述存储系统中的每个从服务器发送日志获取请求之前,还包括:
接收并存储客户端发送的数据,并向所述客户端返回包含所述数据的识别标识的第一写入状态信息,所述第一写入状态信息为写入成功信息或写入失败信息;
接收所述客户端发送的总写入状态信息,所述总写入状态信息包括所述主服务器向所述客户端返回的第一写入状态信息及每个从服务器向所述客户端返回的第二写入状态信息;
如果所述客户端发送的总写入状态信息中包含写入失败信息,则确定所述客户端发送的数据为待恢复数据,并生成记录所述待恢复数据的位置信息及操作信息的第二恢复日志文件。
结合第一方面,在第一方面的第二种可能的实现方式中,所述根据所有所述第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,包括:
依次读取每个所述第一恢复日志文件及第二恢复日志文件;
判断当前读取的恢复日志文件的索引信息是否在预设结构中,所述索引信息包括恢复日志文件标识、偏移量信息及数据长度信息,所述预设结构存储有索引信息及操作时间;
若当前读取的恢复日志文件的索引信息未在所述预设结构中,则将当前读取的恢复日志文件的索引信息及操作时间添加到所述预设结构中;
继续读取下一个恢复日志文件,按照处理当前读取的恢复日志文件的方式处理读取的下一个恢复日志文件,直至处理完最后一个恢复日志文件,得到存储有无重复索引信息及操作时间的预设结构;
获取与所述预设结构中的索引信息及操作时间对应的恢复日志文件,并将与所述预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件,根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
结合第一方面至第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述判断当前读取的恢复日志文件的索引信息是否在预设结构中之后,还包括:
若当前读取的恢复日志文件的索引信息在预设结构中,则将当前读取的恢复日志文件的操作时间与所述预设结构中对应当前读取的恢复日志文件的索引信息的操作时间进行比较;
若当前读取的恢复日志文件的操作时间晚于预设结构中对应当前读取的恢复日志文件的索引信息的操作时间,则将当前读取的恢复日志文件的操作时间替换预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间,并执行继续读取下一个恢复日志文件的步骤。
结合第一方面至第一方面的第二种或第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,获取与所述预设结构中的索引信息及操作时间对应的恢复日志文件,包括:
依次读取所述第一恢复日志文件及与所述待恢复数据标识相对应的第二恢复日志文件,并将当前读取的恢复日志文件的索引信息依次与预设结构中的索引信息进行比对;
若所述预设结构中存在与当前读取的恢复日志文件的索引信息相同的索引信息,则比较当前读取的恢复日志文件的操作时间与所述预设结构中对应当前读取的恢复日志文件的索引信息的操作时间;
若所述预设结构中存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间,则将当前读取的恢复日志文件添加到筛选出的恢复日志文件中,并读取下一个恢复日志文件;
以此类推,直至比对完最后一个恢复日志文件,得到所述预设结构中的每个索引信息对应的恢复日志文件。
结合第一方面至第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,所述将与所述预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件之后,还包括:
将筛选出的恢复日志文件发送给各个从服务器,由各个从服务器根据所述筛选出的恢复日志文件对所述待恢复数据进行恢复。
第二方面,提供了一种恢复数据的方法,所述方法应用于存储系统的主服务器,所述存储系统包括所述主服务器和从服务器,所述主服务器和所述从服务器均用于存储相同数据,所述主服务器为第一个成功存储数据的服务器,所述方法包括:
每个从服务器接收所述主服务器发送的日志获取请求,所述日志获取请求中携带待恢复数据标识;
根据所述日志获取请求向所述主服务器返回第一恢复日志文件,使所述主服务器根据所述第一恢复日志文件及所述主服务器生成的第二恢复日志文件恢复所述待恢复数据;
接收所述主服务器发送的筛选出的恢复日志文件,并根据所述筛选出的恢复日志文件所记录的操作信息对待恢复数据进行操作;
其中,所述第一恢复日志文件及所述第二恢复日志文件均记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
结合第二方面,在第二方面的第一种可能的实现方式中,所述根据所述日志获取请求向所述主服务器返回第一恢复日志文件之前,还包括:
接收并存储客户端发送的数据,并向所述客户端返回包含所述数据的识别标识的第二写入状态信息,所述第二写入状态信息包括写入成功信息或写入失败信息;
接收所述客户端发送的总写入状态信息,所述总写入状态信息包括所述从服务器向所述客户端返回的第二写入状态信息及所述主服务器向所述客户端返回的第一写入状态信息;
如果所述客户端发送的总写入状态信息中包含写入失败信息,则确定所述客户端发送的数据为待恢复数据,并生成记录所述待恢复数据的位置信息及操作信息的第一复日志文件。
结合第二方面,在第二方面的第二种可能的实现方式中,所述根据所述日志获取请求向所述主服务器返回第一恢复日志文件之后,还包括:
接收所述主服务器发送的筛选出的恢复日志文件,并根据所述筛选出的恢复日志文件对所述待恢复数据进行恢复。
第三方面,提供了一种恢复数据的服务器,所述服务器为应用于存储系统的主服务器,所述存储系统包括所述主服务器和从服务器,所述主服务器和所述从服务器均用于存储相同数据,所述主服务器为第一个成功存储数据的服务器,所述服务器包括:
第一发送模块,用于当所述存储系统中的任意一个服务器存储数据失败时,向所述存储系统中的每个从服务器发送日志获取请求,所述日志获取请求中携带待恢复数据标识;
第一接收模块,用于接收各个从服务器根据所述日志获取请求返回的第一恢复日志文件,每个第一恢复日志文件记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
恢复模块,用于根据所有所述第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,所述待恢复数据根据所述待恢复数据的位置信息查找得到,所述第二恢复日志文件由所述主服务器生成,且记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
结合第三方面,在第三方面的第一种可能的实现方式中,所述服务器,还包括:
存储模块,用于接收并存储客户端发送的数据;
返回模块,用于向所述客户端返回包含所述数据的识别标识的第一写入状态信息,所述第一写入状态信息包括写入成功信息或写入失败信息;
第二接收模块,用于接收所述客户端发送的总写入状态信息,所述总写入状态信息包括所述主服务器向所述客户端返回的第一写入状态信息及每个从服务器向所述客户端返回的第二写入状态信息;
生成模块,用于当所述客户端发送的总写入状态信息中包含写入失败信息时,确定所述客户端发送的数据为待恢复数据,并生成记录所述待恢复数据的位置信息及操作信息的第二恢复日志文件。
结合第三方面,在第三方面的第二种可能的实现方式中,所述恢复模块,包括:
第一读取单元,用于依次读取每个所述第一恢复日志文件及第二恢复日志文件;
判断单元,用于判断当前读取的恢复日志文件的索引信息是否在预设结构中,所述索引信息包括恢复日志文件标识、偏移量信息及数据长度信息,所述预设结构用于存储索引信息及操作时间;
添加单元,用于在当前读取的恢复日志文件的索引信息未在所述预设结构中时,将当前读取的恢复日志文件的索引信息及操作时间添加到所述预设结构中;
第二读取单元,用于继续读取下一个恢复日志文件;
处理单元,用于按照处理当前读取的恢复日志文件的方式处理读取的下一个恢复日志文件,直至处理完最后一个恢复日志文件,得到存储有无重复索引信息及操作时间的预设结构;
获取单元,用于获取与所述预设结构中的索引信息及操作时间对应的恢复日志文件,并将与所述预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件;
恢复单元,用于根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
结合第三方面至第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述恢复模块,还包括:
比较单元,用于在当前读取的恢复日志文件的索引信息在预设结构中时,将当前读取的恢复日志文件的操作时间与所述预设结构中对应当前读取的恢复日志文件的索引信息的操作时间进行比较;
替换单元,用于在当前读取的恢复日志文件的操作时间晚于预设结构中对应当前读取的恢复日志文件的索引信息的操作时间时,将当前读取的恢复日志文件的操作时间替换预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间;
所述第二读取单元,还用于执行继续读取下一个恢复日志文件的步骤。
结合第三方面至第一方面的第二种或第三种可能的实现方式中的任一种可能的实现方式,在第三方面的第四种可能的实现方式中,所述获取单元,包括:
第一读取子单元,用于依次读取所述第一恢复日志文件及与所述待恢复数据标识相对应的第二恢复日志文件;
比对子单元,用于将当前读取的恢复日志文件的索引信息依次与预设结构中的索引信息进行比对;
比较子单元,用于当所述预设结构中存在与当前读取的恢复日志文件的索引信息相同的索引信息时,比较当前读取的恢复日志文件的操作时间与所述预设结构中对应当前读取的恢复日志文件的索引信息的操作时间;
添加子单元,用于当所述预设结构中存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间时,将当前读取的恢复日志文件添加到筛选出的恢复日志文件中;
第二读取子单元,用于读取下一个恢复日志文件;以此类推,直至比对完最后一个恢复日志文件,得到所述预设结构中的每个索引信息对应的恢复日志文件。
结合第三方面,在第三方面的第五种可能的实现方式中,所述服务器,还包括:
第二发送模块,用于将筛选出的恢复日志文件发送给各个从服务器,由各个从服务器根据所述筛选出的恢复日志文件对所述待恢复数据进行恢复。
第四方面,提供了一种恢复数据的服务器,所述服务器为应用于存储系统的从服务器,所述存储系统包括主服务器和所述从服务器,所述主服务器和所述从服务器均用于存储相同数据,所述主服务器为第一个成功存储数据的服务器,所述服务器包括:
第一接收模块,用于接收所述主服务器发送的日志获取请求,所述日志获取请求中携带待恢复数据标识;
第一返回模块,用于根据所述日志获取请求向所述主服务器返回第一恢复日志文件,使所述主服务器根据所述第一恢复日志文件及所述主服务器生成的第二恢复日志文件恢复所述待恢复数据;
第二接收模块,用于接收所述主服务器发送的筛选出的恢复日志文件;
恢复模块,用于根据所述筛选出的恢复日志文件所记录的操作信息对待恢复数据进行操作;
其中,所述第一恢复日志文件及所述第二恢复日志文件均记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
结合第四方面,在第四方面的第一种可能的实现方式中,所述服务器,还包括:
存储模块,用于接收并存储客户端发送的数据;
第二返回模块,用于向所述客户端返回包含所述数据的识别标识的第二写入状态信息,所述第二写入状态信息包括写入成功信息或写入失败信息;
第三接收模块,用于接收所述客户端发送的总写入状态信息,所述总写入状态信息包括所述从服务器向所述客户端返回的第二写入状态信息及所述主服务器向所述客户端返回的第一写入状态信息;
生成模块,用于当所述客户端发送的总写入状态信息中包含写入失败信息时,确定所述客户端发送的数据为待恢复数据,并生成记录所述待恢复数据的位置信息及操作信息的第一恢复日志文件。
第五方面,提供了一种恢复数据的系统,所述系统包括:主服务器和至少一个从服务器;
其中,所述主服务器如上面所述的第一种服务器,所述从服务器如上面所述的第二种服务器。
本发明实施例提供的技术方案带来的有益效果是:
通过主服务器向存储系统中的各个从服务器发送日志获取请求后,接收各个从服务器返回的第一恢复日志文件,并根据所有第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种恢复数据的方法流程图;
图2是本发明实施例一提供的另一种恢复数据的方法流程图;
图3是本发明实施例二提供的一种恢复数据的方法流程图;
图4是本发明实施例二提供的一种交互过程的示意图;
图5是本发明实施例三提供的一种恢复数据的服务器的结构示意图;
图6是本发明实施例四提供的一种恢复数据的服务器的结构示意图;
图7是本发明实施例五提供的一种恢复数据的系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作作为一种可选实施例详细描述。
实施例一
本发明实施例提供了一种恢复数据的方法,以方法应用于存储系统的主服务器,存储系统包括主服务器和从服务器,主服务器和从服务器均用于存储相同数据,主服务器为第一个成功存储数据的服务器为例,参见图1,本发明实施例提供的方法流程包括:
101:当存储系统中的任意一个服务器存储数据失败时,主服务器向存储系统中的每个从服务器发送日志获取请求,日志获取请求中携带待恢复数据标识;
作为一种可选实施例,向存储系统中的每个从服务器发送日志获取请求之前,还包括:
接收并存储客户端发送的数据,并向客户端返回包含数据的识别标识的第一写入状态信息,第一写入状态信息为写入成功信息或写入失败信息;
接收客户端发送的总写入状态信息,总写入状态信息包括主服务器向客户端返回的第一写入状态信息及每个从服务器向客户端返回的第二写入状态信息;
如果客户端发送的总写入状态信息中包含写入失败信息,则确定客户端发送的数据为待恢复数据,并生成记录待恢复数据的位置信息及操作信息的第二恢复日志文件。
102:接收各个从服务器根据日志获取请求返回的第一恢复日志文件,每个第一恢复日志文件记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
103:根据所有第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,待恢复数据根据待恢复数据的位置信息查找得到,第二恢复日志文件由主服务器生成,且记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
作为一种可选实施例,根据所有第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,包括:
依次读取每个第一恢复日志文件及第二恢复日志文件;
判断当前读取的恢复日志文件的索引信息是否在预设结构中,索引信息包括恢复日志文件标识、偏移量信息及数据长度信息,预设结构用于存储索引信息及操作时间;
若当前读取的恢复日志文件的索引信息未在预设结构中,则将当前读取的恢复日志文件的索引信息及操作时间添加到预设结构中;
继续读取下一个恢复日志文件,按照处理当前读取的恢复日志文件的方式处理读取的下一个恢复日志文件,直至处理完最后一个恢复日志文件,得到存储有无重复索引信息及操作时间的预设结构;
获取与预设结构中的索引信息及操作时间对应的恢复日志文件,并将与预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件,根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
作为一种可选实施例,判断当前读取的恢复日志文件的索引信息是否在预设结构中之后,还包括:
若当前读取的恢复日志文件的索引信息在预设结构中,则将当前读取的恢复日志文件的操作时间与预设结构中对应当前读取的恢复日志文件的索引信息的操作时间进行比较;
若当前读取的恢复日志文件的操作时间晚于预设结构中对应当前读取的恢复日志文件的索引信息的操作时间,则将当前读取的恢复日志文件的操作时间替换预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间,并执行继续读取下一个恢复日志文件的步骤。
作为一种可选实施例,获取与预设结构中的索引信息及操作时间对应的恢复日志文件,包括:
依次读取第一恢复日志文件及与待恢复数据标识相对应的第二恢复日志文件,并将当前读取的恢复日志文件的索引信息依次与预设结构中的索引信息进行比对;
若预设结构中存在与当前读取的恢复日志文件的索引信息相同的索引信息,则比较当前读取的恢复日志文件的操作时间与预设结构中对应当前读取的恢复日志文件的索引信息的操作时间;
若预设结构中存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间,则将当前读取的恢复日志文件添加到筛选出的恢复日志文件中,并读取下一个恢复日志文件;
以此类推,直至比对完最后一个恢复日志文件,得到预设结构中的每个索引信息对应的恢复日志文件。
作为一种可选实施例,将与预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件之后,还包括:
将筛选出的恢复日志文件发送给各个从服务器,由各个从服务器根据筛选出的恢复日志文件对待恢复数据进行恢复。
以方法应用于存储系统的主服务器,存储系统包括主服务器和从服务器,主服务器和从服务器均用于存储相同数据,主服务器为第一个成功存储数据的服务器为例,参见图2,本发明实施例提供的方法流程包括:
201:每个从服务器接收主服务器发送的日志获取请求,日志获取请求中携带待恢复数据标识;
202:根据日志获取请求向主服务器返回第一恢复日志文件,使主服务器根据第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据;
其中,第一恢复日志文件及第二恢复日志文件均记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
作为一种可选实施例,根据日志获取请求向主服务器返回第一恢复日志文件之前,还包括:
接收并存储客户端发送的数据,并向客户端返回包含数据的识别标识的第二写入状态信息,第二写入状态信息包括写入成功信息或写入失败信息;
接收客户端发送的总写入状态信息,总写入状态信息包括从服务器向客户端返回的第二写入状态信息及主服务器向客户端返回的第一写入状态信息;
如果客户端发送的总写入状态信息中包含写入失败信息,则确定客户端发送的数据为待恢复数据,并生成记录待恢复数据的位置信息及操作信息的第一恢复日志文件。
203:接收主服务器发送的筛选出的恢复日志文件,并根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
本发明实施例提供的方法,通过主服务器向存储系统中的各个从服务器发送日志获取请求后,根据各个从服务器返回的第一恢复日志文件,并根据所有第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。
实施例二
本发明实施例提供了一种恢复数据的方法,为了便于理解,结合上述实施例一的内容,以存储系统为例,对本发明实施例提供的数据处理方法进行详细地解释说明。其中,存储系统中包括主服务器和至少两个从服务器,主服务器为第一个成功存储数据的服务器,从服务器为存储系统中除主服务器以外的其他服务器。参见图3,本实施例提供的方法流程包括:
301:主服务器和从服务器分别接收并存储客户端发送的数据,主服务器向客户端返回包含数据的识别标识的第一写入状态信息,从服务器向客户端返回包含数据的识别标识的第二写入状态信息,第一写入状态信息及第二写入状态信息包括写入成功信息或写入失败信息;
为了使主服务器和从服务器能够分别接收客户端发送的数据,客户端会提前获取数据。关于客户端获取数据的方式,本实施例不作具体限定。具体实施时,可以由用户通过APP(Application,应用)将数据写入客户端,再由客户端将数据发送给各个服务器。当然,除了上述接收数据的方式外,还可以采用其他方式,本实施例对此不作具体限定。
作为一种可选实施例,主服务器和从服务器通过与客户端的交互存储数据。其中,主服务器和从服务器与客户端的交互过程采用两阶段事务提交的方式,分别为准备阶段和提交阶段。在准备阶段,主服务器存储客户端发送的数据,并向客户端返回包含数据的识别标识的第一写入状态信息,从服务器存储客户端发送的数据,并向客户端返回包含数据的识别标识的第二写入状态信息,即步骤301对应准备阶段。
为了便于理解,以如图4所示的交互过程为例进行说明。其中,存储系统中共有3个服务器,分别为服务器1、服务器2及服务器3。用户通过APP将数据1写入客户端,客户端创建一个transaction(事务),并向服务器1至服务器3分别发送用户写入的数据1。服务器1至服务器3分别接收并存储客户端发送的数据1,即服务器1至服务器3存储相同的数据1;服务器1和服务器2存储数据1成功,服务器3存储数据1失败;服务器1和服务器2向客户端返回包含数据1标识的写入状态信息,该写入状态信息为写入成功信息;服务器3向客户端返回包含数据1标识的写入状态信息,该写入状态信息为写入失败信息。另外,由于服务器1为第一个成功存储数据1的服务器,则将服务器1作为主服务器,服务器1向客户端返回的写入状态信息为第一写入状态信息;将存储系统中除主服务器以外的其他服务器,即服务器2和服务器3作为从服务器,并将服务器2和服务器3向客户端返回的写入状态信息作为第二写入状态信息。
302:主服务器和从服务器分别接收客户端发送的总写入状态信息,总写入状态信息包括主服务器向客户端返回的第一写入状态信息及每个从服务器向客户端返回的第二写入状态信息;
由于主服务器向客户端返回包含数据的识别标识的第一写入状态信息,从服务器向客户端返回包含数据的识别标识的第二写入状态信息,客户端会接收到各个服务器发送的包括第一写入状态信息及第二写入状态信息的总写入状态信息,并将包括写入失败信息的总写入状态信息发送给写入状态信息为写入成功信息的服务器,从而使各个服务器能够接收客户端发送的总写入状态信息。
作为一种可选实施例,在服务器与客户端的交互过程的提交阶段,主服务器和从服务器分别接收客户端发送的总写入状态信息,即步骤302对应提交阶段。
为了便于理解,仍以如图4所示的交互过程为例进行说明。其中,存储系统中共有3个服务器,分别为服务器1、服务器2及服务器3。由于服务器1和服务器2向客户端返回的写入状态信息为写入成功信息;服务器3向客户端返回的写入状态信息为写入失败信息,则在提交阶段,客户端向服务器1、服务器2及服务器3发送总写入状态信息,该总写入状态信息中包括数据1写入失败信息,服务器1、服务器2及服务器3接收客户端发送的总写入状态信息。
303:当客户端发送的总写入状态信息中包含写入失败信息时,主服务器和从服务器分别确定客户端发送的数据为待恢复数据,主服务器生成记录待恢复数据的位置信息及操作信息的第二恢复日志文件,从服务器生成记录待恢复数据的位置信息及操作信息的第一恢复日志文件;
当客户端发送的总写入状态信息中包含写入失败信息时,说明至少一个服务器存储数据失败,为了恢复数据,减少数据丢失,主服务器和从服务器分别确定客户端发送的数据为待恢复数据。
需要说明的是,恢复日志文件中记录的待恢复数据的位置信息可以为偏移量信息、数据长度信息等,用于确定待恢复数据的位置;操作信息可以为写入数据信息、删除数据信息等,用于描述对数据的操作,本实施例不对恢复日志文件中记录的待恢复数据的位置信息及操作信息的内容作具体限定。
为了便于理解,仍以图4所示的交互过程为例进行说明。其中,存储系统中共有3个服务器,分别为服务器1、服务器2及服务器3。由于服务器1、服务器2及服务器3接收到客户端发送的总写入状态信息包含写入失败信息,则服务器1、服务器2和服务器3确定数据1为待恢复数据,并生成记录写入数据1的位置信息及操作信息的恢复日志文件。例如,如果服务器1为主服务器,服务器2和服务器3为从服务器,则服务器1生成记录待恢复数据的位置信息及操作信息的第二恢复日志文件。服务器2和服务器3通过数据刷盘,记录错误日志,即生成记录待恢复数据的位置信息及操作信息的第一恢复日志文件。
以上客户端与各个服务器的交互过程体现了各个服务器存储数据以及生成恢复日志文件的过程,对于恢复数据的具体过程,详见如下步骤。
304:当存储系统中的任意一个服务器存储数据失败时,主服务器向所在存储系统中的每个从服务器发送日志获取请求,日志获取请求中携带待恢复数据标识;
关于触发主服务器向所在存储系统中的每个从服务器发送日志获取请求的方式,本实施例不作具体限定。具体实施时,在存储系统中的任意一个服务器存储数据失败,生成待恢复日志文件后,由服务器定时检查恢复日志文件,启动数据恢复,从而触发主服务器向所在存储系统中的每个从服务器发送日志获取请求。当然,除了上述方式外,还可以采用其他方式。
为了便于理解,仍以服务器1和服务器2存储数据1成功,服务器3存储数据1失败为例进行说明。其中,服务器1为主服务器。服务器1至服务器3定时检查记录的恢复日志文件,通过检查发现数据1需要恢复。由服务器1向服务器2和服务器3发送携带数据1的数据标识的日志获取请求。
305:从服务器接收主服务器发送的日志获取请求,日志获取请求中携带待恢复数据标识;
由于主服务器向所在存储系统中的每个从服务器发送日志获取请求,则从服务器可直接接收主服务器发送的日志获取请求;又由于日志获取请求中携带待恢复数据标识,便于后续步骤中从服务器根据日志获取请求中的待恢复数据标识返回恢复日志文件。
为了便于理解,仍以服务器1和服务器2存储数据1成功,服务器3存储数据1失败为例进行说明。其中,服务器1为主服务器。服务器2和服务器3接收服务器1发送的日志获取请求,该日志获取请求中携带数据1的数据标识。
306:从服务器根据日志获取请求向主服务器返回第一恢复日志文件,第一恢复日志文件记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
由于日志获取请求中携带待恢复数据标识,则从服务器可以根据待恢复数据标识在记录的恢复日志文件中查找与待恢复数据标识相对应的恢复日志文件,并向主服务器返回查找到的恢复日志文件。关于从服务器查找恢复日志文件的方式,本实施例不作具体限定。具体实施时,可以依次读取记录的恢复日志文件,将读取到的恢复日志文件中的数据标识与日志获取请求中携带的待恢复数据标识进行比较;如果读取到的恢复日志文件中的数据标识与日志获取请求中携带的待恢复数据标识相同,则将读取到的恢复日志文件作为查找到的第一恢复日志文件,并返回给主服务器。当然,除了上述方式,还可以采用其他方式。
为了便于理解,仍以服务器1和服务器2存储数据1成功,服务器3存储数据1失败为例进行说明。其中,服务器1为主服务器。服务器2和服务器3依次读取恢复日志文件,若读取到的恢复日志文件1中的数据标识与数据1的标识相同,则将恢复日志文件1作为查找到的第一恢复日志文件,并向服务器1返回恢复日志文件1。
307:主服务器接收各个从服务器根据日志获取请求返回的第一恢复日志文件,每个恢复日志文件记录了待恢复数据的位置信息及操作信息;
由于从服务器根据日志获取请求向主服务器返回第一恢复日志文件,则主服务器可以直接接收各个从服务器根据日志获取请求返回的第一恢复日志文件。
为了便于理解,仍以服务器1和服务器2存储数据1成功,服务器3存储数据1失败为例进行说明。其中,服务器1为主服务器。服务器1接收服务器2和服务器3根据日志获取请求返回的与数据1标识相对应的第一恢复日志文件,每个第一恢复日志文件记录了数据1的位置信息及操作信息。
308:主服务器根据所有第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,第二恢复日志文件由主服务器生成,且记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
具体地,由于每个第一恢复日志文件及第二恢复日志文件均记录了待恢复数据的位置信息及操作信息,则服务器可以根据每个恢复日志文件中的待恢复数据的位置信息找到待恢复数据,并根据每个恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,进而实现对待恢复数据进行数据恢复。
然而,由于主服务器获取到的所有第一恢复日志文件及第二恢复日志文件中有可能存在对同一待恢复数据执行相同操作的情况,因此,为了无需根据重复的恢复日志文件执行重复的数据恢复操作,从而节省恢复数据的时间,本实施例提供的方法在根据所有第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作时,包括但不限于:
(a1)依次读取每个第一恢复日志文件及第二恢复日志文件;
(a2)判断当前读取的恢复日志文件的索引信息是否在预设结构中,索引信息包括恢复日志文件标识、偏移量信息及数据长度信息,预设结构用于存储索引信息及操作时间;若当前读取的恢复日志文件的索引信息未在预设结构中,则执行(a3);若当前读取的恢复日志文件的索引信息在预设结构中,则执行(a4);
(a3)将当前读取的恢复日志文件的索引信息及操作时间添加到预设结构中,并执行(a6);
(a4)将当前读取的恢复日志文件的操作时间与预设结构中对应当前读取的恢复日志文件的索引信息的操作时间进行比较;若当前读取的恢复日志文件的操作时间晚于预设结构中对应当前读取的恢复日志文件的索引信息的操作时间,则执行(a5);若当前读取的恢复日志文件的操作时间早于预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间,则执行(a6);
(a5)将当前读取的恢复日志文件的操作时间替换预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间,并执行(a6)。
(a6)继续读取下一个恢复日志文件,按照处理当前读取的恢复日志文件的方式处理读取的下一个恢复日志文件,直至处理完最后一个恢复日志文件,并执行(a7);
(a7)获取与预设结构中的索引信息及操作时间对应的恢复日志文件,并将与预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件,根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
需要说明的是,在根据所有第一恢复日志文件及第二恢复日志文件恢复待恢复数据之前,预设结构为空结构。在恢复待恢复数据的过程中,将符合上述判断比较要求的恢复日志文件的索引信息及操作时间添加到预设结构中,从而使预设结构中包含筛选出的恢复日志文件的索引信息及操作时间,即得到的预设结构为存储了无重复索引信息及操作时间的预设结构,也就是说,预设结构中存储的索引信息及操作时间不存在重复的情况。因此,根据预设结构所确定的恢复日志文件将是无重复操作的恢复日志文件。通过利用预设结构筛选恢复日志文件,提高了恢复日志文件筛选的效率,减少了后续步骤中根据筛选出的恢复日志文件恢复待恢复数据的工作量,加快了恢复数据的速度。关于预设结构的具体形式,本实施例不作具体限定。具体实施时,预设结构包括但不限于哈希表、红黑树等。
为了便于理解,以服务器1为主服务器,接收服务器2返回的第一恢复日志文件21和第一恢复日志文件22,以及服务器3返回的第一恢复日志文件31为例进行说明。第一恢复日志文件21中记录写入数据1,索引信息为a1+a2+a3,操作时间为2013年12月12日,13:22;第一恢复日志文件22中记录删除数据1,索引信息为a1+a2+a3,操作时间为2013年12月12日,13:49;第一恢复日志文件31中记录写入数据1,索引信息为a1+a2+a3,操作时间为2013年12月12日,13:22。其中,a1为恢复日志文件标识,a2为偏移量信息;a3为数据长度信息。
另外,服务器1生成第二恢复日志文件11和第二恢复日志文件12;第二恢复日志文件11中记录写入数据1,索引信息为a1+a2+a3,操作时间为2013年12月12日,13:22;第二恢复日志文件12中记录删除数据1,索引信息为a1+a2+a3,操作时间为2013年12月12日,13:49。
服务器1读取第二恢复日志文件11,由于此时还未进行恢复日志文件筛选,预设结构为空结构,则直接将第二恢复日志文件11的索引信息a1+a2+a3以及操作时间2013年12月12日,13:22添加到预设结构中;继续读取下一个第二恢复日志文件12,判断第二恢复日志文件12索引信息a1+a2+a3在预设结构中,则将第二恢复日志文件12的操作时间2013年12月12日,13:49与预设结构中第二恢复日志文件11的索引信息a1+a2+a3的操作时间2013年12月12日,13:22进行比较;通过比较可知,第二恢复日志文件12的操作时间2013年12月12日,13:49晚于预设结构中第二恢复日志文件11的索引信息a1+a2+a3的操作时间2013年12月12日,13:22,则将第二恢复日志文件12的操作时间2013年12月12日,13:49替换预设结构中与第二恢复日志文件11的索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:22,替换后的预设结构中包括索引信息a1+a2+a3以及索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:49。
继续读取下一个第一恢复日志文件21,判断第一恢复日志文件21的索引信息a1+a2+a3在预设结构中,则将第一恢复日志文件21的操作时间2013年12月12日,13:22与预设结构中索引信息a1+a2+a3的操作时间2013年12月12日,13:49进行比较;通过比较可知,第一恢复日志文件21的操作时间2013年12月12日,13:22早于预设结构中索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:49,说明第一恢复日志文件21属于在服务器时效的期间,出现的交叠的恢复日志文件,即多个恢复日志文件操作同一个数据,操作时间晚的恢复日志文件操作的内容会覆盖操作时间早的恢复日志文件操作的内容,这时,需要执行操作时间晚的恢复日志文件即可,不需要执行操作时间早的恢复日志文件。此时,预设结构中包括索引信息和索引信息相对应的操作时间不变,即包括索引信息a1+a2+a3以及索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:49。例如,在实际应用的场景中会出现,客户端写入一段数据A,生成一个恢复日志文件;过了一段时间之后,客户端将之前写入的一段数据A删除,又生成一个恢复日志文件。如果在恢复数据时,执行这两个恢复日志文件,则将出现写入一段数据A,再删除一段数据A的操作,而写入一段数据A的操作是无用的。所以,只需要删除一段数据A即可。
为了筛选恢复日志文件,继续读取下一个第一恢复日志文件22,判断第一恢复日志文件22的索引信息a1+a2+a3在预设结构中,则将第一恢复日志文件22的操作时间2013年12月12日,13:49与预设结构中的索引信息a1+a2+a3的操作时间2013年12月12日,13:49进行比较;通过比较可知,第一恢复日志文件22的操作时间2013年12月12日,13:49与预设结构中的索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:49相同,则继续读取下一个第一恢复日志文件。此时,预设结构中包括索引信息和索引信息相对应的操作时间不变,即包括索引信息a1+a2+a3以及索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:49。
读取第一恢复日志文件31,判断第一恢复日志文件31的索引信息a1+a2+a3在预设结构中,则将第一恢复日志文件31的操作时间2013年12月12日,13:22与预设结构中的索引信息a1+a2+a3的操作时间2013年12月12日,13:49进行比较;通过比较可知,第一恢复日志文件31的操作时间2013年12月12日,13:22早于预设结构中的索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:49,则继续读取下一个第一恢复日志文件。至此,接收到的第一恢复日志文件21、22、31及服务器1生成的与数据1标识相对应的第二恢复日志文件11、12都已完成处理。此时,预设结构中包括索引信息a1+a2+a3以及索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:49。
作为一种可选实施例,(a7)中获取与预设结构中的索引信息及操作时间对应的恢复日志文件,包括但不限于:
(a71)依次读取第一恢复日志文件及与待恢复数据标识相对应的第二恢复日志文件,并将当前读取的恢复日志文件的索引信息依次与预设结构中的索引信息进行比对;若预设结构中存在与当前读取的恢复日志文件的索引信息相同的索引信息,则执行(a72);若预设结构中不存在与当前读取的恢复日志文件的索引信息相同的索引信息,则执行(a74);
(a72)比较当前读取的恢复日志文件的操作时间与预设结构中对应当前读取的恢复日志文件的索引信息的操作时间;若预设结构中存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间,则执行(a73);若预设结构中不存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间,则执行(a74);
(a73)将当前读取的恢复日志文件添加到筛选出的恢复日志文件中,并执行(a74);
(a74)读取下一个恢复日志文件;以此类推,直至比对完最后一个恢复日志文件,得到预设结构中的每个索引信息对应的恢复日志文件。
为了便于理解,以预设结构中包括索引信息a1+a2+a3以及索引信息a1+a2+a3相对应的操作时间2013年12月12日,13:49为例进行说明。读取第二恢复日志文件11,将第二恢复日志文件11的索引信息a1+a2+a3与预设结构中的索引信息a1+a2+a3进行比对,可知预设结构中存在与第二恢复日志文件11的索引信息a1+a2+a3相同的索引信息;继续比较第二恢复日志文件11的操作时间2013年12月12日,13:22与预设结构中的索引信息a1+a2+a3的操作时间2013年12月12日,13:49,通过比较可知预设结构中不存在与第二恢复日志文件11的操作时间2013年12月12日,13:22相同的操作时间,则继续读取下一个恢复日志文件。
读取第二恢复日志文件12,将第二恢复日志文件12的索引信息a1+a2+a3与预设结构中的索引信息a1+a2+a3进行比对,可知预设结构中存在与第二恢复日志文件12的索引信息a1+a2+a3相同的索引信息;继续比较第二恢复日志文件12的操作时间2013年12月12日,13:49与预设结构中的索引信息a1+a2+a3的操作时间2013年12月12日,13:49,通过比较可知预设结构中存在与恢复日志文件12的操作时间2013年12月12日,13:49相同的操作时间,则将当前读取的第二恢复日志文件12添加到筛选出的恢复日志文件中,并继续读取下一个恢复日志文件。以此类推,依次将第一恢复日志文件21、22、31的索引信息及操作时间与预设结构中的索引信息及操作时间进行比对,未得到匹配的第一恢复日志文件,因此,仅将第二恢复日志文件12作为筛选出的恢复日志文件。
由于已经完成恢复日志文件的筛选,并且筛选出的恢复日志文件中记录了待恢复数据的最新操作信息,则可根据筛选出的恢复日志文件中记录的操作信息对待恢复数据进行操作。关于恢复数据的方式,本实施例不作具体限定。具体实施时,可以由主服务器根据恢复日志文件中记录的待恢复数据的操作信息重新对数据进行操作。当然,除了上述方式外,还可以采用其他方式。另外,一个恢复日志文件中可以记录待恢复数据的多条日志信息,针对该种情况,可以由主服务器依次读取待恢复数据的每条日志信息,并根据待恢复数据的每条日志信息中的操作信息重新对数据进行操作。
为了便于理解,以筛选出的恢复日志文件是恢复日志文件12为例进行说明。恢复日志文件12中记录了删除数据1的操作,则服务器1可执行删除数据1的操作来完成数据恢复。
309:主服务器将筛选出的恢复日志文件发送给各个从服务器,由各个从服务器根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作;
针对存储系统中主服务器和从服务器存储相同数据的特点,为了能够提高恢复数据的速度,本实施例提供的方法还包括但不限于:主服务器将筛选出的恢复日志文件发送给各个从服务器。这样各个从服务器根据筛选出的恢复日志文件并行对待恢复数据进行恢复,从而无需元数据服务器即可实现数据的恢复,不仅减少了元数据服务器的负载,还提高了数据恢复的速度。
为了便于理解,仍以筛选出的恢复日志文件是第二恢复日志文件12为例进行说明。服务器1将第二恢复日志文件12发送给服务器2和服务器3,服务器2和服务器3根据第二恢复日志文件12对数据1进行恢复。
作为一种可选实施例,本实施例提供的方法还包括但不限于:主服务器删除所有第一恢复日志文件及第二恢复日志文件,并通知各个从服务器删除所有第一恢复日志文件及第二恢复日志文件;
由于主服务器已经完成数据恢复,因而针对已经恢复的数据无需再记录恢复日志文件,且为了节省主服务器中的存储资源,主服务器将删除所有第一恢复日志文件及第二恢复日志文件。
同样地,为了节省从服务器中的存储资源,主服务器将通知各个从服务器在成功恢复数据后,删除所有用于恢复该待恢复数据的第一恢复日志文件及第二恢复日志文件。关于通知从服务器的方式,本实施例不作具体限定。具体实施时,可以采用向从服务器发送删除消息的方式来通知从服务器。当然,除了上述方式外,还可以采用其他方式。
310:从服务器接收主服务器发送的筛选出的恢复日志文件,并根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
由于筛选出的恢复日志文件中记录了待恢复数据的位置信息及操作信息,则从服务器在接收到主服务器发送的筛选出的恢复日志文件后,可根据筛选出的恢复日志文件对待恢复数据进行恢复。关于恢复数据的方式,具体可参见上述步骤308中主服务器根据筛选出的恢复日志文件恢复待恢复数据的方式,此处不再赘述。
作为一种可选实施例,本实施例提供的方法还包括但不限于:从服务器接收主服务器发送的删除所有第一恢复日志文件及第二恢复日志文件的通知,根据通知删除所有第一恢复日志文件及第二恢复日志文件。
由于主服务器通知各个从服务器删除所有第一恢复日志文件及第二恢复日志文件,则从服务器可以接收主服务器发送的删除所有第一恢复日志文件及第二恢复日志文件的通知,从而触发根据通知在成功恢复数据后,删除所有第一恢复日志文件及第二恢复日志文件。
本实施例提供的方法,通过主服务器向存储系统中的各个从服务器发送日志获取请求,接收各个从服务器返回的第一恢复日志文件,并根据所有第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。
实施例三
参见图5,本发明实施例提供了一种恢复数据的服务器,该服务器为应用于存储系统的主服务器,存储系统包括主服务器和从服务器,主服务器和从服务器均用于存储相同数据,主服务器为第一个成功存储数据的服务器,该服务器包括:
第一发送模块401,用于当存储系统中的任意一个服务器存储数据失败时,向存储系统中的每个从服务器发送日志获取请求,日志获取请求中携带待恢复数据标识;
第一接收模块402,用于接收各个从服务器根据日志获取请求返回的第一恢复日志文件,每个第一恢复日志文件记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
恢复模块403,用于根据所有第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,待恢复数据根据待恢复数据的位置信息查找得到,第二恢复日志文件由主服务器生成,且记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
可选地,该服务器,还包括:
存储模块,用于接收并存储客户端发送的数据;
返回模块,用于向客户端返回包含数据的识别标识的第一写入状态信息,第一写入状态信息包括写入成功信息或写入失败信息;
第二接收模块,用于接收客户端发送的总写入状态信息,总写入状态信息包括主服务器向客户端返回的第一写入状态信息及每个从服务器向客户端返回的第二写入状态信息;
生成模块,用于当客户端发送的总写入状态信息中包含写入失败信息时,确定客户端发送的数据为待恢复数据,并生成记录待恢复数据的位置信息及操作信息的第二恢复日志文件。
可选地,恢复模块403,包括:
第一读取单元,用于依次读取每个第一恢复日志文件及第二恢复日志文件;
判断单元,用于判断当前读取的恢复日志文件的索引信息是否在预设结构中,索引信息包括恢复日志文件标识、偏移量信息及数据长度信息,预设结构存储有索引信息及操作时间;
添加单元,用于在当前读取的恢复日志文件的索引信息未在预设结构中时,将当前读取的恢复日志文件的索引信息及操作时间添加到预设结构中;
第二读取单元,用于继续读取下一个恢复日志文件;
处理单元,用于按照处理当前读取的恢复日志文件的方式处理读取的下一个恢复日志文件,直至处理完最后一个恢复日志文件,得到存储有无重复索引信息及操作时间的预设结构;
获取单元,用于获取与预设结构中的索引信息及操作时间对应的恢复日志文件,并将与预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件;
恢复单元,用于根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
可选地,恢复模块403,还包括:
比较单元,用于在当前读取的恢复日志文件的索引信息在预设结构中时,将当前读取的恢复日志文件的操作时间与预设结构中对应当前读取的恢复日志文件的索引信息的操作时间进行比较;
替换单元,用于在当前读取的恢复日志文件的操作时间晚于预设结构中对应当前读取的恢复日志文件的索引信息的操作时间时,将当前读取的恢复日志文件的操作时间替换预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间;
第二读取单元,还用于执行继续读取下一个恢复日志文件的步骤。
可选地,获取单元,包括:
第一读取子单元,用于依次读取第一恢复日志文件及与待恢复数据标识相对应的第二恢复日志文件;
比对子单元,用于将当前读取的恢复日志文件的索引信息依次与预设结构中的索引信息进行比对;
比较子单元,用于当预设结构中存在与当前读取的恢复日志文件的索引信息相同的索引信息时,比较当前读取的恢复日志文件的操作时间与预设结构中对应当前读取的恢复日志文件的索引信息的操作时间;
添加子单元,用于当预设结构中存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间时,将当前读取的恢复日志文件添加到筛选出的恢复日志文件中;
第二读取子单元,用于读取下一个恢复日志文件;以此类推,直至比对完最后一个恢复日志文件,得到预设结构中的每个索引信息对应的恢复日志文件。
可选地,该服务器,还包括:
第二发送模块,用于将筛选出的恢复日志文件发送给各个从服务器,由各个从服务器根据筛选出的恢复日志文件对待恢复数据进行恢复。
可选地,该服务器,还包括:
删除模块,用于删除所有第一恢复日志文件及第二恢复日志文件;
通知模块,用于通知各个从服务器删除所有第一恢复日志文件及第二恢复日志文件。
本发明实施例提供的服务器,通过向存储系统中的各个从服务器发送日志获取请求,接收各个从服务器返回的第一恢复日志文件,并根据所有第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。
实施例四
参见图6,本发明实施例提供了一种恢复数据的服务器,该服务器为应用于存储系统的从服务器,存储系统包括主服务器和从服务器,主服务器和从服务器均用于存储相同数据,主服务器为第一个成功存储数据的服务器,该服务器包括:
第一接收模块501,用于接收主服务器发送的日志获取请求,日志获取请求中携带待恢复数据标识;
第一返回模块502,用于根据日志获取请求向主服务器返回第一恢复日志文件,使主服务器根据第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据;
第二接收模块503,用于接收主服务器发送的筛选出的恢复日志文件;
恢复模块504,用于根据筛选出的恢复日志文件所记录的操作信息对待恢复数据进行操作;
其中,第一恢复日志文件及第二恢复日志文件均记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
可选地,该服务器,还包括:
存储模块,用于接收并存储客户端发送的数据;
第二返回模块,用于向客户端返回包含数据的识别标识的第二写入状态信息,第二写入状态信息包括写入成功信息或写入失败信息;
第三接收模块,用于接收客户端发送的总写入状态信息,总写入状态信息包括从服务器向客户端返回的第二写入状态信息及主服务器向客户端返回的第一写入状态信息;
生成模块,用于当客户端发送的总写入状态信息中包含写入失败信息时,确定客户端发送的数据为待恢复数据,并生成记录待恢复数据的位置信息及操作信息的第一恢复日志文件。
可选地,该服务器,还包括:
第四接收模块,用于接收主服务器发送的删除所有第一恢复日志文件及第二恢复日志文件的通知;
删除模块,用于根据通知删除所有第一恢复日志文件及第二恢复日志文件。
本实施例提供的服务器,通过接收主服务器发送的日志获取请求,再根据日志获取请求向主服务器返回第一恢复日志文件,使主服务器根据第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。
实施例五
参见图7,本发明实施例提供了一种恢复数据的系统,该系统包括主服务器701和至少一个从服务器702;其中,该主服务器701如上述实施例三提供的恢复数据的服务器,该从服务器702如上述实施例四提供的恢复数据的服务器,具体详见上述实施例三和四的内容,此处不再赘述。
本实施例提供的系统,通过主服务器向存储系统中的各个从服务器发送日志获取请求,接收各个从服务器返回的第一恢复日志文件,并根据所有第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。
实施例六
本发明实施例提供了一种恢复数据的服务器,该服务器为应用于存储系统的主服务器,存储系统包括主服务器和从服务器,主服务器和从服务器均用于存储相同数据,主服务器为第一个成功存储数据的服务器,该服务器包括发射机、接收机、处理器;
其中,发射机,用于当存储系统中的任意一个服务器存储数据失败时,向存储系统中的每个从服务器发送日志获取请求,日志获取请求中携带待恢复数据标识;
接收机,用于接收各个从服务器根据日志获取请求返回的第一恢复日志文件,每个第一恢复日志文件记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
处理器,用于根据所有第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,待恢复数据根据待恢复数据的位置信息查找得到,第二恢复日志文件由主服务器生成,且记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
作为一种可选实施例,处理器,还用于接收并存储客户端发送的数据;
发射机,还用于向客户端返回包含数据的识别标识的第一写入状态信息,第一写入状态信息包括写入成功信息或写入失败信息;
接收机,还用于接收客户端发送的总写入状态信息,总写入状态信息包括主服务器向客户端返回的第一写入状态信息及每个从服务器向客户端返回的第二写入状态信息;
处理器,还用于当客户端发送的总写入状态信息中包含写入失败信息时,确定数据为待恢复数据,并生成记录待恢复数据的位置信息及操作信息的第二恢复日志文件。
作为一种可选实施例,处理器,用于依次读取每个第一恢复日志文件及第二恢复日志文件;判断当前读取的恢复日志文件的索引信息是否在预设结构中,索引信息包括恢复日志文件标识、偏移量信息及数据长度信息,预设结构用于存储索引信息及操作时间;在当前读取的恢复日志文件的索引信息未在预设结构中时,将当前读取的恢复日志文件的索引信息及操作时间添加到预设结构中;继续读取下一个恢复日志文件;按照处理当前读取的恢复日志文件的方式处理读取的下一个恢复日志文件,直至处理完最后一个恢复日志文件,得到存储有无重复索引信息及操作时间的预设结构;获取与预设结构中的索引信息及操作时间对应的恢复日志文件,并将与预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件,根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
作为一种可选实施例,处理器,还用于在当前读取的恢复日志文件的索引信息在预设结构中时,将当前读取的恢复日志文件的操作时间与预设结构中对应当前读取的恢复日志文件的索引信息的操作时间进行比较;在当前读取的恢复日志文件的操作时间晚于预设结构中对应当前读取的恢复日志文件的索引信息的操作时间时,将当前读取的恢复日志文件的操作时间替换预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间;执行继续读取下一个恢复日志文件的步骤。
作为一种可选实施例,处理器,用于依次读取第一恢复日志文件及与待恢复数据标识相对应的第二恢复日志文件;将当前读取的恢复日志文件的索引信息依次与预设结构中的索引信息进行比对;当预设结构中存在与当前读取的恢复日志文件的索引信息相同的索引信息时,比较当前读取的恢复日志文件的操作时间与预设结构中对应当前读取的恢复日志文件的索引信息的操作时间;当预设结构中存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间时,将当前读取的恢复日志文件添加到筛选出的恢复日志文件中;读取下一个恢复日志文件;以此类推,直至比对完最后一个恢复日志文件,得到预设结构中的每个索引信息对应的恢复日志文件。
作为一种可选实施例,发射机,还用于将筛选出的恢复日志文件发送给各个从服务器,由各个从服务器根据筛选出的恢复日志文件对待恢复数据进行恢复。
作为一种可选实施例,处理器,还用于删除所有第一恢复日志文件及第二恢复日志文件;通知各个从服务器删除所有第一恢复日志文件及第二恢复日志文件。
本发明实施例提供的服务器,通过接收存储系统中的各个从服务器根据主服务器发送的日志获取请求返回的第一恢复日志文件,并根据所有第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。
实施例七
本发明实施例提供了一种恢复数据的服务器,该服务器为应用于存储系统的从服务器,存储系统包括主服务器和从服务器,主服务器和从服务器均用于存储相同数据,主服务器为第一个成功存储数据的服务器,该服务器包括发射机、接收机、处理器;
其中,接收机用于接收主服务器发送的日志获取请求,日志获取请求中携带待恢复数据标识;
发射机,用于根据日志获取请求向主服务器返回第一恢复日志文件,使主服务器根据第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据;
接收机,还用于接收主服务器发送的筛选出的恢复日志文件;
处理器,用于根据筛选出的恢复日志文件所记录的操作信息对待恢复数据进行操作;
其中,每个第一恢复日志文件及第二恢复日志文件均记录了待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
作为一种可选实施例,处理器,还用于接收并存储客户端发送的数据;
发射机,还用于向客户端返回包含数据的识别标识的第二写入状态信息,第二写入状态信息包括写入成功信息或写入失败信息;
接收机,还用于接收客户端发送的总写入状态信息,总写入状态信息包括从服务器向客户端返回的第二写入状态信息及主服务器向客户端返回的第一写入状态信息;
处理器,还用于当客户端发送的总写入状态信息中包含写入失败信息时,确定客户端发送的数据为待恢复数据,并生成记录待恢复数据的位置信息及操作信息的第一恢复日志文件。
作为一种可选实施例,接收机,还用于接收主服务器发送的删除所有第一恢复日志文件及第二恢复日志文件的通知;
处理器,还用于根据通知删除所有第一恢复日志文件及第二恢复日志文件。
本发明实施例提供的服务器,通过接收主服务器发送的日志获取请求,再根据日志获取请求向主服务器返回第一恢复日志文件,使主服务器根据第一恢复日志文件及主服务器生成的第二恢复日志文件恢复待恢复数据,从而无需扫描所有数据,也无需使用元数据服务器即可实现恢复数据,提高了恢复数据的效率。
需要说明的是:上述实施例提供的恢复数据的服务器在恢复数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的恢复数据的服务器与恢复数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种恢复数据的方法,其特征在于,所述方法应用于存储系统的主服务器,所述存储系统包括主服务器和从服务器,所述主服务器和所述从服务器均用于存储相同数据,所述主服务器为第一个成功存储数据的服务器,所述方法包括:
当所述存储系统中的任意一个服务器存储数据失败时,所述主服务器向所述存储系统中的每个从服务器发送日志获取请求,所述日志获取请求中携带待恢复数据标识;
接收各个从服务器根据所述日志获取请求返回的第一恢复日志文件,每个第一恢复日志文件记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
根据所有所述第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,所述待恢复数据根据所述待恢复数据的位置信息查找得到,所述第二恢复日志文件由所述主服务器生成,且记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
2.根据权利要求1所述的方法,其特征在于,所述向所述存储系统中的每个从服务器发送日志获取请求之前,还包括:
接收并存储客户端发送的数据,并向所述客户端返回包含所述数据的识别标识的第一写入状态信息,所述第一写入状态信息为写入成功信息或写入失败信息;
接收所述客户端发送的总写入状态信息,所述总写入状态信息包括所述主服务器向所述客户端返回的第一写入状态信息及每个从服务器向所述客户端返回的第二写入状态信息;
如果所述客户端发送的总写入状态信息中包含写入失败信息,则确定所述客户端发送的数据为待恢复数据,并生成记录所述待恢复数据的位置信息及操作信息的第二恢复日志文件。
3.根据权利要求1所述的方法,其特征在于,所述根据所有所述第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,包括:
依次读取每个所述第一恢复日志文件及第二恢复日志文件;
判断当前读取的恢复日志文件的索引信息是否在预设结构中,所述索引信息包括恢复日志文件标识、偏移量信息及数据长度信息,所述预设结构用于存储索引信息及操作时间;
若当前读取的恢复日志文件的索引信息未在所述预设结构中,则将当前读取的恢复日志文件的索引信息及操作时间添加到所述预设结构中;
继续读取下一个恢复日志文件,按照处理当前读取的恢复日志文件的方式处理读取的下一个恢复日志文件,直至处理完最后一个恢复日志文件,得到存储有无重复索引信息及操作时间的预设结构;
获取与所述预设结构中的索引信息及操作时间对应的恢复日志文件,并将与所述预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件,根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
4.根据权利要求3所述的方法,其特征在于,所述判断当前读取的恢复日志文件的索引信息是否在预设结构中之后,还包括:
若当前读取的恢复日志文件的索引信息在预设结构中,则将当前读取的恢复日志文件的操作时间与所述预设结构中对应当前读取的恢复日志文件的索引信息的操作时间进行比较;
若当前读取的恢复日志文件的操作时间晚于预设结构中对应当前读取的恢复日志文件的索引信息的操作时间,则将当前读取的恢复日志文件的操作时间替换预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间,并执行继续读取下一个恢复日志文件的步骤。
5.根据权利要求3或4所述的方法,其特征在于,所述获取与所述预设结构中的索引信息及操作时间对应的恢复日志文件,包括:
依次读取所述第一恢复日志文件及与所述待恢复数据标识相对应的第二恢复日志文件,并将当前读取的恢复日志文件的索引信息依次与预设结构中的索引信息进行比对;
若所述预设结构中存在与当前读取的恢复日志文件的索引信息相同的索引信息,则比较当前读取的恢复日志文件的操作时间与所述预设结构中对应当前读取的恢复日志文件的索引信息的操作时间;
若所述预设结构中存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间,则将当前读取的恢复日志文件添加到筛选出的恢复日志文件中,并读取下一个恢复日志文件;
以此类推,直至比对完最后一个恢复日志文件,得到所述预设结构中的每个索引信息对应的恢复日志文件。
6.一种恢复数据的方法,其特征在于,所述方法应用于存储系统的从服务器,所述存储系统包括主服务器和所述从服务器,所述主服务器和所述从服务器均用于存储相同数据,所述主服务器为第一个成功存储数据的服务器,所述方法包括:
每个从服务器接收所述主服务器发送的日志获取请求,所述日志获取请求中携带待恢复数据标识;
根据所述日志获取请求向所述主服务器返回第一恢复日志文件,使所述主服务器根据所述第一恢复日志文件及所述主服务器生成的第二恢复日志文件恢复所述待恢复数据;
接收所述主服务器发送的筛选出的恢复日志文件,并根据所述筛选出的恢复日志文件所记录的操作信息对待恢复数据进行操作;
其中,所述第一恢复日志文件及所述第二恢复日志文件均记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
7.根据权利要求6所述的方法,其特征在于,所述根据所述日志获取请求向所述主服务器返回第一恢复日志文件之前,还包括:
接收并存储客户端发送的数据,并向所述客户端返回包含所述数据的识别标识的第二写入状态信息,所述第二写入状态信息包括写入成功信息或写入失败信息;
接收所述客户端发送的总写入状态信息,所述总写入状态信息包括所述从服务器向所述客户端返回的第二写入状态信息及所述主服务器向所述客户端返回的第一写入状态信息;
如果所述客户端发送的总写入状态信息中包含写入失败信息,则确定所述客户端发送的数据为待恢复数据,并生成记录所述待恢复数据的位置信息及操作信息的第一恢复日志文件。
8.一种恢复数据的服务器,其特征在于,所述服务器为应用于存储系统的主服务器,所述存储系统包括所述主服务器和从服务器,所述主服务器和所述从服务器均用于存储相同数据,所述主服务器为第一个成功存储数据的服务器,所述服务器包括:
第一发送模块,用于当所述存储系统中的任意一个服务器存储数据失败时,向所述存储系统中的每个从服务器发送日志获取请求,所述日志获取请求中携带待恢复数据标识;
第一接收模块,用于接收各个从服务器根据所述日志获取请求返回的第一恢复日志文件,每个第一恢复日志文件记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息;
恢复模块,用于根据所有所述第一恢复日志文件及第二恢复日志文件所记录的操作信息中的最新操作信息对待恢复数据进行操作,所述待恢复数据根据所述待恢复数据的位置信息查找得到,所述第二恢复日志文件由所述主服务器生成,且记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
9.根据权利要求8所述的服务器,其特征在于,所述服务器,还包括:
存储模块,用于接收并存储客户端发送的数据;
返回模块,用于向所述客户端返回包含所述数据的识别标识的第一写入状态信息,所述第一写入状态信息包括写入成功信息或写入失败信息;
第二接收模块,用于接收所述客户端发送的总写入状态信息,所述总写入状态信息包括所述主服务器向所述客户端返回的第一写入状态信息及每个从服务器向所述客户端返回的第二写入状态信息;
生成模块,用于当所述客户端发送的总写入状态信息中包含写入失败信息时,确定所述客户端发送的数据为待恢复数据,并生成记录所述待恢复数据的位置信息及操作信息的第二恢复日志文件。
10.根据权利要求8所述的服务器,其特征在于,所述恢复模块,包括:
第一读取单元,用于依次读取每个所述第一恢复日志文件及第二恢复日志文件;
判断单元,用于判断当前读取的恢复日志文件的索引信息是否在预设结构中,所述索引信息包括恢复日志文件标识、偏移量信息及数据长度信息,所述预设结构用于存储索引信息及操作时间;
添加单元,用于在当前读取的恢复日志文件的索引信息未在所述预设结构中时,将当前读取的恢复日志文件的索引信息及操作时间添加到所述预设结构中;
第二读取单元,用于继续读取下一个恢复日志文件;
处理单元,用于按照处理当前读取的恢复日志文件的方式处理读取的下一个恢复日志文件,直至处理完最后一个恢复日志文件,得到存储有无重复索引信息及操作时间的预设结构;
获取单元,用于获取与所述预设结构中的索引信息及操作时间对应的恢复日志文件,并将与所述预设结构中的索引信息及操作时间对应的恢复日志文件作为筛选出的恢复日志文件;
恢复单元,用于根据筛选出的恢复日志文件中的操作信息对待恢复数据进行操作。
11.根据权利要求10所述的服务器,其特征在于,所述恢复模块,还包括:
比较单元,用于在当前读取的恢复日志文件的索引信息在预设结构中时,将当前读取的恢复日志文件的操作时间与所述预设结构中对应当前读取的恢复日志文件的索引信息的操作时间进行比较;
替换单元,用于在当前读取的恢复日志文件的操作时间晚于预设结构中对应当前读取的恢复日志文件的索引信息的操作时间时,将当前读取的恢复日志文件的操作时间替换预设结构中与当前读取的恢复日志文件的索引信息相对应的操作时间;
所述第二读取单元,还用于执行继续读取下一个恢复日志文件的步骤。
12.根据权利要求10或11所述的服务器,其特征在于,所述获取单元,包括:
第一读取子单元,用于依次读取所述第一恢复日志文件及与所述待恢复数据标识相对应的第二恢复日志文件;
比对子单元,用于将当前读取的恢复日志文件的索引信息依次与预设结构中的索引信息进行比对;
比较子单元,用于当所述预设结构中存在与当前读取的恢复日志文件的索引信息相同的索引信息时,比较当前读取的恢复日志文件的操作时间与所述预设结构中对应当前读取的恢复日志文件的索引信息的操作时间;
添加子单元,用于当所述预设结构中存在与当前读取的恢复日志文件的操作时间相同的对应当前读取的恢复日志文件的索引信息的操作时间时,将当前读取的恢复日志文件添加到筛选出的恢复日志文件中;
第二读取子单元,用于读取下一个恢复日志文件;以此类推,直至比对完最后一个恢复日志文件,得到所述预设结构中的每个索引信息对应的恢复日志文件。
13.一种恢复数据的服务器,其特征在于,所述服务器为应用于存储系统的从服务器,所述存储系统包括主服务器和所述从服务器,所述主服务器和所述从服务器均用于存储相同数据,所述主服务器为第一个成功存储数据的服务器,所述服务器包括:
第一接收模块,用于接收所述主服务器发送的日志获取请求,所述日志获取请求中携带待恢复数据标识;
第一返回模块,用于根据所述日志获取请求向所述主服务器返回第一恢复日志文件,使所述主服务器根据所述第一恢复日志文件及所述主服务器生成的第二恢复日志文件恢复所述待恢复数据;
第二接收模块,用于接收所述主服务器发送的筛选出的恢复日志文件;
恢复模块,用于根据所述筛选出的恢复日志文件所记录的操作信息对待恢复数据进行操作;
其中,所述第一恢复日志文件及所述第二恢复日志文件均记录了所述待恢复数据标识所标识的待恢复数据的位置信息及操作信息。
14.根据权利要求13所述的服务器,其特征在于,所述服务器,还包括:
存储模块,用于接收并存储客户端发送的数据;
第二返回模块,用于向所述客户端返回包含所述数据的识别标识的第二写入状态信息,所述第二写入状态信息包括写入成功信息或写入失败信息;
第三接收模块,用于接收所述客户端发送的总写入状态信息,所述总写入状态信息包括所述从服务器向所述客户端返回的第二写入状态信息及所述主服务器向所述客户端返回的第一写入状态信息;
生成模块,用于当所述客户端发送的总写入状态信息中包含写入失败信息时,确定所述客户端发送的数据为待恢复数据,并生成记录所述待恢复数据的位置信息及操作信息的第一恢复日志文件。
15.一种恢复数据的系统,其特征在于,所述系统包括:主服务器和至少一个从服务器;
其中,所述主服务器如所述权利要求8至12中任一项权利要求所述的服务器,所述从服务器如所述权利要求13至14中任一项权利要求所述的服务器。
CN201310754520.7A 2013-12-31 2013-12-31 恢复数据的方法、服务器及系统 Active CN103761161B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310754520.7A CN103761161B (zh) 2013-12-31 2013-12-31 恢复数据的方法、服务器及系统
PCT/CN2014/088962 WO2015101084A1 (zh) 2013-12-31 2014-10-20 恢复数据的方法、服务器及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310754520.7A CN103761161B (zh) 2013-12-31 2013-12-31 恢复数据的方法、服务器及系统

Publications (2)

Publication Number Publication Date
CN103761161A CN103761161A (zh) 2014-04-30
CN103761161B true CN103761161B (zh) 2017-01-04

Family

ID=50528403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310754520.7A Active CN103761161B (zh) 2013-12-31 2013-12-31 恢复数据的方法、服务器及系统

Country Status (2)

Country Link
CN (1) CN103761161B (zh)
WO (1) WO2015101084A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761161B (zh) * 2013-12-31 2017-01-04 华为技术有限公司 恢复数据的方法、服务器及系统
CN104536852B (zh) * 2014-12-31 2017-01-25 华为技术有限公司 数据恢复方法及装置
WO2016175847A1 (en) * 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Peripheral device server access
CN105426273B (zh) * 2015-12-30 2018-08-10 联想(北京)有限公司 恢复物理存储单元数据的方法和服务器
CN107220142B (zh) * 2016-03-22 2020-10-09 阿里巴巴集团控股有限公司 执行数据恢复操作的方法及装置
CN107528872B (zh) 2016-06-22 2020-07-24 杭州海康威视数字技术股份有限公司 一种数据恢复方法、装置及云存储系统
CN106776130B (zh) * 2016-11-30 2020-07-28 华为技术有限公司 一种日志恢复方法、存储装置和存储节点
CN109947730B (zh) * 2017-07-25 2024-02-02 中兴通讯股份有限公司 元数据恢复方法、装置、分布式文件系统及可读存储介质
CN109960601B (zh) * 2017-12-26 2023-03-24 航天信息股份有限公司 一种业务数据的恢复方法、装置和电子设备
CN109978290A (zh) * 2017-12-27 2019-07-05 中国移动通信集团广东有限公司 一种业务流程回退处理方法、流程引擎和业务系统
CN108599982B (zh) * 2018-03-14 2021-02-12 华为技术有限公司 数据恢复方法及相关设备
CN109901799B (zh) * 2019-02-28 2022-08-19 新华三信息安全技术有限公司 一种日志读写方法及装置
CN111611258B (zh) * 2020-05-27 2023-09-19 杭州海康威视系统技术有限公司 流数据的恢复方法和存储设备
CN111488238B (zh) * 2020-06-24 2020-09-18 南京鹏云网络科技有限公司 一种块存储节点数据修复方法及存储介质
CN111680010B (zh) * 2020-08-14 2020-12-22 北京东方通软件有限公司 适用于JavaEE应用服务器的日志系统的设计方法
CN116266175A (zh) * 2021-12-16 2023-06-20 华为技术有限公司 一种数据恢复方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043504B1 (en) * 2000-04-10 2006-05-09 International Business Machines Corporation System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets
CN102523105A (zh) * 2011-11-30 2012-06-27 广东电子工业研究院有限公司 一种数据存储的故障恢复方法及其适用的数据分布架构
CN103324553A (zh) * 2013-06-21 2013-09-25 华为技术有限公司 数据恢复方法、系统及装置
CN103345470A (zh) * 2013-05-31 2013-10-09 深圳市沃信科技有限公司 一种数据库容灾方法、系统及服务器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676502B2 (en) * 2006-05-22 2010-03-09 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US8074107B2 (en) * 2009-10-26 2011-12-06 Amazon Technologies, Inc. Failover and recovery for replicated data instances
CN103761161B (zh) * 2013-12-31 2017-01-04 华为技术有限公司 恢复数据的方法、服务器及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043504B1 (en) * 2000-04-10 2006-05-09 International Business Machines Corporation System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets
CN102523105A (zh) * 2011-11-30 2012-06-27 广东电子工业研究院有限公司 一种数据存储的故障恢复方法及其适用的数据分布架构
CN103345470A (zh) * 2013-05-31 2013-10-09 深圳市沃信科技有限公司 一种数据库容灾方法、系统及服务器
CN103324553A (zh) * 2013-06-21 2013-09-25 华为技术有限公司 数据恢复方法、系统及装置

Also Published As

Publication number Publication date
WO2015101084A1 (zh) 2015-07-09
CN103761161A (zh) 2014-04-30

Similar Documents

Publication Publication Date Title
CN103761161B (zh) 恢复数据的方法、服务器及系统
CN103119550B (zh) 存储具有时变特性的电子内容
US7890716B2 (en) Method of managing time-based differential snapshot
CN103761190B (zh) 数据处理方法及装置
CN108170768A (zh) 数据库同步方法、装置及可读介质
CN103942252B (zh) 一种恢复数据的方法及系统
CN103186554B (zh) 分布式数据镜像方法及存储数据节点
CN103729352B (zh) 分布式文件系统对多个副本数据进行处理的方法及该系统
CN103324533B (zh) 分布式数据处理方法、装置及系统
CN105049260B (zh) 日志管理方法和装置
CN102402562A (zh) 数据库异地容灾方法及系统
CN106686095A (zh) 一种基于纠删码技术的数据存储方法及装置
CN105824846A (zh) 数据迁移方法及装置
CN101771548A (zh) 文件同步方法及系统
CN104520802A (zh) 数据发送方法、数据接收方法和存储设备
CN108932271A (zh) 一种文件管理方法及装置
CN106341485A (zh) 一种云存储的方法及装置
CN106775481B (zh) 数据读取方法及设备
CN108243207B (zh) 一种网络云盘的数据存储方法
CN105068760B (zh) 数据存储方法、数据存储装置和存储设备
CN109063040A (zh) 客户端程序数据采集方法及系统
CN108829355A (zh) 一种垃圾回收方法及装置
CN103714059B (zh) 一种更新数据的方法及装置
CN109325005A (zh) 一种数据处理方法和电子设备
CN108063782A (zh) 节点宕机接管方法和装置、节点集群系统

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