一种基于全闪存阵列的数据压缩方法及系统技术方案

技术编号:24289715 阅读:45 留言:0更新日期:2020-05-26 20:04
本申请实施例公开了一种基于全闪存阵列的数据压缩方法及系统,用于提高数据去重效率,提高存储系统的IO性能。本申请实施例方法包括:获取性能层中被压缩的数据;将被压缩的数据切分为预设长度的第一数据块,计算第一数据块的哈希值;将第一数据块的哈希值与存储于内存中的第一去重指纹库进行匹配,以确定是否存在第一匹配指纹,第一去重指纹库的指纹为存储于容量层中的第二去重指纹库中对应指纹的部分内容;若不存在,则确定第一数据块为非重复数据块,则对第一数据块进行压缩,并将压缩后的第一数据块回写至容量层,而将第一数据块的指纹及部分指纹对应更新至第二去重指纹库及第一去重指纹库中。

A data compression method and system based on full flash array

【技术实现步骤摘要】
一种基于全闪存阵列的数据压缩方法及系统
本申请涉及数据存储
,尤其涉及一种基于全闪存阵列的数据压缩方法及系统。
技术介绍
一般地,为了节省数据的存储空间,文件在存储时,会对文件中的数据进行去重压缩,以减小数据的占用空间。所谓去重,即通过计算数据块的安全哈希摘要(比如SHA1指纹)来唯一识别数据块,避免了数据的逐个字符的匹配,而且存储系统只需要简单地维护安全哈希摘要的索引表,就可以实现快速方便地识别重复数据,且重复的数据内容只需要记录相应的数据指针信息即可达到节省存储空间的目的。而数据压缩也是一种冗余数据消除技术,主要通过编码的方式消除冗余数据信息,即在保证原有数据信息不丢失的前提下,将原始内容进行转换,对于重复的字节序列用更少字节数的编码表示,从而达到消除部分冗余数据并最终节省存储空间的目的。而在全闪存阵列中,因为去重指纹库都存储在容量层中,所以每次在去重前,都需要去容量层中进行匹配,且去重指纹库在容量层中所占用的空间存储率较大,故导致每次的去重检索都需要花费较大的IO开销。
技术实现思路
本申请实施例提出了一种基于全闪存阵列的数据压缩方法及系统,用于提高数据去重的效率,从而提高存储系统的IO性能。本申请实施例第一方面提供了一种基于全闪存阵列的数据压缩方法,该闪存阵列包括:性能层和容量层,该方法包括:获取性能层中被压缩的数据;将所述被压缩的数据切分为预设长度的第一数据块,计算所述第一数据块的哈希值;将所述第一数据块的哈希值与存储于内存中的第一去重指纹库进行匹配,以确定是否存在第一匹配指纹,所述第一去重指纹库的指纹为存储于所述容量层中的第二去重指纹库中对应指纹的部分内容;若不存在所述第一匹配指纹,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹及部分指纹对应更新至所述第二去重指纹库及第一去重指纹库中。优选的,该方法还包括:若第一去重指纹库中存在所述第一匹配指纹,则将所述第一数据块与存储于所述容量层中的所述第二去重指纹库进行匹配,以确定是否存在第二匹配指纹;若第二去重指纹库中存在所述第二匹配指纹,则确定所述第一数据块为重复数据,并将所述第一数据块的元数据信息回写至所述容量层的元数据区域,所述元数据信息包括所述第一数据块在所述被压缩数据中的逻辑地址、所述第二匹配指纹及所述第二匹配指纹的物理地址之间的对应关系。优选的,该方法还包括:若第二去重指纹库中不存在所述第二匹配指纹,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹及部分指纹对应更新至所述第二去重指纹库及第一去重指纹库中。优选的,所述将压缩后的第一数据块回写至所述容量层,包括:将压缩后的第一数据块以日志追加写的方式回写至日志存储单元,并在所述日志存储单元写满后,将所述日志存储单元回写至所述容量层,所述日志存储单元的存储空间为所述容量层最小写入单元的整数倍。优选的,该方法还包括:对所述第一去重指纹库和所述第二去重指纹库中指纹的引用次数执行计数管理。优选的,在将压缩后的第一数据块回写至所述容量层之后,所述方法还包括:将第一数据块的元数据信息更新至容量层的文件元数据区域或第二去重指纹库中,所述元数据信息包括:所述第一数据块压缩后的物理存储地址及所述第一数据块压缩后的长度,以用于后期根据所述元数据信息对所述第一数据块进行解压。本申请实施例第二方面提供了一种基于全闪存阵列的数据压缩系统,该全闪存阵列包括性能层和容量层,该系统包括:获取单元,用于获取性能层中被压缩的数据;切分计算单元,用于将所述被压缩的数据切分为预设长度的第一数据块,计算所述第一数据块的哈希值;第一匹配单元,用于将所述第一数据块的哈希值与存储于内存中的第一去重指纹库进行匹配,以确定是否存在第一匹配指纹,所述第一去重指纹库的指纹为存储于所述容量层中的第二去重指纹库中对应指纹的部分内容;第一压缩单元,用于在不存在所述第一匹配指纹时,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹及部分指纹对应更新至所述第二去重指纹库及第一去重指纹库中。优选的,该系统还包括:第二匹配单元,用于在第一去重指纹库中存在所述第一匹配指纹时,则将所述第一数据块与存储于所述容量层中的所述第二去重指纹库进行匹配,以确定是否存在第二匹配指纹;去重单元,用于在第二去重指纹库中存在所述第二匹配指纹时,确定所述第一数据块为重复数据,并将所述第一数据块的元数据信息回写至所述容量层的元数据区域,所述元数据信息包括所述第一数据块在所述被压缩数据中的逻辑地址、所述第二匹配指纹及所述第二匹配指纹的物理地址之间的对应关系。优选的,该系统还包括:第二压缩单元,用于在第二去重指纹库中不存在所述第二匹配指纹时,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹及部分指纹对应更新至所述第二去重指纹库及第一去重指纹库中。优选的,所述第一压缩单元,包括:第一压缩模块,用于将压缩后的第一数据块以日志追加写的方式回写至日志存储单元,并在所述日志存储单元写满后,将所述日志存储单元回写至所述容量层,所述日志存储单元的存储空间为所述容量层最小写入单元的整数倍。优选的,所述第二压缩单元,包括:第二压缩模块,用于将压缩后的第一数据块以日志追加写的方式回写至日志存储单元,并在所述日志存储单元写满后,将所述日志存储单元回写至所述容量层,所述日志存储单元的存储空间为所述容量层最小写入单元的整数倍。优选的,所述系统还包括:计数单元,用于对所述第一去重指纹库和所述第二去重指纹库中指纹的引用次数执行计数管理。优选的,所述系统还包括:更新单元,用于将第一数据块的元数据信息更新至容量层的文件元数据区域或第二去重指纹库中,所述元数据信息包括:所述第一数据块压缩后的物理存储地址及所述第一数据块压缩后的长度,以用于后期根据所述元数据信息对所述第一数据块进行解压。本申请实施例还提供了一种基于全闪存阵列的数据压缩系统,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本申请实施例第一方面提供的基于全闪存阵列的数据压缩方法。本申请实施例还提供了一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本申请实施例第一方面提供的基于全闪存阵列的数据压缩方法。从以上技术方案可以看出,本申请实施例具有以下优点:本申请实施例中,在内存中建立第一去重指纹库,且第一去重指纹库的指纹为容量层中第二去重指纹库中对应指纹的部分内容,在获取到被压缩数据后,将被压缩数据切分为预设长度本文档来自技高网...

【技术保护点】
1.一种基于全闪存阵列的数据压缩方法,其特征在于,所述全闪存阵列包括性能层和容量层,所述方法包括:/n获取性能层中被压缩的数据;/n将所述被压缩的数据切分为预设长度的第一数据块,计算所述第一数据块的哈希值;/n将所述第一数据块的哈希值与存储于内存中的第一去重指纹库进行匹配,以确定是否存在第一匹配指纹,所述第一去重指纹库的指纹为存储于所述容量层中的第二去重指纹库中对应指纹的部分内容;/n若所述第一去重指纹库中不存在所述第一匹配指纹,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹及部分指纹对应更新至所述第二去重指纹库及所述第一去重指纹库中。/n

【技术特征摘要】
1.一种基于全闪存阵列的数据压缩方法,其特征在于,所述全闪存阵列包括性能层和容量层,所述方法包括:
获取性能层中被压缩的数据;
将所述被压缩的数据切分为预设长度的第一数据块,计算所述第一数据块的哈希值;
将所述第一数据块的哈希值与存储于内存中的第一去重指纹库进行匹配,以确定是否存在第一匹配指纹,所述第一去重指纹库的指纹为存储于所述容量层中的第二去重指纹库中对应指纹的部分内容;
若所述第一去重指纹库中不存在所述第一匹配指纹,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹及部分指纹对应更新至所述第二去重指纹库及所述第一去重指纹库中。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一去重指纹库中存在所述第一匹配指纹,则将所述第一数据块与存储于所述容量层中的所述第二去重指纹库进行匹配,以确定是否存在第二匹配指纹;
若所述第二去重指纹库中存在所述第二匹配指纹,则确定所述第一数据块为重复数据,并将所述第一数据块的元数据信息回写至所述容量层的元数据区域,所述元数据信息包括所述第一数据块在所述被压缩数据中的逻辑地址、所述第二匹配指纹及所述第二匹配指纹的物理地址之间的对应关系。


3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第二去重指纹库中不存在所述第二匹配指纹,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹及部分指纹对应更新至所述第二去重指纹库及所述第一去重指纹库中。


4.根据权利要求1或3所述的方法,其特征在于,所述将压缩后的第一数据块回写至所述容量层,包括:
将压缩后的第一数据块以日志追加写的方式回写至日志存储单元,并在所述日志存储单元写满后,将所述日志存储单元回写至所述容量层,所述日志存储单元的存储空间为所述容量层最小写入单元的整数倍。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对所述第一去重指纹库和所述第二去重指纹库中指纹的引用次数执行计数管理。


6.根据权利要求1或3所述的方法,其特征在于,在将压缩后的第一数据块回写至所述容量层之后,所述方法还包括:
将第一数据块的元数据信息更新至所述容量层的文件元数据区域或所述第二去重指纹库中,所述元数据信息包括:所述第一数据块压缩后的物理存储地址及所述第一数据块压缩后的长度,以用于后期根据所述元数据信息对所述第一数据块进行解压。


7.一种基于全闪存阵列的数据压缩系统,其特征在于,所述全闪存阵列包括性能层和容量层,所述系统包括:
获取单元,用于获取性能层中被压缩的数据;
切分计算单元,用于将所述被压缩的数据切分为预设长度的第一数据块,计算所述第一数据块的哈希值;
第一匹配单元,用于将所述第一数据块的哈希值与存储于内存中的第一去重指纹库进行匹配,以确定是否存在第一匹...

【专利技术属性】
技术研发人员:夏文古亮
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1