CN104239518B - 重复数据删除方法和装置 - Google Patents

重复数据删除方法和装置 Download PDF

Info

Publication number
CN104239518B
CN104239518B CN201410475287.3A CN201410475287A CN104239518B CN 104239518 B CN104239518 B CN 104239518B CN 201410475287 A CN201410475287 A CN 201410475287A CN 104239518 B CN104239518 B CN 104239518B
Authority
CN
China
Prior art keywords
address
data block
covering
threshold
period
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.)
Active
Application number
CN201410475287.3A
Other languages
English (en)
Other versions
CN104239518A (zh
Inventor
李育国
游俊
张宗全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410475287.3A priority Critical patent/CN104239518B/zh
Publication of CN104239518A publication Critical patent/CN104239518A/zh
Priority to EP19162092.1A priority patent/EP3564844B1/en
Priority to EP17208407.1A priority patent/EP3361409B1/en
Priority to PCT/CN2015/080906 priority patent/WO2016041384A1/zh
Priority to EP15841499.5A priority patent/EP3153987B1/en
Priority to US15/403,318 priority patent/US10564880B2/en
Application granted granted Critical
Publication of CN104239518B publication Critical patent/CN104239518B/zh
Priority to US16/738,401 priority patent/US11531482B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供一种重复数据删除方法和装置。该方法包括:接收外部设备发送的覆盖写请求,所述覆盖写请求中携带数据块和待存储所述数据块的第一地址;判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值;其中,所述t1和t2均为时间点,所述t2大于t1;若是,则不对所述数据块执行重删操作;若否,则对所述数据块执行重删操作。本发明实施例提供的方法,节省了大量的存储服务器的计算资源,同时也减小了重删操作对数据存储网络性能的影响。

Description

重复数据删除方法和装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种重复数据删除方法和装置。
背景技术
现有技术中,存储服务器将接收到的数据全部进行重删压缩处理。具体的:对于主存储领域中已经存储过的数据块来说,当外部设备向存储服务器的某一逻辑地址(假设为地址0)发送数据时,存储服务器首先会将该数据进行分块,分块之后采用对应的哈希算法计算该数据块的指纹;并将该数据块的指纹传入指纹库中进行查询(该指纹库中存储的是存储空间中已存储的数据块对应的指纹),以判断该数据块是否为重复块;若是,则执行重删操作,即将该重复块删除,并将存储空间中的与该重复块相同的数据块(该与重复块相同的数据块在存储空间中的地址为地址1,地址1为物理地址)的引用次数加1,并将地址0指向地址1;如果为唯一块,则将该数据块保存到存储空间,当然在保存之前可以选择对该数据块执行压缩操作,并相应的分配物理地址存储该数据块。
但是,当地址0上的重复块被删除后,外部设备有可能仍然会不断的向该地址发送写请求,以对地址0上的数据进行覆盖写,所以上述对该地址0上的数据执行的重删操作将没有意义,从而浪费存储服务器的计算资源。
发明内容
本发明实施例提供一种重复数据删除方法和装置,用以解决现有技术对数据块执行重删操作时导致存储服务器资源浪费的技术问题。
第一方面,本发明实施例提供一种重复数据删除方法,包括:
接收外部设备发送的覆盖写请求,所述覆盖写请求中携带数据块和待存储所述数据块的第一地址;
判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值;其中,所述t1和t2均为时间点,所述t2大于t1;
若是,则不对所述数据块执行重删操作;
若否,则对所述数据块执行重删操作。
结合第一方面,在第一方面的第一种可能的实施方式中,所述判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值,具体包括:
查询第一记录表中是否存在所述第一地址;所述第一记录表用于记录在所述[t1,t2]时间段内覆盖写次数超过所述第一阈值的地址。
结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,当判断所述第一地址在所述[t1,t2]时间段内覆盖写次数没有超过第一阈值,所述方法还包括:
将所述第一地址在所述[t1,t2]时间段内进行覆盖写次数加1。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,当所述第一地址上的覆盖写次数在所述[t1,t2]时间段内超过所述第一阈值,所述方法还包括:
将所述第一地址记录在所述第一记录表中,并将所述第一地址指向查找表中的第二地址;其中,所述查找表包括所述第二地址与所述数据块的指纹的映射关系。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,若所述第一地址在(t2,t3]时间段内的覆盖写次数没有超过第二阈值,则将所述第一地址从所述第一记录表中删除;其中,所述t3为大于t2的时间点。
结合第一方面的第三种可能的实施方式,在第一方面的第五种可能的实施方式中,所述方法还包括:
接收所述外部设备发送的读请求,所述读请求中携带所述第一地址;
若判断所述第一地址在(t2,t4]时间段内被读取的次数超过第三阈值,则恢复所述第一地址上最后一次执行所述重删操作时的数据块;其中,所述t4为大于t2的时间点。
结合第一方面的第五种可能的实施方式,在第一方面的第六种可能的实施方式中,所述恢复所述第一地址上最后一次执行所述重删操作时的数据块,具体包括:
读取所述第二地址上的数据块;
对所述第二地址上的数据块进行恢复,以获取所述第一地址上最后一次执行所述重删操作时的数据块;
将所述第一地址上最后一次执行所述重删操作时的数据块存储至第三地址,并将所述第一地址标记为未经过重删操作。
第二方面,本发明实施例提供一种重复数据删除装置,包括:
接收模块,用于接收外部设备发送的覆盖写请求,所述覆盖写请求中携带数据块和待存储所述数据块的第一地址;
判断模块,用于判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值;其中,所述t1和t2均为时间点,所述t2大于t1;
重删模块,用于当所述判断模块判断所述第一地址在[t1,t2]时间段内覆盖写次数超过第一阈值时,不对所述数据块执行重删操作;当所述判断模块判断所述第一地址在[t1,t2]时间段内覆盖写次数没有超过第一阈值时,对所述数据块执行重删操作。
结合第二方面,在第二方面的第一种可能的实施方式中,所述判断模块,具体用于查询第一记录表中是否存在所述第一地址;所述第一记录表用于记录在所述[t1,t2]时间段内覆盖写次数超过所述第一阈值的地址。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述装置还包括:
计数模块,用于当所述判断模块判断所述第一地址在所述[t1,t2]时间段内覆盖写次数没有超过第一阈值时,将所述第一地址在所述[t1,t2]时间段内进行覆盖写次数加1。
结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述装置还包括:
记录模块,用于当所述判断模块判断所述第一地址上的覆盖写次数在所述[t1,t2]时间段内超过所述第一阈值时,将所述第一地址记录在所述第一记录表中,并将所述第一地址指向查找表中的第二地址;其中,所述查找表包括所述第二地址与所述数据块的指纹的映射关系。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述记录模块,还用于当所述第一地址在(t2,t3]时间段内的覆盖写次数没有超过第二阈值时,将所述第一地址从所述第一记录表中删除;其中,所述t3为大于t2的时间点。
结合第二方面的第三种可能的实施方式,在第二方面的第五种可能的实施方式中,所述接收模块,还用于接收所述外部设备发送的读请求,所述读请求中携带所述第一地址;
则所述装置还包括:
数据恢复模块,还用于当所述判断模块判断所述第一地址在(t2,t4]时间段内被读取的次数超过第三阈值时,恢复所述第一地址上最后一次执行所述重删操作时的数据块;其中,所述t4为大于t2的时间点。
结合第二方面的第五种可能的实施方式,在第二方面的第六种可能的实施方式中,所述数据恢复模块,具体包括:
数据读取单元,用于读取所述第二地址上的数据块;
数据恢复单元,用于对所述第二地址上的数据块进行恢复,以获取所述第一地址上最后一次执行所述重删操作时的数据块;
存储标记单元,用于将所述第一地址上最后一次执行所述重删操作时的数据块存储至第三地址,并将所述第一地址标记为未经过重删操作。
第三方面,本发明实施例提供了一种重复数据删除装置,包括中央处理器和存储器,所述中央处理器和存储器通过总线通信,所述存储器存储计算机执行指令,所述中央处理器执行所述计算机执行指令,用于执行本发明实施例第一方面或第一方面的第一至第六任一可能的实施方式。
本发明实施例提供的重复数据删除方法和装置,通过存储服务器接收外部设备发送的携带数据块和第一地址的覆盖写请求,并判断该第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值,并在判断第一地址在[t1,t2]时间段内覆盖写次数超过第一阈值时,不对第一地址的数据块进行重删操作,从而节省大量的存储服务器的计算资源,同时也减小了重删操作对数据存储网络性能的影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的重复数据删除方法实施例一的流程示意图;
图2为本发明提供的存储系统网络拓扑图;
图3为本发明提供的重复数据删除方法实施例二的流程示意图;
图4为本发明实施例提供的重复数据删除装置实施例一的结构示意图;
图5为本发明实施例提供的重复数据删除装置实施例二的结构示意图;
图6为本发明实施例提供的重复数据删除装置实施例三的结构示意图;
图7为本发明实施例提供的重复数据删除装置实施例四的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的重复数据删除方法实施例一的流程示意图。重复数据删除,以下简称为重删。该方法的执行主体可以为存储服务器,具体可以为存储服务器中的重删模块。如图1所示,该方法包括:
S101:接收外部设备发送的覆盖写请求,所述覆盖写请求中携带数据块和待存储所述数据块的第一地址。
具体的,本发明实施例可以适用于如图2所示的存储系统网络拓扑图。外部设备经过数据存储网络,例如:存储区域网络(Storage Area Network,以下简称SAN)向存储服务器发送覆盖写请求,该覆盖写请求中携带数据块和待存储该数据块的第一地址。可选的,该第一地址可以为逻辑地址。
S102:判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值;其中,所述t1和t2均为时间点,所述t2大于t1;若是,则不对所述数据块执行重删操作;若否,则对所述数据块执行重删操作。
具体的,存储服务器接收到上述覆盖写请求之后,判断覆盖写请求中携带的第一地址在[t1,t2]时间段内的覆盖写次数是否超过第一阈值。可选的,该[t1,t2]时间段可以通过相应的软件设置,例如:通过定时器的定时软件设置。该第一阈值可以为用户设置的,也可以为存储服务器根据实际需要设置的阈值。
当存储服务器判断第一地址在[t1,t2]时间段内的覆盖写次数超过第一阈值时,存储服务器不对上述数据块进行重删操作,而是按照现有技术对数据块的处理流程进行处理,例如,将该数据块写入对应的物理地址或逻辑地址中(因为存储服务器知道在短时间内还会不断的有数据块到达第一地址,因此不再对该数据块进行重删操作了)。
当存储服务器判断在[t1,t2]时间段内的覆盖写次数没有超过第一阈值时,存储服务器对该数据块执行重删操作,即:若该数据块是重复数据块,就将该重复数据块删除;若该数据块是唯一数据块,则保该数据块,并且记录该数据块的指纹和引用计数。可选的,可以对该数据块进行压缩,并将压缩后的数据块存储至某一物理地址或逻辑地址中,还可以直接向该数据块存储至某一物理地址或逻辑地址中。
由于上述存储服务器对第一地址在[t1,t2]时间段内的覆盖写次数是否超过第一阈值进行了判断,使得存储服务器不再对任何地址都执行重删操作,而是对发生覆盖写次数未超过第一阈值的地址上的数据块才进行重删操作,对发生覆盖写次数超过第一阈值的地址上的数据块不进行重删操作,从而节省了大量的存储服务器的计算资源,同时也减小了重删操作对数据存储网络性能的影响。
本发明实施例提供的重复数据删除方法,通过存储服务器接收外部设备发送的携带数据块和第一地址的覆盖写请求,并判断该第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值,并在判断第一地址在[t1,t2]时间段内覆盖写次数超过第一阈值时,不对第一地址的数据块进行重删操作,从而节省大量的存储服务器的计算资源,同时也减小了重删操作对数据存储网络性能的影响。
在上述实施例的基础上,本实施例涉及的方法是存储服务器判断第一记录表中是否存在第一地址,从而确定是否对第一地址的数据块进行重删操作的过程。在上述图1所示实施例的基础上,进一步地,上述S102具体包括:查询第一记录表中是否存在所述第一地址;所述第一记录表用于记录在所述[t1,t2]时间段内覆盖写次数超过所述第一阈值的地址。
具体的,存储服务器接收到上述覆盖写请求之后,查询第一记录表中是否存在覆盖写请求中携带的第一地址。该第一记录表中可以包括一个或多个地址,这些地址均为在[t1,t2]时间段内覆盖写次数超过第一阈值的地址,即发生覆盖写的概率比较高的地址,这些地址均可以为逻辑地址。可选的,这些地址在第一记录表中可以是以地址集合的形式存在,也可以是以地址与该地址上的覆盖写次数的映射关系的形式存在,本发明实施例对第一记录表中的地址的存储形式并不做限制。
当存储服务器判断第一记录表中存在第一地址时,存储服务器不对上述数据块进行重删操作,而是按照现有技术对数据块的处理流程进行处理,例如,将该数据块写入对应的物理地址或逻辑地址中(因为存储服务器知道在短时间内还会不断的有数据块到达第一地址,因此不再对该数据块进行重删操作了)。
当存储服务器判断第一记录表中不存在第一地址时(也就是第一地址在[t1,t2]时间段内的覆盖写次数没有超过第一阈值),存储服务器对该数据块执行重删操作,即:若该数据块是重复数据块,就将该重复数据块删除;若该数据块是唯一数据块,则保该数据块,并且记录该数据块的指纹和引用计数。可选的,可以对该数据块进行压缩,并将压缩后的数据块存储至某一物理地址或逻辑地址中,还可以直接向该数据块存储至某一物理地址或逻辑地址中。
本发明实施例提供的重复数据删除方法,通过存储服务器接收外部设备发送的携带数据块和第一地址的覆盖写请求,并查询第一记录表中是否存在第一地址,并在第一记录表中存在第一地址时,不对第一地址的数据块进行重删操作,从而节省大量的存储服务器的计算资源,同时也减小了重删操作对数据存储网络性能的影响。
在上述实施例的基础上,当存储服务器判断第一记录表中不存在第一地址,也就是说当存储服务器判断该第一地址在[t1,t2]时间段内覆盖写次数没有超过第一阈值时,存储服务器将该第一地址在[t1,t2]时间段内进行覆盖写次数加1。当第一地址上再次发生覆盖写时,存储服务器仍然会判断第一记录表中是否存在第一地址,若不存在,则存储服务器不仅对该第一地址的数据块进行重删操作,还会将该第一地址在[t1,t2]时间段内覆盖写次数再次加1,以此类推。
当上述第一地址在[t1,t2]时间段内覆盖写次数累加到超过第一阈值时,存储服务器将该第一地址记录在第一记录表中,并将第一地址指向查找表中的第二地址;其中,该查找表包括所述第二地址与所述数据块的指纹的映射关系。
具体的,为了更方便的说明本实施例的技术方案,此处举一个简单的例子:
假设第一阈值为10次,且第一记录表中不存在第一地址(即第一地址在[t1,t2]时间段内没有超过第一阈值),则存储服务器要对上述待存储至第一地址上的数据块进行重删操作;同时,将第一地址在[t1,t2]时间段内进行覆盖写次数加1。假设加1之后,当前第一地址在[t1,t2]时间段内的覆盖写次数为9次,当第一地址上发生第10次覆盖写时(即存储服务器接收到的依然是将某一数据块写入第一地址的覆盖写请求),存储服务器依然会将上述待存储至第一地址上的数据块进行重删操作,但是存储服务器此时会将该第一地址存储至第一记录表中。
若第一地址上发生第10次覆盖写时的数据块是唯一块,则存储服务器对该数据块进行重删操作后,并将压缩后的数据块存储至查找表中的第二地址(该第二地址是存储服务器在查找表中为该唯一块分配的新地址,并且,存储服务器建立该唯一块与该第二地址之间的映射关系),并将第一地址指向该第二地址,这样在外部设备访问第一地址时,就可以间接的访问到第二地址上的数据块了。
若第一地址上发生第10次覆盖写时的数据块是重复块,则存储服务器对该数据块进行重删操作后,根据第一地址上的重复块的指纹在查找表中查找存储该重复块的地址。由于查找表中,该重复块的指纹对应的是第二地址(即第二地址上存储的数据块与该重复块是相同的),因此,存储服务器将第一地址指向第二地址。这样在外部设备访问第一地址时,也可以间接的访问到第二地址上的数据块了。
更进一步地,当第一地址记录在第一记录表之后,存储服务器依然会监测该第一地址在(t2,t3]时间段内所发生的覆盖写次数是否超过第二阈值,若没有超过,说明该第一地址在(t2,t3]时间段内发生覆盖写的次数概率很低或者根本没有发生覆盖写,则存储服务器就将该第一地址从第一记录表中删除。可选的,该第二阈值可以为0,也可以为大于0的整数。上述t3为大于t2的时间点。
图3为本发明实施例提供的重复数据删除方法实施例二的流程示意图。本实施例涉及的方法是在当第一地址记录在第一记录表之后,存储服务器判断外部设备读取第一地址的次数超过一定阈值,对该第一地址上最后一次执行重删操作时的数据块进行恢复的具体过程。如图3所示,该方法包括:
S201:接收所述外部设备发送的读请求,所述读请求中携带所述第一地址。
S202:若判断所述第一地址在(t2,t4]时间段内被读取的次数超过第三阈值,则恢复所述第一地址上最后一次执行所述重删操作时的数据块;其中,所述t4为大于t2的时间点。
具体的,存储服务器在接收到外部设备读取第一地址上的数据块的读请求时,会判断该第一地址在(t2,t4]时间段内被读取的次数是否超过第三阈值,若超过,则说明第一地址在(t2,t4]时间段内被读取的概率很高,而外部设备每次读取第一地址时,存储服务器都会去间接的访问第二地址,从而会带来相应的访问时延。因此,存储服务器为了降低访问时延,会对第一地址上最后一次执行重删操作时的数据块进行恢复。具体为:存储服务器读取第二地址上的数据块(因为第一地址指向第二地址,第二地址上的数据块与第一地址在最后一次执行重删压缩操作时的数据块相同),并对该第二地址上的数据块进行恢复,以获取第一地址上最后一次执行所述重删操作时的数据块。可选的,若数据块在存储至第二地址时进行了压缩,则这里的恢复就是对数据块进行解压缩。可选的,上述第三阈值可以为用户设置的,也可以为存储服务器根据实际需要设置的阈值。
S203:将上述第一地址上最后一次执行重删压缩操作时的数据块存储至第三地址,并将上述第一地址标记为未经过重删操作。
本发明实施例提供的重复数据删除方法,通过存储服务器判断第一记录表中的第一地址在(t2,t4]时间段内被读取的次数超过第三阈值后,对该第一地址上的最后一次执行所述重删操作时的数据块进行恢复,从而降低了外部设备访问第一地址时的时延。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图4为本发明实施例提供的重复数据删除装置实施例一的结构示意图。该装置可以为存储系统中的存储服务器,也可以集成在存储服务器中。如图4所示,该装置包括:接收模块11、判断模块12和重删模块13。其中,接收模块11,用于接收外部设备发送的覆盖写请求,所述覆盖写请求中携带数据块和待存储所述数据块的第一地址;判断模块12,用于判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值;其中,所述t1和t2均为时间点,所述t2大于t1;重删模块13,用于当所述判断模块12判断所述第一地址在[t1,t2]时间段内覆盖写次数超过第一阈值时,不对所述数据块执行重删操作;当所述判断模块12判断所述第一地址在[t1,t2]时间段内覆盖写次数没有超过第一阈值时,对所述数据块执行重删操作。
本发明实施例提供的重复数据删除装置,可以执行上述重复数据删除方法实施例,其实现原理和技术效果类似,在此不再赘述。
进一步地,上述判断模块12,具体用于查询第一记录表中是否存在所述第一地址;所述第一记录表用于记录在所述[t1,t2]时间段内覆盖写次数超过所述第一阈值的地址。
本发明实施例提供的重复数据删除装置,可以执行上述重复数据删除方法实施例,其实现原理和技术效果类似,在此不再赘述。
图5为本发明实施例提供的重复数据删除装置实施例二的结构示意图。在上述图4所示的实施例的基础上,进一步地,该装置还可以包括:计数模块14,用于当所述判断模块12判断所述第一地址在所述[t1,t2]时间段内覆盖写次数没有超过第一阈值时,将所述第一地址在所述[t1,t2]时间段内进行覆盖写次数加1;记录模块15,用于当所述判断模块12判断所述第一地址上的覆盖写次数在所述[t1,t2]时间段内超过所述第一阈值时,将所述第一地址记录在所述第一记录表中,并将所述第一地址指向查找表中的第二地址;其中,所述查找表包括所述第二地址与所述数据块的指纹的映射关系。
进一步地,上述记录模块15,还用于当所述第一地址在(t2,t3]时间段内的覆盖写次数没有超过第二阈值时,将所述第一地址从所述第一记录表中删除;其中,所述t3为大于t2的时间点。
本发明实施例提供的重复数据删除装置,可以执行上述重复数据删除方法实施例,其实现原理和技术效果类似,在此不再赘述。
图6为本发明实施例提供的重复数据删除装置实施例三的结构示意图。在上述图5所示实施例的基础上,上述接收模块11,还用于接收所述外部设备发送的读请求,所述读请求中携带所述第一地址;则该装置还可以包括:数据恢复模块16,还用于当所述判断模块12判断所述第一地址在(t2,t4]时间段内被读取的次数超过第三阈值时,恢复所述第一地址上最后一次执行所述重删操作时的数据块;其中,所述t4为大于t2的时间点。
进一步地,该数据恢复模块16,具体可以包括:数据读取单元161,用于读取所述第二地址上的数据块;数据恢复单元162,用于对所述第二地址上的数据块进行恢复,以获取所述第一地址上最后一次执行所述重删操作时的数据块;存储标记单元163,用于将所述第一地址上最后一次执行所述重删操作时的数据块存储至第三地址,并将所述第一地址标记为未经过重删操作。
本发明实施例提供的重复数据删除装置,可以执行上述重复数据删除方法实施例,其实现原理和技术效果类似,在此不再赘述。
图7为本发明实施例提供的重复数据删除装置实施例四的结构示意图。如图7所示,该装置可以包括:中央处理器20和存储器21,所述中央处理器20和存储器21通过总线通信,所述存储器21存储计算机执行指令,所述中央处理器20执行所述计算机执行指令,用于执行本发明方法实施例所示的技术方案,其实现原理和技术效果类似,此处不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (15)

1.一种重复数据删除方法,其特征在于,包括:
接收外部设备发送的覆盖写请求,所述覆盖写请求中携带数据块和待存储所述数据块的第一地址;
判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值;其中,所述t1和t2均为时间点,所述t2大于t1;
若是,则不对所述数据块执行重删操作;
若否,则对所述数据块执行重删操作。
2.根据权利要求1所述的方法,其特征在于,所述判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值,具体包括:
查询第一记录表中是否存在所述第一地址;所述第一记录表用于记录在所述[t1,t2]时间段内覆盖写次数超过所述第一阈值的地址。
3.根据权利要求1或2所述的方法,其特征在于,当判断所述第一地址在所述[t1,t2]时间段内覆盖写次数没有超过第一阈值,所述方法还包括:
将所述第一地址在所述[t1,t2]时间段内进行覆盖写次数加1。
4.根据权利要求2所述的方法,其特征在于,当所述第一地址上的覆盖写次数在所述[t1,t2]时间段内超过所述第一阈值,所述方法还包括:
将所述第一地址记录在所述第一记录表中,并将所述第一地址指向查找表中的第二地址;其中,所述查找表包括所述第二地址与所述数据块的指纹的映射关系。
5.根据权利要求4所述的方法,其特征在于,若所述第一地址在(t2,t3]时间段内的覆盖写次数没有超过第二阈值,则将所述第一地址从所述第一记录表中删除;其中,所述t3为大于t2的时间点。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
接收所述外部设备发送的读请求,所述读请求中携带所述第一地址;
若判断所述第一地址在(t2,t4]时间段内被读取的次数超过第三阈值,则恢复所述第一地址上最后一次执行所述重删操作时的数据块;其中,所述t4为大于t2的时间点。
7.根据权利要求6所述的方法,其特征在于,所述恢复所述第一地址上最后一次执行所述重删操作时的数据块,具体包括:
读取所述第二地址上的数据块;
对所述第二地址上的数据块进行恢复,以获取所述第一地址上最后一次执行所述重删操作时的数据块;
将所述第一地址上最后一次执行所述重删操作时的数据块存储至第三地址,并将所述第一地址标记为未经过重删操作。
8.一种重复数据删除装置,其特征在于,包括:
接收模块,用于接收外部设备发送的覆盖写请求,所述覆盖写请求中携带数据块和待存储所述数据块的第一地址;
判断模块,用于判断所述第一地址在[t1,t2]时间段内覆盖写次数是否超过第一阈值;其中,所述t1和t2均为时间点,所述t2大于t1;
重删模块,用于当所述判断模块判断所述第一地址在[t1,t2]时间段内覆盖写次数超过第一阈值时,不对所述数据块执行重删操作;当所述判断模块判断所述第一地址在[t1,t2]时间段内覆盖写次数没有超过第一阈值时,对所述数据块执行重删操作。
9.根据权利要求8所述的装置,其特征在于,所述判断模块,具体用于查询第一记录表中是否存在所述第一地址;所述第一记录表用于记录在所述[t1,t2]时间段内覆盖写次数超过所述第一阈值的地址。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
计数模块,用于当所述判断模块判断所述第一地址在所述[t1,t2]时间段内覆盖写次数没有超过第一阈值时,将所述第一地址在所述[t1,t2]时间段内进行覆盖写次数加1。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
记录模块,用于当所述判断模块判断所述第一地址上的覆盖写次数在所述[t1,t2]时间段内超过所述第一阈值时,将所述第一地址记录在所述第一记录表中,并将所述第一地址指向查找表中的第二地址;其中,所述查找表包括所述第二地址与所述数据块的指纹的映射关系。
12.根据权利要求11所述的装置,其特征在于,所述记录模块,还用于当所述第一地址在(t2,t3]时间段内的覆盖写次数没有超过第二阈值时,将所述第一地址从所述第一记录表中删除;其中,所述t3为大于t2的时间点。
13.根据权利要求11所述的装置,其特征在于,所述接收模块,还用于接收所述外部设备发送的读请求,所述读请求中携带所述第一地址;
则所述装置还包括:
数据恢复模块,还用于当所述判断模块判断所述第一地址在(t2,t4]时间段内被读取的次数超过第三阈值时,恢复所述第一地址上最后一次执行所述重删操作时的数据块;其中,所述t4为大于t2的时间点。
14.根据权利要求13所述的装置,其特征在于,所述数据恢复模块,具体包括:
数据读取单元,用于读取所述第二地址上的数据块;
数据恢复单元,用于对所述第二地址上的数据块进行恢复,以获取所述第一地址上最后一次执行所述重删操作时的数据块;
存储标记单元,用于将所述第一地址上最后一次执行所述重删操作时的数据块存储至第三地址,并将所述第一地址标记为未经过重删操作。
15.一种重复数据删除装置,其特征在于,包括中央处理器和存储器,所述中央处理器和存储器通过总线通信,所述存储器存储计算机执行指令,所述中央处理器执行所述计算机执行指令,用于执行权利要求1-7任一所述的方法。
CN201410475287.3A 2014-09-17 2014-09-17 重复数据删除方法和装置 Active CN104239518B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201410475287.3A CN104239518B (zh) 2014-09-17 2014-09-17 重复数据删除方法和装置
EP19162092.1A EP3564844B1 (en) 2014-09-17 2015-06-05 Data deduplication method and apparatus
EP17208407.1A EP3361409B1 (en) 2014-09-17 2015-06-05 Data deduplication method and apparatus
PCT/CN2015/080906 WO2016041384A1 (zh) 2014-09-17 2015-06-05 重复数据删除方法和装置
EP15841499.5A EP3153987B1 (en) 2014-09-17 2015-06-05 Duplicate data deletion method and device
US15/403,318 US10564880B2 (en) 2014-09-17 2017-01-11 Data deduplication method and apparatus
US16/738,401 US11531482B2 (en) 2014-09-17 2020-01-09 Data deduplication method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410475287.3A CN104239518B (zh) 2014-09-17 2014-09-17 重复数据删除方法和装置

Publications (2)

Publication Number Publication Date
CN104239518A CN104239518A (zh) 2014-12-24
CN104239518B true CN104239518B (zh) 2017-09-29

Family

ID=52227577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410475287.3A Active CN104239518B (zh) 2014-09-17 2014-09-17 重复数据删除方法和装置

Country Status (4)

Country Link
US (2) US10564880B2 (zh)
EP (3) EP3153987B1 (zh)
CN (1) CN104239518B (zh)
WO (1) WO2016041384A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239518B (zh) * 2014-09-17 2017-09-29 华为技术有限公司 重复数据删除方法和装置
US9805099B2 (en) 2014-10-30 2017-10-31 The Johns Hopkins University Apparatus and method for efficient identification of code similarity
US10656991B2 (en) * 2015-08-24 2020-05-19 International Business Machines Corporation Electronic component having redundant product data stored externally
CN107430602B (zh) 2015-12-29 2020-05-08 华为技术有限公司 重复数据删除方法及存储设备
CN105787037B (zh) * 2016-02-25 2019-03-15 浪潮(北京)电子信息产业有限公司 一种重复数据的删除方法及装置
US10788988B1 (en) 2016-05-24 2020-09-29 Violin Systems Llc Controlling block duplicates
CN106095332A (zh) * 2016-06-01 2016-11-09 杭州宏杉科技有限公司 一种数据重删方法及装置
AU2016394896B2 (en) * 2016-09-28 2018-08-09 Huawei Technologies Co.,Ltd. Method for deduplication in storage system, storage system, and controller
CN107798047B (zh) * 2017-07-26 2021-03-02 深圳壹账通智能科技有限公司 重复工单检测方法、装置、服务器和介质
CN107632786B (zh) * 2017-09-20 2020-04-07 杭州宏杉科技股份有限公司 一种数据重删的管理方法及装置
CN108121504B (zh) * 2017-11-16 2021-01-29 成都华为技术有限公司 数据删除方法及装置
WO2021013335A1 (en) * 2019-07-23 2021-01-28 Huawei Technologies Co., Ltd. Devices, system and methods for deduplication
US11269532B2 (en) * 2019-10-30 2022-03-08 EMC IP Holding Company LLC Data reduction by replacement of repeating pattern with single instance
CN111522843B (zh) * 2020-06-01 2023-06-27 北京创鑫旅程网络技术有限公司 数据平台的控制方法、系统、设备及存储介质
CN113709510A (zh) * 2021-08-06 2021-11-26 联想(北京)有限公司 高速率数据实时传输方法及装置、设备、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833496A (zh) * 2010-03-25 2010-09-15 北京邮电大学 基于硬盘的主机防客体重用性能的检测装置及其检测方法
CN102968597A (zh) * 2012-11-05 2013-03-13 中国电力科学研究院 一种基于磁盘数据连接链文件粉碎方法
CN103294957A (zh) * 2013-05-06 2013-09-11 北京赛思信安技术有限公司 支持重复数据删除文件系统中数据更新时的数据保护方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515909B2 (en) * 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US8108638B2 (en) * 2009-02-06 2012-01-31 International Business Machines Corporation Backup of deduplicated data
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US8904120B1 (en) * 2010-12-15 2014-12-02 Netapp Inc. Segmented fingerprint datastore and scaling a fingerprint datastore in de-duplication environments
WO2012129191A2 (en) * 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US8462781B2 (en) * 2011-04-06 2013-06-11 Anue Systems, Inc. Systems and methods for in-line removal of duplicate network packets
US8930307B2 (en) * 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
US10216651B2 (en) * 2011-11-07 2019-02-26 Nexgen Storage, Inc. Primary data storage system with data tiering
WO2013070800A1 (en) * 2011-11-07 2013-05-16 Nexgen Storage, Inc. Primary data storage system with quality of service
US10248582B2 (en) * 2011-11-07 2019-04-02 Nexgen Storage, Inc. Primary data storage system with deduplication
US9348538B2 (en) * 2012-10-18 2016-05-24 Netapp, Inc. Selective deduplication
EP3217298B1 (en) * 2012-12-12 2018-08-29 Huawei Technologies Co., Ltd. Data processing method and apparatus in cluster system
CN103502957B (zh) * 2012-12-28 2016-07-06 华为技术有限公司 数据处理方法及装置
US9633033B2 (en) * 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9423978B2 (en) * 2013-05-08 2016-08-23 Nexgen Storage, Inc. Journal management
US20150006475A1 (en) * 2013-06-26 2015-01-01 Katherine H. Guo Data deduplication in a file system
CN104239518B (zh) * 2014-09-17 2017-09-29 华为技术有限公司 重复数据删除方法和装置
US9773007B1 (en) * 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833496A (zh) * 2010-03-25 2010-09-15 北京邮电大学 基于硬盘的主机防客体重用性能的检测装置及其检测方法
CN102968597A (zh) * 2012-11-05 2013-03-13 中国电力科学研究院 一种基于磁盘数据连接链文件粉碎方法
CN103294957A (zh) * 2013-05-06 2013-09-11 北京赛思信安技术有限公司 支持重复数据删除文件系统中数据更新时的数据保护方法

Also Published As

Publication number Publication date
US20170123712A1 (en) 2017-05-04
EP3153987A1 (en) 2017-04-12
EP3153987A4 (en) 2017-05-31
CN104239518A (zh) 2014-12-24
US20200150890A1 (en) 2020-05-14
WO2016041384A1 (zh) 2016-03-24
US10564880B2 (en) 2020-02-18
EP3153987B1 (en) 2018-03-21
EP3564844A1 (en) 2019-11-06
EP3361409A1 (en) 2018-08-15
EP3564844B1 (en) 2020-08-26
US11531482B2 (en) 2022-12-20
EP3361409B1 (en) 2019-11-20

Similar Documents

Publication Publication Date Title
CN104239518B (zh) 重复数据删除方法和装置
CN104461390B (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
CN104808951B (zh) 进行存储控制的方法和设备
CN104503708B (zh) 数据散列存储的方法及装置
CN108170555A (zh) 一种数据恢复方法及设备
CN103677674B (zh) 一种数据处理方法及装置
CN107122130B (zh) 一种数据重删方法及装置
CN107209714A (zh) 分布式存储系统及分布式存储系统的控制方法
US10303374B2 (en) Data check method and storage system
CN109086388A (zh) 区块链数据存储方法、装置、设备及介质
CN105787037B (zh) 一种重复数据的删除方法及装置
CN103324533A (zh) 分布式数据处理方法、装置及系统
CN110109915A (zh) 用于管理哈希表的方法、设备和计算机程序产品
CN107003893A (zh) 虚拟机备份方法、备份装置及宿主机
CN104092670A (zh) 网络缓存服务器处理文件的方法及处理缓存文件的设备
CN109582213A (zh) 数据重构方法及装置、数据存储系统
CN105912425A (zh) 快照映像建立、回滚方法以及装置
CN103034592A (zh) 数据处理方法和装置
CN110209341A (zh) 一种数据写入方法、装置和存储设备
CN108845764A (zh) 一种io数据的处理方法及装置
CN108763517A (zh) 一种删除元数据的方法以及相关设备
CN108628760A (zh) 原子写命令的方法与装置
CN104298614B (zh) 数据块在存储设备中存储方法和存储设备
WO2019037587A1 (zh) 一种数据恢复方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant