CN112988041A - 存储系统中的数据存储方法及相关设备 - Google Patents
存储系统中的数据存储方法及相关设备 Download PDFInfo
- Publication number
- CN112988041A CN112988041A CN201911312004.2A CN201911312004A CN112988041A CN 112988041 A CN112988041 A CN 112988041A CN 201911312004 A CN201911312004 A CN 201911312004A CN 112988041 A CN112988041 A CN 112988041A
- Authority
- CN
- China
- Prior art keywords
- data
- fingerprint
- similar
- stored
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了存储系统中的数据存储方法及相关设备,该方法包括:计算第一待存储数据的相似指纹得到第一相似指纹;其中,该第一相似指纹用于判断该第一待存储数据与已存储数据是否相似;根据该第一相似指纹确定出参考数据;其中,该参考数据的相似指纹为该第一相似指纹;根据该参考数据确定该待存储数据与该参考数据之间的第一差异数据;其中,该参考数据存储在第一存储单位中;将该第一差异数据存储到第二存储单位;其中,该第一存储单位和该第二存储单位属于同一个读IO的读取范围。采用本发明实施例,能够避免读放大和提升读性能。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种存储系统中的数据存储方法及相关设备。
背景技术
现如今信息化程度的不断提高,伴随大数据,云计算,人工智能技术飞速发展,企业对数据的需求呈爆炸式增长。面对如此庞大的数据量,必将给数据存储管理带来了巨大压力。如何提高存储空间的利用率,以有限的存储容量满足飞速增长的存储需求是众多存储服务器商面对的首要问题。因此,数据缩减技术成为存储系统中必不可少的关键技术,缩减率也作为衡量存储系统性能的重要指标。目前数据缩减技术主要有压缩、重复数据删除(重删)、相似数据删除(Delta压缩/相似压缩)等三种实现方式。
数据压缩只能缩减数据容量,重复数据删除也只能缩减完全相同的数据,而大量的相似数据任然占用较大的存储空间,因此,相似数据删除才能够极大地缩减数据的容量。
现有技术中有将相似数据删除中将数据的参考数据和差异数据离散分布存储,当需要读取数据时,需要2次读输入输出(input/output,IO)从盘中分别读出差异数据和参考数据才能恢复出该数据,造成读放大,并且分离存放使得索引结构和查找流程都更复杂,从而影响存储系统性能和整体缩减率。
基于上述描述,如何在降低对存储系统的性能的影响的情况下实现高效的数据存储,同时避免读放大是本领域技术人员需要解决的技术问题。
发明内容
本申请实施例公开了一种存储系统中的数据存储方法及相关设备,能够在降低对存储系统的性能的影响的情况下实现高效的数据存储,同时避免读放大。
第一方面,本申请实施例公开了一种存储系统中的数据存储方法,该方法包括:
计算第一待存储数据的相似指纹得到第一相似指纹;其中,该第一相似指纹用于判断该第一待存储数据与已存储数据是否相似;
根据该第一相似指纹确定出参考数据;其中,该参考数据的相似指纹为该第一相似指纹;
根据该参考数据确定该待存储数据与该参考数据之间的第一差异数据;其中,该参考数据存储在第一存储单位中;
将该第一差异数据存储到第二存储单位;其中,该第一存储单位和该第二存储单位属于同一个读IO的读取范围。
本申请实施例将参考数据和差异数据存储在同一个预设存储空间中,该预设存储空间存储的数据能够被一次读IO读取到,相比于现有技术,避免了读放大的问题,提升了存储系统的读性能。
在其中一种可能的实施方式中,该方法还包括:
计算该第一待存储数据的重删指纹得到第一重删指纹;
将该第一重删指纹与该第一相似指纹关联的重删指纹比较确定该第一重删指纹与该关联的重删指纹均不相同;其中,该关联的重删指纹所表征的数据的相似指纹为该第一相似指纹。
本申请实施例结合数据的相似指纹和重删指纹来快速确定待存储数据和已存储数据之间相似、相同或不相似的关系,以实现高效的数据存储。
在其中一种可能的实施方式中,该方法还包括:添加该第一重删指纹为该第一相似指纹关联的重删指纹。
在其中一种可能的实施方式中,该方法还包括:
计算第二待存储数据的相似指纹得到该第一相似指纹;
计算该第二待存储数据的重删指纹得到该第一重删指纹;
将该第二待存储数据的该第一重删指纹与该第一相似指纹关联的重删指纹比较确定该第一相似指纹关联的重删指纹包含该第一重删指纹;
为该第一重删指纹的引用次数增加一个计数。
本申请实施例中,重删指纹相同的数据为相同的数据即重复的数据,因此为了节约存储空间,提升存储空间的利用率,多份重复的数据只需存储其中的一份即可。同时,可以用重删计数记录重复数据原始的份数,以便于知道该数据可以被引用的次数。
在其中一种可能的实施方式中,该存储系统的第三存储单位存储有第二差异数据;其中,该第二差异数据为第二数据与该参考数据之间的差异数据,该第二数据的相似指纹为该第一相似指纹,该第一存储单位、该第二存储单位和该第三存储单元属于同一个读IO的读取范围。
在本申请实施例中,将多份差异数据存储在能够被一次读IO读取到的预设存储空间,同时该预设存储空间存储了该多份差异数据的参考数据,从而保证了能够读一次IO即可获取到参考数据和需要的差异数据。
在其中一种可能的实施方式中,该参考数据的重删指纹的引用次数大于1;该第一相似指纹关联的重删指纹包含该参考数据的重删指纹。
在本申请实施例中表明,该参考数据为重删数据,即重删数据和差异数据共存在该预设存储空间中。这样可以进一步节约存储空间,提升存储空间的利用率。
在其中一种可能的实施方式中,该第一存储单位和该第二存储单位属于该存储系统预设的存储空间,该预设的存储空间中的多个存储单位连续排列,该第一存储单位为该预设的存储空间中除初始位置的存储单位和结束位置的存储单位外的一个存储单位。
由上述描述知该第一存储单位用于存储上述参考数据,在本申请实施例中,将该参考数据存储在差异数据之间,这样可以节约数据读取的时间,提高读取效率。
在其中一种可能的实施方式中,该参考数据为压缩后存储在上述第一存储单位中的数据。
在本申请实施例中,将数据压缩后再存储可以进一步节约存储空间。
第二方面,本申请实施例提供一种数据存储设备,该数据存储设备包括:
计算单元,用于计算第一待存储数据的相似指纹得到第一相似指纹;其中,该第一相似指纹用于判断该第一待存储数据与已存储数据是否相似;
确定单元,用于根据该第一相似指纹确定出参考数据;其中,该参考数据的相似指纹为该第一相似指纹;
该确定单元,还用于根据该参考数据确定该待存储数据与该参考数据之间的第一差异数据;其中,该参考数据存储在第一存储单位中;
存储单元,用于将该第一差异数据存储到第二存储单位;其中,该第一存储单位和该第二存储单位属于同一个读IO的读取范围。
在其中一种可能的实施方式中,该计算单元,还用于计算该第一待存储数据的重删指纹得到第一重删指纹;
该设备还包括比较单元,用于将该第一重删指纹与该第一相似指纹关联的重删指纹比较确定该第一重删指纹与该关联的重删指纹均不相同;其中,该关联的重删指纹所表征的数据的相似指纹为该第一相似指纹。
在其中一种可能的实施方式中,该设备还包括添加单元,用于添加该第一重删指纹为该第一相似指纹关联的重删指纹。
在其中一种可能的实施方式中,该计算单元,还用于计算第二待存储数据的相似指纹得到该第一相似指纹;
以及,用于计算该第二待存储数据的重删指纹得到该第一重删指纹;
该比较单元,还用于将该第二待存储数据的该第一重删指纹与该第一相似指纹关联的重删指纹比较确定该第一相似指纹关联的重删指纹包含该第一重删指纹;
该设备还包括增加单元,用于为该第一重删指纹的引用次数增加一个计数。
在其中一种可能的实施方式中,该存储系统的第三存储单位存储有第二差异数据;其中,该第二差异数据为第二数据与该参考数据之间的差异数据,该第二数据的相似指纹为该第一相似指纹,该第一存储单位、该第二存储单位和该第三存储单元属于同一个读IO的读取范围。
在其中一种可能的实施方式中,该参考数据的重删指纹的引用次数大于1;该第一相似指纹关联的重删指纹包含该参考数据的重删指纹。
在其中一种可能的实施方式中,该第一存储单位和该第二存储单位属于该存储系统预设的存储空间,该预设的存储空间中的多个存储单位连续排列,该第一存储单位为该预设的存储空间中除初始位置的存储单位和结束位置的存储单位外的一个存储单位。
在其中一种可能的实施方式中,该参考数据为压缩后存储在该第一存储单位中的数据。
第二方面所述方案的有益效果可以对应参照上述第一方面的描述,此处不再赘述。
第三方面,本申请实施例提供一种数据存储设备,该数据存储设备包括处理器以及接口;该接口与该处理器耦合,该处理器用于执行如下操作:
计算第一待存储数据的相似指纹得到第一相似指纹;其中,该第一相似指纹用于判断该第一待存储数据与已存储数据是否相似;
根据该第一相似指纹确定出参考数据;其中,该参考数据的相似指纹为该第一相似指纹;
根据该参考数据确定该待存储数据与该参考数据之间的第一差异数据;其中,该参考数据存储在第一存储单位中;
将该第一差异数据存储到第二存储单位;其中,该第一存储单位和该第二存储单位属于同一个读IO的读取范围。
在其中一种可能的实施方式中,该处理器还用于:
计算该第一待存储数据的重删指纹得到第一重删指纹;
将该第一重删指纹与该第一相似指纹关联的重删指纹比较确定该第一重删指纹与该关联的重删指纹均不相同;其中,该关联的重删指纹所表征的数据的相似指纹为该第一相似指纹。
在其中一种可能的实施方式中,该处理器还用于:添加该第一重删指纹为该第一相似指纹关联的重删指纹。
在其中一种可能的实施方式中,该处理器还用于:
计算第二待存储数据的相似指纹得到该第一相似指纹;
计算该第二待存储数据的重删指纹得到该第一重删指纹;
将该第二待存储数据的该第一重删指纹与该第一相似指纹关联的重删指纹比较确定该第一相似指纹关联的重删指纹包含该第一重删指纹;
为该第一重删指纹的引用次数增加一个计数。
在其中一种可能的实施方式中,该存储系统的第三存储单位存储有第二差异数据;其中,该第二差异数据为第二数据与该参考数据之间的差异数据,该第二数据的相似指纹为该第一相似指纹,该第一存储单位、该第二存储单位和该第三存储单元属于同一个读IO的读取范围。
在其中一种可能的实施方式中,该参考数据的重删指纹的引用次数大于1;该第一相似指纹关联的重删指纹包含该参考数据的重删指纹。
在其中一种可能的实施方式中,该第一存储单位和该第二存储单位属于该存储系统预设的存储空间,该预设的存储空间中的多个存储单位连续排列,该第一存储单位为该预设的存储空间中除初始位置的存储单位和结束位置的存储单位外的一个存储单位。
在其中一种可能的实施方式中,该参考数据为压缩后存储在该第一存储单位中的数据。
在其中一种可能的实施方式中,该预设存储空间存储的数据的重删计数均大于1。
第三方面所述方案的有益效果可以对应参照上述第一方面的描述,此处不再赘述。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面任意一项所述的方法。
第五方面,本申请实施例公开了一种计算机可读存储介质,当所述计算机可读存储介质中的计算机程序在计算机上执行时,将会使所述计算机实现上述第一方面任意一项所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品中的计算机程序被计算机读取并执行时,上述第一方面任意一项所述的方法将被执行。
综上所述,本申请实施例结合数据的相似指纹和重删指纹来快速确定待存储数据和已存储数据之间相似、相同或不相似的关系,以实现高效的数据存储。此外,本申请实施例将参考数据和差异数据存储在同一个预设存储空间中,该预设存储空间存储的数据能够被一次读IO读取到,相比于现有技术,避免了读放大的问题,提升了存储系统的读性能。
附图说明
下面将对本申请实施例中所需要使用的附图作介绍。
图1所示为本申请实施例提供的存储系统的结构示意图;
图2所示为本申请实施例提供的存储系统包括的控制器的结构示意图;
图3所示为本申请实施例提供的分布式存储系统的结构示意图;
图4所示为本申请实施例提供的分布式存储系统的服务器的结构示意图;
图5至图8所示为本申请实施例提供的数据存储结构示意图;
图9所示为本申请实施例提供的另一种数据存储结构示意图;
图10所示为本申请实施例提供的另一种数据存储结构示意图;
图11所示为本申请实施例提供的一种存储系统中的数据存储方法的流程示意图;
图12所示为本申请实施例提供的一种数据读取示意图;
图13所示为现有技术提供的一种数据读取示意图;
图14所示为本申请实施例提供的一种数据存储设备的逻辑结构示意图。
具体实施方式
首先对适用于本发明实施例的存储系统进行介绍。
如图1所示,本发明实施例中的存储系统,可以为存储阵列(如华为的18000系列,系列)。存储阵列包括存储控制器101和多块硬盘,其中,硬盘包含固态硬盘(solid state disk,SSD)或者磁盘等。如图2所示,存储控制器101包含处理器201、存储器202和接口203,存储器202中存储计算机程序,处理器201执行存储器202中的计算机程序对存储系统进行管理及数据访问操作。另外,处理器201可以为中央处理单元(central processing unit,CPU),也可以是现场可编程门阵列(fieldprogrammable gate array,FPGA)或其他硬件也可以作为处理器,或者,FPGA或其他硬件与CPU共同作为处理器,处理器与接口203通信。本发明实施例中的存储器202可以为CPU提供内存。接口203可以为网络接口卡(networking interface card,NIC)、主机总线适配器(host bus adaptor,HBA)等。
如图1和图2所描述的存储阵列,控制器101用于执行本发明实施例中的数据存储方法。
进一步的,本发明实施例的存储系统还可以为分布式存储系统(如华为的系列)等。以华为的系列。示例性的如图3所示,分布式存储系统包括多台服务器,如服务器1、服务器2、服务器3,……,服务器6,服务器间通过无限带宽(InfiniBand)或以太网络等互相通信。在实际应用当中,分布式存储系统中服务器的数量可以根据实际需求增加或减少,本发明实施例对此不作限定。分布式存储系统中的服务器又称为存储节点。
分布式存储系统的服务器中包含如图4所示的结构。如图4所示,分布式存储系统中的每台服务器包含处理器401、存储器402、接口403、硬盘1、硬盘2和硬盘3,存储器402中存储计算机程序,处理器401执行存储器402中的计算机程序行相应的操作。接口403可以为硬件接口,如网络接口卡(network interface card,NIC)或主机总线适配器(host busadaptor,HBA)等,也可以为程序接口模块等。硬盘包含固态硬盘(solid state disk,SSD)或者磁盘等。另外,处理器401可以为中央处理单元(central processing unit,CPU),也可以是现场可编程门阵列(fieldprogrammable gate array,FPGA)或其他硬件也可以作为处理器,或者,FPGA(或其他硬件)与CPU的组合共同作为处理器。本发明实施例中的存储器402可以为处理器401提供内存。接口303可以为网络接口卡(networking interface card,NIC)、主机总线适配器(host bus adaptor,HBA)。
基于上述的介绍,下面结合附图对本申请实施例中的技术方案进行描述。
参见图5、图6、图7、图8和图9,该5个图中所示为本申请方案提供的数据存储结构的部分存储结构示意图。可以看到,该5个图中都示出了一个预设存储空间的数据存储结构示意图。
在具体实施例中,上述预设存储空间可以是存储系统中特定粒度的块chunk。通常该特定粒度的chunk是存储系统中读IO的基本粒度,即一个读IO可以读取的数据长度。该预设存储空间具体的容量大小可以根据实际确定,本方案对此不做限定。例如,该预设存储空间的容量大小例如可以是8KB、16KB等等。
上述预设存储空间包括多个存储单位,该多个存储单位可以是将该预设存储空间按容量的大小平均分割为多个等容量的存储空间得到的。或者,也可以是根据实际需要将该预设存储空间分割为容量大小不一的多个存储空间得到的。具体如何分割根据具体情况决定,本方案对此不做限制。具体实现中,一个读IO可以读取预设存储空间中所有的数据,或读取预设存储空间中一个或多个存储单位中的数据。
在上述5个图中还可以看到,上述预设存储空间中包括一个数据头的存储单位和一个数据尾的存储单位。这表明,存储系统在将数据存储到该预设存储空间时,可以先将数据存储到该数据头的存储单位中,然后再按照预设的存储规则逐渐将其它的数据存储在其它的存储单位中,直到数据尾,这样就完成了该预设存储空间的数据存储。
上述图5、图6、图7、图8和图9所示仅是本申请实施例提供的数据存储结构的一部分,本申请实施例提供的数据存储结构可以包括多个上述的预设存储空间,本申请实施例提供的数据存储结构包括的多个预设存储空间中每个预设存储空间的容量可以相同,也可以不同,可以根据实际需要来设置每个预设存储空间的容量大小。本申请实施例提供的数据存储结构的总的数据存储容量根据实际情况确定,本方案对此不作限制。
图5所示为本申请方案提供的一种纯重删数据的部分数据存储结构示意图。在图5中可以看到,在一个预设存储空间中包括的多个存储单位中,每一个存储单位可以用于存储一份重删数据;或者,如果一份重删数据的容量比较大,也可以申请多个存储单位来存储。需要说明的是,本申请实施例说到的重删数据指的是存储系统中多份相同的数据,为了节约存储空间以提高存储空间的利用率,只存储了该多份相同的数据中的一份,因此该存储了的一份数据被称为重删数据。重复数据删除操作可以是在线重删或后重删。
在图5中,存储系统在将数据存储到该预设存储空间时,首先将数据存储到该数据头的存储单位中,然后再按照预设的存储规则逐渐将其它的重删数据存储在其它的存储单位中,直到数据尾,这样就完成了该预设存储空间的数据存储。
可选的,上述预设的存储规则可以是按照图5中存储单位的编号1、2、3、…、n的顺序来逐一存储重删数据。或者也可以根据其它的存储规则来存储,可以根据具体情况决定相应的存储规则,本方案对此不做限制。
图6所示为本申请方案提供的一种纯相似数据的部分数据存储结构示意图。同样的,该数据存储结构在一个预设存储空间中包括多个存储单位,该多个存储单位包括一个数据头的存储单位和一个数据尾的存储单位。该数据头的存储单位可以用于存储参考数据,除了数据尾之外的其它存储单位可以用于存储差异数据。可选的,一个存储单位可以用于存储一份差异数据;或者,如果一份差异数据的容量比较大,也可以申请多个存储单位来存储。
需要说明的是,本申请实施例涉及到的相似数据指的是有部分数据相同但不完全相同的多份数据,即该多份数据的每一份数据都可以称为该多份数据中的其它数据的相似数据。
上述参考数据是相对于差异数据而言的,差异数据也是相对于参考数据而言的。例如,假设有n+1份数据,分别称为数据1、数据2、…、数据n、数据n+1,该n+1份数据是相似数据,且该n+1份数据都包括了数据1,那么可以以数据1作为参考数据,数据2、数据3、…、数据n+1分别与该数据1不同的那部分数据即为差异数据,可以分别称为差异数据1、差异数据2、…、差异数据n。其中,该n为大于或等于1的整数。
在需要将该n+1份数据存储时,可以仅存储一次数据1,即将数据1作为参考数据存储在上述预设存储空间的数据头的存储单位中,然后对于数据2、数据3、…、数据n+1,可以不用全部存储,仅需要将这些数据与数据1的差异数据存储即可,即将差异数据1、差异数据2、…、差异数据n分别存储到该预设存储空间的其它的存储单元中。这样,就缩减了需要存储的数据,提高了存储空间的利用率。本发明实施例中,存储系统计算数据的相似指纹,基于相似指纹判断数据间的相似性。相似的数据具有相同的相似指纹。
在需要读取该n+1份数据中的某一份数据时,只需要同时读取该预设存储空间中的数据1以及该某一份数据的差异数据,然后将两者合并即得到该某一份数据。
示例性地,假设图6所示的预设存储空间为上述存储设备中的第二预设存储空间,存储系统读取上述数据1,存储系统使用一个读IO读取第二预设存储空间中的存储单位1和存储单位2中的数据。
图7所示为本申请方案提供的一种相似数据和重删数据混合存储的部分数据存储结构示意图。同样的,该数据存储结构在一个预设存储空间中包括多个存储单位,该多个存储单位包括一个数据头的存储单位和一个数据尾的存储单位。该数据头的存储单位可以用于存储参考数据,该参考数据也可以是重删数据;除了数据尾之外的其它存储单位可以用于存储差异数据和/或重删数据,其中有的差异数据也可以是重删数据。可选的,一个存储单位可以用于存储一份差异数据和/或重删数据;或者,如果一份差异数据和/或重删数据的容量比较大,也可以申请多个存储单位来存储。
为了便于理解图7所示数据结构的具体应用,下面举例说明。假设有n+2份数据,分别称为数据1、数据2、…、数据k、数据k’、数据k+1、数据k+2、…、数据n、数据n+1,该n+2份数据是相似数据。其中,数据k和数据k’为相同的数据。那么,为了节约存储空间,数据k和数据k’可以只存储其中一份数据,不需要将该两份数据都存储。同样,该n+2份数据都包括了数据1,那么可以以数据1作为参考数据,该n+2份数据中除了数据k’之外的数据2、数据3、…、数据k、数据k+1、数据k+2、…、数据n+1分别与该数据1不同的那部分数据,可以分别称为差异数据1、差异数据2、…、差异数据k-1、差异数据k、…、差异数据n。其中,该k为大于1的整数。上述n+2份数据具有相同的相似指纹。存储系统在进行重复数据删除时,还需要计算数据的重删指纹,数据的重删指纹相同,则认为数据内容相同。上述n+2份相似数据的重删指纹称为上述n+2份数据的相似指纹关联的重删指纹。
在存储时,同样的,将数据1作为参考数据存储在上述预设存储空间的数据头的存储单位中,然后分别将差异数据1、差异数据2、…、差异数据n存储到该预设存储空间的其它的存储单元中。此时,由于数据1和差异数据k-1组成的数据既是数据k又是数据k’,但仅存了一份,因此数据1和差异数据k-1是重删数据。
例如,在图7中存储单位1和存储单位3中存储的数据所组成的数据是重删数据,因此存储单位1中存储的数据为重删数据,存储单位3中存储的数据也是重删数据。
对于图7所示的数据存储结构,读数据的具体操作与上述对图5和图6的描述中对应的读数据的操作类似,此处不再赘述。
图8所示为本申请方案提供的另一种相似数据和重删数据混合存储的部分数据存储结构示意图。图8所示结构是图7所示结构的变形,图8所示数据存储结构不再将参考数据存储在预设存储空间的边缘的存储单位,而是存储在该预设存储空间中除了两端边缘的存储单位以外的任意一个存储单位。即参考数据存储在差异数据的之间。
可选的,参考数据存储在上述预设存储空间中数据头的存储单位中,此时数据头的存储单位为该预设存储空间中除了两端边缘的存储单位以外的任意一个或多个连续的存储单位。
这样存储可以节约存储系统读取数据的时间。为了便于理解,举例说明,还是参见图7和图8。假设上述数据n+1分别存储在图7和图8所示的数据存储结构。那么,该数据n+1存储在图7的数据存储结构中时,存储系统需要读取该数据n+1,则需要读取存储单位1至存储单位n+1之间的所有数据,然后提取存储单位1中的参考数据和存储单位n+1中的差异数据n组成数据n+1,其它数据则丢弃不用。
而该数据n+1存储在图8的数据存储结构中时,存储系统需要读取该数据n+1,则需要读取存储单位k+1至存储单位n+1之间的所有数据,然后提取存储单位K+1中的参考数据和存储单位n+1中的差异数据n组成数据n+1,其它数据则丢弃不用。
相比之下,图8所示的数据存储结构在读取需要的数据时需要多读取的无用的数据较少,甚至不用多读取无用的数据,因此图8所示的数据存储结构可以节约存储系统读取数据的时间。
此外,图6所示的数据存储结构也可以变形为与图8类似的数据存储结构,参见图9。既不再将参考数据存储在预设存储空间的边缘的存储单位,而是存储在该预设存储空间中除了两端边缘的存储单位以外的任意一个或多个连续的存储单位。即参考数据存储在差异数据的之间。这样存储同样可以节约存储系统读取数据的时间。具体如何节约存储系统读取数据的时间可以参见上述对图8中的对应的描述,此处不再赘述。
在一些可能的结构中,上述图6、图7、图8和图9所示的数据存储结构中存储的参考数据,可以是先对该参考数据进行压缩后再存储到对应的存储单位中,也可以不压缩该参考数据就将其存储到对应的存储单位中。对参考数据压缩后再存储可以节约存储空间,提高存储空间利用率。但是,在具体实施例中,是否对参考数据进行压缩根据具体情况决定,本方案对此不做限制。
在一些可能的实施方式中,上述图5、图6、图7、图8和图9所示的数据存储结构中存储的数据,可以是全部压缩后再存储,或者可以是部分压缩后再存储,或者也可以不压缩就进行存储。在具体实施例中,是否对数据进行压缩根据具体情况决定,本方案对此不做限制。
在一些可能的实施方式中,本申请实施例提供的数据存储结构可以包括上述图5、图6、图7、图8和图9所示的5种数据存储结构中的多种,即上述存储设备中可以包括上述图5、图6、图7、图8和图9所示的5种数据存储结构中的多种。例如可以参见图10。图10所示存储结构示例性包括两个预设存储空间,其中,预设存储空间1中的数据存储结构为图5所示的数据存储结构,预设存储空间2中的数据存储结构为图6所示的数据存储结构。当然,图10只是示例性说明本申请实施例提供的数据存储结构可以包括上述图5、图6、图7、图8和图9中所示的5种存储结构种的多种结构,具体包括哪些数据存储结构根据实际情况决定,本方案对此不做限制。
需要说明的是,上述本申请实施例提供的数据存储结构除了可以存储相似数据和重删数据之外,也可以存储独立数据,该独立数据与已存数据既不相似也不相同。
基于上述数据存储结构的描述,下面介绍一种存储系统中的数据存储方法,该存储系统中的数据存储方法可以应用上述介绍的数据存储结构进行数据存储。参见图11,图11所示为本申请实施例提供的一种存储系统中的数据存储方法,该方法包括但不限于如下步骤:
步骤1101、计算第一待存储数据的相似指纹得到第一相似指纹。
在具体实施例中,当某一份数据(该数据可以称为第一待存储数据)需要存储时,存储系统可以先计算该第一待存储数据的相似指纹。示例性地,可以采用min哈希算法等算法来计算待存储数据的相似指纹。该第一待存储数据的相似指纹可以称为第一相似指纹。该第一待存储数据的相似指纹可以用于判断该第一待存储数据与已存储数据是否相似。
步骤1102、根据上述第一相似指纹确定出参考数据;其中,上述参考数据的相似指纹为上述第一相似指纹。
具体的,该参考数据为上述已存储数据中的数据,该参考数据存储在一个预设存储空间的第一存储单位中。该第一存储单位可以为该预设存储空间包括的多个存储单位中的一个或多个;该预设存储空间存储的数据能够被一次读IO读取到。
可选的,如果该第一存储单位包括多个存储单位,则该第一存储单位包括的多个存储单位为多个连续的存储单位。
可选的,可以将上述第一相似指纹与已存储数据的相似指纹进行比较,以确定该第一待存储数据与已存储数据是否相似。
在具体实施例中,如果已存储数据的相似指纹中包括该第一相似指纹,则表明该第一待存储数据与该第一相似指纹所表征的一份或多份数据相似。则可以从该第一相似指纹所表征的一份或多份数据中选择其中一份作为该第一待存储数据的参考数据。
步骤1103、根据上述参考数据确定上述待存储数据与上述参考数据之间的第一差异数据;其中,上述参考数据存储在第一存储单位中。
步骤1104、将上述第一差异数据存储到第二存储单位;其中,上述第一存储单位和上述第二存储单位属于同一个读IO的读取范围。
在具体实施例中,上述根据第一相似指纹确定出该第一待存储数据的参考数据后,存储系统可以计算该第一待存储数据与该参考数据之间的差异数据得到上述的第一差异数据。然后,将计算得到的第一差异数据存储到存储该参考数据的预设存储空间的第二存储单位中。该第二存储单位可以为该预设存储空间中未存储数据的一个或多个连续的存储单位。
本申请实施例将参考数据和差异数据存储在同一个预设存储空间中,该预设存储空间存储的数据能够被一次读IO读取到,相比于现有技术,避免了读放大的问题,提升了存储系统的读性能。
在其中一种可能的实施方式中,已存储数据的相似指纹中每一个相似指纹关联有一个或多个重删指纹。在本申请实施例中,相似指纹相同的数据为相似数据,重删指纹相同的数据为相同数据;且相同数据的相似指纹相同。那么,上述图11所述的存储系统中的数据存储方法实施例中,也可以结合上述第一待存储数据的重删指纹来进行数据存储。即上述“步骤1102、根据上述第一相似指纹确定出参考数据”的具体实现方式还可以包括如下的一种实施方式:
在计算上述第一待存储数据的第一相似指纹的同时,还可以计算该第一待存储数据的重删指纹得到第一重删指纹。例如,可以采用sha1、md5、双哈希算法等算法来计算第一待存储数据的重删指纹。该第一待存储数据的重删指纹可以用于判断该第一待存储数据与已存储数据是否相同。
然后,存储系统可以先将该第一相似指纹与已存储数据的相似指纹进行比较,以确定该第一待存储数据与已存储数据是否相似。
在已存储数据的相似指纹中包括该第一相似指纹的情况下,即在该第一待存储数据与该第一相似指纹所表征的一份或多份数据相似的情况下,将上述第一重删指纹与该第一相似指纹关联的重删指纹比较,以进一步判断该第一待存储数据是否与该第二相似指纹关联的一个或多个重删指纹表征的数据相同。如果,该第一重删指纹与该第一相似指纹关联的重删指纹均不相同,即表明该第一待存储数据与该第一相似指纹关联的一个或多个重删指纹所表征的一份或多份数据只相似不相同,因此采用可以相似压缩的存储方式存储该第一待存储数据。
然后,同样的,可以从该第一相似指纹所表征的一份或多份数据中选择其中一份作为该第一待存储数据的参考数据。之后的存储过程可以参见步骤1103和步骤1104的具体描述,此处不再赘述。
可选的,上述已存储数据的相似指纹,以及该已存储数据的相似指纹中的每一个相似指纹关联的一个或多个重删指纹可以存储在融合指纹表中,下面会详细介绍融合指纹表,此处暂不详述。那么,在确定上述第一待存储数据与上述参考数据之间的差异数据之后,可以在存储已存储数据的相似指纹的存储空间中例如可以在上述融合指纹表中添加该第一待存储数据的重删指纹即第一重删指纹为上述第一相似指纹关联的重删指纹,同时可以在该融合指纹表中添加该第一待存储数据的重删指纹的重删计数以及该第一待存储数据的逻辑地址等信息,以便于能够在读取该第一待存储数据时能够快速索引查找到并读取。
下面示例性地对融合指纹表进行介绍,上述已存储数据的相似指纹,以及该已存储数据的相似指纹中的每一个相似指纹关联的一个或多个重删指纹可以存储在融合指纹表中。那么,融合指纹表中包括在上述存储设备中已经存储的数据的相似指纹和重删指纹,该融合指纹表中的每一个相似指纹对应有一个或多个重删指纹。此外,该融合指纹表中还可以包括重删计数和数据的逻辑地址的相关信息。为了便于理解融合指纹表,可以参见表1,表1示例性地给出融合指纹表的示意表结构。
表1
在表1中可以看到,融合指纹表可以包括相似指纹、重删指纹、重删计数以及数据的逻辑地址。相似指纹相同则表示该相似指纹对应的多份数据是相似数据或者是相同数据。如果是相似数据,那么既有相同的部分,也有差异的部分。这里表明相同数据的相似指纹是相同的。可选的,相似指纹可以根据字典排序的方式进行排序。
重删指纹则表示重删指纹相同的数据为完全重复的数据。重删计数表明对应的重删指纹指向的数据被引用的次数。例如,假设有j份完全相同的数据需要存储,但实际存储的时候只存其中的一份,另外j-1份不存储,那么该存储的一份数据代表了上述j份数据,此时重删计数为j。
上述数据的逻辑地址用于对已存储的数据进行索引,即根据该逻辑地址可以索引找到对应数据的存储位置,该存储位置例如可以是某个盘面中某个预设存储空间中的某个存储单位等等。
在表1中,相似指纹SFP1对应有4个重删指纹,这表明已存储的数据中有4份数据的相似指纹相同均为SFP1,但该4份数据的重删指纹不同,分别为FP1、FP2、FP3和FP4。FP1、FP2、FP3和FP4的重删计数分别为1、2、2和1,这说明FP2和FP3指向的数据为重删数据。此外,同样的,表1中相似指纹SFP2对应有2个重删指纹,这表明已存储的数据中有2份数据的相似指纹相同均为SFP2,但该2份数据的重删指纹不同,分别为FP5和FP6。FP5和FP6的重删计数分别为2和3,这说明FP5和FP6指向的数据也为重删数据。
上述表1所示的融合指纹表只是示例性地给出,具体包括的数据根据具体情况确定,此外融合指纹表除了上述相似指纹、重删指纹、重删计数以及数据的逻辑地址这4项信息之外,还可以包括其它的信息,具体根据情况决定包括哪些信息,本方案对此不做限制。
在其中一种可能的实施方式中,在上述步骤1104之后,本申请实施例提供的存储系统中的数据存储方法还可以包括:计算第二待存储数据的相似指纹得到所述第一相似指纹;计算所述第二待存储数据的重删指纹得到所述第一重删指纹;将所述第二待存储数据的所述第一重删指纹与所述第一相似指纹关联的重删指纹比较确定所述第一相似指纹关联的重删指纹包含所述第一重删指纹;为所述第一重删指纹的引用次数增加一个计数。
在具体实施例中,存储系统可以先计算该第二待存储数据的相似指纹和重删指纹,假设计算得到的该第二待存储数据的相似指纹和重删指纹分别为上述第一相似指纹和上述第一重删指纹。然后,将该第一相似指纹和该第一重删指纹分别与已存储数据的相似指纹和重删指纹比较,最后确定出该第二待存储数据的重删指纹和已存储后的上述第一待存储数据的重删指纹相同。这表明,该第二待存储数据和该第一待存储数据为相同数据,那么为了节约存储空间,相同的数据只存储一次,则存储系统可以不存储该第二待存储数据,但可以将该第一重删指纹的重删计数加1,以表明该第一重删指纹表征的数据又增加了一次引用。
可选的,如果该第一重删指纹的重删计数存储在上述融合指纹表中,则将该融合指纹表中的该第一重删指纹的重删计数加1。
本申请实施例中,重删指纹相同的数据为相同的数据即重复的数据,因此为了节约存储空间,提升存储空间的利用率,多份重复的数据只需存储其中的一份即可。同时,可以用重删计数记录重复数据原始的份数,以便于知道该数据可以被引用的次数。
在其中一种可能的实施方式中,本申请实施例提供的存储系统中的数据存储方法还可以包括:根据待存储数据的相似指纹与上述已存储数据的相似指纹确定该待存储数据与已存储数据中的数据既不相同也不相似,则直接存储该待存储数据。
在具体实施例中,如果上述待存储数据的相似指纹与上述已存储数据的相似指纹中的相似指纹均不相同,这表明上述待存储数据是新的数据,与已存储的数据不相同也不相似。此时,存储系统可以申请一个新的预设存储空间来存储该待存储数据。或者,如果已经存储有数据的预设存储空间中还有存储单位未存满,存储系统也可以将该待存储数据存储到该未存满的存储单位中。
然后,可以在存储上述已存储数据的相似指纹的存储空间中例如可以在上述融合指纹表中添加该待存储数据的待存储数据的相似指纹、待存储数据的重删指纹、该待存储数据的重删指纹的重删计数以及该待存储数据的逻辑地址等信息,以便于能够在读取该待存储数据时能够快速索引查找到并读取。
在其中一种可能的实施方式中,存储上述参考数据的预设存储空间中所述存储的数据可以包括多份差异数据,该多份差异数据可以为第三数据与该参考数据之间的差异数据,该第三数据可以包括多份与该参考数据相似的数据。那么,该存储上述参考数据的预设存储空间例如可以是图6、图7、图8或图9所示的预设存储空间。
在其中一种可能的实施方式中,上述参考数据的重删计数大于1;且上述第一差异数据和上述多份差异数据中一份或多份数据的重删计数大于1。这表明该参考数据为重删数据,且该第一差异数据和上述多份差异数据中一份或多份数据也为重删数据。如果该参考数据、该第一差异数据和该多份差异数据存储在同一个预设存储空间中,那么该预设存储空间例如可以是图7或图8所示的预设存储空间。
在其中一种可能的实施方式中,存储上述参考数据的预设存储空间中包括的多个存储单位按顺序连续排列,那么,该预设存储空间中存储该参考数据的第一存储单位可以是该多个存储单位中除了初始位置的存储单位和结束位置的存储单位之外的任意一个或多个连续的存储单位。该预设存储空间例如可以是图8或图9所示的预设存储空间。
下面介绍基于上述描述的存储系统中的数据存储方法来存储数据之后,存储系统读取数据的过程。
参见图12,图12所示为本申请实施例提供了数据读取示意图。图12示例性给出了两个预设存储空间的数据存储结构示意图,该结构中参考数据以及该参考数据对应的差异数据均存储在同一个预设存储结构中(该参考数据对应的差异数据即为与该参考数据相似的数据与该参考数据不同的那部分数据)。图12中参考数据A0和差异数据A1组成数据A1、参考数据A0和差异数据A2组成数据A2等等。当存储系统需要读取数据A2时,可以通过一次读IO操作直接在预设存储空间3中获取到参考数据A0和差异数据A2,然后将该获取的数据合并即得到数据A2。
参见图13,图13所示是现有技术的数据读取示意图。图13也示例性给出了现有技术的数据存储结构示意图,可以看到,在该数据存储结构中,参考数据以及该参考数据对应的差异数据散乱的存储,没有规律。同样的,图13中参考数据A0和差异数据A1组成数据A1、参考数据A0和差异数据A2组成数据A2等等。当存储系统需要读取数据A2时,需要进行两次读IO操作,一次读IO操作先从现有存储空间1中读取参考数据A0,另一次读IO操作从现有存储空间2中读取参考数据A2,然后将两次读IO操作读取到的数据合并才得到数据A2。
相比于现有技术,本申请实施例提供的数据存储结构能够提高数据读取效率,提升存储系统的读性能。具体的,本申请实施例相比原有存储方案的读性能提升80%,2次读IO操作减少为1次,读取时间降低一半,除去读取数据量增加导致时间略微增长20%的时间,从而达到读性能提升80%的结果。
上述主要对本申请实施例提供的数据存储结构、存储系统中的数据存储方法和数据读取过程进行了介绍。可以理解的是,各个设备为了实现上述对应的功能,其包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对存储系统等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图14示出了本申请实施例提供的一种数据存储设备的逻辑结构示意图,该数据存储设备可以是上述方法实施例中的存储阵列的控制器或分布式存储系统中的存储节点。该数据存储设备1400包括:
计算单元1401,用于计算第一待存储数据的相似指纹得到第一相似指纹;其中,该第一相似指纹用于判断该第一待存储数据与已存储数据是否相似;
确定单元1402,用于根据该第一相似指纹确定出参考数据;其中,该参考数据的相似指纹为该第一相似指纹;
确定单元1402,还用于根据该参考数据确定该待存储数据与该参考数据之间的第一差异数据;其中,该参考数据存储在第一存储单位中;
存储单元1403,用于将该第一差异数据存储到第二存储单位;其中,该第一存储单位和该第二存储单位属于同一个读IO的读取范围。
在其中一种可能的实施方式中,计算单元1401,还用于计算该第一待存储数据的重删指纹得到第一重删指纹;
该设备还包括比较单元,用于将该第一重删指纹与该第一相似指纹关联的重删指纹比较确定该第一重删指纹与该关联的重删指纹均不相同;其中,该关联的重删指纹所表征的数据的相似指纹为该第一相似指纹。
在其中一种可能的实施方式中,该设备还包括添加单元,用于添加该第一重删指纹为该第一相似指纹关联的重删指纹。
在其中一种可能的实施方式中,计算单元1401,还用于计算第二待存储数据的相似指纹得到该第一相似指纹;
以及,用于计算该第二待存储数据的重删指纹得到该第一重删指纹;
该比较单元,还用于将该第二待存储数据的该第一重删指纹与该第一相似指纹关联的重删指纹比较确定该第一相似指纹关联的重删指纹包含该第一重删指纹;
该设备还包括增加单元,用于为该第一重删指纹的引用次数增加一个计数。
在其中一种可能的实施方式中,该存储系统的第三存储单位存储有第二差异数据;其中,该第二差异数据为第二数据与该参考数据之间的差异数据,该第二数据的相似指纹为该第一相似指纹,该第一存储单位、该第二存储单位和该第三存储单元属于同一个读IO的读取范围。
在其中一种可能的实施方式中,该参考数据的重删指纹的引用次数大于1;该第一相似指纹关联的重删指纹包含该参考数据的重删指纹。
在其中一种可能的实施方式中,该第一存储单位和该第二存储单位属于该存储系统预设的存储空间,该预设的存储空间中的多个存储单位连续排列,该第一存储单位为该预设的存储空间中除初始位置的存储单位和结束位置的存储单位外的一个存储单位。
在其中一种可能的实施方式中,该参考数据为压缩后存储在该第一存储单位中的数据。
在其中一种可能的实施方式中,该预设存储空间存储的数据的重删计数均大于1。
上述各个实施例的有益效果可以参照前述实施例中对应的描述,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述图11以及可能的实施方式所述方法中存储系统所做的操作。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品中的计算机程序被计算机读取并执行时,上述图11以及可能的实施方式所述的方法将被执行。
综上所述,本申请实施例结合数据的相似指纹和重删指纹来快速确定待存储数据和已存储数据之间相似、相同或不相似的关系,以实现高效的数据存储。此外,本申请实施例将参考数据和差异数据存储在同一个预设存储空间中,该预设存储空间存储的数据能够被一次读IO读取到,相比于现有技术,避免了读放大的问题,提升了存储系统的读性能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (16)
1.一种存储系统中的数据存储方法,其特征在于,所述方法包括:
计算第一待存储数据的相似指纹得到第一相似指纹;其中,所述第一相似指纹用于判断所述第一待存储数据与已存储数据是否相似;
根据所述第一相似指纹确定出参考数据;其中,所述参考数据的相似指纹为所述第一相似指纹;
根据所述参考数据确定所述待存储数据与所述参考数据之间的第一差异数据;其中,所述参考数据存储在第一存储单位中;
将所述第一差异数据存储到第二存储单位;其中,所述第一存储单位和所述第二存储单位属于同一个读IO的读取范围。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
计算所述第一待存储数据的重删指纹得到第一重删指纹;
将所述第一重删指纹与所述第一相似指纹关联的重删指纹比较确定所述第一重删指纹与所述关联的重删指纹均不相同;其中,所述关联的重删指纹所表征的数据的相似指纹为所述第一相似指纹。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
添加所述第一重删指纹为所述第一相似指纹关联的重删指纹。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
计算第二待存储数据的相似指纹得到所述第一相似指纹;
计算所述第二待存储数据的重删指纹得到所述第一重删指纹;
将所述第二待存储数据的所述第一重删指纹与所述第一相似指纹关联的重删指纹比较确定所述第一相似指纹关联的重删指纹包含所述第一重删指纹;
为所述第一重删指纹的引用次数增加一个计数。
5.根据权利要求2至4任一项所述的方法,其特征在于,所述存储系统的第三存储单位存储有第二差异数据;其中,所述第二差异数据为第二数据与所述参考数据之间的差异数据,所述第二数据的相似指纹为所述第一相似指纹,所述第一存储单位、所述第二存储单位和所述第三存储单元属于同一个读IO的读取范围。
6.根据权利要求5所述的方法,其特征在于,所述参考数据的重删指纹的引用次数大于1;所述第一相似指纹关联的重删指纹包含所述参考数据的重删指纹。
7.根据权利要求1所述的方法,其特征在于,所述第一存储单位和所述第二存储单位属于所述存储系统预设的存储空间,所述预设的存储空间中的多个存储单位连续排列,所述第一存储单位为所述预设的存储空间中除初始位置的存储单位和结束位置的存储单位外的一个存储单位。
8.一种数据存储设备,其特征在于,包括:
计算单元,用于计算第一待存储数据的相似指纹得到第一相似指纹;其中,所述第一相似指纹用于判断所述第一待存储数据与已存储数据是否相似;
确定单元,用于根据所述第一相似指纹确定出参考数据;其中,所述参考数据的相似指纹为所述第一相似指纹;
所述确定单元,还用于根据所述参考数据确定所述待存储数据与所述参考数据之间的第一差异数据;其中,所述参考数据存储在第一存储单位中;
存储单元,用于将所述第一差异数据存储到第二存储单位;其中,所述第一存储单位和所述第二存储单位属于同一个读IO的读取范围。
9.根据权利要求8所述的设备,其特征在于,
所述计算单元,还用于计算所述第一待存储数据的重删指纹得到第一重删指纹;
所述设备还包括比较单元,用于将所述第一重删指纹与所述第一相似指纹关联的重删指纹比较确定所述第一重删指纹与所述关联的重删指纹均不相同;其中,所述关联的重删指纹所表征的数据的相似指纹为所述第一相似指纹。
10.根据权利要求9所述的设备,其特征在于,所述设备还包括添加单元,用于添加所述第一重删指纹为所述第一相似指纹关联的重删指纹。
11.根据权利要求10所述的设备,其特征在于,
所述计算单元,还用于计算第二待存储数据的相似指纹得到所述第一相似指纹;
以及,用于计算所述第二待存储数据的重删指纹得到所述第一重删指纹;
所述比较单元,还用于将所述第二待存储数据的所述第一重删指纹与所述第一相似指纹关联的重删指纹比较确定所述第一相似指纹关联的重删指纹包含所述第一重删指纹;
所述设备还包括增加单元,用于为所述第一重删指纹的引用次数增加一个计数。
12.根据权利要求9至11任一项所述的设备,其特征在于,所述存储系统的第三存储单位存储有第二差异数据;其中,所述第二差异数据为第二数据与所述参考数据之间的差异数据,所述第二数据的相似指纹为所述第一相似指纹,所述第一存储单位、所述第二存储单位和所述第三存储单元属于同一个读IO的读取范围。
13.根据权利要求12所述的设备,其特征在于,所述参考数据的重删指纹的引用次数大于1;所述第一相似指纹关联的重删指纹包含所述参考数据的重删指纹。
14.根据权利要求8所述的设备,其特征在于,所述第一存储单位和所述第二存储单位属于所述存储系统预设的存储空间,所述预设的存储空间中的多个存储单位连续排列,所述第一存储单位为所述预设的存储空间中除初始位置的存储单位和结束位置的存储单位外的一个存储单位。
15.一种数据存储设备,其特征在于,所述设备包括处理器以及接口,所述接口与所述处理器耦合,所述处理器用于执行如权利要求1至7任一项所述的方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至7任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911312004.2A CN112988041A (zh) | 2019-12-18 | 2019-12-18 | 存储系统中的数据存储方法及相关设备 |
PCT/CN2020/133542 WO2021121042A1 (zh) | 2019-12-18 | 2020-12-03 | 存储系统中的数据存储方法及相关设备 |
EP20903691.2A EP4068071A4 (en) | 2019-12-18 | 2020-12-03 | METHOD OF STORING DATA IN A STORAGE SYSTEM AND ASSOCIATED DEVICE |
US17/840,982 US11755207B2 (en) | 2019-12-18 | 2022-06-15 | Data storage method in storage system and related device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911312004.2A CN112988041A (zh) | 2019-12-18 | 2019-12-18 | 存储系统中的数据存储方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988041A true CN112988041A (zh) | 2021-06-18 |
Family
ID=76344022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911312004.2A Pending CN112988041A (zh) | 2019-12-18 | 2019-12-18 | 存储系统中的数据存储方法及相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11755207B2 (zh) |
EP (1) | EP4068071A4 (zh) |
CN (1) | CN112988041A (zh) |
WO (1) | WO2021121042A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150010143A1 (en) * | 2009-04-30 | 2015-01-08 | HGST Netherlands B.V. | Systems and methods for signature computation in a content locality based cache |
US8918390B1 (en) | 2012-06-13 | 2014-12-23 | Emc Corporation | Preferential selection of candidates for delta compression |
US20170038978A1 (en) | 2015-08-05 | 2017-02-09 | HGST Netherlands B.V. | Delta Compression Engine for Similarity Based Data Deduplication |
US10656859B2 (en) * | 2017-03-01 | 2020-05-19 | Tintri By Ddn, Inc. | Efficient deduplication for storage systems |
CN107544863B (zh) * | 2017-06-26 | 2021-07-20 | 新华三技术有限公司 | 一种数据存储方法及装置 |
CN108134775B (zh) * | 2017-11-21 | 2020-10-09 | 华为技术有限公司 | 一种数据处理方法和设备 |
CN108984123A (zh) * | 2018-07-12 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种重复数据删除方法和装置 |
-
2019
- 2019-12-18 CN CN201911312004.2A patent/CN112988041A/zh active Pending
-
2020
- 2020-12-03 WO PCT/CN2020/133542 patent/WO2021121042A1/zh unknown
- 2020-12-03 EP EP20903691.2A patent/EP4068071A4/en active Pending
-
2022
- 2022-06-15 US US17/840,982 patent/US11755207B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2021121042A1 (zh) | 2021-06-24 |
US20220308765A1 (en) | 2022-09-29 |
EP4068071A1 (en) | 2022-10-05 |
EP4068071A4 (en) | 2023-01-25 |
US11755207B2 (en) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949405B2 (en) | Data deduplication device, data deduplication method, and data deduplication program | |
CN108427538B (zh) | 全闪存阵列的存储数据压缩方法、装置、及可读存储介质 | |
US9977746B2 (en) | Processing of incoming blocks in deduplicating storage system | |
US9569357B1 (en) | Managing compressed data in a storage system | |
US10936228B2 (en) | Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data | |
US10824599B2 (en) | Information processing apparatus, information processing method, and recording medium | |
EP3376393B1 (en) | Data storage method and apparatus | |
US20150356134A1 (en) | De-duplication system and method thereof | |
US10503516B1 (en) | Concurrent data entropy and digest computation operating on same data for CPU cache efficiency | |
US10606499B2 (en) | Computer system, storage apparatus, and method of managing data | |
US10585604B2 (en) | Tool for selectively deploying inline compression | |
WO2021082926A1 (zh) | 一种数据压缩的方法及装置 | |
Yu et al. | Pdfs: Partially dedupped file system for primary workloads | |
WO2021082928A1 (zh) | 数据缩减的方法、装置、计算设备和存储介质 | |
Kumar et al. | Genetic optimized data deduplication for distributed big data storage systems | |
US11593312B2 (en) | File layer to block layer communication for selective data reduction | |
WO2023050856A1 (zh) | 数据处理方法及存储系统 | |
CN112988041A (zh) | 存储系统中的数据存储方法及相关设备 | |
WO2022206334A1 (zh) | 一种数据压缩方法及装置 | |
CN111625186B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114415955B (zh) | 基于指纹的块粒度数据去重系统和方法 | |
US20230367477A1 (en) | Storage system, data management program, and data management method | |
CN110968575B (zh) | 一种大数据处理系统的去重方法 | |
JP2017174041A (ja) | 情報処理装置、ストレージシステム、記憶制御方法およびコンピュータプログラム | |
CN115809013A (zh) | 一种数据重删方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |