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

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

A data compression method and system based on full flash array

【技术实现步骤摘要】
一种基于全闪存阵列的数据压缩方法及系统
本申请涉及数据存储
,尤其涉及一种基于全闪存阵列的数据压缩方法及系统。
技术介绍
一般地,为了节省数据的存储空间,文件在存储时,会对文件中的数据进行去重压缩,以减小数据的占用空间。所谓去重,即通过计算数据块的安全哈希摘要(比如SHA1指纹)来唯一识别数据块,避免了数据的逐个字符的匹配,而且存储系统只需要简单地维护安全哈希摘要的索引表,就可以实现快速方便地识别重复数据,且重复的数据内容只需要记录相应的数据指针信息即可达到节省存储空间的目的。而在数据去重中,在计算数据块的哈希摘要时,是指计算数据块的强哈希,一般强哈希是指符合安全哈希摘要标准的哈希算法,比如SHA1、SHA256等,这类哈希的长度一般都比较长(大于20字节),一般认为不同的数据拥有相当的安全哈希摘要的概率几乎不存在,类似于人类指纹的冲突情况,所以在数据去重领域一般使用哈希哈希摘要算法唯一标志数据块,避免重复数据的逐个字节比对。而现有的去重技术中所采用的强哈希算法,因其计算量较大,且强哈希的长度都比较长(大于20字节),故在计算出第一数据块的强哈希后,在与去重指纹库进行匹配时,所花费的匹配时间较长,从而减慢了数据去重的效率。
技术实现思路
本申请实施例提供了一种基于全闪存阵列的数据压缩方法及系统,用于提高数据去重的效率,从而提高存储系统的IO性能。本申请实施例第一方面提供了一种基于全闪存阵列的数据压缩方法,该闪存阵列包括:性能层和容量层,该方法包括:获取所述性能层中的被压缩数据;将所述被压缩数据切分为预设长度的第一数据块,并计算所述第一数据块的弱哈希值;将所述第一数据块的弱哈希值与所述容量层中的去重指纹库进行匹配,以确定是否存在匹配指纹;若不存在所述匹配指纹,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹更新至所述去重指纹库中。优选的,所述方法还包括:若存在所述匹配指纹,则读取所述匹配指纹对应的原始数据块;将所述第一数据块与所述原始数据块进行匹配,以确定所述第一数据块与所述原始数据块是否完全相同;若完全相同,则确定所述第一数据块为重复数据块,并将所述第一数据块的元数据信息回写至所述容量层的元数据区域,所述元数据信息包括所述第一数据块在所述被压缩数据中的逻辑地址、所述匹配指纹及所述匹配指纹的物理地址之间的对应关系。优选的,所述方法还包括:若不完全相同,则确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹更新至所述去重指纹库中。优选的,所述将压缩后的第一数据块回写至所述容量层,包括:将压缩后的第一数据块以日志追加写的方式回写至日志存储单元,并在所述日志存储单元写满后,将所述日志存储单元回写至所述容量层,所述日志存储单元的存储空间为所述容量层最小写入单元的整数倍。优选的,所述方法还包括:对所述去重指纹库中指纹的引用次数执行计数管理;所述对所述去重指纹库中指纹的引用次数执行计数管理,包括;当所述去重指纹库中存在所述第一数据块的匹配指纹时,则将所述匹配指纹的引用次数执行增长式运算;和,当引用所述去重指纹库中所述匹配指纹的第一数据块发生更新时,则将所述匹配指纹的引用次数执行递减式运算。优选的,在将压缩后的第一数据块回写至所述容量层之后,所述方法还包括:将所述第一数据块的元数据信息更新至所述容量层的文件元数据区域或所述去重指纹库中,所述元数据信息包括:所述第一数据块压缩后的物理存储地址及所述第一数据块压缩后的长度,以用于后期根据所述元数据信息对所述第一数据块进行解压。本申请实施例第二方面提供了一种基于全闪存阵列的数据压缩系统,该全闪存阵列包括性能层和容量层,该系统包括:获取单元,用于获取所述性能层中的被压缩数据;切分计算单元,用于将所述被压缩数据切分为预设长度的第一数据块,并计算所述第一数据块的弱哈希值;匹配单元,用于将所述第一数据块的弱哈希值与所述容量层中的去重指纹库进行匹配,以确定是否存在匹配指纹;第一压缩单元,用于在若不存在所述匹配指纹时,确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹更新至所述去重指纹库中。优选的,所述系统还包括:读取匹配单元,用于在若存在所述匹配指纹时,读取所述匹配指纹对应的原始数据块,将所述第一数据块与所述原始数据块进行匹配,以确定所述第一数据块与所述原始数据块是否完全相同;去重单元,用于在所述第一数据块与所述原始数据块完全相同时,确定所述第一数据块为重复数据块,并将所述第一数据块的元数据信息回写至所述容量层的元数据区域,所述元数据信息包括所述第一数据块在所述被压缩数据中的逻辑地址、所述匹配指纹及所述匹配指纹的物理地址之间的对应关系。优选的,所述系统还包括:第二压缩单元,用于在所述第一数据块与所述原始数据块不完全相同时,确定所述第一数据块为非重复数据块,则对所述第一数据块进行压缩,并将压缩后的第一数据块回写至所述容量层,而将所述第一数据块的指纹更新至所述去重指纹库中。优选的,所述第一压缩单元,包括:第一压缩模块,用于将压缩后的第一数据块以日志追加写的方式回写至日志存储单元,并在所述日志存储单元写满后,将所述日志存储单元回写至所述容量层,所述日志存储单元的存储空间为所述容量层最小写入单元的整数倍;所述第二压缩单元,包括:第二压缩模块,用于用于将压缩后的第一数据块以日志追加写的方式回写至日志存储单元,并在所述日志存储单元写满后,将所述日志存储单元回写至所述容量层,所述日志存储单元的存储空间为所述容量层最小写入单元的整数倍;优选的,所述系统还包括:计数单元,用于对所述去重指纹库中指纹的引用次数执行计数管理;所述计数单元,包括;第一计数模块,用于当所述去重指纹库中存在所述第一数据块的匹配指纹时,则将所述匹配指纹的引用次数执行增长式运算;和,第二计数模块,用于当引用所述去重指纹库中所述匹配指纹的第一数据块发生更新时,则将所述匹配指纹的引用次数执行递减式运算。优选的,所述系统还包括:更新单元,用于将所述第一数据块的元数据信息更新至所述容量层的文件元数据区域或所述去重指纹库中,所述元数据信息包括:所述第一数据块压缩后的物理存储地址及所述第一数据块压缩后的长度,以用于后期根据所述元数据信息对所述第一数据块进行解压。本申请实施例还提供了一种基于全闪存阵列的数据压缩系统,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本申请实施例第一方面提供的基于全闪存阵列的数据压缩方法。本申请实施例还提供了一种可读存储本文档来自技高网...

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

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


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


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


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


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对所述去重指纹库中指纹的引用次数执行计数管理;
所述对所述去重指纹库中指纹的引用次数执行计数管理,包括;
当所述去重指纹库中存在所述第一数据块的匹配指纹时,则将所述匹配指纹的引用次数执行增长式运算;
和,
当引用所述去重指纹库中所述匹配指纹的第一数据块发生更新时,则将所述匹配指纹的引用次数执行递减式运算。


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


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

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

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

1