CN112631826B - 一种备份处理方法、装置及计算机可读存储介质 - Google Patents
一种备份处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112631826B CN112631826B CN201910955659.5A CN201910955659A CN112631826B CN 112631826 B CN112631826 B CN 112631826B CN 201910955659 A CN201910955659 A CN 201910955659A CN 112631826 B CN112631826 B CN 112631826B
- Authority
- CN
- China
- Prior art keywords
- backup
- information
- target
- data
- restored
- 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
Links
Images
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/1448—Management of the data involved in backup or backup restore
Abstract
本发明实施例提供了一种备份处理方法、装置以及计算机可读存储介质,其中方法包括:获取待恢复目标备份对应的备份链;其中,所述备份链中包含有至少一个备份信息,以及所述每一个备份信息所对应的父备份信息和/或子备份信息;所述待恢复目标备份为所述至少一个备份信息中之一;基于所述备份链,确定所述待恢复目标备份的父备份信息;基于所述待恢复目标备份以及所述父备份信息分别对应的元数据信息的补集以及并集,对所述待恢复目标备份进行恢复。避免按照备份链的时间顺序,从前往后依次迭代恢复,所带来的大量的重复数据被多次覆盖写的问题,从而提升了备份处理的效率。
Description
技术领域
本发明涉及信息处理技术领域,尤其涉及一种备份处理方法、装置及计算机可读存储介质。
背景技术
OpenStack的cinder备份提供了三种驱动服务:Ceph、NFS、Swift。其中,Ceph驱动将卷备份到ceph集群,以两种方式:一种是非rbd作为backend,仅支持全量备份,并以卷的形式进行存储;一种是rbd作为backend,可以支持增量备份,使用ceph本身自带的差量文件的方式生成对应的增量文件。
但是,目前的备份存储方案,无法解决恢复去重等问题,因此无法提升备份方案的使用效率。
发明内容
为解决上述技术问题,本发明实施例提供了一种备份处理方法、装置及计算机可读存储介质。
第一方面,提供了一种备份处理方法,所述方法包括:
获取待恢复目标备份对应的备份链;其中,所述备份链中包含有至少一个备份信息,以及所述每一个备份信息所对应的父备份信息和/或子备份信息;所述待恢复目标备份为所述至少一个备份信息中之一;
基于所述备份链,确定所述待恢复目标备份的父备份信息;
基于所述待恢复目标备份以及所述父备份信息分别对应的元数据信息的补集以及并集,对所述待恢复目标备份进行恢复。
第二方面,提供了一种备份处理装置,所述装置包括:
获取单元,获取待恢复目标备份对应的备份链;其中,所述备份链中包含有至少一个备份信息,以及所述每一个备份信息所对应的父备份信息和/或子备份信息;所述待恢复目标备份为所述至少一个备份信息中之一;
恢复处理单元,基于所述备份链,确定所述待恢复目标备份的父备份信息;基于所述待恢复目标备份以及所述父备份信息分别对应的元数据信息的补集以及并集,对所述待恢复目标备份进行恢复。
第三方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面各实现方式中的方法。
本发明实施例的技术方案,恢复备份的时候,从后往前查找待恢复备份对应的父备份信息,进行备份的恢复处理,如此,能够避免按照备份链的时间顺序,从前往后依次迭代恢复,所带来的大量的重复数据被多次覆盖写的问题,从而提升了备份处理的效率。
附图说明
图1是本发明实施例提供的一种备份处理方法流程示意性图;
图2是本发明实施例提供的一种备份恢复的示意图;
图3是传统的备份恢复处理示意图;
图4是本发明实施例提供的一种备份存储示意图;
图5为本发明实施例提供的备份创建与传统备份创建的对比示意图;
图6为本发明实施例提供的删除备份的处理与传统备份删除的处理对比示意图;
图7为本发明实施例提供的一种删除备份的处理流程示意图;
图8为本发明实施例提供的一种备份处理装置的组成结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本发明实施例提供了一种备份处理方法,所述方法包括:
步骤11:获取待恢复目标备份对应的备份链;其中,所述备份链中包含有至少一个备份信息,以及所述每一个备份信息所对应的父备份信息和/或子备份信息;所述待恢复目标备份为所述至少一个备份信息中之一;
步骤12:基于所述备份链,确定所述待恢复目标备份的父备份信息;
步骤13:基于所述待恢复目标备份以及所述父备份信息分别对应的元数据信息的补集以及并集,对所述待恢复目标备份进行恢复。
首先针对本实施例中备份链进行说明,本实施例中备份链中包含有至少一个备份信息,以及每一个备份信息对应的父备份信息和/或子备份信息,也就是说,不一定全部备份信息均具备父备份以及子备份,比如,第一个备份信息可能就没有父备份信息,仅具备子备份信息,而最后一个备份信息可能没有子备份信息仅具备父备份信息。其中,子备份信息或者父备份信息可以理解为子备份的标识信息,或者父备份的标识信息。
关于备份链的存储格式,以对象的形式存在,具体可以如下:
对象名:{volume_id}-backup-lists;用于指示卷的标识以及备份列表;
对象内容格式:{“status”:“available”,“son_backup_id”:“{son_backup_id}”,“parent_backup_id”:“{parent_backup_id}”};具体描述可以为,“status”:“available”表示状态为可用,“{son_backup_id}”表示子备份的标识信息,{parent_backup_id}表示父备份的标识信息。
关于备份对应的元数据信息,其格式可以如下:
对象名:{volume-id}-{backup-id}-meta;其中包括有:卷的标识-备份的标识信息,meta用于表示对象为元数据。
对象内容:{intervals:[[0,4,file_name],…,[m,n,file_name]]};
其中,file_name为备份数据的前缀:{volume-id}-{backup-id}-data;interval用于表示数据区间,比如m,n即表示从m到n的区间为存储该元数据的数据区间。
另外,本实施例备份数据格式可以如下:
对象名:{volume-id}-{backup-id}-data_{offset},其中,包含有卷的标识、备份的标识信息以及数据的偏移值。关于备份数据的对象大小:一般为4MB,用于存储具体数据。
在前述基础上,下面进一步分几个场景对本实施例提供的方案进行说明:
场景1、备份恢复:
传统的增量备份恢复任务需要按照备份链的时间顺序,从前往后依次迭代恢复,这样会导致大量的重复数据被多次覆盖写,降低恢复效率;而本实施例提供的方案通过从待恢复目标备份往前面查找父备份信息开始进行恢复。
本实施例中步骤13中,由于需要使用待恢复目标备份以及父备份信息分别对应的元数据信息的补集以及并集,因此备份恢复时进行超前计算即获取此备份的备份链。
还需要指出的是,虽然步骤13中仅涉及到待恢复目标备份以及父备份信息分别对应的元数据信息的补集以及并集,但是实际计算的时候,会获取待恢复目标备份以及父备份信息分别对应的元数据信息的补集、并集以及交集这三种关系。
另外,还需要确定或者获取备份链里所有备份的元数据信息。
具体的,基于所述备份链,确定所述待恢复目标备份的父备份信息,基于所述待恢复目标备份以及所述父备份信息分别对应的元数据信息的补集以及并集,对所述待恢复目标备份进行恢复,包括:
将所述备份链中所述待恢复目标备份的父备份信息作为第一父备份信息;
基于所述待恢复目标备份与所述第一父备份信息分别对应的元数据信息之间的补集以及并集,确定更新后的待恢复目标备份的元数据信息;
判断所述备份链中是否存在所述第一父备份信息的第二父备份信息;
若存在,则将所述第二父备份信息作为新的第一父备份信息,基于新的第一父备份信息以及所述更新后的待恢复目标备份分别对应的元数据信息之间的补集以及并集,确定更新后的待恢复目标备份的元数据信息;若不存在,则确定所述待恢复目标备份完成恢复。
其中,更新后的待恢复目标备份的元数据信息,可以为待恢复目标备份以及第一父备份信息的元数据信息的所述并集。
前述得到更新后的待恢复目标备份的元数据信息之后,可以继续获取当前的第一父备份信息对应的第二父备份信息,并将第二父备份信息作为新的第一父备份信息,进而进行循环处理,直至当前的第一父备份信息无对应的父备份信息为止。
还需要指出的是,在将所述备份链中所述待恢复目标备份的父备份信息作为第一父备份信息之前,所述方法还可以包括:判断所述待恢复目标备份在所述备份链中是否存在对应的父备份信息。相应的,若存在则将该父备份信息作为第一父备份信息进行后续处理,否则,直接将待恢复目标备份所对应的元数据信息作为最终恢复得到的结果。
也就是说,从需要备份恢复的备份开始,依次获取父备份,并利用元数据管理算法获取其补集、并集、交集;
通过获取的并集再和前一父备份再次进行元数据管理算法计算获取新的补集、并集、交集,最终计算到第一个备份,完成整个超前计算。
举例说明,如图2所示,若是恢复备份3,在恢复数据前对其进行超前计算,备份3的所有数据区间都是需要恢复的,因为作为需要恢复的最新数据,对应需要恢复的区间数据为[[0,2,volume_id_backup_3_data]];备份3和其父备份(即备份2)进行元数据管理算法计算,获取到补集[[2,3,volume_id_backup_2_data]],加入到需要恢复的数据区间,所以对应需要恢复的区间数据为[[0,2,volume_id_backup_3_data],[2,3,volume_id_backup_2_data]],并集为[[0,2,volume_id_backup_3_data],[2,3,volume_id_backup_2_data]];备份3和备份2的并集,以及备份2的父备份即备份1进行元数据管理算法计算,获取到补集为空,所以对应需要恢复的区间数据为[[0,2,volume_id_backup_3_data],[2,3,volume_id_backup_2_data]],并集不变[[0,2,volume_id_backup_3_data],[2,3,volume_id_backup_2_data]];因为备份1为首次备份,所以得到备份3恢复的超前计算需要恢复的数据为[[0,2,volume_id_backup_3_data],[2,3,volume_id_backup_2_data]],去除了其中的覆盖写的数据区间,通过获取到的最终需要恢复的区间,依次获取对应的区间数据,并恢复到对应的ceph卷中。
如图3所示,传统的增量备份恢复策略是从前往后,对所有的备份进行依次覆盖写,从备份1恢复到备份3,需要对第二块的数据重复写了三次,且共需恢复60G的数据,降低了恢复效率;本实施例的恢复策略则反向进行,即图2中首先恢复的是备份3的最新数据20G,然后将备份2和备份3进行数据管理算法的计算获取两个备份的补集[2,3],交集[1,2],并集[0,3],只需要恢复补集的10G数据即可,对于第2块数据,相对于备份3来说已经不是最新的数据,所以不需要恢复;然后将备份2和备份3的并集与备份1进行数据管理算法的计算获取其补集为空,交集[0,2],并集[0,3],备份1涉及到的交集部分实际已经不是最新的数据,所以备份3恢复涉及的数据量为30G,读写数据降低了1倍,极大的提升了恢复速率。
最后,在本场景中涉及到的计算交集、并集以及补集的相关元数据管理算法,下面针对这部分内容进行说明,结合图4:
假如对volume_1进行了三次备份,volume_1备份链:
volume_1_backup_list:{“backup_a”:{“status”:“available”,“son_backup_id”“backup_b”,“parent_backup_id”:nullbackup_b”:{“status”:“availabl”,“son_backup_id”:“backup_c”,“parent_backup_id”:“backup_a”}“backup_c”:{“status”:“available”,“son_backup_id”:null;”“parent_backup_id”:“backup_b”};
用于表示卷1的备份链,其中备份a“backup_a”,状态为可用,子备份的标识信息为备份b,父备份的标识信息“null”(无);备份b“backup_b””,状态为可用,子备份的标识信息为备份c,父备份的标识信息为备份a;备份c“backup_c”,状态为可用,子备份无,父备份的标识信息为备份b。
备份a的元数据信息volume_1_backup_a_meta:{intervals:[[0,1,”volume_1_backup_a_data”]]};也就是卷1的备份a的元数据信息包括:间距0-1,以及卷1的备份a的数据;其中备份a的数据信息volume_1_backup_a_data_0。
备份b的元数据信息volume_1_backup_b_meta:{intervals:[[1,3,”volume_1_backup_b_data”]]};其中,备份b的数据信息:volume_1_backup_b_data_1,volume_1_backup_b_data_2。
备份c的元数据信息volume_1_backup_c_meta:{intervals:[[0,2,”volume_1_backup_b_data”]]};备份c的数据信息:volume_1_backup_c_data_0,volume_1_backup_c_data_1。
其中,伪代码实现,采用数学里的集合的交集、补集、并集的思想,举例来说,可以考虑两个区间的6种情况:
Source:备份a,destination:备份b,获取每个备份的第一个interval,以备份b为例:interval[0]=1,interval[1]=3,其实也就是对应的数据存储的偏移量。
第一种情况:当两个比较区间source在前,dest在后,没有交集:
if source_interval[1]<=dest_interval[0]:
补集增加source_interval
并集增加source_interval
Source读取下一个区间。
第二种情况:当source区间在前,dest区间在后,且有交集的情况下:
else if(source_interval[0]<dest_interval[0]and source_interval[1]>dest_interval[0]and source_interval[1]<dest_interval[1]):
补集增加source_interval[0]到dest_interval[0]的区间
交集增加dest_interval[0]到source_interval[1]的区间
并集增加source_interval[0]到dest_interval[0]的区间
Source读取下一个区间。
第三种情况:当两个比较区间source被包括在dest区间内
Else if(source_interval[0]>=dest_interval[0]and source_interval[1]<=dest_interval[1]):
并集增加source_interval区间
Source读取下一个区间。
第四种情况:当两个比较区间dest被包括在source区间内。
Else if(source_interval[0]<=dest_interval[0]and source_interval[1]>=dest_interval[1]):
交集增加dest区间
If source_interval[0]<dest_interval[0]:
补集增加source_interval[0]到dest_interval[0]的区间数据
并集增加source_interval[0]到dest_interval[0]的区间数据
并集增加dest区间
Dest读取下一个分区
If dest_interval[1]<source_interval[1]:
更改source_interval的区间,source_interval[0]=dest_interval[1],因为dest_interval[1]前面的数据已经加入到并集区间内,source_interval区间变为:dest_interval[1]到source_interval[1]的区间
Else:
也就是source_interval[1]=dest_interval[1],需要加入后一个source_interval区间。
第五种情况:当dest区间在前,source区间在后,且相交
Else if(source_interval[0]>dest_interval[0]and source_interval[0]<dest_interval[1]and dest_interval[1]<source_interval[1]):
交集增加source_interval[0]到dest_interval[1]的区间
修改source_interval[0]=dest_interval[1]
Dest区间读取下一个分区
并集增加dest的区间。
第六种情况:dest区间在前,source区间在后,且无交集
Else if dest_interval[1]<=source_interval[0]:
Dest区间读取下一个
并集增加dest区间。
最后,判断若是source区间已经读取完成,但是dest区间还没有则将剩余的dest区间增加到并集内;若是source区间没有读完,而dest区间已经合并完成,则将剩余的source区间增加到补集内。最终获取完成的交集,补集,并集
基于以上的伪代码实现机制,主要作用实现两个备份的元数据集合的交并补集的获取,是备份恢复的超前计算以及备份删除的任意删除功能的基础算法。备份c作为dest,备份b为source,补集为[2,3],并集为[0,3],交集为[1,2];基于备份b,c的并集,和备份a的补集为空,并集为[0,3],交集为[0,1]。
场景2、备份创建:
在存储目标数据时,将所述目标数据与备份链中的目标备份信息所对应的元数据信息进行对比,得到所述目标数据的至少部分数据作为待备份数据;其中,所述目标备份信息为所述备份链中位于最后、且无子备份信息的备份信息;
将所述待备份数据的信息作为所述目标备份的子备份信息添加在备份链中,存储所述待备份数据至数据空间中。
也就是说,在存储目标数据的时候,可以首先将存储目标数据与备份链中最后一个备份信息进行比对;具体的对比内容可以包括有:判断当前存储目标数据与最后一个备份信息的元数据信息相比,是否存在更新的数据;若存在,则仅保留更新的数据作为待备份数据的元数据信息。
进一步地,保存的时候,将待备份数据的信息添加到备份链中,具体来说,可以将待备份数据的信息作为备份链中最后一个备份信息,再添加目标备份信息的子备份信息,即待备份数据的信息作为目标备份信息的子备份信息进行保存;相应的,保存待备份数据的元数据信息至数据空间中。
具体来说,Ceph卷备份全部采用增量备份,减少数据传输、处理、存储;和传统备份方式不同,本实施例的备份是基于ceph后端存储深度定制的,后端存储直接提供数据增量读取接口,极大的减少备份数据量;后端存储介质可以支持S3、swift接口以及nfs等。
备份1G增量数据的情形下,新备份方案和传统备份的对比如图5所示,传统备份方式,增量备份若是对一个100G的卷进行备份,会将全部数据读取到备份软件,后端去重,提取增量数据1G存储到存储介质;而采用上述方案,则是利用ceph卷的增量读取接口,前端直接去重,只需获取1G的增量数据,将增量数据备份到备份介质中,减少了数据的传输,提升备份速率。
场景3、备份删除:
确定删除备份链中的待删除备份时,判断所述待删除备份是否存在子备份信息;
若存在子备份信息,则基于所述子备份信息与所述待删除备份分别对应的元数据信息的交集以及补集,更新所述待删除备份的子备份信息的元数据信息,并删除所述待删除备份及其对应的元数据信息;
若不存在子备份信息,则直接删除所述待删除备份及其对应的元数据信息。
其中,所述基于所述子备份信息与所述待删除备份分别对应的元数据信息的交集以及补集,更新所述待删除备份的子备份信息的元数据信息,包括:
将所述子备份信息与所述待删除备份分别对应的元数据信息的交集部分直接删除,将所述子备份信息与所述待删除备份分别对应的元数据信息的补集部分添加至子备份信息对应的元数据信息的数据区间中,得到更新后的待删除备份的子备份信息的元数据信息。
如图6上方所示为传统方案中ebs增量备份删除示意图,传统增量备份是不允许删除的,除非这个备份处于备份链的末端;否则,中间备份会被后面的备份依赖,删除后会导致子备份的数据丢失。
如图6下方所示,本实施例提供的备份方案,可以实现增量备份的任意删除;删除备份时,会通过备份元数据来检索数据之间的依赖关系,如果一个数据块被子备份引用了,则直接合并到子备份,而如果一个数据块没有被子备份所引用,则直接删除。
具体来说,本场景可以理解为当备份链内的某个备份删除时,查看是否有子备份,若是没有则直接删除,若是有则和子备份的元数据区间(存储空间)利用数据管理算法计算交集、补集、并集;交集的部分删除,补集加入到子备份的元数据信息对应的数据区间;上述处理不涉及数据的复制,只需更新子备份的元数据。
另外,为了保证备份的完整性,即增加一个记录区间,可以包括:将所述子备份信息与所述待删除备份分别对应的元数据信息的交集部分记录在待删除备份的元数据中,并新增删除区间;也就是说,记录空间,可称为mix区间,用于记录当前删除的备份与子备份的交集,即待删除区间数据。
比如,获取到交集后,将所述交集添加入删除备份的元数据中。如此,能够在删除的过程中出现服务中断或者其他故障,利用记录区间,即mix区间,可以明确需要删除的数据,从而在故障恢复之后,能够通过读取mix区间确定需要删除的数据。
图7为本场景的一个具体实施流程:
步骤71:判断待删除备份是否存在于备份链中,比如,通过backup-id,即备份的标识信息判断该待删除备份是否存在于备份链中;若不是,则执行步骤77;若是,则执行步骤72;
步骤72:判断待删除备份是否为最后一个备份,若是,则执行步骤76,否则,执行步骤73;
步骤73:判断是否存在mix区间,若是,则执行步骤75,否则,执行步骤74;
步骤74:更新待删除备份对应的元数据;即通过元数据管理算法获取的待删除备份与子备份的元数据之间的交集数据,为mix区间,加入到待删除备份的元数据中;
步骤75:更新子备份的元数据,即通过元数据管理算法获取的待删除备份与子备份的元数据之间的并集区间,更新到待删除备份的子备份中;
步骤76:从备份链中删除所述待删除备份;
步骤77-步骤80:步骤77:查看所述待删除备份的元数据信息中是否存在mix区间,即是否存在删除区间;若存在mix区间,则执行步骤78删除mix区间对应的数据,执行步骤80删除所述待删除备份的自身元数据信息;若不存在mix区间,代表待删除备份既不在备份链中,也没有删除区间,即没有子备份,则执行步骤79直接删除待删除备份的所有备份数据,然后执行步骤80删除待删除备份自身的元数据信息。
可见,通过采用上述方案,就能够从后往前查找待恢复备份对应的父备份信息,进而进行备份的恢复处理,如此,能够避免按照备份链的时间顺序,从前往后依次迭代恢复,所带来的大量的重复数据被多次覆盖写的问题,从而提升了恢复效率。
另外,上述方案还提供了创建备份的方法,能够在创建备份的时候从前端进行去重,仅确定目标数据中的一部分数据作为待备份数据,从而减少了数据的传输,提升了备份速率。
再次,本方案还提供了删除备份的方案,在删除备份的时候,不会受到存储时间的限制,能够在备份链中任意删除待删除备份,从而提升了处理效率。
如图8所示,本发明实施例提供了一种备份处理装置,所述装置包括:
获取单元81,获取待恢复目标备份对应的备份链;其中,所述备份链中包含有至少一个备份信息,以及所述每一个备份信息所对应的父备份信息和/或子备份信息;所述待恢复目标备份为所述至少一个备份信息中之一;
恢复处理单元82,基于所述备份链,确定所述待恢复目标备份的父备份信息;基于所述待恢复目标备份以及所述父备份信息分别对应的元数据信息的补集以及并集,对所述待恢复目标备份进行恢复。
首先针对本实施例中备份链进行说明,本实施例中备份链中包含有至少一个备份信息,以及每一个备份信息对应的父备份信息和/或子备份信息,也就是说,不一定全部备份信息均具备父备份以及以及子备份,比如,第一个备份信息可能就没有父备份信息,仅具备子备份信息,而最后一个备份信息可能没有子备份信息仅具备父备份信息。其中,子备份信息或者父备份信息可以理解为子备份的标识信息,或者父备份的标识信息。
在前述基础上,下面进一步分几个场景对本实施例提供的方案进行说明:
场景1、备份恢复:
传统的增量备份恢复任务需要按照备份链的时间顺序,从前往后依次迭代恢复,这样会导致大量的重复数据被多次覆盖写,降低恢复效率;而本实施例提供的方案通过从待恢复目标备份往前面查找父备份信息开始进行恢复。
本实施例中,由于需要使用待恢复目标备份以及父备份信息分别对应的元数据信息的补集以及并集,因此备份恢复时进行超前计算即获取此备份的备份链。
还需要指出的是,虽然涉及到待恢复目标备份以及父备份信息分别对应的元数据信息的补集以及并集,但是实际计算的时候,会获取待恢复目标备份以及父备份信息分别对应的元数据信息的补集、并集以及交集这三种关系。
另外,还需要确定或者获取备份链里所有备份的元数据信息。
具体的,恢复处理单元82,将所述备份链中所述待恢复目标备份的父备份信息作为第一父备份信息;
基于所述待恢复目标备份与所述第一父备份信息分别对应的元数据信息之间的补集以及并集,确定更新后的待恢复目标备份的元数据信息;
判断所述备份链中是否存在所述第一父备份信息的第二父备份信息;
若存在,则将所述第二父备份信息作为新的第一父备份信息,基于新的第一父备份信息以及所述更新后的待恢复目标备份分别对应的元数据信息之间的补集以及并集,确定更新后的待恢复目标备份的元数据信息;若不存在,则确定所述待恢复目标备份完成恢复。
其中,更新后的待恢复目标备份的元数据信息,可以为待恢复目标备份以及第一父备份信息的元数据信息的所述并集。
前述得到更新后的待恢复目标备份的元数据信息之后,可以继续获取当前的第一父备份信息对应的第二父备份信息,并将第二父备份信息作为新的第一父备份信息,进而进行循环处理,直至当前的第一父备份信息无对应的父备份信息为止。
还需要指出的是,在将所述备份链中所述待恢复目标备份的父备份信息作为第一父备份信息之前,所述方法还可以包括:判断所述待恢复目标备份在所述备份链中是否存在对应的父备份信息。相应的,若存在则将该父备份信息作为第一父备份信息进行后续处理,否则,直接将待恢复目标备份所对应的元数据信息作为最终恢复得到的结果。
也就是说,从需要备份恢复的备份开始,依次获取父备份,并利用元数据管理算法获取其补集、并集、交集;
通过获取的并集再和前一父备份再次进行元数据管理算法计算获取新的补集、并集、交集,最终计算到第一个备份,完成整个超前计算。
场景2、备份创建:
所述装置还包括:
存储处理单元83,用于在存储目标数据时,将所述目标数据与备份链中的目标备份信息所对应的元数据信息进行对比,得到所述目标数据的至少部分数据作为待备份数据;其中,所述目标备份信息为所述备份链中位于最后、且无子备份信息的备份信息;
将所述待备份数据的信息作为所述目标备份的子备份信息添加在备份链中,存储所述待备份数据至数据空间中。
需要指出的是,本场景中存储处理单元83获取目标数据可以为通过获取单元81获取。
也就是说,在存储目标数据的时候,可以首先将存储目标数据与备份链中最后一个备份信息进行比对;具体的对比内容可以包括有:判断当前存储目标数据与最后一个备份信息的元数据信息相比,是否存在更新的数据;若存在,则仅保留更新的数据作为待备份数据的元数据信息。
进一步地,保存的时候,将待备份数据的信息添加到备份链中,具体来说,可以将待备份数据的信息作为备份链中最后一个备份信息,再添加目标备份信息的子备份信息,即待备份数据的信息作为目标备份信息的子备份信息进行保存;相应的,保存待备份数据的元数据信息至数据空间中。
具体来说,Ceph卷备份全部采用增量备份,减少数据传输、处理、存储;和传统备份方式不同,本实施例的备份是基于ceph后端存储深度定制的,后端存储直接提供数据增量读取接口,极大的减少备份数据量;后端存储介质可以支持S3、swift接口以及nfs等。
备份1G增量数据的情形下,新备份方案和传统备份的对比如图5所示,传统备份方式,增量备份若是对一个100G的卷进行备份,会将全部数据读取到备份软件,后端去重,提取增量数据1G存储到存储介质;而采用上述方案,则是利用ceph卷的增量读取接口,前端直接去重,只需获取1G的增量数据,将增量数据备份到备份介质中,减少了数据的传输,提升备份速率。
场景3、备份删除:
所述装置还包括:
删除处理单元84,用于确定删除备份链中的待删除备份时,判断所述待删除备份是否存在子备份信息;
若存在子备份信息,则基于所述子备份信息与所述待删除备份分别对应的元数据信息的交集以及补集,更新所述待删除备份的子备份信息的元数据信息,并删除所述待删除备份及其对应的元数据信息;
若不存在子备份信息,则直接删除所述待删除备份及其对应的元数据信息。
需要指出的是,本场景中删除处理单元84获取待删除备份信息可以为通过获取单元81获取。
其中,所述删除处理单元84将所述子备份信息与所述待删除备份分别对应的元数据信息的交集部分直接删除,将所述子备份信息与所述待删除备份分别对应的元数据信息的并集部分更新至子备份对应的元数据信息的数据区间中,得到更新后的待删除备份的子备份信息的元数据信息。
另外,为了保证备份的完整性,即增加一个记录区间,删除处理单元84将所述子备份信息与所述待删除备份分别对应的元数据信息的交集部分记录在待删除备份的元数据中,新增删除区间;也就是说,所述记录空间,可称为mix区间,用于记录当前删除的备份与子备份的交集,即待删除区间数据。
比如,获取到交集后,将所述交集添加入删除备份的元数据中。如此,能够在删除的过程中出现服务中断或者其他故障,利用记录区间,即mix区间,可以明确需要删除的数据,从而在故障恢复之后,能够通过读取mix区间确定需要删除的数据。
可见,通过采用上述方案,就能够从后往前查找待恢复备份对应的父备份信息,进而进行备份的恢复处理,如此,能够避免按照备份链的时间顺序,从前往后依次迭代恢复,所带来的大量的重复数据被多次覆盖写的问题,从而提升了备份处理的效率。
另外,上述方案还提供了创建备份的方法,能够在创建备份的时候从前端进行去重,仅确定目标数据中的一部分数据作为待备份数据,从而减少了数据的传输,提升了备份速率。
再次,本方案还提供了删除备份的方案,在删除备份的时候,不会受到存储时间的限制,能够在备份链中任意删除待删除备份,从而提升了处理效率。
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本申请实施例中的任意一种设备,并且该计算机程序使得计算机执行本申请实施例的各个方法中由网络设备、终端设备实现的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理器中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,)ROM、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种备份处理方法,所述方法包括:
获取待恢复目标备份对应的备份链;其中,所述备份链中包含有至少一个备份信息,以及每一个备份信息所对应的父备份信息和/或子备份信息;所述待恢复目标备份为所述至少一个备份信息中之一;
将所述备份链中所述待恢复目标备份的父备份信息作为第一父备份信息;
基于所述待恢复目标备份与所述第一父备份信息分别对应的元数据信息之间的补集以及并集,确定更新后的待恢复目标备份的元数据信息;
判断所述备份链中是否存在所述第一父备份信息的第二父备份信息;
若存在,则将所述第二父备份信息作为新的第一父备份信息,基于新的第一父备份信息以及所述更新后的待恢复目标备份分别对应的元数据信息之间的补集以及并集,确定更新后的待恢复目标备份的元数据信息;若不存在,则确定所述待恢复目标备份完成恢复。
2.根据权利要求1所述的方法,其中,所述方法还包括:
在存储目标数据时,将所述目标数据与备份链中的目标备份信息所对应的元数据信息进行对比,得到所述目标数据的至少部分数据作为待备份数据;其中,所述目标备份信息为所述备份链中位于最后、且无子备份信息的备份信息;
将所述待备份数据的信息作为所述目标备份的子备份信息添加在备份链中,存储所述待备份数据至数据空间中。
3.根据权利要求1或2所述的方法,其中,所述方法还包括:
确定删除备份链中的待删除备份时,判断所述待删除备份是否存在子备份信息;
若存在子备份信息,则基于所述子备份信息与所述待删除备份分别对应的元数据信息的交集以及补集,更新所述待删除备份的子备份信息的元数据信息,并删除所述待删除备份及其对应的元数据信息;
若不存在子备份信息,则直接删除所述待删除备份及其对应的元数据信息。
4.根据权利要求3所述的方法,其中,所述基于所述子备份信息与所述待删除备份分别对应的元数据信息的交集以及补集,更新所述待删除备份的子备份信息的元数据信息,包括:
将所述子备份信息与所述待删除备份分别对应的元数据信息的交集部分删除,将所述子备份信息与所述待删除备份分别对应的元数据信息的补集部分添加至子备份信息对应的元数据信息中,得到更新后的待删除备份的子备份信息的元数据信息。
5.根据权利要求3所述的方法,其中,所述方法还包括:
将所述子备份信息与所述待删除备份分别对应的元数据信息的交集部分记录在待删除备份的元数据中,并新增删除区间。
6.一种备份处理装置,所述装置包括:
获取单元,获取待恢复目标备份对应的备份链;其中,所述备份链中包含有至少一个备份信息,以及每一个备份信息所对应的父备份信息和/或子备份信息;所述待恢复目标备份为所述至少一个备份信息中之一;
恢复处理单元,将所述备份链中所述待恢复目标备份的父备份信息作为第一父备份信息;
基于所述待恢复目标备份与所述第一父备份信息分别对应的元数据信息之间的补集以及并集,确定更新后的待恢复目标备份的元数据信息;
判断所述备份链中是否存在所述第一父备份信息的第二父备份信息;
若存在,则将所述第二父备份信息作为新的第一父备份信息,基于新的第一父备份信息以及所述更新后的待恢复目标备份分别对应的元数据信息之间的补集以及并集,确定更新后的待恢复目标备份的元数据信息;若不存在,则确定所述待恢复目标备份完成恢复。
7.根据权利要求6所述的装置,其中,所述装置还包括:
存储处理单元,用于在存储目标数据时,将所述目标数据与备份链中的目标备份信息所对应的元数据信息进行对比,得到所述目标数据的至少部分数据作为待备份数据;其中,所述目标备份信息为所述备份链中位于最后、且无子备份信息的备份信息;将所述待备份数据的信息作为所述目标备份的子备份信息添加在备份链中,存储所述待备份数据至数据空间中。
8.根据权利要求6或7所述的装置,其中,所述装置还包括:
删除处理单元,用于确定删除备份链中的待删除备份时,判断所述待删除备份是否存在子备份信息;若存在子备份信息,则基于所述子备份信息与所述待删除备份分别对应的元数据信息的交集以及补集,更新所述待删除备份的子备份信息的元数据信息,并删除所述待删除备份及其对应的元数据信息;若不存在子备份信息,则直接删除所述待删除备份及其对应的元数据信息。
9.一种计算机存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现权利要求1-5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910955659.5A CN112631826B (zh) | 2019-10-09 | 2019-10-09 | 一种备份处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910955659.5A CN112631826B (zh) | 2019-10-09 | 2019-10-09 | 一种备份处理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631826A CN112631826A (zh) | 2021-04-09 |
CN112631826B true CN112631826B (zh) | 2023-04-07 |
Family
ID=75283380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910955659.5A Active CN112631826B (zh) | 2019-10-09 | 2019-10-09 | 一种备份处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631826B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535482B (zh) * | 2021-07-22 | 2024-03-19 | 华云数据控股集团有限公司 | 云备份链数据备份方法及装置、设备、可读介质 |
CN115269270B (zh) * | 2022-08-02 | 2023-06-09 | 广州鼎甲计算机科技有限公司 | 备份合并的方法、装置和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070185936A1 (en) * | 2006-02-07 | 2007-08-09 | Derk David G | Managing deletions in backup sets |
CN109597717A (zh) * | 2018-12-07 | 2019-04-09 | 北京金山云网络技术有限公司 | 一种数据备份、恢复方法、装置、电子设备及存储介质 |
CN109976942A (zh) * | 2017-12-28 | 2019-07-05 | 中移(杭州)信息技术有限公司 | 一种数据备份和恢复方法、备份服务器和源服务器 |
-
2019
- 2019-10-09 CN CN201910955659.5A patent/CN112631826B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070185936A1 (en) * | 2006-02-07 | 2007-08-09 | Derk David G | Managing deletions in backup sets |
CN109976942A (zh) * | 2017-12-28 | 2019-07-05 | 中移(杭州)信息技术有限公司 | 一种数据备份和恢复方法、备份服务器和源服务器 |
CN109597717A (zh) * | 2018-12-07 | 2019-04-09 | 北京金山云网络技术有限公司 | 一种数据备份、恢复方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112631826A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9645892B1 (en) | Recording file events in change logs while incrementally backing up file systems | |
US8370311B2 (en) | Using versioning to back up multiple versions of a stored object | |
US10204016B1 (en) | Incrementally backing up file system hard links based on change logs | |
US20040163009A1 (en) | Physical incremental backup using snapshots | |
US20070185936A1 (en) | Managing deletions in backup sets | |
EP3474143B1 (en) | Method and apparatus for incremental recovery of data | |
CN112631826B (zh) | 一种备份处理方法、装置及计算机可读存储介质 | |
US10169168B2 (en) | Metadata recovery for de-duplicated data | |
CN111125298A (zh) | 重建ntfs文件目录树的方法、设备及存储介质 | |
CN109753381B (zh) | 一种基于对象存储的持续数据保护方法 | |
CN107341072A (zh) | 一种数据备份方法及装置 | |
CN109558270B (zh) | 数据备份的方法和装置、数据还原的方法和装置 | |
JP3985430B2 (ja) | データベース管理装置及び方法 | |
CN107145501B (zh) | 文件更新方法、文件复制方法以及相应的系统 | |
WO2017067397A1 (zh) | 一种数据恢复方法和装置 | |
US11093348B2 (en) | Method, device and computer program product for recovering metadata | |
CN112231288A (zh) | 日志存储方法和装置、介质 | |
CN108089942B (zh) | 一种数据备份、恢复方法及装置 | |
CN110729014A (zh) | Ssd存储擦除计数表备份的方法、装置、计算机设备及存储介质 | |
CN109669815A (zh) | 一种通过lun远程映射实现备份数据恢复的方法及系统 | |
CN108984343B (zh) | 一种基于内容分析的虚拟机备份及存储管理方法 | |
CN105573862B (zh) | 一种恢复文件系统的方法和设备 | |
CN114625697A (zh) | 文件系统恢复方法、装置、电子设备及存储介质 | |
CN112596959A (zh) | 分布式存储集群数据备份方法及装置 | |
CN108614838B (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 |