CN117435135B - 关于重复数据删除的存储空间回收的方法、装置和系统 - Google Patents

关于重复数据删除的存储空间回收的方法、装置和系统 Download PDF

Info

Publication number
CN117435135B
CN117435135B CN202311409917.2A CN202311409917A CN117435135B CN 117435135 B CN117435135 B CN 117435135B CN 202311409917 A CN202311409917 A CN 202311409917A CN 117435135 B CN117435135 B CN 117435135B
Authority
CN
China
Prior art keywords
group
fingerprint information
referenced
task
index file
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
Application number
CN202311409917.2A
Other languages
English (en)
Other versions
CN117435135A (zh
Inventor
王贤达
马立珂
王子骏
杨海锋
娄永杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Dingjia Computer Technology Co ltd
Original Assignee
Guangzhou Dingjia Computer Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Dingjia Computer Technology Co ltd filed Critical Guangzhou Dingjia Computer Technology Co ltd
Priority to CN202311409917.2A priority Critical patent/CN117435135B/zh
Publication of CN117435135A publication Critical patent/CN117435135A/zh
Application granted granted Critical
Publication of CN117435135B publication Critical patent/CN117435135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及重复数据删除技术领域,提供一种关于重复数据删除的存储系统空间回收的方法、装置和系统。本申请中,每次执行回收任务前,按索引文件的被删预估时间的相近情况,对索引文件进行分组;执行非首次回收任务时,若本组内存在索引文件被删,则根据本组索引文件所引用的数据块指纹,生成本组的本次分组被引用指纹信息,若未被删,则根据本组的上次分组被引用指纹信息,生成本次分组被引用指纹信息;基于每组的本次分组被引用指纹信息,得到本次回收任务的全局被引用指纹信息以进行数据块回收。采用本方法能够避免在索引文件不频繁被删的情况下,进行回收产生的重复计算问题。

Description

关于重复数据删除的存储空间回收的方法、装置和系统
技术领域
本申请涉及重复数据删除技术领域,特别是涉及一种关于重复数据删除的存储系统空间回收的方法、装置、存储系统、存储介质和计算机程序产品。
背景技术
随着重复数据删除技术的发展,出现了数据块级重复数据删除技术,这个技术先将用户文件按固定大小或可变大小分为若干数据块,通过检查每个数据块的指纹是否与存储系统空间现有的数据块重复,最终只存储其中唯一的数据块,进而实现重复数据删除的效果。对于已经存在的重复数据块,用户文件中可以记录指向该数据块的“引用”(因此用户文件在重复数据删除的存储系统中也被称为“引用文件”或“索引文件”,在以下介绍过程中,均称为“索引文件”)。多个索引文件可以共享一份相同的数据块,意味着删除索引文件时不能释放其使用的所有数据块,需确认某个数据块没有被任何索引文件引用后才能释放其占用的存储空间。其中一种空间回收方式是不记录“引用计数”,通过遍历索引文件所引用的数据块指纹,生成数据块指纹列表,将不在此数据块指纹列表上的数据块进行空间回收。
但是,若索引文件变化不频繁,回收任务较为频繁地执行时,每次执行回收任务会遍历所有索引文件,生成该次回收任务的数据块指纹列表,该数据块指纹列表与上次回收任务的数据块指纹列表相似度较高,存在一定的重复计算。
发明内容
基于此,有必要针对上述技术问题,提供一种关于重复数据删除的存储系统空间回收的方法、装置、存储系统、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种关于重复数据删除的存储系统空间回收的方法,包括:
执行多次回收任务,执行每次回收任务时,按本次回收任务的全局被引用指纹信息回收存储系统的数据块;
当本次回收任务为非首次回收任务时,获取对存储系统的索引文件进行划分形成的多组,针对每组,判断本组在上次回收任务后是否存在至少一个索引文件被删,若是,则根据本组的索引文件所引用的数据块指纹,生成本组的本次分组被引用指纹信息;若否,则获取本组的上次分组被引用指纹信息,将本组在上次回收任务后的新增索引文件所引用的数据块指纹更新至上次分组被引用指纹信息,得到本组的本次分组被引用指纹信息;获取每组的本次分组被引用指纹信息;基于每组的本次分组被引用指纹信息,得到本次回收任务的全局被引用指纹信息;同组内的索引文件的被删预估时间的接近度高于接近度阈值。
在其中一个实施例中,获取对存储系统的索引文件进行划分形成的多组,包括:
判断上次回收任务后是否存在新增索引文件;
若存在,则根据新增索引文件的被删预估时间,将新增索引文件划分到对应组。
在其中一个实施例中,获取对存储系统的索引文件进行划分形成的多组,包括:
判断上次回收任务后是否存在被删索引文件;
若存在,则从被删索引文件所属的组内,剔除被删索引文件。
在一个示例性的实施例中,所述方法还包括:
当本次回收任务为首次回收任务时,针对每组,根据本组的索引文件所引用的数据块指纹,生成本组的首次分组被引用指纹信息;
基于每组的首次分组被引用指纹信息,得到首次回收任务的全局被引用指纹信息。
在一个实施例中,分组被引用指纹信息通过分组布隆过滤器来存储;所述方法还包括:
获取各组的本次分组布隆过滤器;
对所述本次分组布隆过滤器的位图大小进行压缩并存储。
在其中一个实施例中,在获取对存储系统的索引文件进行划分形成的多组之前,所述方法包括:
获取各所述索引文件的修改时间以及文件保留时长;
基于所述修改时间和文件保留时长,得到各所述索引文件的被删预估时间。
在一个实施例中,在获取对存储系统的索引文件进行划分形成的多组之前,所述方法还包括:
获取各所述索引文件所在的目录;
判断所述目录是否属于文件长期保留的目录;
若是,则确定所述目录下的所述索引文件属于长期保留类型文件,并将所述索引文件的被删预估时间设为长期保留对应的时间。
第二方面,本申请还提供了一种关于重复数据删除的存储系统空间回收的装置,包括:
空间回收处理模块,用于执行多次回收任务,执行每次回收任务时,按本次回收任务的全局被引用指纹信息回收存储系统的数据块;
指纹信息生成模块,用于当本次回收任务为非首次回收任务时,获取对存储系统的索引文件进行划分形成的多组,针对每组,判断本组在上次回收任务后是否存在至少一个索引文件被删,若是,则根据本组的索引文件所引用的数据块指纹,生成本组的本次分组被引用指纹信息;若否,则获取本组的上次分组被引用指纹信息,将本组在上次回收任务后的新增索引文件所引用的数据块指纹更新至上次分组被引用指纹信息,得到本组的本次分组被引用指纹信息;获取每组的本次分组被引用指纹信息;基于每组的本次分组被引用指纹信息,得到本次回收任务的全局被引用指纹信息;同组内的索引文件的被删预估时间的接近度高于接近度阈值。
第三方面,本申请还提供了一种存储系统,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
执行多次回收任务,执行每次回收任务时,按本次回收任务的全局被引用指纹信息回收存储系统的数据块;
当本次回收任务为非首次回收任务时,获取对存储系统的索引文件进行划分形成的多组,针对每组,判断本组在上次回收任务后是否存在至少一个索引文件被删,若是,则根据本组的索引文件所引用的数据块指纹,生成本组的本次分组被引用指纹信息;若否,则获取本组的上次分组被引用指纹信息,将本组在上次回收任务后的新增索引文件所引用的数据块指纹更新至上次分组被引用指纹信息,得到本组的本次分组被引用指纹信息;获取每组的本次分组被引用指纹信息;基于每组的本次分组被引用指纹信息,得到本次回收任务的全局被引用指纹信息;同组内的索引文件的被删预估时间的接近度高于接近度阈值。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
执行多次回收任务,执行每次回收任务时,按本次回收任务的全局被引用指纹信息回收存储系统的数据块;
当本次回收任务为非首次回收任务时,获取对存储系统的索引文件进行划分形成的多组,针对每组,判断本组在上次回收任务后是否存在至少一个索引文件被删,若是,则根据本组的索引文件所引用的数据块指纹,生成本组的本次分组被引用指纹信息;若否,则获取本组的上次分组被引用指纹信息,将本组在上次回收任务后的新增索引文件所引用的数据块指纹更新至上次分组被引用指纹信息,得到本组的本次分组被引用指纹信息;获取每组的本次分组被引用指纹信息;基于每组的本次分组被引用指纹信息,得到本次回收任务的全局被引用指纹信息;同组内的索引文件的被删预估时间的接近度高于接近度阈值。
上述关于重复数据删除的存储系统空间回收的方法、装置、存储系统、存储介质和计算机程序产品,每次执行回收任务前,依据索引文件的被删预估时间接近度是否高于接近度阈值,对索引文件进行分组得到多组;非首次执行回收任务时,针对每组,判断分组内是否存在至少一个索引文件被删,若是则根据本组索引文件所引用的数据块指纹重新生成本次分组被引用指纹信息,若否则获取上次分组被引用指纹信息,并根据新增索引文件所引用的数据块指纹进行对应更新;获取每组的本次分组被引用指纹信息并根据此信息更新全局被引用指纹信息,基于本次回收任务的全局被引用指纹信息回收存储系统的数据块。该方案在执行本次回收任务前,基于两两索引文件的被删预估时间是否相近,对索引文件进行分组,在组内索引文件自上次回收任务后未被删除的情况下,不必重新遍历组内索引文件,可以直接调用该组的上次被引用指纹信息并进行对应的更新调整,得到该组的本次分组被引用指纹信息,避免重复计算的问题,提高空间回收的效率。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中关于重复数据删除的存储系统空间回收的方法的应用环境图;
图2为一个实施例中关于重复数据删除的存储系统空间回收的方法的流程示意图;
图3为另一个实施例中关于重复数据删除的存储系统空间回收的方法的流程示意图;
图4为一个实施例中关于重复数据删除的存储系统空间回收的装置的结构框图;
图5为一个实施例中存储系统的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的关于重复数据删除的存储系统空间回收的方法,可以应用在图1示出的存储系统。该存储系统可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个示例性的实施例中,本申请提供的方法可以由存储系统执行,包括图2示出的步骤:
步骤S201,执行多次回收任务,执行每次回收任务时,按本次回收任务的全局被引用指纹信息回收存储系统的数据块。
其中,回收任务可以用于删除存储系统存储的数据块,以释放存储系统的存储空间,在执行回收任务的过程中,判断待删除的数据块是否有被索引文件引用,若被引用则可以暂不删除该数据块,若未被引用则可以删除该数据块。
在判断待删除的数据块是否有被索引文件引用的时候,可以获取索引文件引用的数据块指纹(索引文件引用的数据块指纹,可以称为被引用指纹),得到若干个被引用指纹,从而形成被引用指纹信息;然后判断待删除数据块的指纹是否在被引用指纹信息里,若是,则说明该数据块被索引文件引用,若否,则说明该数据块未被索引文件引用。
随着存储系统的持续使用,不断会有数据块存入存储系统,所以,可以多次执行回收任务,具体可以定期执行。在每次执行回收任务的时候,可以根据上述介绍的方式,存储系统统计当前存有的索引文件引用的数据块指纹,生成本次回收任务所需的被引用指纹信息(该被引用指纹信息称为本次回收任务的全局被引用指纹信息),按本次回收任务的全局被引用指纹信息,进行本次的数据块回收,完成本次回收任务。下次执行回收任务的时候,索引文件若有删除或重写,下次回收任务的全局被引用指纹信息和本次回收任务的全局被引用指纹信息可以不一样。
示例性地,以执行三次回收任务为例,在执行第一次回收任务的时候,按第一次回收任务的全局被引用指纹信息,回收存储系统的数据块;在执行第二次回收任务的时候,按第二次回收任务的全局被引用指纹信息,回收存储系统的数据块;在执行第三次回收任务的时候,按第三次回收任务的全局被引用指纹信息,回收存储系统的数据块。
为了更好地释放存储空间,回收任务可以定期执行,每次执行回收任务时,按存储系统统计当前存有的索引文件引用的数据块指纹,生成本次回收任务的全局被引用指纹信息,该全局被引用指纹信息在本次回收任务中起到参考作用,具体体现在:基于此次回收任务的全局被引用指纹信息,对存储系统所存的数据块进行指纹比对,查找出指纹不在全局被引用指纹信息范围内的数据块,释放该数据块的存储空间。
步骤S202,当本次回收任务为非首次回收任务时,获取对存储系统的索引文件进行划分形成的多组,针对每组,判断本组在上次回收任务后是否存在至少一个索引文件被删,若是,则根据本组的索引文件所引用的数据块指纹,生成本组的本次分组被引用指纹信息;若否,则获取本组的上次分组被引用指纹信息,将本组在上次回收任务后的新增索引文件所引用的数据块指纹更新至所述上次分组被引用指纹信息,得到本组的本次分组被引用指纹信息;获取每组的本次分组被引用指纹信息;基于每组的本次分组被引用指纹信息,得到本次回收任务的全局被引用指纹信息;同组内的索引文件的被删预估时间的接近度高于接近度阈值。
其中,存储系统可以预估索引文件大概的删除时间,由此得到索引文件的预估被删时间。两个索引文件的被删预估时间的接近度,可以用于衡量两个索引文件的被删预估时间的接近程度;两两索引文件的被删预估时间的接近度高于预设接近度阈值,表示这两个索引文件的被删预估时间接近,两两索引文件的被删预估时间的接近度低于预设接近度阈值,表示这两个索引文件的被删预估时间相距较远。
接近度的具体获取方式可以是:将两个索引文件的被删预估时间相减,得到时间差,将该时间差作为这两个索引文件的被删预估时间的接近度。
本申请实施例中,可以在执行首次回收任务时,存储系统可以获取当前存有的各索引文件的被删预估时间,按照两两索引文件的被删预估时间进行分组,若两个索引文件的被删预估时间的相近度高于接近度阈值,则将两个索引文件放在同一组,若两个索引文件的被删预估时间的相近度低于接近度阈值,则将两个索引文件分到不同组,使得同组内的索引文件的被删预估时间较为接近,由此生成各组在首次回收任务的分组被引用指纹信息和首次回收任务的全局被引用指纹信息,按首次回收任务的全局被引用指纹信息进行数据块回收。各组在某次回收任务的分组被引用指纹信息可以简称为各组的该次分组被引用指纹信息。
在执行下一次回收任务时,存储系统可以判断各组自上次回收任务后是否存在索引文件被删或者新增,示例性地,存储系统在完成首次回收任务后,在执行第二次回收任务时,可以判断第一组自首次回收任务后是否存在索引文件被删或者新增。若第一组自首次回收任务后存在至少一个索引文件被删,则直接读取第一组当前包含的索引文件所引用的数据块指纹,根据读取到的数据块指纹,生成第一组的第二次分组被引用指纹信息。
若第一组自首次回收任务后不存在索引文件被删,则获取第一组的首次分组被引用指纹信息,并判断第一组自首次回收任务后是否存在新增索引文件,若否,则直接将第一次的首次分组被引用指纹信息作为第二次分组被引用指纹信息;若存在新增索引文件,则将新增索引文件所引用的数据块指纹,添加至第一组的首次分组被引用指纹信息中,得到第一组的第二次分组被引用指纹信息。
可以按照上述方式,得到其他组的第二次分组被引用指纹信息,得到各组的第二次分组被引用指纹信息后,对各组的第二次分组被引用指纹信息进行合并,生成第二次回收任务的全局被引用指纹信息。
当本次回收任务为非首次回收任务时,进一步地,获取对存储系统的索引文件进行划分形成的多组,具体可以包括:判断上次回收任务后是否存在新增索引文件;若存在,则根据新增索引文件的被删预估时间,将新增索引文件划分到对应组。
示例性地,自首次回收任务后且在第二次回收任务前,若存在新增索引文件,且该新增索引文件的被删预估时间为1月27号,则可以在多组中,确定所包含的索引文件的被删预估时间接近1月27号的一组,并将该新增索引文件划分至该组;该组所包含的索引文件,在执行首次回收任务时和在执行第二次回收任务时,有所不同。
进一步地,获取对存储系统的索引文件进行划分形成的多组,具体还可以包括:判断上次回收任务后是否存在被删索引文件;若存在,则从被删索引文件所属的组内,剔除被删索引文件。
示例性地,自首次回收任务后且在第二次回收任务前,若存在被删索引文件,则可以判断该被删索引文件所属的组,并从该组内剔除该被删索引文件;该组所包含的索引文件,在执行首次回收任务时和在执行第二次回收任务时,有所不同。
上述关于重复数据删除的存储系统空间回收的方法中,通过每次执行回收任务前,依据索引文件的被删预估时间的接近度是否高于接近度阈值,对索引文件进行分组得到多组;非首次执行回收任务时,针对每组,判断分组内是否存在至少一个索引文件被删,若是则根据本组索引文件所引用的数据块指纹重新生成本次分组被引用指纹信息,若否则获取上次分组被引用指纹信息,并根据新增索引文件所引用的数据块指纹进行对应更新;获取每组的本次分组被引用指纹信息并根据此信息更新全局被引用指纹信息,基于本次回收任务的全局被引用指纹信息回收存储系统的数据块。该方案在执行本次回收任务前,基于两两索引文件的被删预估时间是否相近,对索引文件进行分组,在组内索引文件自上次回收任务后未被删除的情况下,不必重新遍历组内索引文件,可以直接调用该组的上次被引用指纹信息并进行对应的更新调整,得到该组的本次分组被引用指纹信息,避免重复计算的问题,提高空间回收的效率。
在一个实施例中,本申请提供的方法还包括:当本次回收任务为首次回收任务时,针对每组,根据本组的索引文件所引用的数据块指纹,生成本组的首次分组被引用指纹信息;基于每组的首次分组被引用指纹信息,得到首次回收任务的全局被引用指纹信息。
当存储系统进行首次回收任务时,获取每组包含的索引文件,根据各组内的索引文件所引用的数据块指纹,生成各组的首次分组被引用指纹信息,将各组的首次分组被引用指纹信息合并,得到首次回收任务的全局被引用指纹信息。
当全局被引用指纹信息和分组被引用指纹信息通过布隆过滤器(BF,bloomfliter)来存储时,用于存储全局被引用指纹信息的布隆过滤器可以称为全局布隆过滤器,用于存储分组被引用指纹信息的布隆过滤器可以称为分组布隆过滤器。各组在某次回收任务的分组布隆过滤器,可以简称为各组的该次分组布隆过滤器;某次回收任务的全局布隆过滤器可以简称为该次全局布隆过滤器。
示例性地,在执行第二次回收任务时,开始执行第二次回收任务的时候,存储系统统计所存储的数据块指纹数量,按数据块指纹数量生成对应位数的空位图,数据块指纹对应位的数值可以均设为0;接着,可以将该空位图作为第二次初始全局布隆过滤器;另外,存储系统还可以生成多个与数据块指纹数量对应大小的空位图,将各空位图分别作为各组的第二次初始分组布隆过滤器。
接着,存储系统可以获取第一组,判断第一组自首次回收任务后是否存在索引文件被删,若第一组自首次回收任务后存在索引文件被删,则根据第一组当前包含的索引文件所引用的数据块指纹,生成第一组的第二次分组布隆过滤器,其中,针对第一组当前包含的某索引文件,若该索引文件含有某一数据块指纹,则说明该索引文件引用该数据块,可以在第一组的第二次初始分组布隆过滤器中,确定与该数据块指纹对应的位,将与该数据块指纹对应的位的数值设为1,按照该方式,可以得到用于存储第一组的第二次分组被引用指纹信息的布隆过滤器,也即第一组的第二次分组布隆过滤器。
按照上述方式,存储系统还可以得到其他组的第二次分组布隆过滤器,将各组的第二次分组布隆过滤器合并到第二次初始全局布隆过滤器,得到第二次全局布隆过滤器,按照第二次全局布隆过滤器进行数据块回收。
在其中一个实施例中,分组被引用指纹信息通过分组布隆过滤器来存储;本申请提供的方法还包括:获取各组的本次分组布隆过滤器;对本次分组布隆过滤器的位图大小进行压缩并存储。
基于上述介绍可知,各组的本次分组布隆过滤器对应的位图大小与存储系统在执行本次回收任务时的数据块数量保持一致,其中,许多位的数值均为0,占据存储空间,因此,可以对各组的本次分组布隆过滤器进行压缩后存储,节约存储空间。
在一个示例性的实施例中,在获取对存储系统的索引文件进行划分形成的多组之前,本申请提供的方法包括:获取各索引文件的修改时间以及文件保留时长;基于修改时间和文件保留时长,得到各索引文件的被删预估时间。
当索引文件发生修改的时候,可以获取该索引文件的修改时间。文件保留时长可以根据实际需求设定;若设定文件保留时长为N天,某一索引文件的修改时间为A号,可以得到该索引文件的被删预估时间为N+A号。
本实施例中,按索引文件的修改时间以及文件保留时长确定索引文件的被删预估时间,依该被删预估时间进行分组,使得修改时间接近的索引文件被划分到同组。
在一个示例性的实施例中,在获取对存储系统的索引文件进行划分形成的多组之前,本申请提供的方法包括:获取各索引文件所在的目录;判断目录是否属于文件长期保留的目录;若是,则确定目录下的索引文件属于长期保留类型文件,并将索引文件的被删预估时间设为长期保留对应的时间。
其中,目录可以分为文件长期保留的目录以及文件不长期保留的目录;文件长期保留的目录例如系统固有目录,该目录下的文件为存储系统必须使用的,一般不会进行删除;文件不长期保留的目录例如非系统固有但为常用目录,该目录下的文件可以进行删除。
存储系统在判断索引文件的被删预估时间时,可以判断索引文件所在目录是否为文件长期保留的目录,若是,则确定该目录下的索引文件属于长期保留类型文件,并将该目录下的索引文件的被删预估时间均设为长期保留对应的时间。
本实施例中,按索引文件所在目录是否为文件长期保留的目录,若是,则将该目录下的索引文件的被删预估时间设为长期保留对应的时间,无需根据索引文件的修改时间和文件保留时长逐一判别,提高处理效率。
在其中一个实施例中,如图3所示,关于重复数据删除的关于重复数据删除的存储系统空间回收的方法的一个详细步骤,包括:
执行第一次回收任务时,存储系统可以获取当前存有的索引文件的被删预估时间,按照两两索引文件的被删预估时间是否大于接近度阈值,对各索引文件进行分组,得到多个组,其中同组内的索引文件的被删预估时间大于接近度阈值。另外,存储系统可以统计当前存有的数据块数量,按数据块指纹数量生成对应位数的空位图,与数据块指纹对应的位的数值可以均设为0,将该空位图作为第一次初始全局布隆过滤器;另外,存储系统还可以按数据块指纹数量生成对应位数的空位图,将各空位图分别作为各组的第一次初始分组布隆过滤器。存储系统可以获取第一组当前包含的索引文件所引用的数据块指纹,生成第一组的第一次分组布隆过滤器,其中,针对第一组当前包含的某索引文件,若该索引文件含有某一数据块指纹,则说明该索引文件引用该数据块,可以在第一组的第一次初始分组布隆过滤器中,确定与该数据块指纹对应的位,将与该数据块指纹对应的位的数值设为1,按照该方式,可以得到用于存储第一组的第一次分组被引用指纹信息的布隆过滤器,也即第一组的第一次分组布隆过滤器。
按照上述方式,存储系统还可以得到其他组的第一次分组布隆过滤器,将各组的第一次分组布隆过滤器合并到第一次初始全局布隆过滤器,得到第一次全局布隆过滤器,接着,遍历存储系统当前存储的所有数据块(或遍历指纹数据库),识别出指纹未被包含在第一次全局布隆过滤器中的数据块,将该数据块作为待回收数据块,回收所有待回收数据块所占用的存储空间,完成第一次回收任务。
1、在执行完首次回收任务后,执行第X次回收任务时,存储系统统计当前所存储的数据块数量,按数据块指纹数量生成对应位数的空位图,与数据块指纹对应的位的数值可以均设为0;接着,可以将该空位图作为第X次初始全局布隆过滤器。
2、存储系统生成各组的第X次初始分组布隆过滤器。
3、选定第一组进行以下处理:
3.1、在第一组不存在自第X-1次回收任务后索引文件被删的情况下,则:
3.1.1、将第一组的第X-1次分组布隆过滤器加载至内存。
3.1.2、遍历第一组组内所有新增的索引文件,将新增索引文件所引用的数据块指纹添加至第一组的第X次初始分组布隆过滤器,将第一组的第X-1次分组布隆过滤器也添加至第一组的第X次初始分组布隆过滤器,得到第一组的第X次分组布隆过滤器。
3.2、在第一组存在自第X-1次回收任务后索引文件被删的情况下,则:
3.2.1、遍历第一组组内所有索引文件,将索引文件所引用的数据块指纹添加至第一组的第X次初始分组布隆过滤器,得到第一组的第X次分组布隆过滤器。
4、按照第3点介绍的方式,得到各组的第X次分组布隆过滤器,将各组的第X次分组布隆过滤器合并到第X次初始全局布隆过滤器,得到第X次全局布隆过滤器。
5、按第X次全局布隆过滤器进行数据块回收,完成第X次回收任务。
另外,存储系统得到各组的各次分组布隆过滤器后,可以对各次分组布隆过滤器压缩并保存到磁盘。
本申请实施例具有以下优势:
(1)按索引文件的被删预估时间对索引文件进行分组,可在某些索引文件未被频繁删除的情况下,减少空间回收过程中的重复计算过程。
(2)判断组内是否存在索引文件被删,对没有出现索引文件被删,且出现新增索引文件的分组被引用指纹信息,不用重新遍历该分组内的所有索引文件,而只需要将新增索引文件所引用的数据块指纹加入分组被引用指纹信息即可,提高了分组被引用指纹信息的更新速度,进而提高了全局被引用指纹信息的更新速度和空间回收的效率。
(3)利用布隆过滤器存储被引用指纹信息,节约存储空间,并且对各组的各次分组布隆过滤器进行压缩存储,进一步节约存储空间。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的关于重复数据删除的存储系统空间回收的方法的关于重复数据删除的存储系统空间回收的装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个关于重复数据删除的存储系统空间回收的装置实施例中的具体限定可以参见上文中对于关于重复数据删除的存储系统空间回收的方法的限定,在此不再赘述。
在一个示例性的实施例中,如图4所示,提供了一种关于重复数据删除的存储系统空间回收的装置,包括:空间回收处理模块401和指纹信息模块402,其中:
空间回收处理模块401,用于执行多次回收任务,执行每次回收任务时,按本次回收任务的全局被引用指纹信息回收存储系统的数据块。
指纹信息生成模块402,用于当本次回收任务为非首次回收任务时,获取对存储系统的索引文件进行划分形成的多组,针对每组,判断本组在上次回收任务后是否存在至少一个索引文件被删,若是,则根据本组的索引文件所引用的数据块指纹,生成本组的本次分组被引用指纹信息;若否,则获取本组的上次分组被引用指纹信息,将本组在上次回收任务后的新增索引文件所引用的数据块指纹更新至上次分组被引用指纹信息,得到本组的本次分组被引用指纹信息;获取每组的本次分组被引用指纹信息;基于每组的本次分组被引用指纹信息,得到本次回收任务的全局被引用指纹信息;同组内的索引文件的被删预估时间的接近度高于接近度阈值。
在一个实施例中,指纹信息生成模块402具体用于判断上次回收任务后是否存在新增索引文件;若存在,则根据新增索引文件的被删预估时间,将新增索引文件划分到对应组
在其中一个实施例中,指纹信息生成模块402具体还用于判断上次回收任务后是否存在被删索引文件;若存在,则从所述被删索引文件所属的组内,剔除所述被删索引文件。
在一个实施例中,指纹信息生成模块402具体用于当本次回收任务为首次回收任务时,针对每组,根据本组的索引文件所引用的数据块指纹,生成本组的首次分组被引用指纹信息;基于每组的首次分组被引用指纹信息,得到首次回收任务的全局被引用指纹信息。
在一个示例性的实施例中,分组被引用指纹信息通过分组布隆过滤器来存储,指纹信息生成模块403还具体用于获取各组的本次分组布隆过滤器;对本次分组布隆过滤器的位图大小进行压缩并存储。
在其中一个实施例中,所述装置还包括预估被删时间确定模块,预估被删时间确定模块具体用于获取各索引文件的修改时间以及文件保留时长;基于修改时间和文件保留时长,得到各索引文件的被删预估时间。
在一个示例性的实施例中,预估被删时间确定模块还具体用于获取各索引文件所在的目录;判断目录是否属于文件长期保留的目录;若是,则确定目录下的索引文件属于长期保留类型文件,并将索引文件的被删预估时间设为长期保留对应的时间。
上述关于重复数据删除的存储系统空间回收的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于存储系统中的处理器中,也可以以软件形式存储于存储系统中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种存储系统,该存储系统可以是服务器,其内部结构图可以如图5所示。该存储系统包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该存储系统的处理器用于提供计算和控制能力。该存储系统的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该存储系统的数据库用于存储索引文件被所引用指纹数据、索引文件预估被删除时间数据、分组被引用指纹信息和全局被引用指纹信息。该存储系统的输入/输出接口用于处理器与外部设备之间交换信息。该存储系统的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种关于重复数据删除的存储系统空间回收的方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的存储系统的限定,具体的存储系统可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个示例性的实施例中,提供了一种存储系统,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述实施例的关于重复数据删除的存储系统空间回收的方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例的关于重复数据删除的存储系统空间回收的方法。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例的关于重复数据删除的存储系统空间回收的方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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.根据权利要求2所述的方法,其特征在于,获取对存储系统的索引文件进行划分形成的多组,包括:
判断上次回收任务后是否存在被删索引文件;
若存在,则从所述被删索引文件所属的组内,剔除所述被删索引文件。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当本次回收任务为首次回收任务时,针对每组,根据本组的索引文件所引用的数据块指纹,生成本组的首次分组被引用指纹信息;
基于每组的首次分组被引用指纹信息,得到首次回收任务的全局被引用指纹信息。
5.根据权利要求1所述的方法,其特征在于,分组被引用指纹信息通过分组布隆过滤器来存储;所述方法还包括:
获取各组的本次分组布隆过滤器;
对所述本次分组布隆过滤器的位图大小进行压缩并存储。
6.根据权利要求1所述的方法,其特征在于,在获取对存储系统的索引文件进行划分形成的多组之前,所述方法包括:
获取各所述索引文件的修改时间以及文件保留时长;
基于所述修改时间和文件保留时长,得到各所述索引文件的被删预估时间。
7.根据权利要求1所述的方法,其特征在于,在获取对存储系统的索引文件进行划分形成的多组之前,所述方法还包括:
获取各所述索引文件所在的目录;
判断所述目录是否属于文件长期保留的目录;
若是,则确定所述目录下的所述索引文件属于长期保留类型文件,并将所述索引文件的被删预估时间设为长期保留对应的时间。
8.一种关于重复数据删除的存储系统空间回收的装置,其特征在于,所述装置包括:
空间回收处理模块,用于执行多次回收任务,执行每次回收任务时,按本次回收任务的全局被引用指纹信息回收存储系统的数据块;
指纹信息生成模块,用于当本次回收任务为非首次回收任务时,获取对存储系统的索引文件进行划分形成的多组,针对每组,判断本组在上次回收任务后是否存在至少一个索引文件被删,若是,则根据本组的索引文件所引用的数据块指纹,生成本组的本次分组被引用指纹信息;若否,则获取本组的上次分组被引用指纹信息,将本组在上次回收任务后的新增索引文件所引用的数据块指纹更新至所述上次分组被引用指纹信息,得到本组的本次分组被引用指纹信息;获取每组的本次分组被引用指纹信息;基于每组的本次分组被引用指纹信息,得到本次回收任务的全局被引用指纹信息;同组内的索引文件的被删预估时间的接近度高于接近度阈值。
9.一种存储系统,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202311409917.2A 2023-10-27 2023-10-27 关于重复数据删除的存储空间回收的方法、装置和系统 Active CN117435135B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311409917.2A CN117435135B (zh) 2023-10-27 2023-10-27 关于重复数据删除的存储空间回收的方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311409917.2A CN117435135B (zh) 2023-10-27 2023-10-27 关于重复数据删除的存储空间回收的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN117435135A CN117435135A (zh) 2024-01-23
CN117435135B true CN117435135B (zh) 2024-04-02

Family

ID=89551067

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311409917.2A Active CN117435135B (zh) 2023-10-27 2023-10-27 关于重复数据删除的存储空间回收的方法、装置和系统

Country Status (1)

Country Link
CN (1) CN117435135B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868520B1 (en) * 2012-03-01 2014-10-21 Netapp, Inc. System and method for removing overlapping ranges from a flat sorted data structure
CN107391774A (zh) * 2017-09-15 2017-11-24 厦门大学 基于重复数据删除的日志文件系统的垃圾回收方法
CN108415671A (zh) * 2018-03-29 2018-08-17 上交所技术有限责任公司 一种面向绿色云计算的重复数据删除方法及系统
CN108804661A (zh) * 2018-06-06 2018-11-13 湘潭大学 一种云存储系统中基于模糊聚类的重复数据删除方法
US10515009B1 (en) * 2016-03-31 2019-12-24 EMC IP Holding Company LLC Method and system for reducing memory requirements during distributed garbage collection of deduplicated datasets
US11093342B1 (en) * 2017-09-29 2021-08-17 EMC IP Holding Company LLC Efficient deduplication of compressed files
CN115098447A (zh) * 2022-07-18 2022-09-23 重庆紫光华山智安科技有限公司 文件恢复方法、装置、电子设备及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
CN103154950B (zh) * 2012-05-04 2014-12-10 华为技术有限公司 重复数据删除方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868520B1 (en) * 2012-03-01 2014-10-21 Netapp, Inc. System and method for removing overlapping ranges from a flat sorted data structure
US10515009B1 (en) * 2016-03-31 2019-12-24 EMC IP Holding Company LLC Method and system for reducing memory requirements during distributed garbage collection of deduplicated datasets
CN107391774A (zh) * 2017-09-15 2017-11-24 厦门大学 基于重复数据删除的日志文件系统的垃圾回收方法
US11093342B1 (en) * 2017-09-29 2021-08-17 EMC IP Holding Company LLC Efficient deduplication of compressed files
CN108415671A (zh) * 2018-03-29 2018-08-17 上交所技术有限责任公司 一种面向绿色云计算的重复数据删除方法及系统
CN108804661A (zh) * 2018-06-06 2018-11-13 湘潭大学 一种云存储系统中基于模糊聚类的重复数据删除方法
CN115098447A (zh) * 2022-07-18 2022-09-23 重庆紫光华山智安科技有限公司 文件恢复方法、装置、电子设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
相似聚类的二级索引重复数据删除算法;王青松;葛慧;;小型微型计算机系统;20171215(第12期);全文 *

Also Published As

Publication number Publication date
CN117435135A (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
US11507539B2 (en) Apparatus and method for storing received data blocks as deduplicated data blocks
CN110018989B (zh) 一种快照比对的方法和装置
CN103019887B (zh) 数据备份方法及装置
CN112612576B (zh) 虚拟机备份方法、装置、电子设备及存储介质
CN109407985B (zh) 一种数据管理的方法以及相关装置
US10430383B1 (en) Efficiently estimating data compression ratio of ad-hoc set of files in protection storage filesystem with stream segmentation and data deduplication
CN111125033A (zh) 一种基于全闪存阵列的空间回收方法及系统
CN107391544A (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
CN117435135B (zh) 关于重复数据删除的存储空间回收的方法、装置和系统
WO2019037587A1 (zh) 一种数据恢复方法及装置
CN107690624B (zh) 用于处理备份数据的方法、装置和机器可读介质
CN115858471A (zh) 业务数据变更记录方法、装置、计算机设备及介质
CN115269558A (zh) 数据存储方法、装置、设备、存储介质和程序产品
CN114924911A (zh) Windows操作系统有效数据备份方法、装置、设备和存储介质
CN114443629A (zh) 一种集群布隆过滤器数据去重方法、终端设备及存储介质
CN108984343B (zh) 一种基于内容分析的虚拟机备份及存储管理方法
CN113868243A (zh) 具有节点缓冲器的键-值索引
CN112463741A (zh) 一种聚合大文件的清理方法及相关设备
CN107329702B (zh) 一种自精简元数据管理方法及装置
CN117539690B (zh) 多磁盘数据的合并恢复方法、装置、设备、介质和产品
CN117707857B (zh) 芯片研发数据备份方法、装置、计算机设备和存储介质
CN111158605B (zh) 用于优化操作系统磁盘存储策略的方法、装置和智能设备
CN110874182A (zh) 一种条带索引的处理方法、装置及设备
CN108073712A (zh) 信息系统中的主数据删除方法、装置和计算机设备
CN115186155B (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