存储系统重删方法、系统、装置及存储介质与流程

文档序号:26726910发布日期:2021-09-22 21:15阅读:93来源:国知局
存储系统重删方法、系统、装置及存储介质与流程

1.本发明涉及存储系统领域,特别涉及一种存储系统重删方法、系统、装置及计算机可读存储介质。


背景技术:

2.在这个存储设备剧增时代,存储应用千变万化,对存储设备高负载、低时延、大容量的要求也越来越高,这就需要存储设备的具备足够高的iops、充足的磁盘空间,从而支撑日益膨胀的海量数据业务。
3.重删特性作为一种空间优化的高级特性能够提供大于磁盘空间(一般能提供3倍以上)的存储服务,同时因为重删特性的存在,后台磁盘的碎片整理功能(垃圾回收),依赖一对多的反向元数据块,这些额外的元数据存储对整个存储系统的性能产生了很大的影响。
4.为此,需要一种对存储系统影响更小的存储系统重删方法。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种存储系统重删方法、系统、装置及计算机可读存储介质,对存储系统影响更小,提高系统性能。其具体方案如下:
6.一种存储系统重删方法,包括:
7.当数据不可重删时,将所述数据和与所述数据对应的反向元数据一同存储至硬盘中;
8.插入与所述数据对应的lh元数据和hp元数据;其中,所述lh元数据用于记载所述数据的lba与hash之间的对应关系,所述hp元数据用于记载所述hash与所述数据的pba之间的对应关系,所述hash为所述数据的哈希值;
9.当所述数据被多次引用触发重删机制后,所述数据每次被引用时,追加与新增引用对应的反向元数据至重删块中;所述重删块用于保存所述数据和相对应的反向元数据;
10.插入与新增引用对应的lh元数据并更新所述hp元数据。
11.可选的,还包括:
12.判断与所述数据对应的反向元数据数量是否超过预设的重删阈值;
13.若超过所述重删阈值,则另存一份与所述数据一致的备用数据和与所述备用数据对应的反向元数据,并创建与所述备用数据对应的新重删块。
14.可选的,还包括:
15.对所述数据与相应的反向元数据进行数据搬迁;
16.利用与所述数据对应的反向元数据,更新lh元数据和所述hp元数据。
17.本发明还公开了一种存储系统重删系统,包括:
18.数据存储模块,用于当数据不可重删时,将所述数据和与所述数据对应的反向元数据一同存储至硬盘中;
19.元数据插入模块,用于插入与所述数据对应的lh元数据和hp元数据;其中,所述lh元数据用于记载所述数据的lba与hash之间的对应关系,所述hp元数据用于记载所述hash与所述数据的pba之间的对应关系,所述hash为所述数据的哈希值;
20.重删模块,用于当所述数据被多次引用触发重删机制后,所述数据每次被引用时,追加与新增引用对应的反向元数据至重删块中;所述重删块用于保存所述数据和相对应的反向元数据;
21.元数据更新模块,用于插入与新增引用对应的lh元数据并更新所述hp元数据。
22.可选的,还包括:
23.重删阈值判断模块,用于判断与所述数据对应的反向元数据数量是否超过预设的重删阈值;
24.重删比模块,若所述重删阈值判断模块判定与所述数据对应的反向元数据数量超过所述重删阈值,则另存一份与所述数据一致的备用数据和与所述备用数据对应的反向元数据,并创建与所述备用数据对应的新重删块。
25.可选的,还包括:
26.数据搬迁模块,用于对所述数据与相应的反向元数据进行数据搬迁;
27.lh元数据更新模块,用于利用与所述数据对应的反向元数据,更新lh元数据和所述hp元数据。
28.本发明还公开了一种存储系统重删装置,包括:
29.存储器,用于存储计算机程序;
30.处理器,用于执行所述计算机程序以实现如前述的存储系统重删方法。
31.本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的存储系统重删方法。
32.本发明中,存储系统重删方法,包括:当数据不可重删时,将数据和与数据对应的反向元数据一同存储至硬盘中;插入与数据对应的lh元数据和hp元数据;其中,lh元数据用于记载数据的lba与hash之间的对应关系,hp元数据用于记载hash与数据的pba之间的对应关系,hash为数据的哈希值;当数据被多次引用触发重删机制后,数据每次被引用时,追加与新增引用对应的反向元数据至重删块中;重删块用于保存数据和相对应的反向元数据;插入与新增引用对应的lh元数据并更新hp元数据。
33.本发明引入了lh元数据和hp元数据,并且不再将反向元数据作为元数据进行保存,使得不再新增反向元数据,并且对于引用关系的记载也不再依靠反向元数据,而是依靠每次引用都会新增的lh元数据和持续更新的hp元数据,使得元数据与引用关系之间的对应更加简单和明确。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
35.图1为本发明实施例公开的一种存储系统重删方法流程示意图;
36.图2为本发明实施例公开的另一种存储系统重删方法流程示意图;
37.图3为本发明实施例公开的一种存储系统重删系统结构示意图。
具体实施方式
38.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.本发明实施例公开了一种存储系统重删方法,参见图1所示,该方法包括:
40.s11:当数据不可重删时,将数据和与数据对应的反向元数据一同存储至硬盘中。
41.具体的,当数据首次存放,或者超过重删比时,数据不可触发重删优化,在数据不重删时,保存数据,并保存与数据对应的反向元数据,数据与反向元数据一同落盘,并作为一个整体数据进行保存,不再将数据的反向元数据与其它元数据一同进行保存,直接存储到数据区。
42.s12:插入与数据对应的lh元数据和hp元数据。
43.具体的,由于反向元数据不作为元数据保存,此时仍需要元数据描述数据与引用关系之间的对应关系,因此,新引入lh元数据和hp元数据,其中,lh元数据用于记载数据的lba(logical block address,逻辑区块地址)与hash之间的对应关系,hp元数据用于记载hash与数据的pba(physics block address,物理区块地址)之间的对应关系,hash为数据的哈希值,将原来lba与pba之间的直接映射关系,改为了lba与hash、hash与pba之间的间接映射关系,为后续将反向元数据落盘提供了基础。
44.s13:当数据被多次引用触发重删机制后,数据每次被引用时,追加与新增引用对应的反向元数据至重删块中;重删块用于保存数据和相对应的反向元数据。
45.具体的,当数据被多次引用触发重删后,每次数据被引用时,虽然依旧会生成相应的反向元数据,但不再将反向元数据以元数据的形式保存,而是直接以追加的形式保存至重删块中,直接落盘,减少了元数据的生成。
46.其中,重删块用于保存数据和相对应的反向元数据,重删块中数据和相对应的反向元数据依序保存。
47.需要说明的是,反向元数据不再只保存一个,每次新增引用时,都会增加一个反向元数据,记录新的pba与lba的对应关系。
48.s14:插入与新增引用对应的lh元数据并更新hp元数据。
49.具体的,利用lh元数据记录新增的引用,由于重删块中新增了反向元数据,因此,数据的pba发生了改变,因此,需要更新hp元数据。
50.具体的,每次新增引用,都会新增一个lh元数据,使得每个lh元数据对应一次引用,不再像现有技术中使用反向元数据中记载的一对多的引用关系,引用关系的记载更加清晰和明确,同时,由于引入了hash作为中间量,因此,只需要更新hp元数据即可,hp元数据也只需记载hash与数据的pba之间的一个对应关系,更为清晰明确。
51.可见,本发明实施例引入了lh元数据和hp元数据,并且不再将反向元数据作为元数据进行保存,使得不再新增反向元数据,并且对于引用关系的记载也不再依靠反向元数
据,而是依靠每次引用都会新增的lh元数据和持续更新的hp元数据,使得元数据与引用关系之间的对应更加简单和明确。
52.本发明实施例公开了一种具体的存储系统重删方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
53.s21:当数据不可重删时,将数据和与数据对应的反向元数据一同存储至硬盘中;
54.s22:插入与数据对应的lh元数据和hp元数据;其中,lh元数据用于记载数据的lba与hash之间的对应关系,hp元数据用于记载hash与数据的pba之间的对应关系,hash为数据的哈希值;
55.s23:当数据被多次引用触发重删机制后,数据每次被引用时,追加与新增引用对应的反向元数据至重删块中;重删块用于保存数据和相对应的反向元数据;
56.s24:插入与新增引用对应的lh元数据并更新hp元数据;
57.s25:判断与数据对应的反向元数据数量是否超过预设的重删阈值;
58.s26:若超过重删阈值,则另存一份与数据一致的备用数据和与备用数据对应的反向元数据,并创建与备用数据对应的新重删块。
59.具体的,引用重删比机制,当数据被引用次数过多时,不再新增反向元数据以及插入新的lh元数据等,而是重新保存另一份备用数据,以及相应的新重删块,避免过度重删,备用数据依旧遵循s23与s24的重删方法,例如,重删阈值为20,当数据被引用20次,重删块中与数据一同存储了共20次不同的反向元数据,当数据被引用第21次时,重新保存新一份备用数据。
60.其中,在生成新的备用数据的同时,还利用之前与数据对应的反向元数据生成正向元数据以便重新保存另一份备用数据。
61.s27:对数据与相应的反向元数据进行数据搬迁;
62.s28:利用与数据对应的反向元数据,更新lh元数据和hp元数据。
63.具体的,在对重删块中的数据与相应的反向元数据进行数据搬迁时,利用与数据对应的反向元数据,重新确定每项引用关系是否还存在,如果部分引用关系不存在,则删除失效的lh元数据,起到对lh元数据更新的效果,同时,由于数据搬迁,数据的pba发生变化,因此,搬迁后也需要更新数据的hp元数据。
64.需要说明的是,s27并不一定要晚于s26之后执行,可以先于s23或s25执行,也可以晚于s24或s26执行,在此不对s27的执行顺序做过多限定。
65.相应的,本发明实施例还公开了一种存储系统重删系统,参见图3所示,该系统包括:
66.数据存储模块11,用于当数据不可重删时,将数据和与数据对应的反向元数据一同存储至硬盘中;
67.元数据插入模块12,用于插入与数据对应的lh元数据和hp元数据;其中,lh元数据用于记载数据的lba与hash之间的对应关系,hp元数据用于记载hash与数据的pba之间的对应关系,hash为数据的哈希值;
68.重删模块13,用于当数据被多次引用触发重删机制后,数据每次被引用时,追加与新增引用对应的反向元数据至重删块中;重删块用于保存数据和相对应的反向元数据;
69.元数据更新模块14,用于插入与新增引用对应的lh元数据并更新hp元数据。
70.可见,本发明实施例引入了lh元数据和hp元数据,并且不再将反向元数据作为元数据进行保存,使得不再新增反向元数据,并且对于引用关系的记载也不再依靠反向元数据,而是依靠每次引用都会新增的lh元数据和持续更新的hp元数据,使得元数据与引用关系之间的对应更加简单和明确。
71.具体的,还可以包括:重删阈值判断模块和重删比模块;其中,
72.重删阈值判断模块,用于判断与数据对应的反向元数据数量是否超过预设的重删阈值;
73.重删比模块,若重删阈值判断模块判定与数据对应的反向元数据数量超过重删阈值,则另存一份与数据一致的备用数据和与备用数据对应的反向元数据,并创建与备用数据对应的新重删块。
74.具体的,还可以包括:数据搬迁模块和lh元数据更新模块;其中,
75.数据搬迁模块,用于对数据与相应的反向元数据进行数据搬迁;
76.lh元数据更新模块,用于利用与数据对应的反向元数据,更新lh元数据和hp元数据。
77.此外,本发明实施例还公开了一种存储系统重删装置,包括:
78.存储器,用于存储计算机程序;
79.处理器,用于执行计算机程序以实现如前述的存储系统重删方法。
80.另外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的存储系统重删方法。
81.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
82.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
83.以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1