CN115357384A - 重复数据删除存储系统的空间回收方法和装置 - Google Patents
重复数据删除存储系统的空间回收方法和装置 Download PDFInfo
- Publication number
- CN115357384A CN115357384A CN202210988673.7A CN202210988673A CN115357384A CN 115357384 A CN115357384 A CN 115357384A CN 202210988673 A CN202210988673 A CN 202210988673A CN 115357384 A CN115357384 A CN 115357384A
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- bitmap
- mapping
- mapping position
- storage system
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013507 mapping Methods 0.000 claims abstract description 318
- 238000004590 computer program Methods 0.000 claims abstract description 40
- 238000004064 recycling Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种重复数据删除存储系统的空间回收方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:获取各个第一指纹在位图上的第一映射位置;其中,各个第一指纹为各个备份文件所引用的各个数据块的指纹,备份文件所引用的数据块为当前存储系统中的数据块;获取各个第二指纹在位图上的第二映射位置;其中,各个第二指纹为当前存储系统中的各个数据块的指纹;将第一映射位置与第二映射位置进行比对,得到映射位置比对结果;根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。采用本方法,能够提升重复数据删除存储系统的空间回收的空间利用率。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种重复数据删除存储系统的空间回收方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术对各行各业的渗透,人们的生活与工作已经无法离开计算机。随之而来的是存储在计算机中的大量冗余数据,这些数据占用的大量的存储空间,为了节约存储空间,降低数据存储成本,可以进行空间回收。
传统技术中,进行空间回收时,一般是定期执行“垃圾回收”,即每次执行垃圾回收时先遍历所有备份文件,根据备份文件生成一个“指纹引用表”,该表包含了所有被引用到的数据块的指纹,再通过查询不在该表里的指纹所对应的数据块,并对其完成空间回收。
然而,目前的传统方法,需要额外生成一个“指纹引用表”,该表的生成导致了额外的内存空间开销,因此如何提升重复数据删除存储系统的空间回收技术的内存空间利用率是十分重要的课题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升内存空间利用率的重复数据删除存储系统的空间回收方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种重复数据删除存储系统的空间回收方法。所述方法包括:
获取各个第一指纹在位图上的第一映射位置;其中,所述各个第一指纹为各个备份文件所引用的各个数据块的指纹,所述备份文件所引用的数据块为当前存储系统中的数据块,所述位图的大小根据所述当前存储系统中的数据块的指纹数量创建得到;
获取各个第二指纹在所述位图上的第二映射位置;其中,所述各个第二指纹为所述当前存储系统中的各个数据块的指纹;
将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果;所述映射位置比对结果用于确认所述当前存储系统中的数据块是否被所述备份文件引用;
根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收。
在其中一个实施例中,所述获取各个第一指纹在位图上的第一映射位置,包括:
对所述各个第一指纹进行映射,得到所述各个第一指纹在所述位图上的位标识;
将所述各个第一指纹在所述位图上的位标识对应的位,确定为所述各个第一指纹在所述位图上的第一映射位置。
在其中一个实施例中,所述获取各个第二指纹在所述位图上的第二映射位置,包括:
对所述各个第二指纹进行映射,得到所述各个第二指纹在所述位图上的位标识;
将所述各个第二指纹在所述位图上的位标识对应的位,确定为所述各个第二指纹在所述位图上的第二映射位置。
在其中一个实施例中,所述位图的各个位均为第一数值;
在将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果之前,还包括:
将所述位图中与所述第一映射位置对应的位,由所述第一数值更新为第二数值,得到与所述第一映射位置对应的目标位图;
所述将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果,包括:
确定所述目标位图中与各个所述第二指纹的第二映射位置对应的位,作为查询结果;
根据所述查询结果,得到所述映射位置比对结果。
在其中一个实施例中,所述根据所述查询结果,得到所述映射位置比对结果,包括:
针对各个所述第二指纹的第二映射位置的查询结果,在所述目标位图中与各个所述第二指纹的第二映射位置对应的位中至少有一个位的数值为所述第一数值的情况下,将所述第二指纹对应的数据块,确认为未被所述备份文件引用的数据块。
在其中一个实施例中,所述根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收,包括:
将与所述未被所述备份文件引用的数据块对应的第二指纹添加至指纹回收列表中;所述指纹回收列表用于记录待空间回收的数据块对应的第二指纹;
从所述当前存储系统中,回收与所述指纹回收列表中的第二指纹对应的数据块所占用的空间。
第二方面,本申请还提供了一种重复数据删除存储系统的空间回收装置。
所述装置包括:
第一映射模块,用于获取各个第一指纹在位图上的第一映射位置;其中,所述各个第一指纹为各个备份文件所引用的各个数据块的指纹,所述备份文件所引用的数据块为当前存储系统中的数据块,所述位图的大小根据所述当前存储系统中的数据块的指纹数量创建得到;
第二映射模块,用于获取各个第二指纹在所述位图上的第二映射位置;其中,所述各个第二指纹为所述当前存储系统中的各个数据块的指纹;
位置比对模块,用于将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果;所述映射位置比对结果用于确认所述当前存储系统中的数据块是否被所述备份文件引用;
空间回收模块,用于根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取各个第一指纹在位图上的第一映射位置;其中,所述各个第一指纹为各个备份文件所引用的各个数据块的指纹,所述备份文件所引用的数据块为当前存储系统中的数据块,所述位图的大小根据所述当前存储系统中的数据块的指纹数量创建得到;
获取各个第二指纹在所述位图上的第二映射位置;其中,所述各个第二指纹为所述当前存储系统中的各个数据块的指纹;
将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果;所述映射位置比对结果用于确认所述当前存储系统中的数据块是否被所述备份文件引用;
根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取各个第一指纹在位图上的第一映射位置;其中,所述各个第一指纹为各个备份文件所引用的各个数据块的指纹,所述备份文件所引用的数据块为当前存储系统中的数据块,所述位图的大小根据所述当前存储系统中的数据块的指纹数量创建得到;
获取各个第二指纹在所述位图上的第二映射位置;其中,所述各个第二指纹为所述当前存储系统中的各个数据块的指纹;
将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果;所述映射位置比对结果用于确认所述当前存储系统中的数据块是否被所述备份文件引用;
根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取各个第一指纹在位图上的第一映射位置;其中,所述各个第一指纹为各个备份文件所引用的各个数据块的指纹,所述备份文件所引用的数据块为当前存储系统中的数据块,所述位图的大小根据所述当前存储系统中的数据块的指纹数量创建得到;
获取各个第二指纹在所述位图上的第二映射位置;其中,所述各个第二指纹为所述当前存储系统中的各个数据块的指纹;
将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果;所述映射位置比对结果用于确认所述当前存储系统中的数据块是否被所述备份文件引用;
根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收。
上述重复数据删除存储系统的空间回收方法、装置、计算机设备、存储介质和计算机程序产品,通过获取各个第一指纹在位图上的第一映射位置和各个第二指纹在位图上的第二映射位置;其中,各个第一指纹为各个备份文件所引用的各个数据块的指纹,备份文件所引用的数据块为当前存储系统中的数据块,位图的大小根据当前存储系统中的数据块的指纹数量创建得到,各个第二指纹为当前存储系统中的数据块的指纹;然后将第一映射位置与第二映射位置进行比对,得到映射位置比对结果;映射位置比对结果用于确认当前存储系统中的数据块是否被备份文件引用;最后根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。这样,通过对比当前存储系统中的数据块的指纹在位图上的映射情况与备份文件所引用的数据块的指纹在位图上的映射情况,判断当前存储系统中的数据块是否被备份文件引用,从而对未被引用的数据块所占用的空间进行回收处理;由于位图的大小由当前存储系统中的数据块的指纹数量所决定,所占用的内存空间比根据备份文件生成的指纹引用表小一个数量级,从而提高了重复数据删除存储系统的回收空间的空间利用率。
附图说明
图1为一个实施例中重复数据删除存储系统的空间回收方法的流程示意图;
图2为一个实施例中位图的示意图;
图3为一个实施例中获取各个第一指纹在位图上的第一映射位置的步骤的流程示意图;
图4为另一个实施例中重复数据删除存储系统的空间回收方法的流程示意图;
图5为一个实施例中重复数据删除存储系统的空间回收装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1是根据一个实施例示出的一种重复数据删除存储系统的空间回收方法的流程图,如图1所示,该空间回收方法用于服务器中。本实施例中,该方法包括以下步骤:
步骤S101,获取各个第一指纹在位图上的第一映射位置。
其中,各个第一指纹为各个备份文件所引用的各个数据块的指纹,备份文件所引用的数据块为当前存储系统中的数据块,位图的大小根据当前存储系统中的数据块的指纹数量创建得到。
其中,当前存储系统为服务器进行空间回收的重复数据删除存储系统;数据块通过对文件进行固定大小或可变大小的分块得到;数据块的指纹即数据块内容的哈希值,通过指纹可以唯一确定对应的数据块。
其中,位图为一种数据结构。位图的示意图如图2所示;位图中的b0、b1、b2、b3……bn为位图比特位的位标识,位标识可以理解为位图中与各比特位唯一对应的标记,与数组中元素的下标类似。
具体地,服务器在空间回收任务开始时,会生成一个随机数,并以该随机数为映射参数,通过一个或多个映射函数对第一指纹进行映射,将得到的映射结果作为第一指纹在位图的一个或多个位上的第一映射位置。
需要说明的是,位图可以是一个或多个位图,多个位图的实现方式可视为一个位图的实现方式的延伸,只是将一个位图拆为多个。每一次空间回收任务开始时生成的随机数都不同。通过多次实验可知,采用三个或四个映射函数可以获得理想映射效率与理想空间回收效率。
需要说明的是,映射函数用于实现将任意指纹映射到位图中的某个位标识,可以是任意实现类似“散列”效果的函数。
步骤S102,获取各个第二指纹在位图上的第二映射位置。
其中,各个第二指纹为当前存储系统中的各个数据块的指纹,第二指纹存放在指纹库中,指纹库用于记录当前存储系统的所有数据块的指纹。
具体地,服务器采用与步骤S101相同的随机数与映射函数,对当前存储系统中的数据块的指纹进行映射,将得到的映射结果作为第二指纹在位图的一个或多个位上的第二映射位置。
步骤S103,将第一映射位置与第二映射位置进行比对,得到映射位置比对结果。
其中,映射位置比对结果用于确认当前存储系统中的数据块是否被备份文件引用。
具体地,服务器将比较某个第二指纹的第二映射位置与所有第一指纹的第一映射位置,得到映射位置比对结果。映射位置比对结果将当前存储系统中的数据块分为两类:未被备份文件引用的数据块与可能被备份文件引用的数据块。其中,可能被备份文件引用的数据块包括以下两种情况:数据块确实被备份文件引用;数据块未被备份文件引用,但由于位图映射技术存在假阳性的概率,因此被误判为已被备份文件引用。位图映射技术的假阳性指不同的数据通过同样的方式进行映射,得到的映射结果可能会存在交集。
需要说明的是,在指纹数不变的情况下,假阳性概率会随着位图空间的增加而下降,可通过选择合适的位图大小将假阳性概率降低到可接受范围内。
步骤S104,根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。
具体地,对于未被备份文件引用的数据块,服务器执行以下操作:将该数据块的第二指纹添加至指纹回收列表中;根据指纹回收列表,依次在当前存储系统中查询未被备份文件引用的数据块,并回收未被备份文件引用的数据块所占用的空间。
上述重复数据删除存储系统的空间回收方法中,服务器首先获取各个第一指纹在位图上的第一映射位置和各个第二指纹在位图上的第二映射位置;然后将第一映射位置与第二映射位置进行比对,得到映射位置比对结果;最后根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。这样,通过对比当前存储系统中的数据块的指纹在位图上的映射情况与备份文件所引用的数据块的指纹在位图上的映射情况,服务器可以判断当前存储系统中的数据块是否被备份文件引用,从而对未被引用的数据块所占用的空间进行回收处理;由于位图的大小由当前存储系统中的数据块的指纹数量所决定,所占用的内存空间比根据备份文件生成的指纹引用表小一个数量级,从而提高了重复数据删除存储系统的空间回收的空间利用率;同时该实现方式只通过计算过程简单的函数进行映射、以及高效的位值比较实现对数据块是否被引用的判断相对生成及查找“指纹引用表”的方式大幅提高了时间效率。
在一个实施例中,如图3所示,上述步骤S101,获取各个第一指纹在位图上的第一映射位置,具体包括如下步骤:
步骤S301,对各个第一指纹进行映射,得到各个第一指纹在位图上的位标识。
步骤S302,将各个第一指纹在位图上的位标识对应的位,确定为各个第一指纹在位图上的第一映射位置。
具体地,服务器在空间回收任务开始时,会生成一个随机数,并以该随机数为映射参数,通过一个或多个映射函数对第一指纹进行映射,得到的映射结果即位图的位标识;然后服务器根据位标识,在位图上查询对应的位,并将对应的位确定为该第一指纹在位图上的第一映射位置。
举例说明,对于第一指纹P1,映射过程如下:
b1=f1(P1,R);
b2=f2(P1,R);
b3=f3(P1,R);
其中,f1、f2、f3为三个不同的映射函数,R为随机数,b1、b2、b3为位图上的位标识;即通过上述映射可以得到第一指纹P1的在位图上的第一映射位置为{b1,b2,b3}。
同理,可以得到其余第一指纹的第一映射位置。
本实施例中,通过对第一指纹的映射,能够将备份文件引用的数据块的表示形式从指纹表示转换为位图表示,从而使得数据块的表现形式更加直观,便于后续步骤的比较与判断。同时,由于位图的大小由当前存储系统中的数据块的指纹数量所决定,所占用的内存空间比根据备份文件生成的指纹引用表小一个数量级,从而提高了空间回收的空间利用率。
在一个实施例中,上述步骤S102,获取各个第二指纹在位图上的第二映射位置,具体包括如下内容:对各个第二指纹进行映射,得到各个第二指纹在位图上的位标识;将各个第二指纹在位图上的位标识对应的位,确定为各个第二指纹在位图上的第二映射位置。
具体地,服务器通过与步骤S101相同的一个或多个映射函数与随机数对第二指纹进行映射,得到的映射结果即位图的位标识;然后服务器根据位标识,在位图上查询对应的位,并将对应的位确定为该第二指纹在位图上的第二映射位置。
举例说明,对于第二指纹Q1,映射过程如下:
b10=f1(Q1,R);
b11=f2(Q2,R);
b12=f3(Q3,R);
其中,f1、f2、f3为与步骤S101相同的三个映射函数,R为与步骤S101相同的随机数,b10、b11、b12为位图上的位标识;即通过上述映射可以得到第二指纹Q1在位图上的第二映射位置为{b10,b11,b12}。
本实施例中,通过对第二指纹的映射,能够将当前存储系统的数据块的表现形式从指纹表示转换为位图表示,从而使得数据块的表现形式更加直观,便于后续步骤的比较与判断。同时,由于位图的大小由当前存储系统中的数据块的指纹数量所决定,所占用的内存空间比根据备份文件生成的指纹引用表小一个数量级,从而提高了重复数据删除存储系统的空间回收的空间利用率。此外,该实现方式只通过计算过程简单的函数进行映射、以及高效的位值比较实现对数据块的判断,相对生成及查找“指纹引用表”的方式大幅提高了时间效率。
此外,每次空间回收任务开始时服务器都会重新生成一个随机数,使得对于某个当前存储系统中的数据块所占用的空间,即使由于假阳性的缺陷,在某次回收时被漏掉,但在下次回收时其对应的指纹映射结果不会完全重复上一次的映射结果,因此未被引用的数据块所占用的空间在经过足够次数的空间回收任务后必然会被回收,从而提高了重复数据删除存储系统的空间回收的准确率。
在一个实施例中,上述位图的各个位均为第一数值;在上述步骤103,将第一映射位置与第二映射位置进行比对,得到映射位置比对结果之前,还具体包括如下内容:将位图中与第一映射位置对应的位,由第一数值更新为第二数值,得到与第一映射位置对应的目标位图。
上述步骤S103,将第一映射位置与第二映射位置进行比对,得到映射位置比对结果,具体内容如下包括:确定目标位图中与各个第二指纹的第二映射位置对应的位,作为查询结果;根据查询结果,得到映射位置比对结果。
其中,第一数值与第二数值用于区分位图各个比特位的逻辑状态,例如用二进制的0表示指纹的映射位置不包含该比特位,用二进制的1表示指纹的映射位置包含该比特位。
具体地,服务器在生成位图时会将位图的所有比特位设为第一数值,以表示位图的初始状态;服务器在得到所有第一指纹的第一映射位置后,会将位图上与第一映射位置对应的位从第一数值更新为第二数值,得到一个表示所有第一指纹的目标位图;接着,服务器根据某个第二指纹的第二映射位置,在目标位图中确定对应的位,作为查询结果;最后,服务器根据查询结果,对比第二指纹对应的第二映射位置与目标位图,得到映射位置比对结果。
举例说明,将第一数值设置为0,第二数值设置为1,服务器在空间回收任务开始时创建了一个大小为20个比特位的位图,创建的位图可以表现为如下形式:
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
假设第一指纹P1、P2以及P3,在位图上的第一映射位置分别为{b1,b2,b3}、{b4,b5,b6}以及{b7,b8,b9};第二指纹Q1、Q2以及Q3,在位图上的第二映射位置分别为{b10,b11,b12}、{b1,b4,b14}以及{b2,b5,b8}。因此得到的目标位图可以表现为如下形式:
{1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0}
服务器分别在目标位图中查询与第二指纹Q1、Q2以及Q3对应的第二映射位置对应的位,得到映射位置比对结果。
本实施例中,通过位图上第一数值与第二数值的设置,一方面,在比对第一映射位置与第二映射位置时只需要比对相对应的位上的逻辑情况,简化了第一映射位置与第二映射位置的比对过程,提升了重复数据删除存储系统的空间回收的效率;另一方面位图的使用使得空间回收任务所占用的内存空间更小,提升了重复数据删除存储系统的空间回收的空间利用率。
在一个实施例中,上述步骤S103中,根据查询结果,得到映射位置比对结果,具体包括以下内容:针对各个第二指纹的第二映射位置的查询结果,在目标位图中与各个第二指纹的第二映射位置对应的位中至少有一个位的数值为所述第一数值的情况下,将第二指纹对应的数据块,确认为未被备份文件引用的数据块。
具体地,服务器在目标位图中查询与某一第二指纹对应的第二映射位置并进行比对,若在目标位图中至少有一个比特位的数值为第一数值,则判断该第二指纹对应的数据块未被备份文件所引用;若在目标位图中三个比特位的数值均为第二数值,则判断该第二指纹对应的数据块可能已被备份文件引用。
举例说明,对于第二指纹Q1,其第二映射位置为{b10,b11,b12},服务器通过比对可知,在目标位图上对应的三个比特位的数值均为0,因此判断第二指纹Q1对应的数据块未被备份文件引用。对于第二指纹Q2,其第二映射位置为{b1,b4,b14},服务器通过比对可知,在目标位图上对应的位中有一个比特位的数值为0。因此判断第二指纹Q2对应的数据块未被备份文件引用。对于第二指纹Q3,其第二映射位置为{b2,b5,b8},服务器通过比对可知,在目标位图上对应的三个比特位的数值均为1,因此判断第二指纹Q3对应的数据块可能已被备份文件引用。
本实施例中,通过位图上第一数值与第二数值的设置,一方面,在比对第一映射位置与第二映射位置时只需要比对相对应的位上的逻辑情况,简化了第一映射位置与第二映射位置的比对与判断过程,提升了重复数据删除存储系统的空间回收的效率;另一方面位图的使用使得空间回收任务所占用的内存空间更小,提升了重复数据删除存储系统的空间回收的空间利用率。
在一个实施例中,上述步骤S104,根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收,具体包括以下内容:将与未被备份文件引用的数据块对应的第二指纹添加至指纹回收列表中;从当前存储系统中,回收与指纹回收列表中的第二指纹对应的数据块所占用的空间。
其中,指纹回收列表用于记录待空间回收的数据块对应的第二指纹,第二指纹在指纹回收列表中按照地址顺序排列。
具体地,对于未被备份文件引用的数据块,服务器执行以下操作:将该数据块的第二指纹添加至指纹回收列表中;将该第二指纹从指纹库中删除;根据指纹回收列表,依次在当前存储系统中查询未被备份文件引用的数据块,并回收未被备份文件引用的数据块所占用的空间。
举例说明,对于未被备份文件引用的数据块的第二指纹Q1与Q2,服务器执行以下操作:将第二指纹Q1与Q2添加至指纹回收列表中;从指纹库中删除第二指纹Q1与Q2;从当前存储系统中,回收与指纹Q1与Q2对应的数据块所占用的空间。对于可能被备份文件引用的数据块的第二指纹Q3,服务器不进行任何操作,将其留至下次空间回收任务时进行判断与处理。
本实施例中,通过指纹回收列表对待空间回收的数据块的第二指纹进行记录与排序,使得服务器在空间回收过程中,只需要对当前存储系统进行一次遍历即可按照地址顺序对待空间回收的数据块进行回收,简化了服务器在空间回收过程中的查询过程,提高了重复数据删除存储系统的空间回收的时间效率。
在一个实施例中,如图4所示,提供了另一种空间回收方法,以该方法应用于服务器为例进行说明,包括以下步骤:
步骤S401,对各个第一指纹进行映射,得到各个第一指纹在位图上的位标识,其中位图的各个位均为第一数值。
步骤S402,将各个第一指纹在位图上的位标识对应的位,确定为各个第一指纹在位图上的第一映射位置。
步骤S403,对各个第二指纹进行映射,得到各个第二指纹在位图上的位标识。
步骤S404,将各个第二指纹在位图上的位标识对应的位,确定为各个第二指纹在位图上的第二映射位置。
步骤S405,将位图中与第一映射位置对应的位,由第一数值更新为第二数值。
步骤S406,确定目标位图中与各个第二指纹的第二映射位置对应的位,作为查询结果。
步骤S407,根据查询结果,得到映射位置比对结果;映射位置比对结果用于确认所述当前存储系统中的数据块是否被备份文件引用;
步骤S408,根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。
本实施例中,服务器首先获取各个第一指纹在位图上的第一映射位置和各个第二指纹在位图上的第二映射位置;然后将第一映射位置与第二映射位置进行比对,得到映射位置比对结果;最后根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。这样,通过对比当前存储系统中的数据块的指纹在位图上的映射情况与备份文件所引用的数据块的指纹在位图上的映射情况,服务器可以判断当前存储系统中的数据块是否被备份文件引用,从而对未被引用的数据块所占用的空间进行回收处理。通过对指纹的映射、第一数值与第二数值的设置,能够将数据块的表示方法从指纹表示转换为位图表示,从而使得数据块的表现形式更加直观,使得在比对第一映射位置与第二映射位置时只需要比对相对应的位上的逻辑情况,便于后续步骤的比较与判断;同时,由于位图的大小由当前存储系统中的数据块的指纹数量所决定,所占用的内存空间比根据备份文件生成的指纹引用表小一个数量级,从而提高了重复数据删除存储系统的空间回收的空间利用率。此外,使用指纹回收列表对待空间回收的数据块的指纹进行记录与排序,能够使服务器只需对当前存储系统进行一次遍历即可完成空间回收,额外提高了重复数据删除存储系统的空间回收的时间效率。特殊地,每次空间回收任务开始时都会重新生成随机数,因此,在某次空间回收任务中出现假阳性的数据块所占用的空间在足够次数的空间回收任务后必然会被回收。
为了更清晰阐明本申请实施例提供的重复数据删除存储系统的空间回收方法,以下以一个具体的实施例对该重复数据删除存储系统的空间回收方法进行具体说明。在一个实施例中,本申请还提供了一种基于无引用计数的重复数据删除存储系统的空间回收方法,具体包括以下步骤:
步骤1:服务器在空间回收任务开始时,生成一个随机数R,并根据当前存储系统的数据块的指纹数量创建一个或多个位图;其中,随机数R将作为本次回收所使用的位图映射函数的参数,位图的各个位均为0,使用多个位图的实现方式可视为使用一个位图的实现方式的延伸,只是将一个位图拆为多个。
步骤2:服务器遍历所有备份文件,对每个备份文件引用的数据块执行以下操作:通过一个或多个函数及步骤1的随机数R,将指纹映射到位图上一个或多个位,将对应的位置为1;其中,最常用的实现方式是映射到位图上三个或四个位。
步骤3:服务器遍历指纹库,指纹库记录当前存储系统所有数据块的指纹,对其中每个指纹执行以下操作:
(1)通过与步骤2相同的映射函数及步骤1的随机数R。服务器将指纹映射到位图上一个或多个位;其中,只对指纹库的指纹进行映射计算,不更新位图;
(2)服务器对指纹库的指纹的映射结果与备份文件引用的数据块的指纹的映射结果进行比对,如果对应的位中至少有一个在位图中为0,说明该指纹未被任何备份文件引用,服务器可将该指纹加入回收列表,并从指纹库中删除;
(3)如果对应的各个位都为1,该指纹可能已被备份文件引用,服务器不作任何处理。由于位图映射技术存在假阳性的缺陷,因此即使每个位在位图中都为1仍无法保证该指纹一定已被引用,将其留到下次回收再作判断。
步骤4:服务器遍历指纹回收列表,在当前存储系统中回收指纹回收列表中的指纹所对应数据块的存储空间,完成一次空间回收任务。
需要说明的是,由于位图映射技术存在假阳性的概率,执行一次空间回收任务并未能将所有未被引用的数据块所占用的空间全部回收。但上述的位图映射过程比传统的位图映射技术新增了一个随机数R作为参数。由于服务器每次执行任务时都会重新生成此随机数,因此同一个指纹在每次任务时将被映射到与前一次任务不同的一个或多个位,这也就意味着某个指纹即使由于假阳性在某次任务时被漏掉,但在下次任务时不会完全重复前一次的映射结果。假设位图映射的假阳性率为x(x<1,创建的位图足够大即可使x远小于1),则经过N次空间回收任务后某个指纹每次都被漏掉的概率仅为xN。换言之,设假阳性率为5%,那么某个指纹在5次回收后都由于假阳性被漏掉的概率仅为0.00003%(0.055)。因此,未被引用的数据块所占用的空间在经过足够次数的空间回收任务后必然会被回收。
本实施例中,服务器通过对比备份文件引用的数据块的指纹在位图上的映射结果和当前存储系统中的数据块的指纹在位图上的映射结果,确认当前存储系统中的数据块是否被备份文件引用,从而完成对未被备份文件引用的数据块所占用的空间的回收处理,实现空间回收。通过对指纹的映射、二进制数值0与1的设置,能够将数据块的表示方法从指纹表示转换为位图表示,从而使得数据块的表现形式更加直观,在比对第一映射位置与第二映射位置时只需要比对相对应的位上的逻辑情况,便于后续步骤的比较与判断;同时,由于位图的大小由当前存储系统中的数据块的指纹数量所决定,所占用的内存空间比根据备份文件生成的指纹引用表小一个数量级,从而提高了重复数据删除存储系统的空间回收的空间利用率。此外,每次空间回收任务开始时都会重新生成随机数,因此,在某次空间回收任务中出现假阳性的数据块所占用的空间在足够次数的空间回收后必然会被回收。特殊地,使用指纹回收列表对待空间回收的数据块的指纹进行记录与排序,能够在只需对当前存储系统进行一次遍历的情况下完成空间回收,额外提高了重复数据删除存储系统的空间回收的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的重复数据删除存储系统的空间回收方法的重复数据删除存储系统的空间回收装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个重复数据删除存储系统的空间回收装置实施例中的具体限定可以参见上文中对于重复数据删除存储系统的空间回收方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种重复数据删除存储系统的空间回收装置,包括:第一映射模块501、第二映射模块502、位置比对模块503和空间回收模块504,其中:
第一映射模块501,用于获取各个第一指纹在位图上的第一映射位置;其中,各个第一指纹为各个备份文件所引用的各个数据块的指纹,备份文件所引用的数据块为当前存储系统中的数据块,位图的大小根据当前存储系统中的数据块的指纹数量创建得到。
第二映射模块502,用于获取各个第二指纹在位图上的第二映射位置;其中,各个第二指纹为当前存储系统中的各个数据块的指纹。
位置比对模块503,用于将第一映射位置与第二映射位置进行比对,得到映射位置比对结果;映射位置比对结果用于确认当前存储系统中的数据块是否被备份文件引用。
空间回收模块504,用于根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。
在一个实施例中,第一映射模块501,还用于对各个第一指纹进行映射,得到各个第一指纹在位图上的位标识;将各个第一指纹在位图上的位标识对应的位,确定为各个第一指纹在位图上的第一映射位置。
在一个实施例中,第二映射模块502,还用于对各个第二指纹进行映射,得到各个第二指纹在位图上的位标识;将各个第二指纹在位图上的位标识对应的位,确定为各个第二指纹在位图上的第二映射位置。
在一个实施例中,位图的各个位均为第一数值;
重复数据删除存储系统的空间回收装置还包括位图更新模块,用于将位图中与第一映射位置对应的位,由第一数值更新为第二数值,得到与第一映射位置对应的目标位图;
位置比对模块403,还用于确定目标位图中与各个第二指纹的第二映射位置对应的位,作为查询结果;根据查询结果,得到映射位置比对结果。
在一个实施例中,位置比对模块503,还用于针对各个第二指纹的第二映射位置的查询结果,在目标位图中与各个第二指纹的第二映射位置对应的位中至少有一个位的数值为第一数值的情况下,将第二指纹对应的数据块,确认为未被备份文件引用的数据块。
在一个实施例中,空间回收模块504,还用于将与未被备份文件引用的数据块对应的第二指纹添加至指纹回收列表中;指纹回收列表用于记录待空间回收的数据块对应的第二指纹;从当前存储系统中,回收与指纹回收列表中的第二指纹对应的数据块所占用的空间。
上述重复数据删除存储系统的空间回收装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种重复数据删除存储系统的空间回收方法。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取各个第一指纹在位图上的第一映射位置;其中,各个第一指纹为各个备份文件所引用的各个数据块的指纹,备份文件所引用的数据块为当前存储系统中的数据块,位图的大小根据当前存储系统中的数据块的指纹数量创建得到;
获取各个第二指纹在位图上的第二映射位置;其中,各个第二指纹为当前存储系统中的各个数据块的指纹;
将第一映射位置与第二映射位置进行比对,得到映射位置比对结果;映射位置比对结果用于确认当前存储系统中的数据块是否被备份文件引用;
根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对各个第一指纹进行映射,得到各个第一指纹在位图上的位标识;将各个第一指纹在位图上的位标识对应的位,确定为各个第一指纹在位图上的第一映射位置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对各个第二指纹进行映射,得到各个第二指纹在位图上的位标识;将各个第二指纹在位图上的位标识对应的位,确定为各个第二指纹在位图上的第二映射位置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将位图中与第一映射位置对应的位,由第一数值更新为第二数值,得到与第一映射位置对应的目标位图;确定目标位图中与各个第二指纹的第二映射位置对应的位,作为查询结果;根据查询结果,得到映射位置比对结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:针对各个第二指纹的第二映射位置的查询结果,在目标位图中与各个第二指纹的第二映射位置对应的位中至少有一个位的数值为第一数值的情况下,将第二指纹对应的数据块,确认为未被备份文件引用的数据块。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将与未被备份文件引用的数据块对应的第二指纹添加至指纹回收列表中;指纹回收列表用于记录待空间回收的数据块对应的第二指纹;从当前存储系统中,回收与指纹回收列表中的第二指纹对应的数据块所占用的空间。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取各个第一指纹在位图上的第一映射位置;其中,各个第一指纹为各个备份文件所引用的各个数据块的指纹,备份文件所引用的数据块为当前存储系统中的数据块,位图的大小根据当前存储系统中的数据块的指纹数量创建得到;
获取各个第二指纹在位图上的第二映射位置;其中,各个第二指纹为当前存储系统中的各个数据块的指纹;
将第一映射位置与第二映射位置进行比对,得到映射位置比对结果;映射位置比对结果用于确认当前存储系统中的数据块是否被备份文件引用;
根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对各个第一指纹进行映射,得到各个第一指纹在位图上的位标识;将各个第一指纹在位图上的位标识对应的位,确定为各个第一指纹在位图上的第一映射位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对各个第二指纹进行映射,得到各个第二指纹在位图上的位标识;将各个第二指纹在位图上的位标识对应的位,确定为各个第二指纹在位图上的第二映射位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将位图中与第一映射位置对应的位,由第一数值更新为第二数值,得到与第一映射位置对应的目标位图;确定目标位图中与各个第二指纹的第二映射位置对应的位,作为查询结果;根据查询结果,得到映射位置比对结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:针对各个第二指纹的第二映射位置的查询结果,在目标位图中与各个第二指纹的第二映射位置对应的位中至少有一个位的数值为第一数值的情况下,将第二指纹对应的数据块,确认为未被备份文件引用的数据块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将与未被备份文件引用的数据块对应的第二指纹添加至指纹回收列表中;指纹回收列表用于记录待空间回收的数据块对应的第二指纹;从当前存储系统中,回收与指纹回收列表中的第二指纹对应的数据块所占用的空间。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取各个第一指纹在位图上的第一映射位置;其中,各个第一指纹为各个备份文件所引用的各个数据块的指纹,备份文件所引用的数据块为当前存储系统中的数据块,位图的大小根据当前存储系统中的数据块的指纹数量创建得到;
获取各个第二指纹在位图上的第二映射位置;其中,各个第二指纹为当前存储系统中的各个数据块的指纹;
将第一映射位置与第二映射位置进行比对,得到映射位置比对结果;映射位置比对结果用于确认当前存储系统中的数据块是否被备份文件引用;
根据映射位置比对结果,对当前存储系统中未被备份文件引用的数据块所占用的空间进行回收。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对各个第一指纹进行映射,得到各个第一指纹在位图上的位标识;将各个第一指纹在位图上的位标识对应的位,确定为各个第一指纹在位图上的第一映射位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对各个第二指纹进行映射,得到各个第二指纹在位图上的位标识;将各个第二指纹在位图上的位标识对应的位,确定为各个第二指纹在位图上的第二映射位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将位图中与第一映射位置对应的位,由第一数值更新为第二数值,得到与第一映射位置对应的目标位图;确定目标位图中与各个第二指纹的第二映射位置对应的位,作为查询结果;根据查询结果,得到映射位置比对结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:针对各个第二指纹的第二映射位置的查询结果,在目标位图中与各个第二指纹的第二映射位置对应的位中至少有一个位的数值为第一数值的情况下,将第二指纹对应的数据块,确认为未被备份文件引用的数据块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将与未被备份文件引用的数据块对应的第二指纹添加至指纹回收列表中;指纹回收列表用于记录待空间回收的数据块对应的第二指纹;从当前存储系统中,回收与指纹回收列表中的第二指纹对应的数据块所占用的空间。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种重复数据删除存储系统的空间回收方法,其特征在于,所述方法包括:
获取各个第一指纹在位图上的第一映射位置;其中,所述各个第一指纹为各个备份文件所引用的各个数据块的指纹,所述备份文件所引用的数据块为当前存储系统中的数据块,所述位图的大小根据所述当前存储系统中的数据块的指纹数量创建得到;
获取各个第二指纹在所述位图上的第二映射位置;其中,所述各个第二指纹为所述当前存储系统中的各个数据块的指纹;
将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果;所述映射位置比对结果用于确认所述当前存储系统中的数据块是否被所述备份文件引用;
根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收。
2.根据权利要求1所述的方法,其特征在于,所述获取各个第一指纹在位图上的第一映射位置,包括:
对所述各个第一指纹进行映射,得到所述各个第一指纹在所述位图上的位标识;
将所述各个第一指纹在所述位图上的位标识对应的位,确定为各个所述第一指纹在所述位图上的第一映射位置。
3.根据权利要求1所述的方法,其特征在于,所述获取各个第二指纹在所述位图上的第二映射位置,包括:
对所述各个第二指纹进行映射,得到所述各个第二指纹在所述位图上的位标识;
将所述各个第二指纹在所述位图上的位标识对应的位,确定为所述各个第二指纹在所述位图上的第二映射位置。
4.根据权利要求1所述的方法,其特征在于,所述位图的各个位均为第一数值;
在将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果之前,还包括:
将所述位图中与所述第一映射位置对应的位,由所述第一数值更新为第二数值,得到与所述第一映射位置对应的目标位图;
所述将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果,包括:
确定所述目标位图中与各个所述第二指纹的第二映射位置对应的位,作为查询结果;
根据所述查询结果,得到所述映射位置比对结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述查询结果,得到所述映射位置比对结果,包括:
针对各个所述第二指纹的第二映射位置的查询结果,在所述目标位图中与各个所述第二指纹的第二映射位置对应的位中至少有一个位的数值为所述第一数值的情况下,将所述第二指纹对应的数据块,确认为未被所述备份文件引用的数据块。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收,包括:
将与所述未被所述备份文件引用的数据块对应的第二指纹添加至指纹回收列表中;所述指纹回收列表用于记录待空间回收的数据块对应的第二指纹;
从所述当前存储系统中,回收与所述指纹回收列表中的第二指纹对应的数据块所占用的空间。
7.一种重复数据删除存储系统的空间回收装置,其特征在于,所述装置包括:
第一映射模块,用于获取各个第一指纹在位图上的第一映射位置;其中,所述各个第一指纹为各个备份文件所引用的各个数据块的指纹,所述备份文件所引用的数据块为当前存储系统中的数据块,所述位图的大小根据所述当前存储系统中的数据块的指纹数量创建得到;
第二映射模块,用于获取各个第二指纹在所述位图上的第二映射位置;其中,所述各个第二指纹为所述当前存储系统中的各个数据块的指纹;
位置比对模块,用于将所述第一映射位置与所述第二映射位置进行比对,得到映射位置比对结果;所述映射位置比对结果用于确认所述当前存储系统中的数据块是否被所述备份文件引用;
空间回收模块,用于根据所述映射位置比对结果,对所述当前存储系统中未被所述备份文件引用的数据块所占用的空间进行回收。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210988673.7A CN115357384B (zh) | 2022-08-17 | 2022-08-17 | 重复数据删除存储系统的空间回收方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210988673.7A CN115357384B (zh) | 2022-08-17 | 2022-08-17 | 重复数据删除存储系统的空间回收方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115357384A true CN115357384A (zh) | 2022-11-18 |
CN115357384B CN115357384B (zh) | 2024-02-02 |
Family
ID=84003135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210988673.7A Active CN115357384B (zh) | 2022-08-17 | 2022-08-17 | 重复数据删除存储系统的空间回收方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357384B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567218A (zh) * | 2010-12-17 | 2012-07-11 | 微软公司 | 用于数据去重复块存储的垃圾收集和热点释放 |
US10353867B1 (en) * | 2016-06-27 | 2019-07-16 | EMC IP Holding Company LLC | Method and system for verifying files for garbage collection |
CN112711683A (zh) * | 2021-02-25 | 2021-04-27 | 浙江口碑网络技术有限公司 | 数据比对方法、装置及计算机设备 |
CN113238856A (zh) * | 2021-03-09 | 2021-08-10 | 西安奥卡云数据科技有限公司 | 一种基于rdma的内存管理方法及装置 |
CN113282243A (zh) * | 2021-06-09 | 2021-08-20 | 杭州海康威视系统技术有限公司 | 存储对象文件的方法及装置 |
-
2022
- 2022-08-17 CN CN202210988673.7A patent/CN115357384B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567218A (zh) * | 2010-12-17 | 2012-07-11 | 微软公司 | 用于数据去重复块存储的垃圾收集和热点释放 |
US10353867B1 (en) * | 2016-06-27 | 2019-07-16 | EMC IP Holding Company LLC | Method and system for verifying files for garbage collection |
CN112711683A (zh) * | 2021-02-25 | 2021-04-27 | 浙江口碑网络技术有限公司 | 数据比对方法、装置及计算机设备 |
CN113238856A (zh) * | 2021-03-09 | 2021-08-10 | 西安奥卡云数据科技有限公司 | 一种基于rdma的内存管理方法及装置 |
CN113282243A (zh) * | 2021-06-09 | 2021-08-20 | 杭州海康威视系统技术有限公司 | 存储对象文件的方法及装置 |
Non-Patent Citations (3)
Title |
---|
DILIP NIJAGAL SIMHA: "A scalable deduplication and garbage collection engine for incremental backup" * |
亚历克斯•彼得罗夫: "布隆过滤器", pages 132 - 133 * |
姜涛;刘晓洁;: "基于重复数据删除的远程备份系统", no. 12 * |
Also Published As
Publication number | Publication date |
---|---|
CN115357384B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4117265B2 (ja) | ファイルシステムのバージョンを管理する方法およびシステム | |
US9594674B1 (en) | Method and system for garbage collection of data storage systems using live segment records | |
CN110018989B (zh) | 一种快照比对的方法和装置 | |
US11226934B2 (en) | Storage system garbage collection and defragmentation | |
CN110399333B (zh) | 删除快照的方法、设备和计算机程序产品 | |
US20230394010A1 (en) | File system metadata deduplication | |
CN115292094B (zh) | 数据恢复处理方法、装置、设备、存储介质和程序产品 | |
CN116578746A (zh) | 对象去重方法及装置 | |
CN114090637A (zh) | 数据存取方法、装置、设备及存储介质 | |
CN113253932B (zh) | 一种分布式存储系统的读写控制方法和系统 | |
CN108984343B (zh) | 一种基于内容分析的虚拟机备份及存储管理方法 | |
CN117743299A (zh) | 数据库迁移方法、装置、设备、介质和产品 | |
CN113312309B (zh) | 快照链的管理方法、装置和存储介质 | |
KR102354343B1 (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN115357384B (zh) | 重复数据删除存储系统的空间回收方法和装置 | |
CN115509808B (zh) | 数据备份方法、装置、计算机设备和存储介质 | |
CN113821476B (zh) | 数据处理方法及装置 | |
CN111581157B (zh) | 一种对象存储平台以及对象操作方法、装置和服务器 | |
CN114064674A (zh) | 数据同步方法、装置、计算机设备、存储介质和产品 | |
CN114064982A (zh) | 基于快照相似性的大规模时变图存储方法及系统 | |
CN111881064A (zh) | 一种全闪存储系统中访问请求的处理方法、装置及设备 | |
CN116257531B (zh) | 一种数据库空间回收方法 | |
CN114020707B (zh) | 存储空间回收方法、存储介质及程序产品 | |
CN116775506B (zh) | 内存回收方法、装置、设备和介质 | |
CN113342751B (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 |