一种存储空间的管理方法及装置转让专利
申请号 : CN201910835398.3
文献号 : CN110750211B
文献日 : 2021-05-04
发明人 : 任仁 , 朱芳芳 , 郭平静
申请人 : 华为技术有限公司
摘要 :
权利要求 :
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任一项所述的方法。
说明书 :
一种存储空间的管理方法及装置
技术领域
背景技术
多份数据删除而只保存一份数据,从而通过缩减数据实现减少数据所占用的存储空间的目
的。
纹对应的数据为待进行重复数据删除的数据,对该待进行重复数据删除的数据进行批量的
重复数据删除。
出现的概率较低,影响重复数据删除的效率,因此,如何合理地设置重删元数据空间的大
小,是影响存储系统的存储性能的重要因素。
发明内容
录项的重删元数据空间的大小,该指纹记录项用于记录数据的指纹。
小是以存储系统中存储的数据的数据量为调整因子,因此,通过该方法设置的重删元数据
空间的大小,也能够满足用户的数据存储需求,不影响存储系统的存储性能。
存储的数据的数据量时,可以直接获取数据存储空间中存储的数据的数据量,获取方式简
单。
存储空间用于存储数据的元数据。
据量,由于元数据存储空间相较于数据存储空间较小,因此,可以减少搜索空间,减少时延。
存储性能的影响。
数据量后,根据该最大数据量、该存储系统中存储的数据的数据量的大小,以及该预设的对
应关系,调整该重删元数据空间的大小。
准确度。
间,当需要减小该重删元数据空间时,可以通过增加数据存储空间以减小重删元数据空间。
包括处理器,用于实现上述第一方面描述的方法。该存储空间的管理装置还可以包括存储
器,用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储
器中存储的程序指令,用于实现上述第一方面描述的方法中的任意一种方法。该存储空间
的管理装置还可以包括接口,该接口与处理器进行通信。
空间用于存储数据的元数据。
可以包括处理单元和获取单元,这些单元可以执行上述第一方面任一种设计示例中的所执
行的相应功能,具体的:
纹。
所述计算机执行第一方面中任意一项所述的方法。
机执行第一方面中任意一项所述的方法。
立器件。
设备以及第三方面及第三方面任一种设计中所述的存储空间的管理装置。
附图说明
具体实施方式
多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例
如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/
或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存
在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关
联对象是一种“或”的关系。在本申请实施例中,“节点”和“节点”可以互换使用。
备之前进行重复数据删除操作,后重删方式是指在将缓存中的数据存储到存储设备之后进
行重复数据删除操作。本申请实施例中的技术方案是针对后重删方式进行的改进。
其中,指纹记录项包含数据的指纹与数据的存储地址的对应关系。
与一个数据对应的指纹记录项包括三个部分,分别为编号、指纹(finger print,FP)以及令
牌(token)。编号可以指示存储节点生成与数据对应的指纹记录项的顺序,通过token来指
示该数据的存储地址等信息。
纹记录,并将该排序后的指纹记录存储在重删元数据空间。
序后的指纹记录中,包括同一指纹的指纹记录出现的次数是否大于或等于该门限值,若大
于该门限值,则确定该指纹是重复指纹。若某一个指纹为重复指纹,则说明与该指纹对应的
数据相同,也就是说,在存储设备中重复存储了该数据。
记录了该唯一数据的存储地址,从而将该数据的访问地址与该数据的存储地址的对应关系
改为该数据的访问地址与该指纹的对应关系。其中,访问地址是指数据对外呈现的地址,例
如,逻辑块地址(logical block address,LBA)等,本发明实施例对此不作限定。若在指纹
表中查找不到该重复指纹,则表明存储系统中没有存储与该重复指纹对应的唯一数据,从
而存储节点从包含该重复指纹的至少一个指纹记录项中选择一个指纹记录项,读取该指纹
记录项中与该重复指纹对应的存储地址中的数据,将该数据存储到重复数据删除区域中,
得到该数据的新的存储地址,在指纹表中建立该指纹与该新的存储地址的映射,并将该数
据的访问地址与该数据的存储地址的对应关系改为该数据的访问地址与该指纹的对应关
系。
数据删除后的唯一数据的存储区域。
如图1所示的方法可以确定出两个重复指纹,分别为FP_1和FP_4;在重删元数据空间中仅存
储图2(b)中所示的前5个指纹时,则执行一次该方法只能确定出一个重复指纹,即FP_1,可
见,重删元数据空间中存储的指纹记录项越多,则执行一次重复数据删除过程可以删除更
多的重复数据。从这个角度上来说,增加重删元数据空间有利于提升重复数据删除的效率。
本发明实施例的一种实现方式,重删元数据空间是指存储系统的内存空间。
存储系统,会增加成本;而当重删元数据空间较小时,由于存储的指纹数量有限,从而重复
指纹出现的概率较低,影响重复数据删除的效率,因此,如何合理地设置重删元数据空间的
大小,是影响存储系统的存储性能的重要因素。
来越多。然而,在存储系统中存储的数据较少时,存储系统中的剩余存储空间较大,在这种
情况下,可以占用一部分剩余存储空间用于重复数据删除,可以增加重复数据删除的重删
率以及重删速度。在存储系统中存储的数据越来越多时,说明存储系统逐渐被写满,数据需
要较大的存储空间,在这种情况下,则可以将重复数据删除所占用的部分剩余存储空间释
放,以满足用户的数据存储需求。
以是集中式存储系统。该存储系统可以是文件存储系统、块存储系统或者对象存储系统,或
者上述存储系统的组合,在本申请实施例中不作限制。
成预设比值,该预设比值是由存储系统确定的,该预设比值可以为10/1或者20/1等,也就是
说,存储10兆字节(megabytes,MB)数据,其元数据的数据量为1/10*10MB=1MB。因此,在本
申请实施例中,获取存储系统中存储的数据的数据量包括但不限于如下两种方式:
据的数据量之和即存储系统中存储的所有的数据的数据量。例如,管理节点用于管理3个存
储节点,分别为存储节点1~存储节点3,管理节点获取存储节点1~存储节点3中每个存储
节点存储的数据的数据量均为10MB,则确定存储系统中存储的所有的数据的数据量为10*3
=30MB。该获取方式简单,不会增加管理节点的运算复杂度。
即存储系统中存储的所有的元数据的数据量。然后,管理节点通过数据的数据量与其元数
据的数据量之间的预设比值,计算出存储系统中存储的所有的数据的数据量。沿用上述例
子,管理节点获取存储节点1~存储节点3中每个存储节点存储的数据的数据量均为1MB,则
确定存储系统中存储的所有的元数据的数据量为1*3=3MB,假设数据的数据量与其元数据
的数据量之间的比值为10/1,则管理节点确定存储系统中存储的数据的数据量为3*10=
30MB。由于元数据存储空间相较于数据存储空间较小,因此,可以减少搜索空间,减少时延。
间的大小。
大小的阈值,例如,用于判断是否增大重删元数据空间的第一阈值,和用于判断是否减小重
删元数据空间的第二阈值,第一阈值可以小于第二阈值,或者,第一阈值也可以与第二阈值
相同,在此不做限制。然后,管理节点可以根据存储系统中存储的数据的数据量与该第一阈
值或该第二阈值之间的大小关系,确定增大或者减小该重删元数据空间。
的当前值的基础上增加或减去10MB。
元数据空间时,则将该重删元数据空间调整为该第一目标值,当确定需要减小重删元数据
空间时,则将该重删元数据空间调整为第二目标值。
整结果已经将该重删元数据空间的大小调整至目标值,则管理节点可以不用再次进行调
整,可以较低管理节点的负载。
据该存储系统中能够存储的数据的最大数据量、存储系统当前存储的数据的数据量的大
小,以及该对应关系,调整该重删元数据空间的大小。
数据空间在存储系统中的占比最大,为2%;当存储的数据的数据量达到60%后,重删元数
据空间在存储系统的占比下降为1%,当存储的数据的数据量达到85%后,重删元数据空间
在存储系统中的占比下降为0.2%。
20MB 2.00%
200TB 1.00%
240TB 0.20%
可以确定重删元数据空间的占比为2%。
储系统中。在本申请实施例中,该存储系统能够存储的数据的最大数据量是指在进行压缩
操作之前的数据的数据量,若进行压缩操作时使用的缩减率不同,则存储系统能够存储的
数据的最大数据量也不同,而存储系统所使用的缩减率可能会不断发生变化,因此,在确定
存储系统能够存储的数据的最大数据量之前,首先需要确定存储系统所使用的缩减率。例
如,管理节点可以获取存储系统中当前存储的所有的元数据的数据量,然后根据元数据的
数据量和与元数据对应的数据的数据量之间的预设比值,计算出存储系统接收的在进行压
缩操作之前的数据的第一数据量。然后,获取存储系统的数据存储空间中存储的所有数据
的第二数据量,该第一数据量和第二数据量的比值即存储系统当前使用的缩减率。
前使用的缩减率为3,存储系统的存储空间的总量为100TB,则管理节点确定存储系统能够
存储的数据的最大数据量为300TB。
未排序的指纹记录项,可以在重删元数据空间不足时,通过淘汰策略进行批量移除,从而使
得存储系统可以快递地获取能够使用的重删元数据空间。而对于排序后的指纹记录项,需
要依赖排序结果进行移除,例如,出现同一指纹的指纹记录项的次数是否大于或等于有预
设次数等,可见,移除排序后的指纹记录项需要一定的时延。因此,本申请实施例中,针对上
述两种不同的指纹记录项,可以设置不同的重删元数据空间在存储空间的占比与该存储系
统中存储的数据的数据量之间的对应关系,使得对重删元数据空间的调整更加精确。
删元数据空间。作为一种示例,请参考表2和表3,分别为第一重删元数据空间的占比与该存
储系统中存储的数据的数据量之间的对应关系,以及,第二重删元数据空间的占比与该存
储系统中存储的数据的数据量之间的对应关系。在表2和表3中,存储的数据的数据量用数
据量与存储空间的总量的百分比来表示。
0% 2.00%
60% 1.00%
85% 0.20%
95% 0.10%
比大于或等于60%时候,才需要降低该第一重删元数据空间的占比,例如,从2%降到1%;
当数据量与存储空间的总量百分比大于或等于85%时,将第一重删元数据空间的占比调整
为较为接近存储系统所要求的占比,例如,存储系统要求第一重删元数据空间的占比只能
为0.1%,则在这种情况下,可以将第一重删元数据空间的占比调整为接近0.1%的取值,例
如,降为0.2%。当数据量与存储空间的总量百分比大于或等于95%时,按照存储系统要求
的第一重删元数据空间的占比(例如,0.1%)严格控制。
数据空间的占比的下降速率越慢。
0% 0.40%
25% 0.30%
50% 0.20%
75% 0.10%
的速度较慢,因此,在数据量与存储空间的总量百分比大于或等于25%时候,则需要降低该
第二重删元数据空间的占比,例如,从0.4%降到0.3%。在此不对表3中的其他表项一一进
行说明。
数据的最大数据量的乘积,第二重删元数据空间的大小为该第二重删元数据空间的占比与
该最大数据量的乘积,从而将第一重删元数据空间和第二重删元数据空间调整为对应的取
值。其中,获取该存储系统能够存储的数据的最大数据量的方式与前述示例中的方式相似,
在此不再赘述。
够确定出的重复指纹的数量也越多,从而可以提高存储系统进行重复数据删除操作的重删
率和重删速率。
小数据存储空间来增大重删元数据空间,或者,可以理解为,占用部分数据存储空间以用于
存储指纹记录项。相应地,减小重删元数据空间的大小可以理解为通过增大数据存储空间
来减小重删元数据空间,或者,可以理解为,重删元数据空间退还其占用的部分数据存储空
间。
储系统的逻辑卷的卷元数据等,从而可以将存储系统的元数据存储空间按照存储的元数据
的作用分为重删元数据空间和其他元数据空间。而其他元数据空间中,存储池的元数据和
卷元数据等的数据量较为固定,因此,其他元数据空间中存储的元数据的数据量,与存储系
统中存储的数据的元数据的数据量相关联,当存储系统中存储的数据的数据量较小时,其
他元数据空间中的元数据的数据量也较小。这样,当其他元数据空间有剩余存储空间时,重
删元数据空间也可以使用该其他元数据空间中的剩余存储空间。
加而增加的,因此,当存储系统中存储的数据较少时,其他元数据空间中也有剩余存储空
间,则重删元数据空间也可以利用其他元数据空间中的剩余存储空间,来调整重删元数据
空间的大小,重删元数据空间的可用存储空间(元数据空间的剩余存储空间),即该存储系
统能够存储的数据的最大数据量,与存储系统中除重删元数据空间外的其他元数据的数据
量的差值。在这种情况下,调整重删元数据空间的大小的具体过程,与前述占用数据存储空
间调整重删元数据空间的大小的方式相似,在此不再赘述。
小是以存储系统中存储的数据的数据量为调整因子,因此,通过该方法设置的重删元数据
空间的大小,也能够满足用户的数据存储需求,不影响存储系统的存储性能。
模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件
结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
管理装置400可以是硬件结构、软件模块、或硬件结构加软件模块。存储空间的管理装置400
可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他
分立器件。
或者,获取单元402可以用于存储空间的管理装置400和其它模块进行通信,其可以是电路、
器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集
成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
存储空间的管理装置500可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也
可以包含芯片和其他分立器件。
能。示例性地,处理器520可以根据存储系统中存储的数据的数据量的大小,调整所述存储
系统的重删元数据空间的大小,具体参见方法示例中的详细描述,此处不做赘述。
接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交
互。处理器520可能和存储器530协同操作。处理器520可能执行存储器530中存储的程序指
令。所述至少一个存储器中的至少一个可以包括于处理器中。
通信。示例性地,该其它设备可以是存储客户端或者存储设备。处理器520可以利用接口510
收发数据。
总线在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。
所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表
示,但并不表示仅有一根总线或一种类型的总线。
件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以
是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体
现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
memory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存
储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不
限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,
用于存储程序指令和/或数据。
包含芯片和其他分立器件。
算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令
时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算
机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可
以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存
储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过
有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如
红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计
算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介
质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬
盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质
(例如,SSD)等。