本发明涉及数据迁移回收,特别是涉及一种数据迁移回收方法、装置、电子设备及存储介质。
背景技术:
1、重复数据删除(重删)是一种节约存储空间的技术,通常情况下,在数据存储池内是有很多重复的数据,重删则是将这些重复的数据找出并处理的技术。当前的重删方法主要分为两种:在线重删和后台重删。数据重复数据删除技术改提高了存储效率,降低了存储成本并加快了数据保护的过程。
2、垃圾回收是对block中的有效数据进行迁移,无效数据进行删除,释放可用空间的方式。将block内的有效数据读起并写入到池内新的位置,并将相应的映射关系更新到新的位置。这样就能将多个block内的有效数据合并到了一个新的block内,之后这多个block就可以被回收掉,并可以被重新利用,保存用户新写的数据。
3、相关技术在对进行了后台重删处理的block内的数据进行迁移回收时,通过对主机逻辑地址与存储物理地址的映射关系进行修改,如果在数据迁移回收或映射关系的修改过程中出现问题,容易导致数据不一致。所谓数据不一致是指写入存储系统的数据与从存储系统读取出来的数据不一致。
4、因此,本发明提出一种数据迁移回收方法以解决上述方案造成的数据不一致的问题。
技术实现思路
1、本发明提供一种数据迁移回收方法、装置、电子设备及存储介质,以解决上述技术方案造成的数据不一致的问题。
2、在本发明实施例第一方面提供一种数据迁移回收方法,所述方法包括:
3、确定待处理的数据块block,并获取所述block包含的反向元数据,所述block为经过后台重删处理的block;
4、对所述block包含的反向元数据进行解析处理,得到所述反向元数据包含的pban、lban和hashvaluen,所述pban至少包括非重删pban,其中,n为正整数;
5、基于所述非重删pban对应的lban,对所述非重删pban进行lp元数据查询,得到lp元数据查询结果,所述lp元数据查询结果用于表征所述非重删pban对应的数据是否有效;
6、当所述lp元数据查询结果为重删pban’的情况下,确定所述非重删pban对应的数据为有效数据,并将所述非重删pban对应的数据确定为第一份重删数据,对所述非重删pban对应的数据进行重删迁移处理。
7、在本发明可选地一实施例中,所述方法还包括:
8、基于非重删pban和第一份重删数据pban的计算逻辑,确定所述非重删pban对应的重删pban’;
9、在对所述非重删pban对应的数据进行重删迁移处理时,将所述非重删pban更改为所述重删pban’,使得所述非重删pban对应的数据为有效数据。
10、在本发明可选地一实施例中,所述方法还包括:
11、当所述lp元数据查询结果为非重删pban的情况下,确定所述非重删pban对应的数据为有效数据,对所述非重删pban对应的数据进行非重删迁移处理。
12、在本发明可选地一实施例中,所述方法还包括:
13、当所述lp元数据查询结果为重删pban但不是pban’的情况下,确定所述非重删pban对应的数据为无效数据,对所述非重删pban对应的数据进行垃圾回收处理。
14、在本发明可选地一实施例中,所述方法还包括:
15、当所述lp元数据查询结果为非重删pban或重删pban’以外的情况下,确定所述非重删pban对应的数据为无效数据,对所述非重删pban对应的数据进行垃圾回收处理。
16、在本发明可选地一实施例中,所述方法还包括:
17、当所述lp元数据查询结果为not_found的情况下,确定所述非重删pban对应的数据为无效数据,对所述非重删pban对应的数据进行垃圾回收处理。
18、在本发明可选地一实施例中,所述方法还包括:
19、获取所述重删pban对应的lban,基于所述重删pban对应的lban对所述重删pban进行pl元数据查询,得到pl元数据查询结果,所述pl元数据查询结果用于表征所述重删pban对应的数据是否有效;
20、当所述pl元数据查询结果对应的值为大于0的情况下,确定所述重删pban对应的数据为有效数据,对所述重删pban对应的数据进行重删迁移处理,其中,n为正整数;
21、当所述pl元数据查询结果对应的值为0的情况下,确定所述重删pban对应的数据为无效数据,对所述重删pban对应的数据进行垃圾回收处理。
22、在本发明实施例第二方面提供一种数据迁移回收装置,所述装置包括:
23、确定模块,用于确定待处理的数据块block,并获取所述block包含的反向元数据,所述block为经过后台重删处理的block;
24、解析模块,用于对所述block包含的反向元数据进行解析处理,得到所述反向元数据包含的pban、lban和hashvaluen,所述pban至少包括非重删pban,其中,n为正整数;
25、lp元数据查询模块,用于基于所述非重删pban对应的lban,对所述非重删pban进行lp元数据查询,得到lp元数据查询结果,所述lp元数据查询结果用于表征所述非重删pban对应的数据是否有效;
26、第一重删迁移模块,用于当所述lp元数据查询结果为重删pban’的情况下,确定所述非重删pban对应的数据为有效数据,并将所述非重删pban对应的数据确定为第一份重删数据,对所述非重删pban对应的数据进行重删迁移处理。
27、在本发明可选地一实施例中,所述重删迁移模块还包括:
28、重删pban’确定子模块,用于基于非重删pban和第一份重删数据pban的计算逻辑,确定所述非重删pban对应的重删pban’;
29、非重删pban更改子模块,用于在对所述非重删pban对应的数据进行重删迁移处理时,将所述非重删pban更改为所述重删pban’,使得所述非重删pban对应的数据为有效数据。
30、在本发明可选地一实施例中,所述数据迁移回收装置还包括:
31、非重删迁移模块,用于当所述lp元数据查询结果为非重删pban的情况下,确定所述非重删pban对应的数据为有效数据,对所述非重删pban对应的数据进行非重删迁移处理。
32、在本发明可选地一实施例中,所述数据迁移回收装置还包括:
33、第一垃圾回收模块,用于当所述lp元数据查询结果为重删pban但不是pban’的情况下,确定所述非重删pban对应的数据为无效数据,对所述非重删pban对应的数据进行垃圾回收处理。
34、在本发明可选地一实施例中,所述数据迁移回收装置还包括:
35、第二垃圾回收模块,用于当所述lp元数据查询结果为非重删pban或重删pban’以外的情况下,确定所述非重删pban对应的数据为无效数据,对所述非重删pban对应的数据进行垃圾回收处理。
36、在本发明可选地一实施例中,所述数据迁移回收装置还包括:
37、第三垃圾回收模块,用于当所述lp元数据查询结果为not_found的情况下,确定所述非重删pban对应的数据为无效数据,对所述非重删pban对应的数据进行垃圾回收处理。
38、在本发明可选地一实施例中,所述pban还包括重删pban,所述数据迁移回收装置还包括:
39、pl元数据查询模块,用于获取所述重删pban对应的lban,基于所述重删pban对应的lban对所述重删pban进行pl元数据查询,得到pl元数据查询结果,所述pl元数据查询结果用于表征所述重删pban对应的数据是否有效,其中,n为正整数;
40、第二重删迁移模块,用于当所述pl元数据查询结果对应的值为大于0的情况下,确定所述重删pban对应的数据为有效数据,对所述重删pban对应的数据进行重删迁移处理;
41、第四垃圾回收模块,用于当所述pl元数据查询结果对应的值为0的情况下,确定所述重删pban对应的数据为无效数据,对所述重删pban对应的数据进行垃圾回收处理。
42、在本发明实施例第三方面提供一种电子设备,包括:存储器,用于存储一个或多个程序;处理器;当所述一个或多个程序被所述处理器执行时,实现如上述第一方面中任一项所述的数据迁移回收方法。
43、在本发明实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项所述的数据迁移回收方法。
44、本发明包括以下优点:本发明实施例提供一种数据迁移回收方法、装置、电子设备和存储介质,通过确定待处理的数据块block,并获取所述block包含的反向元数据,所述block为经过后台重删处理的block;对所述block包含的反向元数据进行解析处理,得到所述反向元数据包含的pban、lban和hashvaluen,所述pban至少包括非重删pban,其中,n为正整数;基于所述非重删pban对应的lban,对所述非重删pban进行lp元数据查询,得到lp元数据查询结果,所述lp元数据查询结果用于表征所述非重删pban对应的数据是否有效;当所述lp元数据查询结果为重删pban’的情况下,确定所述非重删pban对应的数据为有效数据,并将所述非重删pban对应的数据确定为第一份重删数据,对所述非重删pban对应的数据进行重删迁移处理。本发明实施例提出的数据迁移回收方法,通过增加对lp元数据查询结果的判断流程来区分数据是不是第一份重删数据,继而对不同的分支执行不同的迁移和回收流程,避免有效数据被回收掉而导致的数据不一致问题。