本技术实施例涉及数据保护领域,具体而言,涉及一种数据处理方法、装置、设备及存储介质。
背景技术:
1、在备份与恢复系统中,对存在备份库中的数据,需要定期的扫描和整理,清理过期或者重复的数据,即垃圾回收。在备份流程和垃圾回收流程并发处理时,对部分的元数据和数据,会在某个时间点同时处理该部分数据,数据处理发生冲突,导致数据误删,造成数据无法恢复,备份与恢复系统不可用。
技术实现思路
1、本技术实施例在于提供一种数据处理方法、装置、设备及存储介质,旨在解决并发执行备份、恢复和垃圾回收时,会发生数据误删,造成数据无法恢复的问题。
2、本技术实施例第一方面提供一种数据处理方法,包括:
3、在备份流程中,对每个待备份的数据块进行处理,得到每个待备份的数据块的数据指纹;
4、将每个待备份的数据块的数据指纹与数据指纹库的各个数据指纹比较;
5、在一个待备份的数据块的数据指纹与所述数据指纹库的各个数据指纹均不相同的情况下,将该待备份的数据块的数据指纹转为可用类数据指纹并存储在所述数据指纹库,将该待备份的数据块存储在pack层;
6、在当前轮垃圾回收流程中,从可用类数据指纹中过滤出独属于过期快照的所有可用类数据指纹,并将过滤出的所有可用类数据指纹转为可遗忘类数据指纹,并且记录在所述当前轮垃圾回收流程的期间,发生的所有备份流程;
7、在下一轮垃圾回收流程中,等待所记录的所有备份流程都已结束,排查所记录的任一备份流程是否使用过所述可遗忘类数据指纹,在一个可遗忘类数据指纹被所记录的一个或多个备份流程使用过的情况下,将该可遗忘类数据指纹转为可用类数据指纹;
8、在恢复流程中,使用所述可用类数据指纹和所述可遗忘类数据指纹,恢复出数据的快照。
9、在一种可选的实施方式中,所述方法还包括:
10、在一个待备份的数据块的数据指纹与所述数据指纹库的一个数据指纹相同的情况下,确定该待备份的数据块为已经备份过的数据块。
11、在一种可选的实施方式中,所述方法还包括:
12、在一个可遗忘类数据指纹未被所记录的所有备份流程使用过的情况下,将该可遗忘类数据指纹转为可删除类数据指纹;
13、将可删除类数据指纹从所述数据指纹库中删除,并将可删除类数据指纹对应的数据块在pack层中标记为可删除。
14、在一种可选的实施方式中,所述将可删除类数据指纹从所述数据指纹库中删除,包括:
15、将可删除类数据指纹,移动到本地回收站中;
16、在延迟第一时长后,排查可删除类数据指纹是否被在第一时长内发生的任一备份流程使用过;
17、在可删除类数据指纹未被在第一时长内发生的任一备份流程使用过的情况下,将可删除类数据指纹从本地回收站中删除。
18、在一种可选的实施方式中,所述将可删除类数据指纹对应的数据块在pack层中标记为可删除,包括:
19、将可删除类数据指纹对应的数据块记录到本地回收站中;
20、在多次确定该可删除类数据指纹对应的数据块未被在第一时长内发生的任一备份流程使用过的情况下,将该可删除类数据指纹对应的数据块在pack文件中标记为可删除,所述pack层包括多个pack文件;
21、在所述pack文件中所有的数据块都不被任一备份流程所使用的情况下,将所述pack文件从本地回收站中删除;
22、在该可删除类数据指纹对应的数据块被在第一时长内发生的一个或多个备份流程使用过的情况下,撤销该可删除类数据指纹对应的数据块在本地回收站中的记录,并将该可删除类数据指纹转为可用类数据指纹。
23、在一种可选的实施方式中,所述方法还包括:
24、为属于同一区域的多个用户备份库创建垃圾备份库;
25、在对每个用户备份库中的本地回收站进行垃圾回收之前,将该用户备份库中的本地回收站中的垃圾数据复制到所述垃圾备份库中;
26、将该用户备份库中的本地回收站中的垃圾数据删除;
27、对所述垃圾备份库中的垃圾数据,延迟第二时长后删除,所述第二时长大于所述第一时长。
28、在一种可选的实施方式中,所述方法还包括:
29、在所述第二时长到期前,在一个用户备份库中的本地回收站发生异常的情况下,利用所述垃圾备份库中的垃圾数据,对该用户备份库中的本地回收站中的垃圾数据进行恢复。
30、本技术实施例第二方面提供一种数据处理装置,包括:
31、第一处理模块,用于在备份流程中,对每个待备份的数据块进行处理,得到每个待备份的数据块的数据指纹;
32、对比模块,用于将每个待备份的数据块的数据指纹与所述数据指纹库的各个数据指纹比较;
33、第二处理模块,用于在一个待备份的数据块的数据指纹与数据指纹库的各个数据指纹均不相同的情况下,将该待备份的数据块的数据指纹转为可用类数据指纹并存储在所述数据指纹库,将该待备份的数据块存储在pack层;
34、第三处理模块,用于在当前轮垃圾回收流程中,从可用类数据指纹中过滤出独属于过期快照的所有可用类数据指纹,并将过滤出的所有可用类数据指纹转为可遗忘类数据指纹,并且记录在所述当前轮垃圾回收流程的期间,发生的所有备份流程;
35、第四处理模块,用于在下一轮垃圾回收流程中,等待所记录的所有备份流程都已结束,排查所记录的任一备份流程是否使用过所述可遗忘类数据指纹,在一个可遗忘类数据指纹被所记录的一个或多个备份流程使用过的情况下,将该可遗忘类数据指纹转为可用类数据指纹;
36、恢复模块,用于使用所述可用类数据指纹和所述可遗忘类数据指纹,恢复出数据的快照。
37、本技术实施例第三方面提供了一种电子设备,包括:处理器、存储器以和存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本技术实施例第一方面的数据处理方法。
38、本技术实施例第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本技术实施例第一方面的数据处理方法。
39、在本实施例中,通过在备份流程中,对每个待备份的数据块进行处理,得到每个待备份的数据块的数据指纹;将每个待备份的数据块的数据指纹与数据指纹库的各个数据指纹比较;在一个待备份的数据块的数据指纹与数据指纹库的各个数据指纹均不相同的情况下,将该待备份的数据块的数据指纹转为可用类数据指纹并存储在数据指纹库,将该待备份的数据块存储在pack层;在当前轮垃圾回收流程中,从可用类数据指纹中过滤出独属于过期快照的所有可用类数据指纹,并将过滤出的所有可用类数据指纹转为可遗忘类数据指纹,并且记录在当前轮垃圾回收流程的期间,发生的所有备份流程;在下一轮垃圾回收流程中,等待所记录的所有备份流程都已结束,排查所记录的任一备份流程是否使用过可遗忘类数据指纹,在一个可遗忘类数据指纹被所记录的一个或多个备份流程使用过的情况下,将该可遗忘类数据指纹转为可用类数据指纹;在恢复流程中,使用可用类数据指纹和可遗忘类数据指纹,恢复出数据的快照。
40、具体有益效果在于:通过将数据指纹进行分类(可用类数据指纹、可遗忘类数据指纹),延迟删除数据,避免正在备份和恢复的任务,和垃圾回收相互处理相同的元数据和数据的冲突,实现了无锁的状态下,备份恢复任务和垃圾回收的并发执行,提高了备份和恢复任务的稳定性。