CN105701024A - 一种存储设备及其垃圾数据回收的方法 - Google Patents
一种存储设备及其垃圾数据回收的方法 Download PDFInfo
- Publication number
- CN105701024A CN105701024A CN201511028090.6A CN201511028090A CN105701024A CN 105701024 A CN105701024 A CN 105701024A CN 201511028090 A CN201511028090 A CN 201511028090A CN 105701024 A CN105701024 A CN 105701024A
- Authority
- CN
- China
- Prior art keywords
- data block
- memory area
- valid data
- territory
- target storage
- 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
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种存储设备及其垃圾数据回收的方法,其特征在于,方法包括,根据存储区域中非重复数据块中有效数据块的数量以及有效数据块的被引用次数确定所述存储区域满足垃圾回收条件。其中,有效数据块为引用次数不为0的非重复数据块。删除存储区域中引用次数为0的非重复数据块。将存储区域中所述有效数据块复制到目标存储区域。本发明实施例根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数确定存储区域满足垃圾回收条件。对满足条件的存储区域进行垃圾数据回收,从而减少了垃圾数据回收带来的写放大。
Description
技术领域
本发明涉及存储***领域,尤其涉及一种存储设备及其垃圾数据回收的方法。
背景技术
存储设备在进行重复数据删除后,会将非重复的数据块存储到特定的存储区域,例如容器(container)中,并且建立数据块的逻辑地址到存储该非重复块的物理地址的映射关系。在后续的重复数据删除操作中,存储设备确认重复的数据块时,则不再存储重复的数据块,将该重复数据块的逻辑地址指向该非重复数据块的物理地址。同时会建立非重复数据块所在的物理地址与逻辑地址的映射,用于表示该非重复数据块被引用的次数。一个存储区域中的非重复数据块的物理地址没有与逻辑地址的映射关系时,表示该非重复数据块不再被任何逻辑地址引用时,引用次数变为0,则就意味着该非重复数据块需要被删除。通常存储设备会以一个存储区域为粒度,将引用次数为0的数据块删除,同时将该存储区域中引用次数不为0的数据块(也称为有效数据块)复制到新的存储区域中存储,并且建立逻辑地址到有效数据块的物理地址的映射关系及有效数据块的物理地址与引用该数据块的逻辑地址的映射关系,并将原存储区域中的数据块删除,这一过程称为垃圾回收,可见,垃圾回收会带来额外的读写开销。其中,有效数据块的物理地址与引用该数据块的逻辑地址的映射称为反向映射,用于记录该映射的表称为反向映射表。
现有的垃圾回收方式中,如果存储区域中的有效数据块占该存储区域中存储的数据块的比例小于一定值(80%),就对该存储区域进行垃圾回收。但是在将该存储区域中的有效数据复制到新的存储区域、建立有效数据块的逻辑地址与有效数据块的物理地址的映射关系及记录有效数据块的物理地址与引用该数据块的逻辑地址的映射关系会增加额外的读写开销。
发明内容
本发明实施例提供了一种存储设备及其垃圾数据回收的方法,根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数,决定是否对存储区域进行垃圾数据回收,从而减小垃圾数据回收带来的写放大。
一方面,本发明实施例提供了一种存储设备垃圾数据回收的方法,根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数确定所述存储区域满足垃圾回收条件。对满足垃圾数据回收条件的存储区域,删除所述存储区域中引用次数为0的非重复数据块,并将存储区域中有效数据块复制到目标存储区域中。综合考虑存储区域中有效数据块的数量和有效数据块的被引用次数,减小垃圾数据回收带来的写放大。
在一个可能的设计中,根据存储区域中有效数据块的数量确定有效数据块比率Vr。有效数据块比率Vr为有效数据块的数量与所述非重复数据块的数量的比值。计算存储区域的X*Vr+Y*Rc是否满足垃圾回收条件。其中,X和Y为常数。从而根据有效数据块占所有非重复数据块的比例作为确定该存储区域是否满足的一个因素,对有效数据比率和引用次数配置一个常量,通过调节常量确定有效数据比率和引用次数对存储区域是否满足垃圾回收条件的影响。
在一个可能的设计中,目标存储区域中的每一个存储区域设置有数据块引用次数区间。将存储区域中有效数据块复制到目标存储区域时,需要根据有效数据块的被引用次数和目标存储区域中每一个存储区域的数据块引用次数区间进行对比。将有效数据块复制到目标存储区域中与有效数据块的引用次数相对应的存储区域。从而再对目标存储区域进行垃圾数据回收时,各个存储区域具有相似的引用次数,从而减小对目标存储区域在垃圾回收时的写放大。
在一个可能的设计中,有效数据块的被引用次数由存储设备根据有效数据块的物理地址与逻辑地址的映射关系确定。从而确定每个存储区域中的每个数据块所被引用的次数。
另一方面,本发明实施例提供了一种存储设备,所述设备包括:计算单元和处理单元。计算单元用于根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数Rc确定所述存储区域满足垃圾回收条件。其中,所述有效数据块为引用次数不为0的非重复数据块。处理单元,用于删除所述存储区域中引用次数为0的非重复数据块以及用于将所述存储区域中所述有效数据块复制到目标存储区域。综合考虑存储区域中有效数据块的数量和有效数据块的被引用次数,减小垃圾数据回收带来的写放大。
在一个可能的设计中,处理单元根据存储区域中有效数据块的数量确定有效数据块比率Vr。有效数据块比率Vr为有效数据块的数量与所述非重复数据块的数量的比值。计算单元采用X*Vr+Y*Rc计算存储区域是否满足垃圾回收条件。其中,X和Y为常数。从而根据有效数据块占所有非重复数据块的比例作为确定该存储区域是否满足的一个因素,对有效数据比率和引用次数配置一个常量,通过调节常量确定有效数据比率和引用次数对存储区域是否满足垃圾回收条件的影响。
在一个可能的设计中,目标存储区域中的每一个存储区域设置有数据块引用次数区间。处理单元在将存储区域中有效数据块复制到目标存储区域时,需要根据有效数据块的被引用次数和目标存储区域中每一个存储区域的数据块引用次数区间进行对比。将有效数据块复制到目标存储区域中与有效数据块的引用次数相对应的存储区域。从而再对模板存储区域进行垃圾数据回收时,各个存储区域具有相似的引用次数,从而减小对目标存储区域在垃圾回收时的写放大。
在一个可能的设计中,处理单元所采用的有效数据块的被引用次数由存储设备根据有效数据块的物理地址与逻辑地址的映射关系确定。从而确定每个存储区域中的每个数据块所被引用的次数。
本发明提出一种存储设备及其垃圾数据的回收方法,根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数确定所述存储区域满足垃圾回收条件。对满足条件的存储区域进行垃圾数据回收,从而减少了垃圾回收带来的元数据修改,减小了写放大。
附图说明
图1为本发明实施例提供的一种存储设备;
图2为本发明实施例提供的一种存储设备中保存的映射表;
图3为本发明实施例提供的一种存储设备中保存的反向映射表;
图4为本发明实施例提供的一种存储设备中保存的指纹表;
图5为本发明实施例提供的一种存储设备;
图6为本发明实施例提供的一种存储设备中保存的映射表;
图7为本发明实施例提供的一种存储设备垃圾数据回收的方法流程图;
图8为本发明实施例提供的一种存储设备。
具体实施方式
下面,通过附图和具体实施例对本发明的技术方案做进一步详细的描述。
本发明实施例提供一种存储设备及其垃圾数据回收的方法。通过统计存储区域中非重复数据块中有效数据块的比率Vr以及所述有效数据块的被引用次数Rc。确定存储区域是否满足垃圾回收条件。对满足垃圾数据回收条件的存储区域中包括的引用次数为0的数据块进行垃圾数据回收。
图1为本发明实施例提供的一种存储设备。如图1所示,存储设备与主机相连,接收主机的相关请求。存储设备包括持久化存储介质和存储控制器。
持久化存储介质可以是一个或多个,持久化存储介质用于存储存储设备接收的数据以及存控制器的操作指令。对于持久化存储介质中存储的指令可以分为多类,例如,将指令分为重删模块、卷管理模块和垃圾回收模块。上述对持久化存储介质中存储的指令进行分类可以是多样的,该例子不用于对本发明的限定。
持久化存储介质可以是直接连接的多个磁盘或固态硬盘(SSD),也可以是由存储单元组成的存储阵列等其它形式组成的存储设备。
存储控制器用于对主机的请求进行处理,根据主机的请求将数据写入持久化存储介质中,或根据设备的需要在持久化存储介质中选择垃圾数据回收的区域,对选定的垃圾数据回收区域进行垃圾数据回收。
存储控制器包括处理器和存储器。处理器用于对存储设备接收的指令进行处理。存储器包括用于缓存处理器调用的操作指令。处理器通过执行存储器中缓存的指令,从而实现相应的功能。存储器中操作指令包括重删模块、卷管理模块以及垃圾回收模块。
卷管理模块包括用于映射表和反向映射表的创建。例如,图2为本发明实施例提供的一种存储设备中保存的映射表。如图2所示,记录了逻辑地址到物理地址的映射。其中,逻辑地址“A00000001”映射到的物理地址为“03000000”。映射表用于根据逻辑地址(LBA),确定该逻辑地址所对应的数据在持久化存储介质中的物理地址(PBA)。
图3为本发明实施例提供的一种存储设备中保存的反向映射表。反向映射表记录对物理地址的引用,即物理地址到逻辑地址的映射。一个物理地址在反向映射表中可能有多个记录。例如,图3的反向映射表记录了物理地址到逻辑地址的映射。其中,物理地址“03000000”对应了逻辑地址“A00000001”、“A00000021”。
当持久化存储介质存储确定需要存储的数据块为非重复数据块并存入后,卷管理模块将根据该非重复数据块在持久化存储介质中的物理地址,在映射表中添加一条新的映射,即该非重复数据块的逻辑地址到该非重复数据块在持久化存储介质中的物理地址的映射。例如,非重复数据块的逻辑地址为“A00002811”该数据块存储到的物理地址为“03000421”,则需将上述逻辑地址和物理地址写入映射表中,如图2所示。在映射表添加完成后,卷管理模块通过映射表建立相应的反向映射表。根据映射表将反向映射关系添加到反向映射表中,添加的反向映射表中的反向映射关系为物理地址到逻辑地址的映射。
当持久化存储介质确定需要存入的数据块为重复数据块后,需要同时修改映射表和反向映射表。处理器通过卷管理模块在图2所示的映射表空余部位添加一条新的映射关系。当映射表修改完成后,在反向映射表中添加一个反向映射关系。例如,映射表中包括非重复数据块的逻辑地址为“A00000001”,该非重复数据块存储的物理地址为“03000000”,当重复数据块的逻辑地址为“A00000021”,映射到的物理地址为“03000000”时,则需要将重复数据块的逻辑地址添加到映射表中,如图2所示。在映射表修改完成后,还需要将反向映射表由:物理地址“03000000”对应了逻辑地址“A00000001”,修改为:物理地址“03000000”对应了逻辑地址“A00000001”“A00000021”,如图3所示。
重删模块用于创建指纹表,指纹表记录了指纹对应的非重复数据块在持久化存储介质上的物理地址。指纹用于数据块的标识。指纹具有唯一性,两个内容完全相同的数据块的指纹完全相同。重删模块对该非重复数据块建立指纹,将非重复数据块存储至持久化存储介质上的物理地址,并将该指纹以及该指纹对应的非重复数据块在持续化存储介质上的物理地址添加到指纹表中。若通过指纹对比,发现指纹表中存在与需要存储的数据块的指纹相同的指纹,则在映射表中加入新的逻辑地址到物理地址的映射关系,在反向映射表中添加指纹表中指纹对应的非重复数据块的物理地址到该重复数据块的逻辑地址的映射。
若通过指纹对比,确定指纹表中不存在与需要存储的数据块相同的指纹,则将该数据块存储到持久化存储介质的特定存储区域。并且为该数据块建立映射表和反向映射表
图4为本发明实施例提供的一种存储设备中保存的指纹表。如图4所示,指纹表中包括了指纹与物理地址的对应关系,如指纹“000325489”对应的物理地址为“03000000”等。当写入的数据块的指纹与指纹表中的某个指纹相同时,则不再对该写入的数据块进行存储。通过指纹表获取该指纹的物理地址,并在卷管理模块的映射表中,添加新的映射。在反向映射表中该指纹对应的物理地址后添加该物理地址对应的逻辑地址。当写入的指纹与上述指纹中的任意一个指纹都不同时,将该数据块发送到持久化存储介质的特定的存储区域中。卷管理模块为该数据块建立映射表和反向映射表。
垃圾回收模块用于垃圾数据回收,通过统计持久化存储介质中的各个存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数Rc,确定是否对各个存储区域进行垃圾数据回收。
在一个更具体的例子中,根据所述存储区域中所述有效数据块的数量确定所述有效数据块比率Vr。其中有效数据块比率Vr为所述有效数据块的数量与所述非重复数据块的数量的比值。
对于任意一个存储区域是否满足垃圾数据回收条件的计算,在本发明实施例中,所采用的计算公式可以为:
待回收区域=Vr*X+Rc*Y
在本发明的实施例中,还可以采用的计算公式为:
待回收区域=Rc*Vr
对一个存储区域,当计算结果满足垃圾回收条件时,对该存储区域中包括的数据块的引用次数为0的非重复数据块进行垃圾数据回收。
在上述计算公式中,X、Y为常数,它们的值可以根据实际的运行效果进行确定,也可以将它们设定为固定值,具体根据实际使用情况确定。Vr用于表示存储区域中所述有效数据块比率Vr,是某个存储区域中有效数据(即有被引用的数据)大小之和占该存储区域内非重复数据块的比率。Rc用于表示存储区域内有效数据块的被引用次数。本发明实施例中,引用次数是指反向映射表中一个非重复数据块的物理地址与逻辑地址的映射数量,当一个非重复数据块没有与逻辑地址建立映射时,表明该非重复数据块被引用的数量为0,反向映射表中一个非重复数据块的物理地址与逻辑地址的映射数量不为0时,表明该非重复的数据块为有效数据。
在一个例子中,有效数据块比率也可以是所述存储区域内有效数据块的大小之和占非重复数据的大小之和的比值。
上述公式只是对本发明实施例可以采用的计算公式进行的举例,而不能用于对本发明可以采用的计算方式的限定。只要是采用存储区域中非重复数据块中有效数据块的数量以及存储区域中有效数据块的被引用次数等进行计算,根据计算结果确定存储区域是否满足垃圾数据回收的条件都在本发明实施例保护的范围内。
在本发明的实施中,存储区域内有效数据块被引用次数可以为存储区域内各个数据块的引用次数之和,也可以是最近一段时间内该存储区域的数据块被引用的次数之和。一段时间内该存储区域的数据块被引用次数之和也可以等同于该数据块的指纹在该段时间内被查找的次数。
在一个例子中,存储区域中包括10个非重复数据块,其中2个数据块没有被引用,3个数据块被引用1次,3个数据块被引用3次,2个数据块被引用5次。从而确定8个非重复数据块为有效数据块,2个非重复数据块为无效数据块。
在该例子中,所采用的计算公式为:
待回收区域=X*Vr+Y*Rc
以及,存储区域内各个数据块被引用的次数之和作为区域重删热度。
于是:
待回收区域=(8/10*X)+[(1+1+1+3+3+3+5+5)*Y]
若该例子中常数X为3、Y为0.1。则该待回去区域的计算结果为:4.6。
若该例子中,对存储区域进行垃圾数据回收需要满足的条件为小于等于6,则该例子中,该存储区域达到垃圾数据回收条件,对该存储区域中包括的数据块的引用次数为0的非重复数据块进行垃圾数据回收。
图1所示的存储设备与存储控制器设置为一个整体,通过总线协议与存储控制器连接。在本发明的实施例中,还可以是其它类型的结构。例如,图5为本发明实施例提供的一种存储设备,如图5所示,与图1所示的一种存储设备不同在于,图5所示的持久化存储介质设通过TCP/IP协议连接到存储控制器的以太网接口。
图6为本发明实施例提供的一种存储设备中保存的映射表。如图6所示的映射表中,第一存储区域包含“03000000”和“03000001”两个物理地址,第二存储区域包含“03000201”和“03000251”两个物理地址,第三存储区域包含“03000421”和“03000464”两个物理地址,第四存储区域包含“0300578”一个物理地址,第五存储区域包含“03000887”一个物理地址。每个物理地址中存储一个非重复数据块,该非重复数据块可以是有效数据块即引用次数大于0的数据块,也有可能是无效数据块即引用次数等于0的数据块。分别对第一存储区域至第五存储区域计算,确定是否对各个存储区域进行垃圾数据回收。
结合图6所示的映射表,存储在第一存储区域中包含的物理地址“03000000”中存储的非重复数据块被有效引用2次,第一存储区域中包含的物理地址“03000001”中存储的非重复数据块被有效引用一次。第二存储区域中包含的物理地址“03000201”中存储的非重复数据块被有效引用3次,第二存储区域中包含的物理地址“03000251”中存储的非重复数据块被有效引用0次。第三存储区域中包含的物理地址“03000421”中存储的非重复数据块被有效引用1次,第三存储区域中包含的物理地址“03000464”中存储的非重复数据块被有效引用1次。第四存储区域中包含的物理地址“03000578”中存储的非重复数据块被有效引用1次。第五存储区域中包含的物理地址“03000887”中存储的非重复数据块被有效引用0次。
第一存储区域中包含2个非重复数据块,其中1个非重复数据块被引用2次,另1个非重复数据块被引用1次,有效数据块比率为100%。第二存储区域中包含2个非重复数据块,其中1个非重复数据块被引用3次,另一个非重复数据块被引用0次,有效数据块比率为50%。第三存储区域中包括2个非重复数据块,其中1个非重复数据块被引用1次,另一个非重复数据块被引用0次,有效数据块比率为50%。第四存储区域中包括1个非重复数据块,该非重复数据块被引用1次,有效数据块比率为100%。第五存储区域中包括1个非重复数据块,该非重复数据块被引用0次,有效数据块比率为0%。
在该例子中,所采用的计算公式为:
待回收区域=X*Vr+Y*Rc,若该例子中常数X为3、Y为0.1。于是:
第一存储区域的计算结果为:
3*100%+0.1*3=3.3
第二存储区域的计算结果为:
3*50%+0.1*3=1.8
第三存储区域的计算结果为:
3*50%+1*0.1=1.6
第四存储区域的计算结果为:
3*100%+1*0.1=3.1
第五存储区域的计算结果为:
3*0%+0.1*0=0
若该例子中,对存储区域进行垃圾数据回收需要满足的条件为小于等于1.7,则对满足垃圾数据回收条件的存储区域中包括的引用次数为0的数据块进行垃圾数据回收,即:对第三存储区域和第五存储区域中引用次数为0的数据块进行垃圾数据回收。
在进行垃圾数据回收前,还需要将存储区域中各物理地址上的有效数据块复制到目标存储区域。于是,将第三存储区域的物理地址“0300421”中所存储的数据块复制到其它存储区域,将复制后映射表、指纹表和反向映射表中该数据块的物理地址修改为新的存储区域所对应的物理地址。
在本发明的实施例中,目标存储区域包括多个,每个目标存储区域有相应的引用次数区间,即存储在该目标存储区域中的数据块的引用次数在该目标存储区域的引用次数区间内。数据块复制时,根据有效数据块被引用次数和目标存储区域中每一个存储区域的引用次数区间的对应关系,将有效数据块复制到目标存储区域中相应引用次数区间的存储区域。从而在对目标存储区域进行垃圾数据回收时,各个存储区域具有相似的引用次数,从而减小对目标存储区域在垃圾回收时的写放大。
图7为本发明实施例提供的一种存储设备垃圾数据回收的方法流程图。如图7所示,该方法的执行主体可以是存储控制器。所述方法步骤的具体包括:
S701,根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数Rc确定所述存储区域满足垃圾回收条件。其中,所述有效数据块为引用次数不为0的非重复数据块。
在一个例子中,根据所述存储区域中所述有效数据块的数量确定所述有效数据块比率Vr;其中有效数据块比率Vr为所述有效数据块的数量与所述非重复数据块的数量的比值。存储区域内有效数据块的被引用次数由存储设备根据所述有效数据块的物理地址与逻辑地址的映射关系确定的,即通过反向映射表确定。一个物理地址对应的逻辑地址的个数为该存储区域内有效数据的被引用次数。
对于一个存储区域是否满足垃圾数据回收条件的计算,在本发明实施例中,所采用的计算公式可以为:
待回收区域=Vr*X+Rc*Y
在上述计算公式中,X、Y为常数,它们的值可以根据实际的运行效果进行确定,也可以将它们设定为固定值,具体根据实际使用情况确定。
S702,删除所述存储区域中引用次数为0的非重复数据块。
当确定存储区域满足垃圾回收条件时,将存储区域中的所有引用次数为0的非重复数据块从存储区域中删除。
S703,将所述存储区域中所述有效数据块复制到目标存储区域。
将所述存储区域中所述有效数据块复制到目标存储区域具体包括:存储控制器读取所述存储区域中所述有效数据块,将所述有效数据块存储到目标存储区域。
在本发明的实施例中,目标存储区域包括多个,每个目标存储区域有相应的引用次数区间,即存储在该目标存储区域中的数据块的引用次数在该目标存储区域的引用次数区间内。数据拷贝时,根据有效数据块被引用次数和目标存储区域中每一个存储区域的数据块引用次数区间的对应关系,将所述有效数据块分别复制到所述目标存储区域中相应的存储区域。从而在对目标存储区域进行垃圾数据回收时,各个存储区域具有相似的引用次数,从而减小对目标存储区域在垃圾回收时的写放大。
将存储区域的有效数据块复制完成后,还需要修改映射表,将映射表中有效数据块的原物理地址修改为数据块目前所在的目标存储区域的物理地址。以及修改指纹表,将指纹表中该需要复制的数据块的指纹所对应的原物理地址修改为新的目标存储区域的物理地址。将反向映射表中需要复制的数据块所对应的物理地址修改为数据块所在的目标存储区域的物理地址。
图8为本发明实施例提供的一种存储设备,如图8所示,包括:
计算单元801,用于根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数确定所述存储区域满足垃圾回收条件;其中,所述有效数据块为引用次数不为0的非重复数据块。
计算单元计算待回收区域,根据计算结果确定是否对该存储区域进行垃圾数据回收。
在一个例子中,待回收区域的计算可以通过有效数据块比率Vr与所述有效数据块的被引用次数Rc确定。其中,根据所述存储区域中所述有效数据块的数量与非重复数据块的数量的比值确定所述有效数据块比率Vr。所述有效数据块的被引用次数Rc根据所述有效数据块的物理地址与逻辑地址的映射关系确定的,即通过反向映射表确定。
处理单元802,用于删除所述存储区域中引用次数为0的非重复数据块;以及,用于将所述存储区域中所述有效数据块复制到目标存储区域。
在确定存储区域满足垃圾回收条件时,处理单元将存储区域内的有效数据复制到目标存储区域。在本发明的实施例中,目标存储区域包括多个,每个目标存储区域有相应的引用次数区间,即存储在该目标存储区域中的数据的引用次数在该目标存储区域的引用次数区间内。数据拷贝时,根据有效数据块被引用次数和目标存储区域中每一个存储区域的数据块引用次数区间的对应关系,将所述有效数据块分别复制到所述目标存储区域中相应的存储区域。
本发明实施例中,存储非重复数据块的存储区域,一种具体实现为容器(container),将存储区域中的有效数据复制到目标存储区域后,还包括删除存储区域中的有效数据,将存储区域作为新的存储区域以存储新的非重复的数据块。
本领域技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (8)
1.一种存储设备垃圾数据回收的方法,其特征在于,所述方法包括:
根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数Rc确定所述存储区域满足垃圾回收条件;其中,所述有效数据块为引用次数不为0的非重复数据块;
删除所述存储区域中引用次数为0的非重复数据块;
将所述存储区域中所述有效数据块复制到目标存储区域。
2.根据权利要求1所述的方法,其特征在于,根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数确定所述存储区域满足垃圾回收条件,具体包括:
根据所述存储区域中所述有效数据块的数量确定所述有效数据块比率Vr;其中有效数据块比率Vr为所述有效数据块的数量与所述非重复数据块的数量的比值;
确定X*Vr+Y*Rc满足所述垃圾回收条件;其中,X和Y为常数。
3.根据权利要求1或2任一项所述的方法,其特征在于,所述目标存储区域包含多个存储区域;所述目标存储区域中的每一个存储区域设置有数据块引用次数区间;
将所述存储区域中所述有效数据块复制到目标存储区域,具体包括:
根据所述有效数据块被引用次数和所述目标存储区域中每一个存储区域的数据块引用次数区间的对应关系,将所述有效数据块分别复制到所述目标存储区域中相应的存储区域。
4.根据权利要求1所述的方法,其特征在于,所述有效数据块的被引用次数Rc由所述存储设备根据所述有效数据块的物理地址与逻辑地址的映射关系确定的。
5.一种存储设备,其特征在于,所述设备包括:
计算单元,用于根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数Rc确定所述存储区域满足垃圾回收条件;其中,所述有效数据块为引用次数不为0的非重复数据块;
处理单元,用于删除所述存储区域中引用次数为0的非重复数据块;以及,将所述存储区域中所述有效数据块复制到目标存储区域。
6.根据权利要求5所述的设备,其特征在于,所述计算单元用于根据存储区域中非重复数据块中有效数据块的数量以及所述有效数据块的被引用次数确定所述存储区域满足垃圾回收条件,具体包括:
所述计算单元,用于根据所述存储区域中所述有效数据块的数量确定所述有效数据块比率Vr;其中有效数据块比率Vr为所述有效数据块的数量与所述非重复数据块的数量的比值;
确定X*Vr+Y*Rc满足所述垃圾回收条件;其中,X和Y为常数。
7.根据权利要求5或6任一项所述的设备,其特征在于,所述目标存储区域包含多个存储区域;所述目标存储区域中的每一个存储区域设置有数据块引用次数区间;
处理单元将所述存储区域中所述有效数据块复制到目标存储区域,具体包括:
处理单元,根据所述有效数据块被引用次数和所述目标存储区域中每一个存储区域的数据块引用次数区间的对应关系,将所述有效数据块分别复制到所述目标存储区域中相应的存储区域。
8.根据权利要求5所述的设备,其特征在于,所述计算单元,计算的有效数据块的被引用次数Rc由所述存储设备根据所述有效数据块的物理地址与逻辑地址的映射关系确定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511028090.6A CN105701024B (zh) | 2015-12-31 | 2015-12-31 | 一种存储设备及其垃圾数据回收的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511028090.6A CN105701024B (zh) | 2015-12-31 | 2015-12-31 | 一种存储设备及其垃圾数据回收的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105701024A true CN105701024A (zh) | 2016-06-22 |
CN105701024B CN105701024B (zh) | 2018-11-06 |
Family
ID=56226004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511028090.6A Active CN105701024B (zh) | 2015-12-31 | 2015-12-31 | 一种存储设备及其垃圾数据回收的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105701024B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038092A (zh) * | 2017-04-17 | 2017-08-11 | 杭州宏杉科技股份有限公司 | 一种数据复制方法及装置 |
WO2018058382A1 (zh) * | 2016-09-28 | 2018-04-05 | 华为技术有限公司 | 一种存储***中重复数据删除方法、存储***及控制器 |
CN109189695A (zh) * | 2018-08-31 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种数据空间回收方法、装置及设备 |
CN109213450A (zh) * | 2018-09-10 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种基于闪存阵列的关联元数据删除方法、装置及设备 |
CN109426436A (zh) * | 2017-08-28 | 2019-03-05 | 北京忆恒创源科技有限公司 | 基于可变长大块的垃圾回收方法与装置 |
CN109753228A (zh) * | 2017-11-08 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 快照删除方法、装置及*** |
CN110389706A (zh) * | 2018-04-16 | 2019-10-29 | 华为技术有限公司 | 一种指纹回收方法以及存储*** |
CN110554970A (zh) * | 2018-05-31 | 2019-12-10 | 北京忆恒创源科技有限公司 | 显著降低写放大的垃圾回收方法及存储设备 |
CN110781099A (zh) * | 2019-09-29 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种硬盘碎片整理方法与装置 |
CN110928852A (zh) * | 2019-12-09 | 2020-03-27 | Oppo广东移动通信有限公司 | 一种垃圾回收方法、装置及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
US20120158674A1 (en) * | 2010-12-20 | 2012-06-21 | Mark David Lillibridge | Indexing for deduplication |
CN102567218A (zh) * | 2010-12-17 | 2012-07-11 | 微软公司 | 用于数据去重复块存储的垃圾收集和热点释放 |
CN103238140A (zh) * | 2010-09-03 | 2013-08-07 | 赛门铁克公司 | 基于去重复的存储***中用于可扩展引用管理的***和方法 |
-
2015
- 2015-12-31 CN CN201511028090.6A patent/CN105701024B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103238140A (zh) * | 2010-09-03 | 2013-08-07 | 赛门铁克公司 | 基于去重复的存储***中用于可扩展引用管理的***和方法 |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
CN102567218A (zh) * | 2010-12-17 | 2012-07-11 | 微软公司 | 用于数据去重复块存储的垃圾收集和热点释放 |
US20120158674A1 (en) * | 2010-12-20 | 2012-06-21 | Mark David Lillibridge | Indexing for deduplication |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018058382A1 (zh) * | 2016-09-28 | 2018-04-05 | 华为技术有限公司 | 一种存储***中重复数据删除方法、存储***及控制器 |
US10216446B2 (en) | 2016-09-28 | 2019-02-26 | Huawei Technologies Co., Ltd. | Method for deduplication in storage system, storage system, and controller |
CN107038092B (zh) * | 2017-04-17 | 2020-03-10 | 杭州宏杉科技股份有限公司 | 一种数据复制方法及装置 |
CN107038092A (zh) * | 2017-04-17 | 2017-08-11 | 杭州宏杉科技股份有限公司 | 一种数据复制方法及装置 |
CN109426436B (zh) * | 2017-08-28 | 2024-04-12 | 北京忆恒创源科技股份有限公司 | 基于可变长大块的垃圾回收方法与装置 |
CN109426436A (zh) * | 2017-08-28 | 2019-03-05 | 北京忆恒创源科技有限公司 | 基于可变长大块的垃圾回收方法与装置 |
CN109753228B (zh) * | 2017-11-08 | 2022-08-02 | 阿里巴巴集团控股有限公司 | 快照删除方法、装置及*** |
CN109753228A (zh) * | 2017-11-08 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 快照删除方法、装置及*** |
CN110389706B (zh) * | 2018-04-16 | 2021-05-11 | 华为技术有限公司 | 一种指纹回收方法以及存储*** |
CN110389706A (zh) * | 2018-04-16 | 2019-10-29 | 华为技术有限公司 | 一种指纹回收方法以及存储*** |
CN110554970A (zh) * | 2018-05-31 | 2019-12-10 | 北京忆恒创源科技有限公司 | 显著降低写放大的垃圾回收方法及存储设备 |
CN109189695B (zh) * | 2018-08-31 | 2021-11-19 | 郑州云海信息技术有限公司 | 一种数据空间回收方法、装置及设备 |
CN109189695A (zh) * | 2018-08-31 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种数据空间回收方法、装置及设备 |
CN109213450B (zh) * | 2018-09-10 | 2021-08-31 | 郑州云海信息技术有限公司 | 一种基于闪存阵列的关联元数据删除方法、装置及设备 |
CN109213450A (zh) * | 2018-09-10 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种基于闪存阵列的关联元数据删除方法、装置及设备 |
CN110781099A (zh) * | 2019-09-29 | 2020-02-11 | 苏州浪潮智能科技有限公司 | 一种硬盘碎片整理方法与装置 |
CN110928852A (zh) * | 2019-12-09 | 2020-03-27 | Oppo广东移动通信有限公司 | 一种垃圾回收方法、装置及计算机可读存储介质 |
CN110928852B (zh) * | 2019-12-09 | 2022-12-02 | Oppo广东移动通信有限公司 | 一种垃圾回收方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105701024B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105701024A (zh) | 一种存储设备及其垃圾数据回收的方法 | |
US20190102262A1 (en) | Automated continuous checkpointing | |
US9645750B2 (en) | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory | |
US8886882B2 (en) | Method and apparatus of storage tier and cache management | |
JP6218869B2 (ja) | Ssdへのコピーオンライト用システム及び方法 | |
US7308543B2 (en) | Method and system for shredding data within a data storage subsystem | |
WO2016127658A1 (zh) | 一种快照处理方法及装置 | |
US20120158674A1 (en) | Indexing for deduplication | |
WO2016041384A1 (zh) | 重复数据删除方法和装置 | |
CN106886370B (zh) | 一种基于ssd去重技术的数据安全删除方法及*** | |
EP3748509A1 (en) | System garbage collection method and method for collecting garbage in solid state hard disk | |
CN105787037B (zh) | 一种重复数据的删除方法及装置 | |
JP7376488B2 (ja) | スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外 | |
EP3352071A1 (en) | Data check method and storage system | |
US10817624B2 (en) | Memory system and storage device capable of permanently deleting data stored in a non-volatile memory | |
CN109144406A (zh) | 分布式存储***中元数据存储方法、***及存储介质 | |
US20170199680A1 (en) | System and method of write amplification factor mitigation and flash lifespan extension | |
US8966207B1 (en) | Virtual defragmentation of a storage | |
US10013346B2 (en) | Method of decreasing write amplification of NAND flash using a journal approach | |
CN107122223B (zh) | 数据迁移方法及装置 | |
CN107506466B (zh) | 一种小文件存储方法及*** | |
KR101473837B1 (ko) | Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법 | |
KR101430552B1 (ko) | Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템 | |
CN113868018B (zh) | 一种数据保存方法及装置和一种数据恢复方法 | |
KR101643278B1 (ko) | 데이터베이스 시스템에서 스토리지 서버 관리 방법, 장치 및 컴퓨터 판독가능 매체에 저장된 컴퓨터-프로그램 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |