一种存储空间的管理方法及装置转让专利

申请号 : CN201910835398.3

文献号 : CN110750211B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 任仁朱芳芳郭平静

申请人 : 华为技术有限公司

摘要 :

一种存储空间的管理方法及装置,在该方法中,首先获取存储系统中存储的数据的数据量,然后根据存储的数据的数据量的大小,调整存储系统中用于存储指纹记录项的重删元数据空间的大小,该指纹记录项用于记录数据的指纹。由于可以灵活调整重删元数据空间的大小,这样可以通过增加重删元数据空间的大小来提高重复数据删除的效率。且,由于调整重删元数据空间的大小是以存储系统中存储的数据的数据量为调整因子,因此,通过该方法设置的重删元数据空间的大小,也能够满足用户的数据存储需求,不影响存储系统的存储性能。

权利要求 :

1.一种存储空间的管理方法,其特征在于,包括:获取存储在存储系统的存储设备中的数据的数据量;

根据所述数据量的大小,调整所述存储系统的重删元数据空间的大小;其中,所述重删元数据空间用于存储指纹记录项;指纹记录项用于记录数据的指纹。

2.根据权利要求1所述的方法,其特征在于,获取存储在存储系统的存储设备中的数据的数据量,包括:

获取存储在所述存储系统的数据存储空间中的数据的数据量,所述数据存储空间用于存储数据;或,

获取存储在所述存储系统的元数据存储空间中的元数据的数据量,根据所述元数据的数据量与预设比值,计算得到所述存储系统中存储的数据的数据量,所述元数据存储空间用于存储数据的元数据。

3.根据权利要求1或2所述的方法,其特征在于,根据所述数据量的大小,调整重删元数据空间的大小,包括:

在所述数据量不大于第一阈值时,增大所述重删元数据空间;或,在所述数据量不小于第二阈值时,减小所述重删元数据空间。

4.根据权利要求1或2所述的方法,其特征在于,根据所述数据量的大小,调整重删元数据空间的大小,包括:

获取所述存储系统中能够存储的数据的最大数据量;

根据所述最大数据量、所述数据量的大小,以及,预设的重删元数据空间的占比与所述存储系统中存储的数据的数据量之间的对应关系,调整所述重删元数据空间的大小。

5.根据权利要求1或2所述的方法,其特征在于,调整所述重删元数据空间的大小,包括:

减小所述存储系统的数据存储空间以增大所述重删元数据空间的大小;或,增大所述数据存储空间以减小所述重删元数据空间的大小。

6.一种存储空间的管理装置,其特征在于,包括接口和处理器,所述接口与所述处理器通信;其中,所述处理器,用于:获取存储在存储系统的存储设备中的数据的数据量;

根据所述数据量的大小,调整所述存储系统的重删元数据空间的大小;其中,所述重删元数据空间用于存储指纹记录项;指纹记录项用于记录数据的指纹。

7.根据权利要求6所述的装置,其特征在于,所述处理器具体用于:获取存储在所述存储系统的数据存储空间中的数据的数据量,所述数据存储空间用于存储数据;或,

获取存储在所述存储系统的元数据存储空间中的元数据的数据量,根据所述元数据的数据量与预设比值,计算得到所述存储系统中存储的数据的数据量,所述元数据存储空间用于存储数据的元数据。

8.根据权利要求6或7所述的装置,其特征在于,所述处理器具体用于:在所述数据量不大于第一阈值时,增大所述重删元数据空间;或,在所述数据量不小于第二阈值时,减小所述重删元数据空间。

9.根据权利要求6或7所述的装置,其特征在于,所述处理器具体用于:获取所述存储系统中能够存储的数据的最大数据量;

根据所述最大数据量、所述数据量的大小,以及,预设的重删元数据空间的占比与所述存储系统中存储的数据的数据量之间的对应关系,调整所述重删元数据空间的大小。

10.根据权利要求6或7所述的装置,其特征在于,所述处理器具体用于:减小所述存储系统的数据存储空间以增大所述重删元数据空间的大小;或,增大所述数据存储空间以减小所述重删元数据空间的大小。

11.一种存储空间的管理装置,其特征在于,包括获取单元和处理单元,其中,所述获取单元,用于获取存储在存储系统的存储设备中的数据的数据量;

所述处理单元,用于根据所述数据量的大小,调整所述存储系统的重删元数据空间的大小;其中,所述重删元数据空间用于存储指纹记录项;指纹记录项用于记录数据的指纹。

12.根据权利要求11所述的装置,其特征在于,所述获取单元用于:获取存储在所述存储系统的数据存储空间中的数据的数据量,所述数据存储空间用于存储数据;或,

获取存储在所述存储系统的元数据存储空间中的元数据的数据量,根据所述元数据的数据量与预设比值,计算得到所述存储系统中存储的数据的数据量,所述元数据存储空间用于存储数据的元数据。

13.根据权利要求11或12所述的装置,其特征在于,所述处理单元用于:在所述数据量不大于第一阈值时,增大所述重删元数据空间;或,在所述数据量不小于第二阈值时,减小所述重删元数据空间。

14.根据权利要求11或12所述的装置,其特征在于,所述处理单元用于:获取所述存储系统中能够存储的数据的最大数据量;

根据所述最大数据量、所述数据量的大小,以及,预设的重删元数据空间的占比与所述存储系统中存储的数据的数据量之间的对应关系,调整所述重删元数据空间的大小。

15.根据权利要求11或12所述的装置,其特征在于,所述处理单元用于:减小所述存储系统的数据存储空间以增大所述重删元数据空间的大小;或,增大所述数据存储空间以减小所述重删元数据空间的大小。

16.一种计算机存储介质,其特征在于,所述计算机存储介质存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-5任一项所述的方法。

说明书 :

一种存储空间的管理方法及装置

技术领域

[0001] 本申请涉及存储技术领域,尤其涉及一种存储空间的管理方法及装置。

背景技术

[0002] 随着技术的发展,越来越多的数据需要使用存储系统进行存储。为了节省存储系统的存储空间,提出了重复数据删除技术,即,若某个数据在存储系统中存储多份,则将该
多份数据删除而只保存一份数据,从而通过缩减数据实现减少数据所占用的存储空间的目
的。
[0003] 目前,其中一种重复数据删除技术的实现过程为:计算每个数据的指纹,并将指纹存储到重删元数据空间中,从重删元数据空间存储的多个指纹中确定重复指纹,与重复指
纹对应的数据为待进行重复数据删除的数据,对该待进行重复数据删除的数据进行批量的
重复数据删除。
[0004] 由于存储系统的存储空间有限,当重删元数据空间较大时,则用户能够用来存储数据的存储空间减小;当重删元数据空间较小时,由于存储的指纹数量有限,从而重复指纹
出现的概率较低,影响重复数据删除的效率,因此,如何合理地设置重删元数据空间的大
小,是影响存储系统的存储性能的重要因素。

发明内容

[0005] 本申请提供一种存储空间的管理方法及装置,用以提供一种设置重删元数据空间的方法。
[0006] 第一方面,提供一种存储空间的管理方法,在该方法中,首先获取存储系统中存储的数据的数据量,然后根据存储的数据的数据量的大小,调整存储系统中用于存储指纹记
录项的重删元数据空间的大小,该指纹记录项用于记录数据的指纹。
[0007] 在上述技术方案中,由于可以灵活调整重删元数据空间的大小,这样可以通过增加重删元数据空间的大小来提高重复数据删除的效率。且,由于调整重删元数据空间的大
小是以存储系统中存储的数据的数据量为调整因子,因此,通过该方法设置的重删元数据
空间的大小,也能够满足用户的数据存储需求,不影响存储系统的存储性能。
[0008] 在一种可能的设计中,获取存储系统中存储的数据的数据量可以包括但不限于如下两种方式:
[0009] 第一种方式,获取存储在该存储系统的数据存储空间中的数据的数据量,该数据存储空间用于存储数据。
[0010] 在上述技术方案中,存储系统的存储空间可以分为数据存储空间和元数据存储空间,而存储系统中存储的数据即存储在数据存储空间的数据,因此,当需要获取存储系统中
存储的数据的数据量时,可以直接获取数据存储空间中存储的数据的数据量,获取方式简
单。
[0011] 第二种方式,获取存储在该存储系统的元数据存储空间中的元数据的数据量,根据该元数据的数据量与预设比值,计算得到该存储系统中存储的数据的数据量,该元数据
存储空间用于存储数据的元数据。
[0012] 在上述技术方案中,由于数据本身的数据量与其元数据的数据量之间存在预设比值,这样,可以通过获取存储系统中的元数据的数据量,来获取存储系统中存储的数据的数
据量,由于元数据存储空间相较于数据存储空间较小,因此,可以减少搜索空间,减少时延。
[0013] 在一种可能的设计中,根据该存储系统中存储的数据的数据量的大小,调整重删元数据空间的大小,可以包括但不限于如下三种方式:
[0014] 第一种调整方式,在存储系统中存储的数据的数据量不大于第一阈值时,增大该重删元数据空间。
[0015] 在上述技术方案中,当存储系统中存储的数据较少时,说明存储系统中有较多的空闲存储空间,因此,可以增大重删元数据空间提高重复数据删除的效率。
[0016] 第二种调整方式,在存储系统中存储的数据的数据量不小于第二阈值时,减小该重删元数据空间。
[0017] 在上述技术方案中,当存储系统中存储的数据较多时,说明数据即将写满存储系统,数据需要较大的存储空降,则可以减少重删元数据空间以存储数据,避免对存储系统的
存储性能的影响。
[0018] 第三种调整方式,存储系统中可以预先存储重删元数据空间的占比与存储系统中存储的数据的数据量之间的对应关系,然后,在获取该存储系统中能够存储的数据的最大
数据量后,根据该最大数据量、该存储系统中存储的数据的数据量的大小,以及该预设的对
应关系,调整该重删元数据空间的大小。
[0019] 在上述技术方案中,可以根据存储系统所允许的最大数据量以及上述预设的对应关系,确定在当前情况下重删元数据空间的大小,可以提高调整重删元数据空间的大小的
准确度。
[0020] 在一种可能的设计中,可以通过数据存储空间来实现对重删元数据空间的大小的调整。当需要增大该重删元数据空间时,可以通过减小数据存储空间以增大重删元数据空
间,当需要减小该重删元数据空间时,可以通过增加数据存储空间以减小重删元数据空间。
[0021] 第二方面,提供一种存储空间的管理装置,该存储空间的管理装置可以是存储节点或者存储服务端,也可以是存储节点或者存储服务端中的装置。该存储空间的管理装置
包括处理器,用于实现上述第一方面描述的方法。该存储空间的管理装置还可以包括存储
器,用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储
器中存储的程序指令,用于实现上述第一方面描述的方法中的任意一种方法。该存储空间
的管理装置还可以包括接口,该接口与处理器进行通信。
[0022] 在一种可能的设计中,该存储空间的管理装置包括处理器和接口,所述接口与所述处理器通信;其中,所述处理器,用于:
[0023] 获取存储系统中存储的数据的数据量;
[0024] 根据所述数据量的大小,调整所述存储系统的重删元数据空间的大小;其中,所述重删元数据空间用于存储指纹记录项;指纹记录项用于记录数据的指纹。
[0025] 在一种可能的设计中,所述处理器具体用于:
[0026] 获取存储在所述存储系统的数据存储空间中的数据的数据量,所述数据存储空间用于存储数据;或,
[0027] 获取存储在所述存储系统的元数据存储空间中的元数据的数据量,根据所述元数据的数据量与预设比值,计算得到所述存储系统中存储的数据的数据量,所述元数据存储
空间用于存储数据的元数据。
[0028] 在一种可能的设计中,所述处理器具体用于:
[0029] 在所述数据量不大于第一阈值时,增大所述重删元数据空间;或,
[0030] 在所述数据量不小于第二阈值时,减小所述重删元数据空间。
[0031] 在一种可能的设计中,所述处理器具体用于:
[0032] 获取所述存储系统中能够存储的数据的最大数据量;
[0033] 根据所述最大数据量、所述数据量的大小,以及,预设的重删元数据空间的占比与所述存储系统中存储的数据的数据量之间的对应关系,调整所述重删元数据空间的大小。
[0034] 在一种可能的设计中,所述处理器具体用于:
[0035] 减小所述存储系统的数据存储空间以增大所述重删元数据空间的大小;或,
[0036] 增大所述数据存储空间以减小所述重删元数据空间的大小。
[0037] 第三方面,提供一种存储空间的管理装置,该存储空间的管理装置可以是存储节点或者存储服务端,也可以是存储节点或者存储服务端中的装置。该存储空间的管理装置
可以包括处理单元和获取单元,这些单元可以执行上述第一方面任一种设计示例中的所执
行的相应功能,具体的:
[0038] 所述获取单元,用于获取存储系统中存储的数据的数据量;
[0039] 所述处理单元,用于根据所述数据量的大小,调整所述存储系统的重删元数据空间的大小;其中,所述重删元数据空间用于存储指纹记录项;指纹记录项用于记录数据的指
纹。
[0040] 第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使
所述计算机执行第一方面中任意一项所述的方法。
[0041] 第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算
机执行第一方面中任意一项所述的方法。
[0042] 第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现第一方面所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分
立器件。
[0043] 第七方面,本申请实施例提供了一种存储系统,该存储系统包括存储设备以及第二方面及第二方面任一种设计中所述的存储空间的管理装置,或者,该存储系统包括存储
设备以及第三方面及第三方面任一种设计中所述的存储空间的管理装置。
[0044] 上述第二方面至第七方面及其实现方式的有益效果可以参考对第一方面的方法及其实现方式的有益效果的描述。

附图说明

[0045] 图1为现有技术中的一种重复数据的删除方法的流程图;
[0046] 图2为现有技术中进行重复数据删除操作之前的指纹记录和进行重复数据删除操作之后的指纹记录的一种示例的示意图;
[0047] 图3为本申请实施例提供的数据存储方法的流程图;
[0048] 图4为本申请实施例提供的存储空间的管理装置的一种示例的结构图;
[0049] 图5为本申请实施例提供的存储空间的管理装置的另一种示例的结构图。

具体实施方式

[0050] 为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
[0051] 本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更
多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例
如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/
或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存
在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关
联对象是一种“或”的关系。在本申请实施例中,“节点”和“节点”可以互换使用。
[0052] 除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
[0053] 为便于理解本申请实施例中的方法,首先对重复数据删除技术进行说明。
[0054] 目前,重复数据删除技术根据执行重复数据删除操作的时刻,可以分为在线重删方式和后重删方式。其中,在线重删方式是指,在将存储系统的缓存中的数据存储到存储设
备之前进行重复数据删除操作,后重删方式是指在将缓存中的数据存储到存储设备之后进
行重复数据删除操作。本申请实施例中的技术方案是针对后重删方式进行的改进。
[0055] 请参考图1,为后重删方式的流程图,该流程图的描述如下:
[0056] S11、存储系统的存储节点生成并存储每个数据对应的指纹记录项。
[0057] 具体来讲,存储节点计算每个数据的指纹,存储节点将数据存储到存储地址后,生成数据的指纹记录项,并将该指纹记录项存储到用于存储指纹记录项的重删元数据空间。
其中,指纹记录项包含数据的指纹与数据的存储地址的对应关系。
[0058] 作为一种示例,请参考图2,假设存储设备中存储了10个数据,则重删元数据空间存储与该10个数据分别对应的指纹记录项,该10个指纹记录项如图2(a)所示。在图2(a)中,
与一个数据对应的指纹记录项包括三个部分,分别为编号、指纹(finger print,FP)以及令
牌(token)。编号可以指示存储节点生成与数据对应的指纹记录项的顺序,通过token来指
示该数据的存储地址等信息。
[0059] S12、存储节点对多个指纹记录项进行排序,获得并存储排序后的指纹记录。
[0060] 具体来讲,可以按照FP的标识从小到大的顺序,将多个指纹记录项进行排序,排序后,具有相同FP的标识的指纹记录项则排列在一起,从而获得如图2(b)所示的排序后的指
纹记录,并将该排序后的指纹记录存储在重删元数据空间。
[0061] S13、存储节点从排序后的指纹记录中确定重复指纹。
[0062] 存储节点中预先存储用于判断是否为重复指纹的门限值,该门限值可以是用户通过存储系统的客户端配置的,也可以是预先约定的,在此不作限制。然后,存储节点判断排
序后的指纹记录中,包括同一指纹的指纹记录出现的次数是否大于或等于该门限值,若大
于该门限值,则确定该指纹是重复指纹。若某一个指纹为重复指纹,则说明与该指纹对应的
数据相同,也就是说,在存储设备中重复存储了该数据。
[0063] 作为一种示例,该门限值可以为3。在图2(b)所示的指纹记录中,有3个指纹记录项包括FP_1,以及,有4个指纹记录项包括FP_4,从而存储节点确定FP_1和FP_4为重复指纹。
[0064] 另外一种实现,为提高重复数据删除率,可以不设备重复指纹门限值,例如,只要查找到指纹记录项中包含重复的指纹,即进行重复数据删除。
[0065] S14、存储节点对与重复指纹对应的数据进行重复数据删除操作。
[0066] 当存储节点确定重复指纹后,则使用该重复指纹查询指纹表,若指纹表中能够查找到该重复指纹,则表明存储系统中已经存储与该重复指纹对应的唯一数据,且指纹表中
记录了该唯一数据的存储地址,从而将该数据的访问地址与该数据的存储地址的对应关系
改为该数据的访问地址与该指纹的对应关系。其中,访问地址是指数据对外呈现的地址,例
如,逻辑块地址(logical block address,LBA)等,本发明实施例对此不作限定。若在指纹
表中查找不到该重复指纹,则表明存储系统中没有存储与该重复指纹对应的唯一数据,从
而存储节点从包含该重复指纹的至少一个指纹记录项中选择一个指纹记录项,读取该指纹
记录项中与该重复指纹对应的存储地址中的数据,将该数据存储到重复数据删除区域中,
得到该数据的新的存储地址,在指纹表中建立该指纹与该新的存储地址的映射,并将该数
据的访问地址与该数据的存储地址的对应关系改为该数据的访问地址与该指纹的对应关
系。
[0067] 需要说明的是,指纹表用于记录重复数据删除后的唯一数据的指纹与该唯一数据在重复数据删除区域的存储地址的映射。重复数据删除区域是指存储系统中用于存储重复
数据删除后的唯一数据的存储区域。
[0068] 由上述过程可知,重复数据删除的效率是根据重删元数据空间中存储的指纹记录项相关联的。例如,如图2(b)所示,在重删元数据空间中存储10个指纹记录项时,执行一次
如图1所示的方法可以确定出两个重复指纹,分别为FP_1和FP_4;在重删元数据空间中仅存
储图2(b)中所示的前5个指纹时,则执行一次该方法只能确定出一个重复指纹,即FP_1,可
见,重删元数据空间中存储的指纹记录项越多,则执行一次重复数据删除过程可以删除更
多的重复数据。从这个角度上来说,增加重删元数据空间有利于提升重复数据删除的效率。
本发明实施例的一种实现方式,重删元数据空间是指存储系统的内存空间。
[0069] 但是,由于存储系统的存储空间有限,当重删元数据空间较大时,则用户能够用来存储数据的存储空间减小,从而用户要存储相同数据量的数据时,则需要存储空间更大的
存储系统,会增加成本;而当重删元数据空间较小时,由于存储的指纹数量有限,从而重复
指纹出现的概率较低,影响重复数据删除的效率,因此,如何合理地设置重删元数据空间的
大小,是影响存储系统的存储性能的重要因素。
[0070] 在实际使用过程中,存储系统中存储的数据量是实时变化的,例如,在存储系统刚开始使用时,存储系统中存储的数据较少,随着使用时间的增加,存储系统中存储的数据越
来越多。然而,在存储系统中存储的数据较少时,存储系统中的剩余存储空间较大,在这种
情况下,可以占用一部分剩余存储空间用于重复数据删除,可以增加重复数据删除的重删
率以及重删速度。在存储系统中存储的数据越来越多时,说明存储系统逐渐被写满,数据需
要较大的存储空间,在这种情况下,则可以将重复数据删除所占用的部分剩余存储空间释
放,以满足用户的数据存储需求。
[0071] 鉴于此,本申请实施例提供一种存储空间的管理方法,用以提供一种设置重删元数据空间的方法。该方法可以应用于存储系统中,该存储系统可以是分布式存储系统,也可
以是集中式存储系统。该存储系统可以是文件存储系统、块存储系统或者对象存储系统,或
者上述存储系统的组合,在本申请实施例中不作限制。
[0072] 请参考图3,为该方法的流程图,该流程图的描述如下:
[0073] S31、获取存储系统中存储的数据的数据量。
[0074] 存储系统的存储空间可以分为数据存储空间和元数据存储空间,数据存储空间用于存储数据,元数据存储空间用于存储数据的元数据。数据的数据量与其元数据的数据量
成预设比值,该预设比值是由存储系统确定的,该预设比值可以为10/1或者20/1等,也就是
说,存储10兆字节(megabytes,MB)数据,其元数据的数据量为1/10*10MB=1MB。因此,在本
申请实施例中,获取存储系统中存储的数据的数据量包括但不限于如下两种方式:
[0075] 第一种方式,获取存储在该存储系统的数据存储空间中的数据的数据量,该数据存储空间存储的数据的数据量即该存储系统中存储的数据的数据量。
[0076] 具体来讲,可由存储系统中的管理节点或者存储阵列的阵列控制器等,获取其所管理的多个存储节点中每个存储节点中存储的数据的数据量,该多个存储节点中存储的数
据的数据量之和即存储系统中存储的所有的数据的数据量。例如,管理节点用于管理3个存
储节点,分别为存储节点1~存储节点3,管理节点获取存储节点1~存储节点3中每个存储
节点存储的数据的数据量均为10MB,则确定存储系统中存储的所有的数据的数据量为10*3
=30MB。该获取方式简单,不会增加管理节点的运算复杂度。
[0077] 第二种方式,获取存储在该存储系统的元数据存储空间中的元数据的数据量,根据该元数据的数据量与预设比值,计算得到该存储系统中存储的数据的数据量。
[0078] 具体来讲,存储系统中的管理节点或者控制器等,获取其所管理的多个存储节点中每个存储节点中存储的元数据的数据量,该多个存储节点中存储的元数据的数据量之和
即存储系统中存储的所有的元数据的数据量。然后,管理节点通过数据的数据量与其元数
据的数据量之间的预设比值,计算出存储系统中存储的所有的数据的数据量。沿用上述例
子,管理节点获取存储节点1~存储节点3中每个存储节点存储的数据的数据量均为1MB,则
确定存储系统中存储的所有的元数据的数据量为1*3=3MB,假设数据的数据量与其元数据
的数据量之间的比值为10/1,则管理节点确定存储系统中存储的数据的数据量为3*10=
30MB。由于元数据存储空间相较于数据存储空间较小,因此,可以减少搜索空间,减少时延。
[0079] S32、根据数据量的大小,调整存储系统的重删元数据空间的大小。
[0080] 在本申请实施例中,重删元数据空间的大小是根据存储系统中存储的数据量的大小而变化。在获取存储系统中存储的数据的数据量后,则可以该数据量调整重删元数据空
间的大小。
[0081] 具体来讲,调整重删元数据空间的大小可以包括但不限于如下两种方式:
[0082] 第一种调整方式,在该数据量不大于第一阈值时,增大该重删元数据空间;或,在该数据量不小于第二阈值时,减小该重删元数据空间。
[0083] 具体来讲,存储系统会给重删元数据空间设置一个初始大小,例如,设置重删元数据空间的初始大小为10MB。且存储系统中预先存储用于判断是否需要调整重删元数据空间
大小的阈值,例如,用于判断是否增大重删元数据空间的第一阈值,和用于判断是否减小重
删元数据空间的第二阈值,第一阈值可以小于第二阈值,或者,第一阈值也可以与第二阈值
相同,在此不做限制。然后,管理节点可以根据存储系统中存储的数据的数据量与该第一阈
值或该第二阈值之间的大小关系,确定增大或者减小该重删元数据空间。
[0084] 作为一种示例,可以预先设置调整值,按照该调整值增大或减小该重删元数据空间。例如,该调整值为10MB,则当确定增大或减小重删元数据空间时,则在重删元数据空间
的当前值的基础上增加或减去10MB。
[0085] 在这种情况下,管理节点可以通过周期性获取存储系统中存储的数据的数据量,多次调整重删元数据空间的大小。
[0086] 作为另一种示例,可以预先设置目标值,例如,设置两个目标值,分别对应增大重删元数据空间的第一目标值,和减小重删元数据空间的第二目标值,当确定需要增大重删
元数据空间时,则将该重删元数据空间调整为该第一目标值,当确定需要减小重删元数据
空间时,则将该重删元数据空间调整为第二目标值。
[0087] 在这种情况下,当管理节点周期性获取存储系统中存储的数据的数据量后,若当前的判断结果与上一次的判断结果相同,例如,都是增大重删元数据空间,则由于上一次调
整结果已经将该重删元数据空间的大小调整至目标值,则管理节点可以不用再次进行调
整,可以较低管理节点的负载。
[0088] 第二种调整方式,预先设置重删元数据空间在存储空间的占比与该存储系统中存储的数据的数据量之间的对应关系,在获取该存储系统当前存储的数据的数据量后,则根
据该存储系统中能够存储的数据的最大数据量、存储系统当前存储的数据的数据量的大
小,以及该对应关系,调整该重删元数据空间的大小。
[0089] 作为一种示例,重删元数据空间在存储空间的占比与该存储系统中存储的数据的数据量之间的对应关系可以如表1所示。在表1中,当存储的数据的数据量为0%时,重删元
数据空间在存储系统中的占比最大,为2%;当存储的数据的数据量达到60%后,重删元数
据空间在存储系统的占比下降为1%,当存储的数据的数据量达到85%后,重删元数据空间
在存储系统中的占比下降为0.2%。
[0090] 表1
[0091]存储的数据的数据量 重删元数据空间的占比
20MB 2.00%
200TB 1.00%
240TB 0.20%
[0092] 管理节点在获取该存储系统中当前存储的数据的数据量后,则查询表1,确定在当前情况下,重删元数据空间的占比。例如,当前存储的数据量为10MB,小于表1中的20MB,则
可以确定重删元数据空间的占比为2%。
[0093] 然后,管理节点确定存储系统能够存储的数据的最大数据量。
[0094] 在存储系统中,为了使得存储系统能够尽可能多的存储数据,存储系统在接收用户发送的待存储数据后,会对待存储数据进行压缩等操作,然后将压缩后的数据存储在存
储系统中。在本申请实施例中,该存储系统能够存储的数据的最大数据量是指在进行压缩
操作之前的数据的数据量,若进行压缩操作时使用的缩减率不同,则存储系统能够存储的
数据的最大数据量也不同,而存储系统所使用的缩减率可能会不断发生变化,因此,在确定
存储系统能够存储的数据的最大数据量之前,首先需要确定存储系统所使用的缩减率。例
如,管理节点可以获取存储系统中当前存储的所有的元数据的数据量,然后根据元数据的
数据量和与元数据对应的数据的数据量之间的预设比值,计算出存储系统接收的在进行压
缩操作之前的数据的第一数据量。然后,获取存储系统的数据存储空间中存储的所有数据
的第二数据量,该第一数据量和第二数据量的比值即存储系统当前使用的缩减率。
[0095] 然后,管理节点确定存储系统的存储空间的总量与该存储系统当前使用的缩减率的乘积,即存储系统能够存储的数据的最大数据量。例如,通过上述计算,确定存储系统当
前使用的缩减率为3,存储系统的存储空间的总量为100TB,则管理节点确定存储系统能够
存储的数据的最大数据量为300TB。
[0096] 最后,管理节点确定重删元数据空间的占比与该存储系统能够存储的数据的最大数据量的乘积,即重删元数据空间的取值,从而将重删元数据空间调整为该取值。
[0097] 作为另一种示例,由图1所示的对后重删方式的流程的描述可知,重删元数据空间中存储了两种指纹记录项,一种是未排序的指纹记录项,另一种是排序的指纹记录项。对于
未排序的指纹记录项,可以在重删元数据空间不足时,通过淘汰策略进行批量移除,从而使
得存储系统可以快递地获取能够使用的重删元数据空间。而对于排序后的指纹记录项,需
要依赖排序结果进行移除,例如,出现同一指纹的指纹记录项的次数是否大于或等于有预
设次数等,可见,移除排序后的指纹记录项需要一定的时延。因此,本申请实施例中,针对上
述两种不同的指纹记录项,可以设置不同的重删元数据空间在存储空间的占比与该存储系
统中存储的数据的数据量之间的对应关系,使得对重删元数据空间的调整更加精确。
[0098] 为方便说明,在下文中,将重删元数据空间中用于存储未排序的指纹记录项的存储空间称为第一重删元数据空间,将用于存储排序后的指纹记录项的存储空间称为第二重
删元数据空间。作为一种示例,请参考表2和表3,分别为第一重删元数据空间的占比与该存
储系统中存储的数据的数据量之间的对应关系,以及,第二重删元数据空间的占比与该存
储系统中存储的数据的数据量之间的对应关系。在表2和表3中,存储的数据的数据量用数
据量与存储空间的总量的百分比来表示。
[0099] 表2
[0100]存储的数据的数据量 第一重删元数据空间的占比
0% 2.00%
60% 1.00%
85% 0.20%
95% 0.10%
[0101] 在表2中,第一重删元数据空间的占比最大为2%,当存储系统中存储的数据的数据量较少时,则第一重删元数据空间可以为该最大占比;在数据量与存储空间的总量百分
比大于或等于60%时候,才需要降低该第一重删元数据空间的占比,例如,从2%降到1%;
当数据量与存储空间的总量百分比大于或等于85%时,将第一重删元数据空间的占比调整
为较为接近存储系统所要求的占比,例如,存储系统要求第一重删元数据空间的占比只能
为0.1%,则在这种情况下,可以将第一重删元数据空间的占比调整为接近0.1%的取值,例
如,降为0.2%。当数据量与存储空间的总量百分比大于或等于95%时,按照存储系统要求
的第一重删元数据空间的占比(例如,0.1%)严格控制。
[0102] 需要说明的是,第一重删元数据空间的占比的下降速率,取决于存储系统淘汰未排序的指纹记录项的速度。存储系统淘汰未排序的指纹记录项的速率越快,则第一重删元
数据空间的占比的下降速率越慢。
[0103] 表3
[0104]存储的数据的数据量 第二重删元数据空间的占比
0% 0.40%
25% 0.30%
50% 0.20%
75% 0.10%
[0105] 在表3中,第二重删元数据空间的占比最大为0.4%,当存储系统中存储的数据的数据量较少时,则第二重删元数据空间可以为该最大占比;由于排序的指纹记录项被淘汰
的速度较慢,因此,在数据量与存储空间的总量百分比大于或等于25%时候,则需要降低该
第二重删元数据空间的占比,例如,从0.4%降到0.3%。在此不对表3中的其他表项一一进
行说明。
[0106] 由表2和表3可知,第二重删元数据空间的占比的下降速度相较于第一重删元数据空间的占比的下降速度更快。
[0107] 管理节点确定第一重删元数据空间的占比,和第二重删元数据空间的占比后,则确定第一重删元数据空间的大小为第一重删元数据空间的占比与该存储系统能够存储的
数据的最大数据量的乘积,第二重删元数据空间的大小为该第二重删元数据空间的占比与
该最大数据量的乘积,从而将第一重删元数据空间和第二重删元数据空间调整为对应的取
值。其中,获取该存储系统能够存储的数据的最大数据量的方式与前述示例中的方式相似,
在此不再赘述。
[0108] 由前述表1~表3可知,重删元数据空间可以在较长的一段时间内占用一个较大的存储空间,这样,重删元数据空间中存储的指纹记录项较多,从而一次重复数据删除操作能
够确定出的重复指纹的数量也越多,从而可以提高存储系统进行重复数据删除操作的重删
率和重删速率。
[0109] 由于存储系统中存储空间的大小是固定的,且存储空间可以分为数据存储空间和元数据存储空间,因此,在本申请实施例中,增大重删元数据空间的大小可以理解为通过减
小数据存储空间来增大重删元数据空间,或者,可以理解为,占用部分数据存储空间以用于
存储指纹记录项。相应地,减小重删元数据空间的大小可以理解为通过增大数据存储空间
来减小重删元数据空间,或者,可以理解为,重删元数据空间退还其占用的部分数据存储空
间。
[0110] 另外,存储系统的元数据存储空间中除了用于存储指纹记录项,还包括用于存储其他元数据,例如,该存储系统中存储的数据的元数据,该存储系统的存储池的元数据,存
储系统的逻辑卷的卷元数据等,从而可以将存储系统的元数据存储空间按照存储的元数据
的作用分为重删元数据空间和其他元数据空间。而其他元数据空间中,存储池的元数据和
卷元数据等的数据量较为固定,因此,其他元数据空间中存储的元数据的数据量,与存储系
统中存储的数据的元数据的数据量相关联,当存储系统中存储的数据的数据量较小时,其
他元数据空间中的元数据的数据量也较小。这样,当其他元数据空间有剩余存储空间时,重
删元数据空间也可以使用该其他元数据空间中的剩余存储空间。
[0111] 作为一种示例,假设元数据空间的容量为该存储系统能够存储的数据的最大数据量的1.5%,其他元数据空间中存储的元数据的数据量是随着存储系统中存储的数据的增
加而增加的,因此,当存储系统中存储的数据较少时,其他元数据空间中也有剩余存储空
间,则重删元数据空间也可以利用其他元数据空间中的剩余存储空间,来调整重删元数据
空间的大小,重删元数据空间的可用存储空间(元数据空间的剩余存储空间),即该存储系
统能够存储的数据的最大数据量,与存储系统中除重删元数据空间外的其他元数据的数据
量的差值。在这种情况下,调整重删元数据空间的大小的具体过程,与前述占用数据存储空
间调整重删元数据空间的大小的方式相似,在此不再赘述。
[0112] 在上述技术方案中,由于可以灵活调整重删元数据空间的大小,这样可以通过增加重删元数据空间的大小来提高重复数据删除的效率。且,由于调整重删元数据空间的大
小是以存储系统中存储的数据的数据量为调整因子,因此,通过该方法设置的重删元数据
空间的大小,也能够满足用户的数据存储需求,不影响存储系统的存储性能。
[0113] 上述本申请提供的实施例中,为了实现上述本申请实施例提供的方法中的各功能,存储系统可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件
模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件
结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
[0114] 图4示出了一种存储空间的管理装置400的结构示意图。其中,存储空间的管理装置400可以用于实现存储系统的存储节点或者存储阵列的阵列控制器的功能。存储空间的
管理装置400可以是硬件结构、软件模块、或硬件结构加软件模块。存储空间的管理装置400
可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他
分立器件。
[0115] 存储空间的管理装置400可以包括处理单元401和获取单元402。
[0116] 获取单元402可以用于执行图3所示的实施例中的步骤S31,和/或用于支持本文所描述的技术的其它过程。一种可能的实现方式,获取单元402可以用于与处理单元401通信,
或者,获取单元402可以用于存储空间的管理装置400和其它模块进行通信,其可以是电路、
器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
[0117] 处理单元401可以用于执行图3所示的实施例中的步骤S32,和/或用于支持本文所描述的技术的其它过程。
[0118] 其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0119] 图4所示的实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个
处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集
成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0120] 如图5所示为本申请实施例提供的存储空间的管理装置500,其中,存储空间的管理装置500可以用于实现存储系统的存储节点或者存储阵列的阵列控制器的功能。其中,该
存储空间的管理装置500可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也
可以包含芯片和其他分立器件。
[0121] 存储空间的管理装置500包括至少一个处理器520,用于实现或用于支持存储空间的管理装置500实现本申请实施例提供的方法中存储节点或者存储阵列的阵列控制器的功
能。示例性地,处理器520可以根据存储系统中存储的数据的数据量的大小,调整所述存储
系统的重删元数据空间的大小,具体参见方法示例中的详细描述,此处不做赘述。
[0122] 存储空间的管理装置500还可以包括至少一个存储器530,用于存储程序指令和/或数据。存储器530和处理器520耦合。本申请实施例中的耦合是装置、单元或模块之间的间
接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交
互。处理器520可能和存储器530协同操作。处理器520可能执行存储器530中存储的程序指
令。所述至少一个存储器中的至少一个可以包括于处理器中。
[0123] 存储空间的管理装置500还可以包括接口510,用于与处理器520通信,或者用于通过传输介质和其它设备进行通信,从而用于存储空间的管理装置500可以和其它设备进行
通信。示例性地,该其它设备可以是存储客户端或者存储设备。处理器520可以利用接口510
收发数据。
[0124] 本申请实施例中不限定上述接口510、处理器520以及存储器530之间的具体连接介质。本申请实施例在图5中以存储器530、处理器520以及接口510之间通过总线550连接,
总线在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。
所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表
示,但并不表示仅有一根总线或一种类型的总线。
[0125] 在本申请实施例中,处理器520可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组
件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以
是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体
现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0126] 在本申请实施例中,存储器530可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile 
memory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存
储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不
限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,
用于存储程序指令和/或数据。
[0127] 本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图3所示的实施例中存储节点或阵列控制器执行的方法。
[0128] 本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图3所示的实施例中存储节点或阵列控制器执行的方法。
[0129] 本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现前述方法中存储节点或阵列控制器的功能。该芯片系统可以由芯片构成,也可以
包含芯片和其他分立器件。
[0130] 本申请实施例提供了一种存储系统,该存储系统包括存储设备以及图3所示的实施例中存储节点或阵列控制器。
[0131] 本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计
算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令
时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算
机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可
以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存
储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过
有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如
红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计
算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介
质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬
盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质
(例如,SSD)等。