一种存储系统的重删模块的性能优化方法、系统及装置与流程

文档序号:24179788发布日期:2021-03-09 11:34阅读:57来源:国知局
一种存储系统的重删模块的性能优化方法、系统及装置与流程

1.本发明涉及存储领域,具体涉及一种存储系统的重删模块的性能优化方法、系统及装置。


背景技术:

2.在大数据时代,单纯依靠提升存储容量,远远赶不上数据增加的速度,因此数据重删技术诞生。
3.数据重删,即重复数据删除(deduplication),是一种可自动识别并删除重复数据的技术,属于一种高级的数据压缩方式。开启数据重删功能后,系统将通过算法识别重复数据,并将相同数据只保留一个副本而删除多余的重复数据,原来的重复数据则被替换成指向保留的单一副本的引用。通过这种方式达到消除冗余数据、降低存储容量需求的目的。
4.固态硬盘(ssd盘)存在寿命限制。数据写入后再处理的方式,需要先将数据写到磁盘上,在空闲时再将数据读上来进行重复数据删除,之后再写入存储空间中,其相比在线处理增加了一次写操作,这增加了ssd盘的磨损,缩短了其使用寿命。所以,全闪存阵列中通常采用在线方式实现重复数据删除压缩。
5.重复数据删除技术在空间节省及io效率方面起到了明显的提升作用,但是,这项技术在现有技术中的使用流程(如图4所示)通常为:
6.(1)主机下发数据(io),然后卷将数据按照重删算法所采取的分块方式划分为不同粒度,并下发到重删模块;
7.(2)重删模块通过哈希算法计算数据的指纹值,判断指纹值是否为全零数据指纹值,若不是,进行下一步流程;若是,则对比数据是否为全零数据,若是,则直接处理全零数据,建立lp映射关系和pl映射关系,结束本次流程,若否,则不是全零数据(哈希冲突),则将数据单独落盘(即存储至pba);
8.(3)通过计算出的指纹值到指纹库查询,判断指纹库是否存在该指纹值,若存在,则按照重复数据进行处理,若不存在,则按照非重复数据进行处理;
9.(4)非重复数据处理时,将数据的指纹值插入到指纹库,然后将数据正常落盘,并将数据的逻辑地址与物理地址建立映射,以便下次相同数据下发时,指纹库中存在了相同的指纹值,即可识别为重复数据。
10.针对以上流程,在实际的测试中发现,存储系统开重删模块的性能大概是不开重删模块时的70

80%之间。可见现有技术在开重删模块时,影响到系统的性能与带宽。
11.为此,本发明提供一种存储系统的重删模块的性能优化方法、系统及装置,用于解决上述问题。


技术实现要素:

12.针对现有技术的上述不足,本发明提供一种存储系统的重删模块的性能优化方法、系统及装置,用于对存储系统中重删模块进行性能优化,以提高存储系统的性能与带
宽。
13.第一方面,本发明提供一种存储系统的重删模块的性能优化方法,该性能优化方法基于全零数据识别单元,所述全零数据识别单元采用硬件实现,该性能优化方法包括步骤:
14.主机下发io数据至逻辑卷;
15.逻辑卷对主机下发的io数据进行粒度划分,并下发至全零数据识别单元;
16.全零数据识别单元识别出逻辑卷下发的数据中的全零数据,并将逻辑卷下发的数据中的非全零数据下发至存储系统的重删模块;
17.全零数据识别单元在识别出逻辑卷下发的数据中的全零数据后,建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系;
18.重删模块对全零数据识别单元下发的非全零数据进行重删处理。
19.进一步地,所述全零数据识别单元在建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系后,向逻辑卷回调返回对全零数据的处理结果;
20.逻辑卷在接收到的处理结果为失败时,重新下发数据至全零数据识别单元;逻辑卷在接收到的处理结果为成功时,全零数据处理结束。
21.进一步地,重删模块对全零数据识别单元下发的非全零数据进行重删处理,实现方法,包括步骤:
22.s1、通过哈希算法计算全零数据识别单元下发的非全零数据的指纹值;
23.s2、判断指纹库中是否存在所述的指纹值:
24.若是,则判定全零数据识别单元下发的非全零数据为重复数据,不对其进行落盘,之后执行步骤s3;
25.若否,则判定全零数据识别单元下发的非全零数据为非重复数据,将该非全零数据落盘,将所述指纹值写入指纹库,并建立该指纹值与对应数据的物理地址的映射关系,之后执行步骤s3;
26.步骤s3、建立存放所述非全零数据的卷地址与物理地址的映射关系。
27.第二方面,本发明提供一种存储系统的重删模块的性能优化系统,该性能优化系统包括全零数据识别单元,所述全零数据识别单元采用硬件实现,该性能优化系统还包括:
28.主机,用于下发io数据至逻辑卷;
29.逻辑卷,用于接收主机下发的io数据,对接收到的io数据进行粒度划分,并下发至全零数据识别单元;
30.全零数据识别单元,用于接收逻辑卷下发的数据,识别出逻辑卷下发的数据中的全零数据,并将逻辑卷下发的数据中的非全零数据下发至存储系统的重删模块;在识别出逻辑卷下发的数据中的全零数据后,用于建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系;
31.重删模块,用于对全零数据识别单元下发的非全零数据进行重删处理。
32.进一步地,所述全零数据识别单元,还用于在建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系后,向逻辑卷回调返回对全零数据的处理结果;
33.所述的逻辑卷,还用于在接收到的处理结果为失败时,重新下发数据至全零数据识别单元;还用于在接收到的处理结果为成功时,控制本次全零数据处理结束。
34.进一步地,所述重删模块包括:
35.指纹值计算单元,用于通过哈希算法计算全零数据识别单元下发来的非全零数据的指纹值;
36.判断单元,用于判断指纹库中是否存在所述的指纹值;
37.第一处理单元,用于在判断单元判定全零数据识别单元下发的非全零数据为重复数据时,对数据不落盘;
38.第二处理单元,用于在判断单元判定全零数据识别单元下发的非全零数据为非重复数据时,将该非全零数据落盘,将所述指纹值写入指纹库,并建立该指纹值及其对应数据的物理地址的映射关系;
39.地址映射单元,用于建立存放所述非全零数据的卷地址与物理地址的映射关系。
40.第三方面,本发明提供一种终端,包括:
41.处理器;
42.用于存储处理器的执行指令的存储器;
43.其中,所述处理器被配置为执行以上各方面所述的方法。
44.本发明的有益效果在于,
45.本发明提供的存储系统的重删模块的性能优化方法、系统及装置,通过硬件提前识别到全零数据,省去传统方式下对全零数据进行指纹计算(哈希值计算)及逐字节比较,一定程度上有助于节省系统软件上的耗时,从而有助于提升系统开重删时的性能。
46.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1是本发明一个实施例的方法的示意性流程图。
49.图2是本发明一个实施例的系统的示意性框图。
50.图3为本发明实施例提供的一种终端的结构示意图。
51.图4为重复数据删除技术在现有技术中的一种使用方法流程示意图。
具体实施方式
52.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
53.下面对本发明中出现的关键术语进行解释。
54.指纹值:数据经过哈希算法处理之后得到的一个数据值,即hash值(哈希值)。
55.p_zero:系统中预设的全零数据的pba地址。
56.pba:io数据存放的物理地址。
57.lba:io数据存放的卷地址。
58.hp映射关系:是指io数据的hash值与io数据的pba的之间映射关系。
59.p_zero

l映射关系:简称pl映射关系,是指io数据的p_zero与io数据的lba之间映射关系。
60.lp映射关系:是io数据的lba及pba之间的映射关系。
61.图1是本发明一个实施例的方法的示意性流程图。
62.如图1所示,该方法100基于全零数据识别单元,包括:
63.步骤110,主机下发io数据至逻辑卷。
64.步骤120,逻辑卷对主机下发的io数据进行粒度划分,并下发至全零数据识别单元。
65.具体地,所述粒度划分可按照现有重删算法(对应现有的重复数据删除技术)所采取的分块方式,将主机下发的io数据划分为不同粒度(4k/8k)。
66.各划分所得到的不同粒度,由卷层面调用全零数据识别单元下发到重删模块。
67.步骤130,全零数据识别单元识别出逻辑卷下发的数据中的全零数据,并将逻辑卷下发的数据中的非全零数据下发至存储系统的重删模块;全零数据识别单元在识别出逻辑卷下发的数据中的全零数据后,建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系。
68.其中,全零数据识别单元采用硬件(比如控制芯片)实现,使用时,可识别出逻辑卷下发的数据(上述划分所得到的不同粒度)中的全零数据,并可将逻辑卷下发的非全零数据直接下发/传输至存储系统的重删模块进行后续处理。本发明采用硬件方式识别出逻辑卷下发的数据中的全零数据,一定程度上有助于增加识别效率。
69.具体地,全零数据识别单元在识别出全零数据后,直接对全零数据进行处理,建立p_zero

l的映射关系。所述p_zero

l的映射关系,即为系统p_zero与全零数据的lba(卷地址)的映射关系,简称为pl映射关系。
70.可见全零数据识别单元,一方面可识别出逻辑卷下发的数据中的全零数据并直接对识别出的全零数据进行处理,另一方面还可将逻辑卷下发的数据中的非全零数据继续下发,开始进行非全零数据的重删处理。
71.具体实现时,逻辑卷可通过设定的接口(接口为上下文形式)调用所述的全零数据识别单元。
72.具体实现时,全零数据识别单元可调用接口建立p_zero

l的映射关系。
73.可选地,所述全零数据识别单元在建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系后,向逻辑卷回调返回对全零数据的处理结果。
74.所述处理结果,为全零数据识别单元在建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系的结果,具体为成功/失败。
75.逻辑卷在接收到的处理结果为失败时,重新下发数据至全零数据识别单元;逻辑卷在接收到的处理结果为成功时,全零数据处理结束。
76.步骤140,重删模块对全零数据识别单元下发的非全零数据进行重删处理。
77.具体地,步骤140的实现方法包括:
78.步骤s1、通过哈希算法计算全零数据识别单元下发的非全零数据的指纹值;
79.步骤s2、判断指纹库中是否存在所述的指纹值:
80.若是,则判定全零数据识别单元下发的非全零数据为重复数据,不对其进行落盘,之后执行步骤s3;
81.若否,则判定全零数据识别单元下发的非全零数据为非重复数据,将该非全零数据落盘,将所述指纹值写入指纹库,并建立该指纹值与对应数据的物理地址的映射关系,之后执行步骤s3;
82.步骤s3、建立所述非全零数据的lba

pba映射关系,即建立存放所述非全零数据的卷地址与物理地址的映射关系。
83.可见本方法100,通过硬件提前识别到全零数据,省去传统方式下对全零数据进行指纹计算(哈希值计算)及逐字节比较,一定程度上有助于节省系统软件上的耗时,从而有助于提升系统开重删时的性能。
84.图2是本发明提供的存储系统的重删模块的性能优化系统的一个实施例。
85.如图2所示,该性能优化系统200包括全零数据识别单元201,所述全零数据识别单元201采用硬件实现,该性能优化系统200还包括:
86.主机202,用于下发io数据至逻辑卷;
87.逻辑卷203,用于接收主机下发的io数据,对接收到的io数据进行粒度划分,并下发至全零数据识别单元;
88.全零数据识别单元201,用于接收逻辑卷下发的数据,识别出逻辑卷下发的数据中的全零数据,并将逻辑卷下发的数据中的非全零数据下发至存储系统的重删模块;还用于在识别出逻辑卷下发的数据中的全零数据后,建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系;
89.重删模块204,用于对全零数据识别单元下发的非全零数据进行重删处理。
90.可选地,作为本发明的一个实施例,所述全零数据识别单元201,还用于在建立系统中预设的用于存放全零数据的物理地址与识别出的全零数据的存放卷地址之间的映射关系后,向逻辑卷回调返回对全零数据的处理结果;
91.所述的逻辑卷203,还用于在接收到的处理结果为失败时,重新下发数据至全零数据识别单元;还用于在接收到的处理结果为成功时,控制本次全零数据处理结束。
92.可选地,作为本发明的一个实施例,所述重删模块204包括:
93.指纹值计算单元2041,用于通过哈希算法计算全零数据识别单元下发来的非全零数据的指纹值;
94.判断单元2042,用于判断指纹库中是否存在所述的指纹值;
95.第一处理单元2043,用于在判断单元2042判定全零数据识别单元下发的非全零数据为重复数据时,对数据不落盘;
96.第二处理单元2044,用于在判断单元2042判定全零数据识别单元下发的非全零数据为非重复数据时,将该非全零数据落盘,将所述指纹值写入指纹库,并建立该指纹值及其对应数据的物理地址的映射关系;
97.地址映射单元2045,用于建立存放所述非全零数据的卷地址与物理地址的映射关系。
98.图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的方法100。
99.其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
100.其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
101.处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
102.通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
103.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
104.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1