CN109144782A - 一种数据恢复方法及装置 - Google Patents
一种数据恢复方法及装置 Download PDFInfo
- Publication number
- CN109144782A CN109144782A CN201810961405.XA CN201810961405A CN109144782A CN 109144782 A CN109144782 A CN 109144782A CN 201810961405 A CN201810961405 A CN 201810961405A CN 109144782 A CN109144782 A CN 109144782A
- Authority
- CN
- China
- Prior art keywords
- data
- restored
- data volume
- memory node
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本申请公开了一种数据恢复方法及装置,包括:在数据恢复过程中的每个恢复周期内,第一存储节点获取已恢复数据的第一数据量,判断其是否达到预设的允许恢复数据量,若是,则暂停数据恢复,其中,允许数据量对应于当前业务场景,该允许恢复数据量为预设的在一个恢复周期内允许恢复的数据量;判断第一存储节点是否达到预设恢复完成条件,如果未达到预设恢复结束条件,则在与该恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行上述步骤,而如果达到预设恢复结束条件,则结束数据恢复过程。可见,在进行数据恢复时,针对于当前业务场景,限制了第一存储节点的数据恢复速度,从而能够尽可能降低数据恢复过程对于用户业务的影响。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据恢复方法及装置。
背景技术
在分布式共享存储系统中,若集群中存现磁盘故障或者节点故障,比如存储节点上所存储的部分数据出现损坏,为了避免数据丢失,通常需要在短时间内完成对该部分数据的恢复。但是,存储节点进行数据恢复的过程,通常会影响用户业务对于该存储节点上的数据的读写,从而可能会影响当前分布式共享存储系统的性能。而在视频监控和广电媒资等场景中,通常是要求分布式存储系统具有持续稳定的性能,这就意味着在恢复存储节点上的部分数据时,要尽可能的降低数据恢复过程对于用户业务的影响。
发明内容
本申请实施例所要解决的技术问题是,提供一种的数据恢复方法及装置,以在保证在完成数据恢复的同时,能够降低数据恢复过程对于用户业务的影响,
第一方面,本申请实施例提供了一种数据恢复方法,包括:
在数据恢复过程中的每个恢复周期内,第一存储节点获取在所述恢复周期内已恢复数据的第一数据量;
若所述第一数据量达到预设的允许恢复数据量,则在所述恢复周期内,所述第一存储节点暂停数据恢复;
其中,所述允许恢复数据量为预先设定的在一个恢复周期内允许所述第一存储节点恢复的数据量,所述允许恢复数据量对应于当前业务场景;
若所述第一存储节点未达到预设恢复完成条件,则所述第一存储节点在与所述恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行上述步骤;
若所述第一存储节点达到预设恢复完成条件,则所述第一存储节点结束所述数据恢复过程。
在一些可能的实施方式中,所述方法还包括:
所述第一存储节点获取预先建立的不同业务场景与允许恢复数据量的对应关系;
所述第一存储节点根据所述对应关系,确定当前业务场景所对应的允许恢复数据量。
在一些可能的实施方式中,在所述恢复周期内已恢复的数据包含多个待恢复对象的数据,所述第一存储节点获取在所述恢复周期内已恢复数据的第一数据量,包括:
针对于每个待恢复对象,若获取到所述待恢复对象的数据量大小,则所述第一存储节点将所述待恢复对象的数据量大小计入所述已恢复数据的第一数据量中;
针对于每个待恢复对象,若未获取到所述待恢复对象的数据量大小,则所述第一存储节点将与所述待恢复对象对应的预设大小的分配数据量计入所述已恢复数据的第一数据量中。
在一些可能的实施方式中,所述方法还包括:
所述第一存储节点接收第二存储节点发送的对象消息,所述第二存储节点上存储有所述待恢复数据;
所述第一存储节点基于所述对象消息,确定所述待恢复对象实际的数据量大小;
所述第一存储节点基于所述待恢复对象实际的数据量大小,对所述已恢复数据的第一数据量进行补偿。
在一些可能的实施方式中,所述方法还包括:
所述第一存储节点将所述待恢复对象以及所述待恢复对象的数据量大小存储于补偿Map中;
或,
所述第一存储节点将所述待恢复对象以及与所述待恢复对象对应的分配数据量大小存储于所述补偿Map中;
则,所述第一存储节点基于所述待恢复对象实际的数据量大小,对所述已恢复数据的第一数据量进行补偿,包括:
所述第一存储节点计算所述补偿Map存储的所述待恢复对象的数据量大小以及所述待恢复对象实际的数据量大小之间的第一补偿值;
所述第一存储节点利用所述第一补偿值,对所述已恢复数据的第一数据量进行补偿
或,
所述第一存储节点计算所述补偿Map存储的与所述待恢复对象对应的分配数据量大小以及所述待恢复对象实际的数据量大小之间的第二补偿值;
所述第一存储节点利用所述第二补偿值,对所述已恢复数据的第一数据量进行补偿。
此外,本申请实施例还提供给了一种数据恢复装置,所述装置包括:
获取模块,用于在数据恢复过程中的每个恢复周期内,获取在所述恢复周期内已恢复数据的第一数据量;
暂停模块,用于若所述第一数据量达到预设的允许恢复数据量,则在所述恢复周期内,所述暂停数据恢复;
其中,所述允许恢复数据量为预先设定的在一个恢复周期内允许第一存储节点恢复的数据量,所述允许恢复数据量对应于当前业务场景;
继续恢复模块,用于若所述第一存储节点未达到预设恢复完成条件,则在与所述恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行获取模块以及暂停模块;
结束模块,用于若所述第一存储节点达到预设恢复完成条件,则结束所述数据恢复过程。
在一些可能的实施方式中,所述装置还包括:
对应关系获取模块,用于获取预先建立的不同业务场景与允许恢复数据量的对应关系;
确定模块,用于根据所述对应关系,确定当前业务场景所对应的允许恢复数据量。
在一些可能的实施方式中,在所述恢复周期内已恢复的数据包含多个待恢复对象的数据,所述获取模块,包括:
第一计入单元,用于针对于每个待恢复对象,若获取到所述待恢复对象的数据量大小,则将所述待恢复对象的数据量大小计入所述已恢复数据的第一数据量中;
第二计入单元,用于针对于每个待恢复对象,若未获取到所述待恢复对象的数据量大小,则将与所述待恢复对象对应的预设大小的分配数据量计入所述已恢复数据的第一数据量中。
在一些可能的实施方式中,所述装置还包括:
接收模块,用于接收第二存储节点发送的对象消息,所述第二存储节点上存储有所述待恢复数据;
数据量确定模块,用于基于所述对象消息,确定所述待恢复对象实际的数据量大小;
补偿模块,用于基于所述待恢复对象实际的数据量大小,对所述已恢复数据的第一数据量进行补偿。
在一些可能的实施方式中,所述装置还包括:
第一存储模块,用于将所述待恢复对象以及所述待恢复对象的数据量大小存储于补偿Map中;
或,
第二存储模块,用于将所述待恢复对象以及与所述待恢复对象对应的分配数据量大小存储于所述补偿Map中;
则,所述补偿模块,包括:
第一计算单元,用于计算所述补偿Map存储的所述待恢复对象的数据量大小以及所述待恢复对象实际的数据量大小之间的第一补偿值;
第一补偿单元,用于利用所述第一补偿值,对所述已恢复数据的第一数据量进行补偿
或,
第二计算单元,用于计算所述补偿Map存储的与所述待恢复对象对应的分配数据量大小以及所述待恢复对象实际的数据量大小之间的第二补偿值;
第二补偿单元,用于利用所述第二补偿值,对所述已恢复数据的第一数据量进行补偿。
在本申请实施例的上述实现方式中,针对于当前业务场景,确定出与该当前业务场景对应的数据恢复速度,即在一个恢复周期内所允许存储节点恢复的数据量,从而在保证在完成数据恢复的同时,能够尽可能降低数据恢复过程对于用户业务的影响。具体的,在数据恢复过程中的每个恢复周期内,需要进行数据恢复的第一存储节点可以获取在该恢复周期内已经恢复的第一数据量,然后可以判断该第一数据量是否达到预设的允许恢复数据量,若是,则在该恢复周期内第一存储节点暂停数据恢复,其中,预设的允许数据量对应于当前业务场景,该允许恢复数据量为预先设定的在一个恢复周期内所允许第一存储节点恢复的数据量;然后,可以判断第一存储节点是否达到预设恢复完成条件,如果未达到预设恢复结束条件,则数据恢复过程尚未结束,第一存储节点可以在与该恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行上述步骤,而如果达到预设恢复结束条件,则第一存储节点可以结束数据恢复过程。可见,在第一存储节点进行数据恢复时,针对于当前业务场景,限制了在一个恢复周期内第一存储节点所能恢复的数据量,也即限制了第一存储节点的数据恢复速度,基于此,在该恢复周期内除用于恢复数据之外的剩余时间,第一存储节点可以为用户业务提供读写服务,从而可以避免第一存储节点长时间进行数据恢复而导致长时间没有响应用户业务的数据读写请求。这样,当用户业务较为繁忙时,可以减缓数据恢复速度,而当用户业务较为空闲时,可以加快数据恢复速度,从而可以实现在保证在完成数据恢复的同时,能够尽可能降低数据恢复过程对于用户业务的影响。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一示例性应用场景示意图;
图2为本申请实施例中一种数据恢复方法的流程示意图;
图3为本申请实施例中一种数据恢复装置的结构示意图。
具体实施方式
现有的分布式存储系统中,若主存储节点上存储的部分数据出现损坏等异常时,为了避免出现数据丢失,主存储节点通常需要在短时间内利用该分布式存储系统中备存储节点上存储的数据来完成数据恢复。但是,主存储节点同时也可能会为用户业务提供数据的读写服务,此时,主存储节点所进行的数据恢复过程,可能会对用户业务造成影响。尤其是当用户业务比较繁忙时,会存在较多的针对于该主存储节点的数据读写请求,但是,此时主存储节点正在进行数据恢复,可能会导致主存储节点长时间没有响应该数据读写请求,从而影响用户业务的数据读写。
基于此,本申请实施例提供了一种数据恢复方法,针对于当前业务场景,确定出与该当前业务场景对应的数据恢复速度,即在一个恢复周期内所允许存储节点恢复的数据量,从而在保证在完成数据恢复的同时,能够尽可能降低数据恢复过程对于用户业务的影响。具体的,在数据恢复过程中的每个恢复周期内,需要进行数据恢复的第一存储节点可以获取在该恢复周期内已经恢复的第一数据量,然后可以判断该第一数据量是否达到预设的允许恢复数据量,若是,则在该恢复周期内第一存储节点暂停数据恢复,其中,预设的允许数据量对应于当前业务场景,该允许恢复数据量为预先设定的在一个恢复周期内所允许第一存储节点恢复的数据量;然后,可以判断第一存储节点是否达到预设恢复完成条件,如果未达到预设恢复结束条件,则数据恢复过程尚未结束,第一存储节点可以在与该恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行上述步骤,而如果达到预设恢复结束条件,则第一存储节点可以结束数据恢复过程。
可见,在第一存储节点进行数据恢复时,针对于当前业务场景,限制了在一个恢复周期内第一存储节点所能恢复的数据量,也即限制了第一存储节点的数据恢复速度,基于此,在该恢复周期内除用于恢复数据之外的剩余时间,第一存储节点可以为用户业务提供读写服务,从而可以避免第一存储节点长时间进行数据恢复而导致长时间没有响应用户业务的数据读写请求。这样,当用户业务较为繁忙时,可以减缓数据恢复速度,而当用户业务较为空闲时,可以加快数据恢复速度,从而可以实现在保证在完成数据恢复的同时,能够尽可能降低数据恢复过程对于用户业务的影响。
举例来说,本申请实施例可以应用于如图1所示的示例性应用场景中。在该场景中,包括监控模块MON,进行用户业务的客户端Client以及包括集群A、集群B的分布式存储系统。其中,集群A包含存储节点OSD(Object-based Storage Device,对象存储设备)1、OSD3以及OSD4,集群B包括存储节点OSD2、OSD5以及OSD6,其中,OSD1与OSD2上存储有相同的数据。若需要对OSD1上存储的数据进行数据恢复,则在数据恢复过程中的每个恢复周期内,由监控模块MON监控OSD1在该恢复周期内已恢复数据的第一数据量,并将该第一数据量发送给OSD1;然后,OSD1可以判断在该恢复周期内已恢复数据的第一数据量是否达到预设的允许恢复数据量,若是,则在该恢复周期内,OSD1暂停数据恢复,其中,该允许恢复数据量为预先设定的在一个恢复周期内允许OSD1恢复的数据量,该允许恢复数据量对应于客户端Client与OSD1之间进行用户业务的当前业务场景;接着,OSD1判断是否达到预设恢复结束条件,若未达到,则在与该恢复周期相邻的下一恢复周期内,继续进行数据恢复,并重新执行上述步骤,若达到,则结束对OSD1的数据恢复过程。这样,当客户端Client与OSD1之间的用户业务繁忙的情况下,可以减缓数据恢复速度,尽可能的减少数据恢复过程对用户业务读写的影响;而当客户端Client与OSD1之间的用户业务不繁忙的情况下,可以适当增加数据恢复速度,以保证OSD1能够在较短的时间内完成数据恢复。
可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合附图对本申请实施例中的各种非限定性实施方式进行示例性说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
参阅图2,图2示出了本申请实施例中一种数据恢复方法的流程示意图,该方法具体可以包括:
S201:在数据恢复过程中的每个恢复周期内,第一存储节点获取在该恢复周期内已恢复数据的第一数据量。
本实施例中,第一存储节点可以在每个恢复周期内恢复待恢复数据中的部分数据,从而在多个恢复周期内完成所有数据的恢复,其中,各个恢复周期内所恢复的数据通常不存在重叠。由此,针对于第一存储节点的数据恢复过程可以包含连续的多个恢复周期,本实施例中,重点以连续两个周期的数据恢复过程为例进行详细介绍,实际应用中,数据恢复过程可以包括两个及两个以上的恢复周期。
在每个恢复周期内,第一存储节点可以利用监控模块获取在该恢复周期内已经恢复数据的第一数据量,具体的,可以预先在分布式存储系统中设置监控模块,在第一存储节点进行数据恢复时,监控模块可以实时监控第一存储节点在每个恢复周期内当前已恢复数据的第一数据量,并将该第一数据量发送给第一存储节点,以使得第一存储节点能够获得该第一数据量。
在一种示例中,可以是第一存储节点所处的集群通过检测,确定当前是否需要进行数据恢复以及当前具体是哪个存储节点需要进行数据恢复。在确定第一存储节点需要进行数据恢复后,该集群可以向第一存储节点发送数据恢复指示,以使得第一存储节点根据该指示开始进行数据恢复。
本实施例中,可以是通过预分配统一补偿的方式来获取第一存储节点在一个恢复周期内已恢复数据的数据量。具体的,第一存储节点在一个恢复周期内恢复的数据可以是包含多个待恢复对象的数据,则针对于每个待恢复数据,如果第一存储节点能够获取到该待恢复对象的数据量大小,则第一存储节点可以将该待恢复对象的数据量大小计入已恢复的第一数据量中,比如,假设一个恢复周期内恢复的数据可以为对象A、对象B以及对象C的数据,其中,对象A的数据量大小为10M(兆),对象B的数据量大小为5M,对象C的数据量大小为8M,则在获取到对象A的数据量大小时,则将10M计入第一数据量中,即第一数据量更新为10M,然后,若获取到对象B的数据量大小,则再将5M计入第一数据量中,则第一数据量更新为15M(即10M+5M),以此类推。
当然,如果第一存储节点无法获取到该待恢复对象的数据量大小,表明第一存储节点上该待恢复对象已经损坏,则为该对恢复对象预分配一个数据量大小的值,然后,第一存储节点将与该待恢复对象对应的预设大小的分配数据量计入已恢复的第一数据量中。
比如,若第一存储节点无法获取到待恢复对象A以及待恢复对象B的数据量大小,则可以为该对象A分配一个1M大小的数据量,为对象B分配一个2M大小的数据量,并将该与对象A对应的1M的分配数据量计入第一数据量中,则第一数据量更新为1M,然后,由于无法获取到数据量大小的对象B,则可以将该2M计入第一数据量,则第一数据量则会更新为3M(即1M+2M)。
可以理解,对于第一存储节点获取到的待恢复对象的数据量大小以及预分配的数据量大小,均可能与该待恢复对象的实际数据量大小存在差异,从而可能会导致第一存储节点所获取到的第一数据量大小不准确,即并非是实际的数据量大小。因此,在确定已恢复数据的数据量时,还可以通过获取待恢复对象的实际数据量对来第一数据量进行补偿。
具体的,第一存储节点可以向与第二存储节点发送对象查询消息,以向第二存储节点获取该待恢复对象实际的数据量大小。其中,第一存储节点也存储有待恢复对象的数据,第一存储节点可以利用第二存储节点上的数据来进行数据恢复,而第一存储节点发送的对象查询消息中,可以包含待恢复对象的标识,这样,第二存储节点可以根据该标识,通过在第二存储节点上进行查询等方式确定出该待恢复对象的实际数据量大小,并将该实际的数据量大小发送给第一存储节点,具体可以是向第一存储节点发送包含该待恢复对象实际数据量大小的对象消息,从而使得第一存储节点可以基于该对象消息,确定出该待恢复对象实际的数据量大小,然后利用可以利用该待恢复对象实际的数据量大小,来对第一数据量进行相应的补偿。
在一种对第一数据量进行补偿的示例性实施方式中,针对于已恢复数据中的每个待恢复对象,若第一存储节点可以获取该待恢复对象的数据量大小,则第一存储节点可以计算出所获取的数据量大小与实际的数据量大小之间的第一补偿值,并将该第一补偿值计入第一数据量中,实现对第一数据量的补偿;若第一存储节点无法获取到该待恢复对象的数据量大小,则第一存储节点可以计算出与该待恢复对象对应的分配数据量大小与实际的数据量大小之间的第二补偿值,并将该第二补偿值计入第一数据量中,实现对第一数据量的补偿。这样,在确定出每个恢复周期内已恢复数据的第一数据量时,通过上述方式可以获取到每个待恢复对象的补偿值,并利用这些补偿值实现对第一数据量的补偿,以使得补偿后的第一数据量大小为第一存储节点在该恢复周期内已恢复数据实际的数据量大小。
实际应用中,为了便于方案的实施,可以将待恢复对象以及对应的所获取的数据量大小存储于补偿Map中,或者是将待恢复对象以及对应的分配数据量大小存储于补偿Map中,这样,在计算第一补偿值或者第二补偿值时,就可以从补偿Map上获得该待恢复对象所获取的数据量大小或分配数据量大小。
S202:若第一数据量达到预设的允许恢复数据量,则第一存储节点在该恢复周期内暂停数据恢复,其中,允许恢复数据量为预先设定的在一个恢复周期内允许第一存储节点恢复的数据量,该允许恢复数据量对应于当前业务场景。
值的注意的是,若第一存储节点在整个恢复周期内一直进行数据恢复,则第一存储节点会长时间无法响应当前用户业务发送的数据读写请求,从而会对用户业务造成影响。基于此,本实施例中,可以通过限制第一存储节点在每个恢复周期内允许恢复的数据量,来限制第一存储节点在数据恢复过程中的数据恢复速度。具体的,在每个恢复周期内,如果第一存储节点上已恢复数据的第一数据量达到预设恢复数据量,则第一存储节点可以暂停数据恢复,这样,第一存储节点可以利用该恢复周期内除用于恢复数据的时间以外的剩余时间,来处理用户业务针对于第一存储节点的读写请求,从而可以避免第一存储节点长时间无法响应当前用户业务的数据读写请求,进而减少了数据恢复过程对于用户业务的影响。当然,若第一数据量没有达到预设的允许恢复数据量,则可能第一存储节点已经完成所有数据的恢复,则可以执行步骤S204。
其中,预设的允许恢复数据量对应于当前业务场景。在一种示例性,若当前业务场景表征当前针对于第一存储节点的用户业务较为繁忙,则与之对应的允许恢复数据量可以较低,也即第一存储节点的数据恢复速度较低,而若当前业务场景表征当前针对于第一存储节点的用户业务较为空闲,则与之对应的允许恢复数据量也可以较高,也即第一存储节点的数据恢复速度较高。
实际应用中,可以预先建立不同业务场景与允许恢复数据量的对应关系,比如,可以是由技术人员预先对不同业务场景对应的允许恢复数据量进行设定,则第一存储节点在获取当前业务场景对应的预设恢复数据量时,可以先获取预先建立的不同业务场景与允许恢复数据量的对应关系,然后,利用该对应关系,可以确定出当前业务场景所对应的允许恢复数据量。
S203:若第一存储节点未达到预设恢复结束条件,则第一存储节点在与该恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行步骤S201以及步骤S202。
可以理解,若当前恢复周期内,第一存储节点未达到预设恢复结束条件,比如,第一存储节点上已恢复数据的数据量未达到待恢复数据的数据量等,则由于第一存储节点在当期恢复周期内已经暂停数据恢复,则第一存储节点可以在下一个恢复周期内继续对数据进行恢复,并继续执行步骤S201以及步骤S202,即在下一个恢复周期内进行数据恢复的同时,也控制数据恢复速度。
S204:若第一存储节点达到预设恢复结束条件,则第一存储节点结束数据恢复过程。
当然,若第一存储节点达到预设恢复结束条件,则第一存储节点可以结束此次数据恢复过程,
本实施例中,在数据恢复过程中的每个恢复周期内,需要进行数据恢复的第一存储节点可以获取在该恢复周期内已经恢复的第一数据量,然后可以判断该第一数据量是否达到预设的允许恢复数据量,若是,则在该恢复周期内第一存储节点暂停数据恢复,其中,预设的允许数据量对应于当前业务场景,该允许恢复数据量为预先设定的在一个恢复周期内所允许第一存储节点恢复的数据量;然后,可以判断第一存储节点是否达到预设恢复完成条件,如果未达到预设恢复结束条件,则数据恢复过程尚未结束,第一存储节点可以在与该恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行上述步骤,而如果达到预设恢复结束条件,则第一存储节点可以结束数据恢复过程。可见,在第一存储节点进行数据恢复时,针对于当前业务场景,限制了在一个恢复周期内第一存储节点所能恢复的数据量,也即限制了第一存储节点的数据恢复速度,基于此,在该恢复周期内除用于恢复数据之外的剩余时间,第一存储节点可以为用户业务提供读写服务,从而可以避免第一存储节点长时间进行数据恢复而导致长时间没有响应用户业务的数据读写请求。这样,当用户业务较为繁忙时,可以减缓数据恢复速度,而当用户业务较为空闲时,可以加快数据恢复速度,从而可以实现在保证在完成数据恢复的同时,能够尽可能降低数据恢复过程对于用户业务的影响。
此外,本申请实施例还提供了一种数据恢复的装置。参阅图3,图3示出了本申请实施例中一种数据恢复的装置结构示意图,该装置300具体可以包括:
获取模块301,用于在数据恢复过程中的每个恢复周期内,获取在所述恢复周期内已恢复数据的第一数据量;
暂停模块302,用于若所述第一数据量达到预设的允许恢复数据量,则在所述恢复周期内,所述暂停数据恢复;
其中,所述允许恢复数据量为预先设定的在一个恢复周期内允许第一存储节点恢复的数据量,所述允许恢复数据量对应于当前业务场景;
继续恢复模块303,用于若所述第一存储节点未达到预设恢复完成条件,则在与所述恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行获取模块301以及暂停模块302;
结束模块304,用于若所述第一存储节点达到预设恢复完成条件,则结束所述数据恢复过程。
在一些可能的实施方式中,所述装置300还包括:
对应关系获取模块,用于获取预先建立的不同业务场景与允许恢复数据量的对应关系;
确定模块,用于根据所述对应关系,确定当前业务场景所对应的允许恢复数据量。
在一些可能的实施方式中,在所述恢复周期内已恢复的数据包含多个待恢复对象的数据,所述获取模块301,包括:
第一计入单元,用于针对于每个待恢复对象,若获取到所述待恢复对象的数据量大小,则将所述待恢复对象的数据量大小计入所述已恢复数据的第一数据量中;
第二计入单元,用于针对于每个待恢复对象,若未获取到所述待恢复对象的数据量大小,则将与所述待恢复对象对应的预设大小的分配数据量计入所述已恢复数据的第一数据量中。
在一些可能的实施方式中,所述装置300还包括:
接收模块,用于接收第二存储节点发送的对象消息,所述第二存储节点上存储有所述待恢复数据;
数据量确定模块,用于基于所述对象消息,确定所述待恢复对象实际的数据量大小;
补偿模块,用于基于所述待恢复对象实际的数据量大小,对所述已恢复数据的第一数据量进行补偿。
在一些可能的实施方式中,所述装置300还包括:
第一存储模块,用于将所述待恢复对象以及所述待恢复对象的数据量大小存储于补偿Map中;
或,
第二存储模块,用于将所述待恢复对象以及与所述待恢复对象对应的分配数据量大小存储于所述补偿Map中;
则,所述补偿模块,包括:
第一计算单元,用于计算所述补偿Map存储的所述待恢复对象的数据量大小以及所述待恢复对象实际的数据量大小之间的第一补偿值;
第一补偿单元,用于利用所述第一补偿值,对所述已恢复数据的第一数据量进行补偿
或,
第二计算单元,用于计算所述补偿Map存储的与所述待恢复对象对应的分配数据量大小以及所述待恢复对象实际的数据量大小之间的第二补偿值;
第二补偿单元,用于利用所述第二补偿值,对所述已恢复数据的第一数据量进行补偿。
本实施例中,在第一存储节点进行数据恢复时,针对于当前业务场景,限制了在一个恢复周期内第一存储节点所能恢复的数据量,也即限制了第一存储节点的数据恢复速度,基于此,在该恢复周期内除用于恢复数据之外的剩余时间,第一存储节点可以为用户业务提供读写服务,从而可以避免第一存储节点长时间进行数据恢复而导致长时间没有响应用户业务的数据读写请求。这样,当用户业务较为繁忙时,可以减缓数据恢复速度,而当用户业务较为空闲时,可以加快数据恢复速度,从而可以实现在保证在完成数据恢复的同时,能够尽可能降低数据恢复过程对于用户业务的影响。
本申请实施例中提到的“第一存储节点”、“第一数据量”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
Claims (10)
1.一种数据恢复方法,其特征在于,所述方法包括:
在数据恢复过程中的每个恢复周期内,第一存储节点获取在所述恢复周期内已恢复数据的第一数据量;
若所述第一数据量达到预设的允许恢复数据量,则在所述恢复周期内,所述第一存储节点暂停数据恢复;
其中,所述允许恢复数据量为预先设定的在一个恢复周期内允许所述第一存储节点恢复的数据量,所述允许恢复数据量对应于当前业务场景;
若所述第一存储节点未达到预设恢复完成条件,则所述第一存储节点在与所述恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行上述步骤;
若所述第一存储节点达到预设恢复完成条件,则所述第一存储节点结束所述数据恢复过程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一存储节点获取预先建立的不同业务场景与允许恢复数据量的对应关系;
所述第一存储节点根据所述对应关系,确定当前业务场景所对应的允许恢复数据量。
3.根据权利要求1所述的方法,其特征在于,在所述恢复周期内已恢复的数据包含多个待恢复对象的数据,所述第一存储节点获取在所述恢复周期内已恢复数据的第一数据量,包括:
针对于每个待恢复对象,若获取到所述待恢复对象的数据量大小,则所述第一存储节点将所述待恢复对象的数据量大小计入所述已恢复数据的第一数据量中;
针对于每个待恢复对象,若未获取到所述待恢复对象的数据量大小,则所述第一存储节点将与所述待恢复对象对应的预设大小的分配数据量计入所述已恢复数据的第一数据量中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第一存储节点接收第二存储节点发送的对象消息,所述第二存储节点上存储有所述待恢复数据;
所述第一存储节点基于所述对象消息,确定所述待恢复对象实际的数据量大小;
所述第一存储节点基于所述待恢复对象实际的数据量大小,对所述已恢复数据的第一数据量进行补偿。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第一存储节点将所述待恢复对象以及所述待恢复对象的数据量大小存储于补偿Map中;
或,
所述第一存储节点将所述待恢复对象以及与所述待恢复对象对应的分配数据量大小存储于所述补偿Map中;
则,所述第一存储节点基于所述待恢复对象实际的数据量大小,对所述已恢复数据的第一数据量进行补偿,包括:
所述第一存储节点计算所述补偿Map存储的所述待恢复对象的数据量大小以及所述待恢复对象实际的数据量大小之间的第一补偿值;
所述第一存储节点利用所述第一补偿值,对所述已恢复数据的第一数据量进行补偿
或,
所述第一存储节点计算所述补偿Map存储的与所述待恢复对象对应的分配数据量大小以及所述待恢复对象实际的数据量大小之间的第二补偿值;
所述第一存储节点利用所述第二补偿值,对所述已恢复数据的第一数据量进行补偿。
6.一种数据恢复装置,其特征在于,所述装置包括:
获取模块,用于在数据恢复过程中的每个恢复周期内,获取在所述恢复周期内已恢复数据的第一数据量;
暂停模块,用于若所述第一数据量达到预设的允许恢复数据量,则在所述恢复周期内,所述暂停数据恢复;
其中,所述允许恢复数据量为预先设定的在一个恢复周期内允许第一存储节点恢复的数据量,所述允许恢复数据量对应于当前业务场景;
继续恢复模块,用于若所述第一存储节点未达到预设恢复完成条件,则在与所述恢复周期相邻的下一个恢复周期内,继续进行数据恢复,并重新执行获取模块以及暂停模块;
结束模块,用于若所述第一存储节点达到预设恢复完成条件,则结束所述数据恢复过程。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
对应关系获取模块,用于获取预先建立的不同业务场景与允许恢复数据量的对应关系;
确定模块,用于根据所述对应关系,确定当前业务场景所对应的允许恢复数据量。
8.根据权利要求6所述的装置,其特征在于,在所述恢复周期内已恢复的数据包含多个待恢复对象的数据,所述获取模块,包括:
第一计入单元,用于针对于每个待恢复对象,若获取到所述待恢复对象的数据量大小,则将所述待恢复对象的数据量大小计入所述已恢复数据的第一数据量中;
第二计入单元,用于针对于每个待恢复对象,若未获取到所述待恢复对象的数据量大小,则将与所述待恢复对象对应的预设大小的分配数据量计入所述已恢复数据的第一数据量中。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收第二存储节点发送的对象消息,所述第二存储节点上存储有所述待恢复数据;
数据量确定模块,用于基于所述对象消息,确定所述待恢复对象实际的数据量大小;
补偿模块,用于基于所述待恢复对象实际的数据量大小,对所述已恢复数据的第一数据量进行补偿。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一存储模块,用于将所述待恢复对象以及所述待恢复对象的数据量大小存储于补偿Map中;
或,
第二存储模块,用于将所述待恢复对象以及与所述待恢复对象对应的分配数据量大小存储于所述补偿Map中;
则,所述补偿模块,包括:
第一计算单元,用于计算所述补偿Map存储的所述待恢复对象的数据量大小以及所述待恢复对象实际的数据量大小之间的第一补偿值;
第一补偿单元,用于利用所述第一补偿值,对所述已恢复数据的第一数据量进行补偿
或,
第二计算单元,用于计算所述补偿Map存储的与所述待恢复对象对应的分配数据量大小以及所述待恢复对象实际的数据量大小之间的第二补偿值;
第二补偿单元,用于利用所述第二补偿值,对所述已恢复数据的第一数据量进行补偿。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810961405.XA CN109144782B (zh) | 2018-08-22 | 2018-08-22 | 一种数据恢复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810961405.XA CN109144782B (zh) | 2018-08-22 | 2018-08-22 | 一种数据恢复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144782A true CN109144782A (zh) | 2019-01-04 |
CN109144782B CN109144782B (zh) | 2021-08-10 |
Family
ID=64790821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810961405.XA Active CN109144782B (zh) | 2018-08-22 | 2018-08-22 | 一种数据恢复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144782B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795284A (zh) * | 2019-10-25 | 2020-02-14 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法、装置、设备及可读存储介质 |
CN110990195A (zh) * | 2019-11-24 | 2020-04-10 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法、设备及存储介质 |
CN111309525A (zh) * | 2020-02-24 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种控制数据恢复精度的方法、系统、设备及介质 |
WO2021159687A1 (zh) * | 2020-02-10 | 2021-08-19 | 华为技术有限公司 | 数据重构方法、存储设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490103B2 (en) * | 2004-02-04 | 2009-02-10 | Netapp, Inc. | Method and system for backing up data |
CN102289396A (zh) * | 2011-09-01 | 2011-12-21 | 宇龙计算机通信科技(深圳)有限公司 | 终端和备份与恢复方法 |
CN107391317A (zh) * | 2017-09-14 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据恢复的方法、装置、设备及计算机可读存储介质 |
CN107402851A (zh) * | 2017-08-01 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种数据恢复控制方法及装置 |
CN107577561A (zh) * | 2017-09-14 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
EP3327571A1 (en) * | 2015-08-17 | 2018-05-30 | Huawei Technologies Co., Ltd. | Data recovery method, data storage method, and corresponding apparatus and system |
-
2018
- 2018-08-22 CN CN201810961405.XA patent/CN109144782B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490103B2 (en) * | 2004-02-04 | 2009-02-10 | Netapp, Inc. | Method and system for backing up data |
CN102289396A (zh) * | 2011-09-01 | 2011-12-21 | 宇龙计算机通信科技(深圳)有限公司 | 终端和备份与恢复方法 |
EP3327571A1 (en) * | 2015-08-17 | 2018-05-30 | Huawei Technologies Co., Ltd. | Data recovery method, data storage method, and corresponding apparatus and system |
CN107402851A (zh) * | 2017-08-01 | 2017-11-28 | 郑州云海信息技术有限公司 | 一种数据恢复控制方法及装置 |
CN107391317A (zh) * | 2017-09-14 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据恢复的方法、装置、设备及计算机可读存储介质 |
CN107577561A (zh) * | 2017-09-14 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795284A (zh) * | 2019-10-25 | 2020-02-14 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法、装置、设备及可读存储介质 |
CN110795284B (zh) * | 2019-10-25 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法、装置、设备及可读存储介质 |
CN110990195A (zh) * | 2019-11-24 | 2020-04-10 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法、设备及存储介质 |
WO2021159687A1 (zh) * | 2020-02-10 | 2021-08-19 | 华为技术有限公司 | 数据重构方法、存储设备及存储介质 |
CN111309525A (zh) * | 2020-02-24 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种控制数据恢复精度的方法、系统、设备及介质 |
CN111309525B (zh) * | 2020-02-24 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种控制数据恢复精度的方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109144782B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144782A (zh) | 一种数据恢复方法及装置 | |
US10135922B2 (en) | Granular sync/semi-sync architecture | |
US9361087B1 (en) | Device driver aggregation in operating system deployment | |
CN108023953B (zh) | Ftp服务的高可用实现方法和装置 | |
CN105208060B (zh) | 业务数据同步方法、装置及系统 | |
US10212229B2 (en) | Reliable data storage for decentralized computer systems | |
CN101557427A (zh) | 提供分流信息、实现客户端分流的方法、系统及服务器 | |
CN110222775A (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN105635311A (zh) | 一种云管理平台中资源池信息同步的方法 | |
US10078678B2 (en) | Data transfer between multiple databases | |
CN105530272A (zh) | 一种应用数据的同步方法和装置 | |
CN107888666A (zh) | 一种跨地域数据存储系统以及数据同步方法和装置 | |
CN106126374A (zh) | 数据写入方法、数据读取方法及装置 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
CN107040576A (zh) | 信息推送方法及装置、通讯系统 | |
CN108234551A (zh) | 一种数据处理方法及装置 | |
CN114422537B (zh) | 多云存储系统、多云数据读写方法及电子设备 | |
CN106209875A (zh) | 基于多业务服务器的业务处理方法及业务服务器 | |
CN104517067A (zh) | 访问数据的方法、装置及系统 | |
CN109446825A (zh) | 一种访问控制权限的扩展方法及装置 | |
CN103810038A (zh) | 一种ha集群中虚拟机存储文件迁移方法及其装置 | |
CN112597406A (zh) | 一种文件传输方法、装置、终端设备及存储介质 | |
US20130339964A1 (en) | Replaying of work across cluster of database servers | |
CN112306371A (zh) | 存储管理的方法、设备和计算机程序产品 | |
CN103795810A (zh) | 数据分发系统及方法以及该数据分发系统中的中心服务器 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |