CN109074226B - 一种存储系统中重复数据删除方法、存储系统及控制器 - Google Patents
一种存储系统中重复数据删除方法、存储系统及控制器 Download PDFInfo
- Publication number
- CN109074226B CN109074226B CN201680003119.1A CN201680003119A CN109074226B CN 109074226 B CN109074226 B CN 109074226B CN 201680003119 A CN201680003119 A CN 201680003119A CN 109074226 B CN109074226 B CN 109074226B
- Authority
- CN
- China
- Prior art keywords
- fingerprint
- data
- written
- storage
- controller
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000013507 mapping Methods 0.000 claims abstract description 143
- 238000003780 insertion Methods 0.000 claims description 18
- 230000037431 insertion Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 13
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000002441 reversible effect Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002459 sustained effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- 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/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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
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)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种存储系统中重复数据删除方法,本方法中控制器将首次写入的数据块存储在第一存储地址,在指纹表中插入首次写入的第一待写数据的第一指纹,但不建立第一指纹与第一存储地址的映射关系,控制器接收后续写入的第二待写数据时,为重复的第二待写数据分配第二存储地址,将第二待写数据存储到第二存储地址,在指纹表中建立第一指纹与第二存储地址的映射关系,减少了指纹表的数据量。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种存储系统中重复数据删除方法、存储系统及控制器。
背景技术
重复数据删除功能是存储系统中一个很重要的特性。存储系统引入了重复数据删除功能后,可以减少重复数据的存储,进而节省了存储空间。
现有技术中,重复数据删除操作通常包含如下流程:
获得数据块的指纹;查询指纹表中是否包含相同的指纹,如果指纹表中不包含该指纹,则在存储区域中分配存储地址,并将该数据块存储到该存储地址,在指纹表中建立该指纹与该存储地址的映射关系,以及该数据块的逻辑块地址到指纹的映射关系。当有相同指纹的数据块再次写入时,只需要建立再次写入的数据块的逻辑块地址与该指纹的映射关系,而不需要重新存储再次写入的数据块。现有技术中重复数据删除技术虽然节省了存储空间,但是也存在指纹表数据量大的问题。
发明内容
第一方面,本发明实施例提供了一种存储系统中重复数据删除方案,其中,存储系统包括控制器和存储设备。该方案包括:控制器接收第一写请求,第一写请求携带第一逻辑块地址和第一待写数据;控制器获得第一待写数据的第一指纹;当指纹表中不包含第一指纹时,将第一指纹插入指纹表中,并为第一待写数据从存储设备分配第一存储地址;控制器将第一待写数据存储到第一存储地址;控制器建立第一逻辑块地址与第一存储地址的映射关系;控制器接收第二写请求,第二写请求携带第二逻辑块地址和第二待写数据;控制器获得第二待写数据的指纹,第二待写数据的指纹为第一指纹;控制器根据第二待写数据的第一指纹查询指纹表确定第一指纹不存在与第一指纹对应的存储地址时,控制器为第二待写数据从存储设备分配第二存储地址;控制器将第二待写数据存储到第二存储地址;控制器在指纹表中建立第一指纹与第二存储地址的映射关系;控制器建立第二逻辑块地址与第二存储地址的映射关系。
通常重复数据删除中,指纹表也称为指纹索引或指纹元数据,用于存储指纹及指纹对应的存储地址的映射关系,其中,存储地址中存储该指纹对应的数据块。
上述方案在具体实现时可以使用指纹表的指纹表项存储指纹及指纹对应的存储地址的映射关系。当指纹表不包含第一指纹时,将第一指纹插入指纹表这一过程具体包括:当指纹表的指纹表项不包含第一指纹时,控制器在指纹表中创建第一指纹表项,将第一指纹插入第一指纹表项。控制器根据第二待写数据的第一指纹查询指纹表确定第一指纹不存在与第一指纹对应的存储地址这一过程具体包括控制器根据第二待写数据的第一指纹查询指纹表确定第一指纹表项中第一指纹对应的存储地址为空。控制器在指纹表中建立第一指纹与第二存储地址的映射关系这一过程具体为控制器在第一指纹表项中插入第二存储地址。
上述方案中,指纹表中不存在与第一指纹对应的存储地址,具体可以是指在指纹表中未定义第一指纹对应的存储地址,也可以是第一指纹对应的存储地址为空。在指纹表中以指纹表项来记录指纹与存储地址的映射关系的实现中,当指纹表的指纹表项不包含第一指纹时,控制器在指纹表中创建第一指纹表项,将第一指纹插入第一指纹表项时,第一指纹表项中可以不定义存储地址,即第一指纹表项中不定义存储地址参数,或者存储地址对为空,即已经定义存储地址参数,但内容为空,在这些情况下,称之为指纹表中第一指纹不存在与第一指纹对应的存储地址,即指纹表中没有建立第一指纹与第一存储地址的映射关系。
上述方案中,第一待写数据与第二待写数据的指纹均为第一指纹,则表明第一待写数据与第二待写数据相同。控制器将首次写入的数据块存储在第一存储地址,在指纹表中插入首次写入的第一待写数据的第一指纹,但不建立第一指纹与第一存储地址的映射关系,控制器接收后续写入的第二待写数据时(第二待写数据不限于是控制器第二次接收到的相同数据),为重复的第二待写数据分配第二存储地址,将第二待写数据存储到第二存储地址,在指纹表建立第一指纹与第二存储地址的映射关系,即控制器多次(至少两次)接收到相同的数据才进行重复数据删除,从而减少了指纹表的数据量。
可选的,控制器统计接收写请求中携带指纹值为第一指纹的待写数据的次数,当次数大于预设次数N时,控制器将第二待写数据存储到第二存储地址,在指纹表中建立第一指纹与第二存储地址的映射关系;其中N为不小于1的整数。即将第N+1次出现的重复数据(第二待写数据)存储到第二存储地址,在指纹表中建立第一指纹与第二存储地址的映射关系。其中,第二存储地址中存储的数据为重删数据。因此,可以根据存储系统的需求,设定对重复度高达到特定值的数据块进行重复数据删除。重删数据是指指纹表中的指纹对应的存储地址存储的数据,非重删数据是指存储系统中存储的,但不属于指纹表中指纹对应的存储地址存储的数据。
可选的,控制器从存储设备的第一存储区域中为第一待写数据分配第一存储地址;控制器从存储设备的第二存储区域中为第二待写数据分配第二存储地址,第二存储区域的存储性能高于第一存储区域的存储性能,可以提高控制器对重删数据的访问性能。
可选的,控制器接收第三写请求,第三写请求携带第三逻辑块地址和第三待写数据;控制器获得第三待写数据的指纹,第三待写数据的指纹为第一指纹;当根据第三待写数据的第一指纹查询指纹表确定第一指纹对应的存储地址为第二存储地址时,控制器建立第三逻辑块地址与第二存储地址的映射关系。当第一待写数据、第二待写数据与第三待写数据的指纹均为第一指纹时,表明第一待写数据、第二待写数据与第三待写数据相同。基于此,控制器对重复数据进行重删操作,可以节省存储空间。具体实现中,根据第三待写数据的第一指纹查询指纹表中第一指纹表项确定第一指纹对应的存储地址为第二存储地址时,控制器建立第三逻辑块地址与第二存储地址的映射关系
可选的,控制器在指纹表中记录第二存储地址的引用次数。引用次数是逻辑块地址对指纹表中某一指纹对应的存储地址的引用次数。逻辑块地址对指纹表中某一指纹对应的存储地址的引用次数由逻辑块地址与存储地址的映射关系确定。当控制器建立一个逻辑块地址与该存储地址的映射关系时,并且该存储地址记录在指纹表中,则该逻辑块地址对指纹表中指纹对应的存储地址引用1次。具体实现,控制器在指纹表的第一指纹表项中记录第二存储地址的引用次数。在这一实现中,引用次数是逻辑块地址对指纹表项中的存储地址的引用次数。根据引用次数可以判断第二存储地址是否可以重新写入数据,当引用次数为0,即表明没有逻辑块地址指向第二存储地址,则可以释放第二存储地址,从而使第二存储地址成为存储设备中空闲的存储地址,可用于重新写入数据。
可选的,控制器根据指纹表中记录的引用次数,将引用次数大于预设阈值的指纹及指纹对应的存储地址的映射关系存储到控制器的缓存中,提高重复数据删除时指纹查找效率。具体的,控制器可以根据指纹表中指纹表项记录的引用次数实现该操作。可选的,控制器在指纹表记录第一指纹的插入时间。具体的,可以为在指纹表的第一指纹表项中记录第一指纹的插入时间。
可选的,控制器删除指纹表中第二指纹;其中,指纹表中不存在与第二指纹对应的存储地址,并且第二指纹插入指纹表的时间超过预设时间。控制器可以将在指纹表中存在的时长超过预设时长,并且没有对应的存储地址的指纹从指纹表中删除,从而进一步减少指纹表的数据量。具体实现,可以根据指纹表记录的第二指纹的插入时间确定第二指纹在指纹表中存在的时长超过预设时长。可选的,以指纹表项为例,在控制器在指纹表项中记录的第二指纹,第二指纹对应的存储地址在第二表项中为空,并且第二指纹在第二指纹表项中存在的时长超过预设时长。对指纹没有对应的存储地址的含义可参考前面的描述,在此不再赘述。
可选的,存储系统还包括反向映射表,反向映射表中的表项用于记录指纹表中指纹对应的存储地址与指向该存储地址的逻辑块地址的映射关系,如第一指纹对应的第二存储地址,指向第二存储地址的逻辑块地址分别为第二逻辑块地址和第三逻辑块地址,当存储设备提供的第二存储地址发生故障(或第二存储区域发生故障),新的存储设备替换故障存储设备(新的存储区域替换故障的第二存储区域),则在新的存储设备或新的存储区域上重新分配第二存储地址时,不需要遍历存储系统中每一个逻辑单元的逻辑块地址与存储地址的映射关系从而确定指向第二存储地址的逻辑块地址,只需要根据反向映射表的表项,确定第二存储地址对应第二逻辑块地址和第三逻辑块地址,因此提高了数据恢复时逻辑块地址的查找效率。
可选的,逻辑块地址与存储地址的映射关系中还可以包含是否是重删数据的标识,例如,第一逻辑块地址与第一存储地址的映射关系中携带是否是重删数据的标识,第二逻辑块地址与第二存储地址的映射关系中携带是否是重删数据的标识,第三逻辑块地址与第二存储地址的映射关系中携带是否是重删数据的标识,控制器通过上述映射关系中的重删数据标识可方便识别存储地址中存储的数据是否是重删数据。
本发明实施例中,控制器在进行重复数据删除时,建立逻辑块地址与存储地址的映射关系,而不是现有技术中逻辑块地址与指纹的映射以及指纹与存储指纹对应的数据存储地址的映射关系,因此,根据本发明实施例提供的各方案,控制器在不进行重复数据删除时,也可以根据逻辑块地址与存储地址的映射关系访问存储设备中的数据,写入数据以及删除存储设备中的数据。控制器在不进行重复数据删除的情况包括例如控制器的重复数据删除逻辑离线和无法访问指纹表的表项。因此,提高了存储系统的数据可访问性。
第二方面,相应地,本发明实施例还提供了一种存储系统以及控制器,用于实现第一方面各种实现方案。其中,控制器包括实现本发明实施例第一方面各种的实现方案的结构单元,或者,控制器包括接口和处理器以分别执行本发明实施例第一方面各种的实现方案。
相应地,本发明还提供了非易失性计算机可读存储介质和计算机程序产品,当本发明实施例提供的控制器的存储器加载非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,控制器的中央处理单元(Central Processing Unit,CPU)执行该计算机指令时,分别使存储设备执行本发明实施例第一方面的各种可能实现方案。
附图说明
图1为本发明实施例存储系统架构示意图;
图2为本发明实施例控制器结构示意图;
图3为本发明实施例存储系统存储资源分配示意图;
图4为本发明实施例逻辑块地址与存储地址映射关系示意图;
图5为本发明实施例指纹表项示意图;
图6为本发明实施例逻辑块地址与存储地址映射关系示意图;
图7为本发明实施例指纹表项示意图;
图8为为本发明实施例逻辑块地址与存储地址映射关系示意图;
图9为本发明实施例指纹表项示意图;
图10为本发明实施例反向映射表结构示意图;
图11为本发明实施例指纹表项示意图;
图12为本发明实施例逻辑块地址与存储地址映射关系示意图;
图13为本发明实施例流程图;
图14为本发明实施例控制器结构示意图。
本发明实施例
如图1所示,本发明实施例中的存储系统,包括控制器和存储设备,其中,存储设备为一块或多块硬盘。硬盘包含固态硬盘(Solid State Disk,SSD)或者机械硬盘,或者SSD与机械硬盘的组合。机械硬盘如HDD(Hard Disk Drive)。可选的,存储设备中的硬盘也可以为混合(Hybrid)硬盘,存储设备也可以为单个硬盘,例如超大容量硬盘。
如图2所示,控制器包含中央处理单元(Central Processing Unit,CPU)201和存储器202,存储器202中存储计算机指令,CPU201执行存储器202中的计算机指令对存储系统进行管理及进行重复数据删除操作。另外,为节省CPU201的计算资源,现场可编程门阵列(Field Programmable Gate Array,FPGA)或其他硬件也可以用于执行本发明实施例中CPU全部操作,或者,FPGA或其他硬件与CPU分别用于执行本发明实施例CPU的部分操作,以实现本发明实施例描述的技术方案。为方便描述,本发明实施例统一描述为控制器的处理器用于实现本发明实施例的技术方案。其中,处理器包含存储资源管理逻辑和重复数据删除逻辑。存储资源管理逻辑用于实现存储资源的管理、分配和逻辑单元(Logical Unit,LU)管理,本发明实施例中,逻辑单元又称为逻辑单元号(Logical Unit Number,LUN)。重复数据删除逻辑用于实现重复数据删除操作。此外,控制器还包括接口,该接口与处理器进行通信,用于接收操作请求,如写请求,删除请求或读请求。接口具体可以为主机总线适配器(Host Bus Adapter,HBA)卡,高速外围组件互联(Peripheral Component InterconnectExpress,PCIE)接口卡等。
由于SSD的存储性能优于HDD,其中一种实现,如图3所示,控制器分别将存储系统中的机械硬盘和固态硬盘划分成固定大小的块(Chunk),由块组成存储区域1和存储区域2。本发明实施例中,存储区域也称为存储资源池。其中,存储资源池1由控制器划分机械硬盘得到的块组成,存储资源池2由控制器划分固态硬盘得到的块组成。这里称存储资源池2为第一等级的资源池,存储资源池1为第二等级的资源池。根据独立硬盘冗余阵列(RAID,Redundant Array of Independent Disks,RAID)算法,控制器随机选取存储资源池1中分布在多个机械硬盘上的块组成块组(Chunk Group),例如,由组成一个块组,即4个分别来自不同的硬盘;同理,根据RAID算法,控制器随机选取存储资源池2中分布在多个固态硬盘上的块组成块组(Chunk Group),例如,由组成一个块组,即4个分别来自不同的硬盘。控制器将块组划分成固定大小的扩展(Extent),例如或将扩展分配给LUN使用。如图3所示,LUN1使用存储资源池1中的扩展,LUN2使用存储资源池1和存储资源池2中的扩展,也就是LUN1使用存储区域1中提供的扩展,LUN2使用存储区域1和存储区域2中提供的扩展。因此,LUN1称为非分级存储LUN,LUN2称为分级存储LUN。
以LUN2为例,控制器接收第一写请求,通常第一写请求中携带LUN2的标识、逻辑块地址(Logical Block Address,LBA)1和第一待写数据。其中LBA 1为第一待写数据的目标逻辑地址。控制器获得第一待写数据的指纹A,例如,使用哈希(Hash)算法获得第一待写数据的指纹。控制器查询指纹表中是否存在指纹A。当指纹表中的指纹表项不包含指纹A时,控制器在指纹表中创建新的指纹表项,将指纹A插入该新的指纹表项。控制器为第一待写数据从存储资源池1中分配扩展,即分配存储地址SD1,将第一待写数据存储到SD1,建立如图4所示的LBA1与SD1的映射关系,即LUN2中的LBA1指向SD1。可选的,映射关系中还可以携带是否是重删数据的标识,例如用0标识为非重删数据,用1标识为重删数据。本发明实施例中,重删数据是指指纹表的指纹表项中的存储地址存储的数据;非重删数据是指存储系统中存储的,但不属于指纹表的指纹表项中记录的存储地址存储的数据。控制器通过LBA1与SD1的映射关系中的重删数据标识可方便识别SD1中存储的数据不是重删数据。
现有技术中,如果第一待写数据是首次写入的数据,指纹表中插入指纹A后,指纹表中会建立指纹A与存储地址SD1的映射关系,而在本发明实施例中,如图5所示,第一待写数据是首次写入的数据,控制器在新的指纹表项中插入指纹A后,该新的指纹表项中指纹A对应的存储地址为空,即不在新的指纹表项中插入第一存储地址。本发明实施例中,可选的,指纹表中的指纹表项还可以包含指纹插入时间以及逻辑块地址对指纹表项中的存储地址的引用次数。其中,逻辑块地址对指纹表项中的存储地址的引用次数也称为指纹表项中指纹对应的存储地址的引用次数。逻辑块地址对指纹表项中的存储地址的引用次数由逻辑块地址与存储地址的映射关系确定,当控制器建立一个逻辑块地址与该存储地址的映射关系时,并且该存储地址记录在指纹表中,该逻辑块地址对指纹表项中的存储地址引用1次。
本发明实施例中,指纹A的插入时间为T1,由于该新的指纹表项中只有指纹A,指纹A对应的存储地址为空,逻辑块地址对存储地址中的数据的引用次数为0。当指纹表项中包含指纹,但没有指纹对应的存储地址时,表明存储系统没有该指纹对应的重删数据。基于此,控制器可以将在指纹表中存在的时长超过预设时长,并且没有对应的存储地址的指纹从指纹表中删除,从而减少指纹表的数据量。具体的,在本发明实施例中,指纹A插入时间为T1,在T2时刻控制器要将在指纹表中存在的时长超过预设时长,并且没有对应的存储地址的指纹删除,可以根据T2与T1之差确定指纹A在指纹表中存在的时长,即自T1时刻起到T2时刻的时长,当指纹表的指纹表项中指纹A对应的存储地址为空,并且T2与T1之差超过预设时长,则可以将指纹A从指纹表中删除。
通常重复数据删除中,指纹表也称为指纹索引或指纹元数据,用于存储指纹及指纹对应的存储地址的映射关系,其中,存储地址中存储该指纹对应的数据块。具体实现,可以使用指纹表项存储指纹及指纹对应的存储地址的映射关系。
本发明实施例中,指纹A没有对应的存储地址是指在指纹表中未定义指纹A对应的存储地址,或者指纹A对应的存储地址为空。在以指纹表项记录指纹与存储地址的映射关系的实现中,新的指纹表项中可以不定义存储地址,即新的指纹表项中不定义存储地址参数,或者存储地址对为空,即已经定义存储地址参数,但内容为空。
当控制器接收第二写请求,通常第二写请求中携带LUN2的标识、LBA 2和第二待写数据。其中LBA 2为第二待写数据的目标逻辑地址。控制器获得第二待写数据的指纹A,例如,使用哈希(Hash)算法获得第二待写数据的指纹A。第一待写数据与第二待写数据的指纹均为指纹A,则表明第一待写数据与第二待写数据相同。控制器查询指纹表确定该新的指纹表项中指纹A对应的存储地址为空,为第二待写数据从存储资源池2中分配扩展,即分配存储地址SD2,将第二待写数据存储到SD2,建立如图6所示的LBA2与SD2的映射关系,即LUN2中的LBA2指向SD2。可选的,LBA2与SD2的映射关系中还可以携带是否是重删数据的标识,例如用1标识为重删数据,通过LBA2与SD2的映射关系中的重删数据标识可方便识别SD2中存储的数据是重删数据。如图7所示,控制器在该新的指纹表项中建立指纹A与SD2的映射关系,即指纹表项中插入指纹A对应的存储地址为SD2。如图7所示,第二待写数据是重删数据,该新的指纹表项中引用次数更新为1。
控制器统计接收写请求中携带指纹值为A的待写数据的次数,当次数大于预设次数N时,控制器为第二待写数据从存储资源池2中分配SD2,在该新的指纹表项中插入SD2。其中N为不小于1的整数,具体可根据存储系统的需求设置。因此,可以根据存储系统的需求,控制器接收的具有相同指纹的待写数据的次数大于N,即将第N+1次出现的重复数据存储到SD2,将SD2插入到指纹表项中,即控制器对多次接收到相同的数据才进行重复数据删除,减少了指纹表的数据量。
本发明实施例中,控制器将首次写入的数据块存储在第一存储地址,在指纹表中创建的新的指纹表项中插入首次写入的数据块的指纹,但不插入存储该数据块的存储地址,控制器接收后续写入的重复的数据块时,为重复的数据块分配第二存储地址,将重复数据存储到第二存储地址,并在指纹表的相应指纹表项中插入第二存储地址,即控制器对多次接收到相同的数据才进行重复数据删除,减少了指纹表的数据量。进一步地,控制器将重删数据存储到存储区域2的存储地址中,由于存储区域2的存储性能优于存储区域1的存储性能,可以提高控制器对重删数据的访问性能。
当控制器接收第三写请求,通常第三写请求中携带LUN2的标识、LBA 3和第三待写数据。其中LBA 3为第三待写数据的目标地址。控制器获得第三待写数据的指纹A,例如,使用哈希(Hash)算法获得第三待写数据的指纹A。第一待写数据、第二待写数据与第三待写数据的指纹均为指纹A,则表明第一待写数据、第二待写数据和第三待写数据相同。控制器根据指纹A查询该新的指纹表项确定确定指纹A对应的存储地址为SD2,建立如图6所示的LBA3与SD2的映射关系,即LUN2中的LBA3指向SD2,而不再存储第三待写数据。基于此,控制器对重复数据进行重删操作,可以节省存储空间。可选的,LBA3与SD2的映射关系中还可以携带是否是重删数据的标识,例如用1标识为重删数据,控制器通过LBA3与SD2的映射关系中的重删数据标识可方便识别SD2中存储的数据是重删数据。如图9所示,控制器将该新的指纹表项中的引用次数更新为2。
可选的,本发明实施例还提供了反向映射表,如图10所示,反向映射表中的表项用于记录指纹表的表项中的存储地址与指向该存储地址的逻辑块地址的映射关系,如指纹A对应的SD2,指向SD2的逻辑块地址分别为LBA2和LBA3,则如图10所示的反向映射表的表项记录了SD2分别与LBA2和LBA3的映射关系。当提供存储区域2的SSD发生故障,新的SSD替换故障SSD,如果SD2由故障SSD提供,则在新的SSD上重新分配SD2时,不需要遍历存储系统中每一个LUN的逻辑块地址与存储地址的映射关系从而确定指向SD2逻辑块地址(或者说SD2对应的逻辑块地址),只需要查询如图10所示的反向映射表的表项,即可确定SD2对应LBA2和LBA3,并将LBA2和LBA3的数据恢复到新的SSD提供的SD2中,因此提高了数据恢复时逻辑块地址的查找效率。
当第一写请求为修改写请求时,也就是在写入第一待写数据之前,LBA1中已经写入数据块M,数据块M对应的指纹为指纹B。指纹表中指纹表项包含如图11所示的信息,存储数据块M的存储地址为存储区域2中的SD3,引用次数为1。LBA1与存储地址SD3的映射关系如图12所示,LBA1指向存储地址为SD3,SD3中存储的数据为重删数据。当根据第一写请求将第一待写数据存储到SD1,控制器将如图12所示的映射关系更新为如图4所示的映射关系,控制器将图11所示的指纹表项中的引用次数更新,即减少引用计数为0,则控制器可直接删除LBA1与SD3的映射关系或将该映射关系置为无效,释放存储地址SD3,从而使SD3成为存储区域2中空闲的存储地址,即SD3为未分配的存储地址。其中,删除LBA1与SD3的映射关系是将该映射关系完全删除,将LBA1与SD3的映射关系置为无效的具体实现可以为使用无效标识对该映射关系进行标记,无效标识表明该映射关系无效。
当控制器的重复数据删除逻辑离线时,控制器根据第一写请求将第一待写数据写入SD1(控制器从存储区域1为待写数据分配存储地址),建立LBA1与SD1的映射关系。当LBA1与存储地址的映射关系如图12所示,即,LBA1对应的存储地址为SD3,且SD3中存储的数据为重删数据时,控制器在日志中记录减少SD3的引用次数。当控制器的重复数据删除逻辑在线后,根据日志中记录的减少SD3的引用次数的记录,控制器将图11所示的指纹表项中的引用次数更新,即减少引用计数为0。本发明实施例中,控制器的重复数据删除逻辑离线是指控制器的重复数据删除功能被禁用或故障,控制器的重复数据删除逻辑在线是指控制器的重复数据删除功能处于工作状态。本发明实施例描述的各方面,控制器在不进行重复数据删除时,也可以根据逻辑块地址与存储地址的映射关系访问存储设备中的数据,写入数据以及删除存储设备中的数据。因此,提高了存储系统的数据可访问性。本发明实施例中,控制器不进行重复数据删除的场景可以包括控制器的重复数据删除逻辑离线,控制器无法访问指纹表的表项等场景。
进一步地,本发明实施例中,控制器接收第四删除请求,通常第四删除请求中携带LUN2的标识和LBA3。控制器根据LBA3查询图8所示的映射关系,将图8所示的LBA3与SD2的映射关系置为无效或删除。其中,删除LBA 3与SD2的映射关系是将该映射关系完全删除,将LBA 3与SD2的映射关系置为无效的具体实现可以为使用无效标识对该映射关系进行标记,无效标识表明该映射关系无效。
由于LBA3不再指向SD2,因此将如图9所示的指纹表项中的引用次数减1,即更新为1。当控制器根据第四删除请求将图8所示的映射关系删除或置为无效,但控制器的重复数据删除逻辑离线时,控制器在日志中记录减少SD2的引用次数。当控制器的重复数据删除逻辑在线后,根据日志中记录减少SD2的引用次数记录,控制器将图9所示的指纹表项中的引用次数更新,即减少引用计数为1。
本发明实施例所描述的方案同样可以适用于LUN1。即从同一个存储区域分配存储地址。可选的,本发明实施例所描述的方案不仅适用于1个LUN,同样适用多个LUN的操作请求。本发明对此不作限定。本发明实施例还可以基于图1所示的存储系统,使用其他存储地址分配方式,例如,直接在硬盘上基于RAID算法为LUN提供存储地址等,本发明对此不作限定。
进一步地,本发明实施例可以将根据指纹表中指纹表项记录的引用次数,将引用次数大于预设阈值的指纹表项存储到控制器的缓存中,提高重复数据删除时指纹查找效率。
结合图1-3及上述各实施例描述的存储系统,图13提供了本发明存储系统中重复数据删除方法实施例的流程图:
步骤1301:控制器接收第一写请求,其中第一写请求携带第一逻辑块地址和第一待写数据。
步骤1302:控制器获得第一待写数据的第一指纹。
如前面实施例所描述的,控制器可以根据hash算法等对第一待写数据进行计算得到第一指纹。
步骤1303:当指纹表不包含第一指纹时,控制器将第一指纹插入指纹表,并为第一待写数据从存储设备分配第一存储地址。
具体实现中,当使用指纹表项记录指纹与存储地址的映射关系时,当指纹表的指纹表项不包含第一指纹时,控制器在指纹表中创建第一指纹表项,将第一指纹插入第一指纹表项。
步骤1304:控制器将第一待写数据存储到第一存储地址,建立第一逻辑地址与第一存储地址的映射关系。
可选的,控制器在指纹表中记录第一指纹的插入时间。具体的,控制器在第一指纹表项中记录第一指纹的插入时间。
当指纹表不包含第一指纹,控制器将第一指纹插入指纹表,但第一指纹没有对应的存储地址,因此,第一存储地址存储的第一待写数据不是重删数据。指纹表中第一指纹没有对应的存储地址,在具体实现中,可以是指在指纹表中未定义第一指纹对应的存储地址,或者第一指纹对应的存储地址为空。在以指纹表项记录指纹与存储地址的映射关系的实现中,当指纹表的指纹表项不包含第一指纹时,控制器在指纹表中创建第一指纹表项,将第一指纹插入第一指纹表项时,第一指纹表项中可以不定义存储地址,即第一指纹表项中不定义存储地址参数,或者存储地址对为空,即已经定义存储地址参数,但内容为空,在这些情况下,称之为指纹表中第一指纹不存在与第一指纹对应的存储地址,即指纹表中没有建立第一指纹与第一存储地址的映射关系。
步骤1305:控制器接收第二写请求,第二写请求携带第二逻辑块地址和第二待写数据。
步骤1306:控制器获得第二待写数据的指纹,第二待写数据的指纹为第一指纹。
如前面实施例所描述的,控制器可以根据hash算法等对第二待写数据进行计算得到第一指纹。第一待写数据与第二待写数据的指纹相同,则表明第一待写数据与第二待写数据相同。
步骤1307:控制器根据第二待写数据的第一指纹查询指纹表确定第一指纹不存在与第一指纹对应的存储地址时,控制器为第二待写数据从存储设备分配第二存储地址。
步骤1308:控制器建立第二逻辑块地址与第二存储地址的映射关系,在指纹表中建立第一指纹与第二存储地址的映射关系。
可选的,控制器从存储设备的第一存储区域中为第一待写数据分配第一存储地址;控制器从存储设备的第二存储区域中为第二待写数据分配第二存储地址,第二存储区域的存储性能高于第一存储区域的存储性能,可以提高控制器对重删数据的访问性能。
可选的,控制器在指纹表中记录第二存储地址的引用次数。具体实现,可以为控制器在指纹表的第一指纹表项中记录第二存储地址的引用次数。引用次数是逻辑块地址对指纹表中指纹对应的存储地址的引用次数。逻辑块地址对指纹表中指纹对应的存储地址的引用次数由逻辑块地址与存储地址的映射关系确定,当控制器建立一个逻辑块地址与该存储地址的映射关系时,并且该存储地址记录在指纹表中,则该逻辑块地址对指纹表中指纹对应的存储地址引用1次。具体实现,控制器在指纹表的第一指纹表项中记录第二存储地址的引用次数,则引用次数是逻辑块地址对指纹表项中的存储地址的引用次数。根据引用次数可以判断第二存储地址是否可以重新写入数据,当引用次数为0,即表明没有逻辑块地址指向第二存储地址,则可以释放第二存储地址,从而使第二存储地址成为存储设备中空闲的存储地址,可用于重新写入数据。控制器根据指纹表中记录的引用次数,将引用次数大于预设阈值的指纹及指纹对应的存储地址的映射关系存储到控制器的缓存中,提高重复数据删除时指纹查找效率。
控制器统计接收写请求中携带指纹值为第一指纹的待写数据的次数,当次数大于预设次数N时,控制器将第二待写数据存储到第二存储地址,在指纹表中建立第一指纹与第二存储地址的映射关系;其中N为不小于1的整数。即将第N+1次出现的重复数据(第二待写数据)存储到第二存储地址,在指纹表中建立第一指纹与第二存储地址的映射关系,第二存储地址中存储的数据为重删数据。控制器在指纹表中建立第一指纹与第二存储地址的映射关系,如前面所述,具体实现可以为控制器在指纹表的第一指纹表项中插入第二存储地址。因此,可以根据存储系统的需求,设定对重复度高达到特定值的数据块进行重复数据删除。重删数据是指指纹表中的指纹对应的存储地址存储的数据,非重删数据是指存储系统中存储的,但不属于指纹表中指纹对应的存储地址存储的数据。具体实现,重删数据是指指纹表的指纹表项中的存储地址存储的数据;非重删数据是指存储系统中存储的,但不属于指纹表的指纹表项中记录的存储地址存储的数据。
控制器在指纹表中建立第一指纹与第二存储地址的映射关系,则第二存储地址存储的第二待写数据是重删数据。
可选的,控制器接收第三写请求,第三写请求携带第三逻辑块地址和第三待写数据;控制器获得第三待写数据的指纹,第三待写数据的指纹为第一指纹;当根据第三待写数据的第一指纹查询指纹表确定第一指纹对应的存储地址为第二存储地址时,控制器建立第三逻辑块地址与第二存储地址的映射关系。第一待写数据、第二待写数据与第三待写数据的指纹均为第一指纹,则表明第一待写数据、第二待写数据与第三待写数据相同。基于此,控制器对重复数据进行重复数据删除操作,可以节省存储空间。具体实现中,根据第三待写数据的第一指纹查询指纹表确定第一指纹对应的存储地址为第二存储地址可以为根据第三待写数据的第一指纹查询指纹表中第一指纹表项确定第一指纹对应的存储地址为第二存储地址时,控制器建立第三逻辑块地址与第二存储地址的映射关系。
可选的,控制器删除指纹表中第二指纹;其中,第二指纹没有对应的存储地址,并且第二指纹在指纹表中存在的时长超过预设时长,从而进一步减少指纹表的数据量。具体实现,可以根据指纹表记录的第二指纹的插入时间确定第二指纹在指纹表中存在的时长超过预设时长。可选的,以指纹表项为例,在控制器在指纹表项中记录的第二指纹,第二指纹对应的存储地址在第二表项中为空,并且第二指纹在第二指纹表项中存在的时长超过预设时长。
可选的,存储系统还包括反向映射表,反向映射表中的表项用于记录指纹表中指纹对应的存储地址与指向该存储地址的逻辑块地址的映射关系。如第一指纹对应的第二存储地址,指向第二存储地址的逻辑块地址分别为第二逻辑块地址和第三逻辑块地址,当存储设备提供的第二存储地址发生故障(或第二存储区域发生故障),新的存储设备替换故障存储设备(新的存储区域替换故障的第二存储区域),则在新的存储设备或新的存储区域上重新分配第二存储地址时,不需要遍历存储系统中每一个逻辑单元的逻辑块地址与存储地址的映射关系从而确定指向第二存储地址的逻辑块地址,只需要根据反向映射表的表项,确定第二存储地址对应第二逻辑块地址和第三逻辑块地址,因此提高了数据恢复时逻辑块地址的查找效率。
可选的,逻辑块地址与存储地址的映射关系中还可以包含是否是重删数据的标识,例如,第一逻辑块地址与第一存储地址的映射关系中携带是否是重删数据的标识,第二逻辑块地址与第二存储地址的映射关系中携带是否是重删数据的标识,第三逻辑块地址与第二存储地址的映射关系中携带是否是重删数据的标识,控制器通过上述映射关系中的重删数据标识可方便识别存储地址中存储的数据是否是重删数据。
图13所示的流程图,第一待写数据与第二待写数据的指纹均为第一指纹,则表明第一待写数据与第二待写数据相同。控制器将首次写入的数据块存储在第一存储地址,在指纹表插入首次写入的第一待写数据的第一指纹,但不建立第一指纹与第一存储地址的映射关系,控制器接收后续写入的第二待写数据时(第二待写数据不限于是控制器第二次接收到的相同数据),为重复的第二待写数据分配第二存储地址,将第二待写数据存储到第二存储地址,在指纹表建立第一指纹与第二存储地址的映射关系,即控制器对多次接收到相同的数据才进行重复数据删除,从而减少了指纹表的数据量。
图13所示的流程图,具体实现可参考前面实施例的描述,在此不再赘述。
根据本发明实施例的所描述的方案,本发明另一实施例提供了一种如图14所示的控制器,应用于本发明实施中的存储系统。控制器包括接收单元1401、获取单元1402、插入单元1403、分配单元1404、存储单元1405和建立单元1406。其中,接收单元1401用于接收第一写请求,第一写请求携带第一逻辑块地址和第一待写数据;获取单元1402用于获得第一待写数据的第一指纹;插入单元1403用于当指纹表不包含第一指纹时,将第一指纹插入指纹表;分配单元1404用于为第一待写数据从存储设备分配第一存储地址;存储单元1405用于将第一待写数据存储到第一存储地址;建立单元1406用于第一逻辑块地址与第一存储地址的映射关系;接收单元1401还用于接收第二写请求,第二写请求携带第二逻辑块地址和第二待写数据;获取单元1402还用于获得第二待写数据的指纹,第二待写数据的指纹为第一指纹;分配单元1404还用于根据第二待写数据的第一指纹查询指纹表确定指纹表中第一指纹不存在与第一指纹对应的存储地址时,为第二待写数据从存储设备分配第二存储地址;存储单元1405还用于将第二待写数据存储到第二存储地址;建立单元1406还用于建立第二逻辑块地址与第二存储地址的映射关系,在指纹表中建立第一指纹与第二存储地址的映射关系。
可选的,分配单元1404具体用于从存储设备的第一存储区域中为第一待写数据分配第一存储地址,从存储设备的第二存储区域中为第二待写数据分配第二存储地址,第二存储区域的存储性能高于第一存储区域的存储性能。
可选的,接收单元1401还用于接收第三写请求,第三写请求携带第三逻辑块地址和第三待写数据;获取单元1402还用于获得第三待写数据的指纹,第三待写数据的指纹为第一指纹;建立单元1406还用于当根据第三待写数据的第一指纹查询指纹表确定第一指纹对应的存储地址为第二存储地址时,建立第三逻辑块地址与第二存储地址的映射关系。
可选的,控制器还包括记录单元,记录单元用于在第一指纹表项中记录第二存储地址的引用次数。可选的,记录单元还用于在指纹表中记录第二存储地址的引用次数。
可选的,控制器还包括删除单元,删除单元用于删除指纹表中第二指纹;其中,第二指纹没有对应的存储地址,并且第二指纹在指纹表中存在的时长超过预设时长。
可选的,控制器还包括统计单元,用于统计接收写请求中携带指纹值为第一指纹的待写数据的次数,当次数大于预设次数N时,存储单元1405将第二待写数据存储到第二存储地址,建立单元1406在指纹表中建立第一指纹与第二存储地址的映射关系;其中N为不小于1的整数。
图14所示的控制器所实现的效果以及进一步的实现可参考前面各实施例对应的描述,在此不再赘述。
如图14所示的控制器,一种实现方式为控制器上安装有上述单元,上述单元可被加载到控制器的存储器中,由控制器中的CPU执行存储器中的指令,实现本发明对应的实施例中的功能;另一种实现,控制器中包含的单元可以由硬件来实现,或者由CPU执行存储器中的指令与硬件组合实现。上述单元也称为结构单元。
本发明实施例,还提供了非易失性计算机可读存储介质和计算机程序产品,非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,CPU执行存储器中加载的该计算机指令用于实现本发明各实施中控制器对应的功能。
本发明实施例描述的各方面,控制器在无法访问指纹表的表项时,也可以根据逻辑块地址与存储地址的映射关系访问存储设备中的数据,写入数据以及删除存储设备中的数据。
本发明实施例中,逻辑地址与存储地址的映射关系、指纹表的指纹表项可以为数据结构或其他合适的描述性结构,用于记录相应的信息。本发明实施例中给出的示例性描述。本发明实施例中的“第一”、“第二”、“第三”和“第四”并不是用于严格限定先后关系,例如,当“第一”、“第二”和“第三”用于表示操作请求时,只是用于区分不同的操作请求,当“第一”、“第二”和“第三”用于表示待写数据时,只是用于表示属于不同写请求携带的待写数据。控制器在第一写请求和第二写请求之间还可以接收一个或多个写请求。本发明实施例中的存储性能可以由一项或多项指标来衡量,例如带宽(Bandwidth)、每秒钟输入输出操作(Input/Output Operations Per Second,IOPS)、顺序(Sequential)读写速度、随机(Random)读写速度、持续吞吐(Sustained Throughput)能力、突发处理能力(Burst I/O)等,本发明实施例对此不作限定。
在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
Claims (41)
1.一种存储系统中重复数据删除方法,其特征在于,所述存储系统包括控制器和存储设备,所述方法包括:
所述控制器接收第一写请求,所述第一写请求携带第一逻辑块地址和第一待写数据;
所述控制器获得所述第一待写数据的第一指纹;
当指纹表不包含所述第一指纹时,将所述第一指纹插入所述指纹表,并为所述第一待写数据从所述存储设备分配第一存储地址,所述指纹表不包含所述第一指纹与所述第一存储地址之间的映射关系;
所述控制器将所述第一待写数据存储到所述第一存储地址;
所述控制器建立所述第一逻辑块地址与所述第一存储地址的映射关系;
所述控制器接收第二写请求,所述第二写请求携带第二逻辑块地址和第二待写数据;
所述控制器获得所述第二待写数据的指纹,所述第二待写数据的指纹为所述第一指纹;
所述控制器根据所述第二待写数据的所述第一指纹查询所述指纹表确定所述第一指纹不存在与所述第一指纹对应的存储地址时,所述控制器为所述第二待写数据从所述存储设备分配第二存储地址;
所述控制器将所述第二待写数据存储到所述第二存储地址;
所述控制器在所述指纹表中建立所述第一指纹与所述第二存储地址的映射关系;
所述控制器建立所述第二逻辑块地址与所述第二存储地址的映射关系。
2.根据权利要求1所述的方法,其特征在于,所述控制器为所述第一待写数据从所述存储设备分配第一存储地址具体包括:所述控制器从所述存储设备的第一存储区域中为所述第一待写数据分配所述第一存储地址;所述控制器为所述第二待写数据从所述存储设备分配第二存储地址具体包括所述控制器从所述存储设备的第二存储区域中为所述第二待写数据分配所述第二存储地址,所述第二存储区域的存储性能高于所述第一存储区域的存储性能。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述控制器接收第三写请求,所述第三写请求携带第三逻辑块地址和第三待写数据;
所述控制器获得所述第三待写数据的指纹,所述第三待写数据的指纹为所述第一指纹;
当根据所述第三待写数据的第一指纹查询所述指纹表确定所述第一指纹对应的存储地址为所述第二存储地址时,所述控制器建立所述第三逻辑块地址与所述第二存储地址的映射关系。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述控制器接收第三写请求,所述第三写请求携带第三逻辑块地址和第三待写数据;
所述控制器获得所述第三待写数据的指纹,所述第三待写数据的指纹为所述第一指纹;
当根据所述第三待写数据的第一指纹查询所述指纹表确定所述第一指纹对应的存储地址为所述第二存储地址时,所述控制器建立所述第三逻辑块地址与所述第二存储地址的映射关系。
5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
所述控制器在所述指纹表中记录所述第二存储地址的引用次数。
6.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:所述控制器在所述指纹表中记录插入所述第一指纹的时间。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:所述控制器在所述指纹表中记录插入所述第一指纹的时间。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:所述控制器删除所述指纹表中第二指纹;其中,所述第二指纹没有对应的存储地址,并且所述第二指纹在所述指纹表中存在的时长超过预设时长。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:所述控制器删除所述指纹表中第二指纹;其中,所述第二指纹没有对应的存储地址,并且所述第二指纹在所述指纹表中存在的时长超过预设时长。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述控制器统计接收写请求中携带指纹值为所述第一指纹的待写数据的次数,当所述次数大于预设次数N时,所述控制器将所述第二待写数据存储到所述第二存储地址,在所述指纹表中建立所述第一指纹与所述第二存储地址的映射关系;其中N为不小于1的整数。
11.一种存储系统,其特征在于,包括控制器和存储设备,所述控制器用于接收第一写请求,所述第一写请求携带第一逻辑块地址和第一待写数据,获得所述第一待写数据的第一指纹,当指纹表不包含所述第一指纹时,将所述第一指纹插入所述指纹表,并为所述第一待写数据从所述存储设备分配第一存储地址,将所述第一待写数据存储到所述第一存储地址,建立所述第一逻辑块地址与所述第一存储地址的映射关系,所述指纹表不包含所述第一指纹与所述第一存储地址之间的映射关系;
所述控制器还用于接收第二写请求,所述第二写请求携带第二逻辑块地址和第二待写数据,获得所述第二待写数据的指纹,所述第二待写数据的指纹为所述第一指纹,根据所述第二待写数据的所述第一指纹查询所述指纹表确定所述第一指纹不存在与所述第一指纹对应的存储地址时,为所述第二待写数据从所述存储设备分配第二存储地址,将所述第二待写数据存储到所述第二存储地址,建立所述第二逻辑块地址与所述第二存储地址的映射关系,在所述指纹表中建立所述第一指纹与所述第二存储地址的映射关系;
所述存储设备用于提供所述第一存储地址和所述第二存储地址。
12.根据权利要求11所述的存储系统,其特征在于,所述控制器具体用于从所述存储设备的第一存储区域中为所述第一待写数据分配所述第一存储地址,从所述存储设备的第二存储区域中为所述第二待写数据分配所述第二存储地址;所述第二存储区域的存储性能高于所述第一存储区域的存储性能。
13.根据权利要求11所述的存储系统,其特征在于,所述控制器还用于接收第三写请求,所述第三写请求携带第三逻辑块地址和第三待写数据,获得所述第三待写数据的指纹,所述第三待写数据的指纹为所述第一指纹,当根据所述第三待写数据的第一指纹查询所述指纹表确定所述第一指纹对应的存储地址为所述第二存储地址时,建立所述第三逻辑块地址与所述第二存储地址的映射关系。
14.根据权利要求12所述的存储系统,其特征在于,所述控制器还用于接收第三写请求,所述第三写请求携带第三逻辑块地址和第三待写数据,获得所述第三待写数据的指纹,所述第三待写数据的指纹为所述第一指纹,当根据所述第三待写数据的第一指纹查询所述指纹表确定所述第一指纹对应的存储地址为所述第二存储地址时,建立所述第三逻辑块地址与所述第二存储地址的映射关系。
15.根据权利要求11至14任一所述的存储系统,其特征在于,所述控制器还用于在所述指纹表中记录所述第二存储地址的引用次数。
16.根据权利要求11至14任一所述的存储系统,其特征在于,所述控制器还用于在所述指纹表中记录插入所述第一指纹的时间。
17.根据权利要求15所述的存储系统,其特征在于,所述控制器还用于在所述指纹表中记录插入所述第一指纹的时间。
18.根据权利要求16所述的存储系统,其特征在于,所述控制器还用于删除第二指纹;其中,所述第二指纹没有对应的存储地址,并且所述第二指纹在所述指纹表中存在的时长超过预设时长。
19.根据权利要求17所述的存储系统,其特征在于,所述控制器还用于删除第二指纹;其中,所述第二指纹没有对应的存储地址,并且所述第二指纹在所述指纹表中存在的时长超过预设时长。
20.根据权利要求11所述的存储系统,其特征在于,所述控制器还用于统计接收写请求中携带指纹值为所述第一指纹的待写数据的次数,当所述次数大于预设次数N时,将所述第二待写数据存储到所述第二存储地址,在所述指纹表中建立所述第一指纹与所述第二存储地址的映射关系;其中N为不小于1的整数。
21.一种应用于存储系统的控制器,其特征在于,所述存储系统包括所述控制器和存储设备,所述控制器包含接口和处理器,所述接口和所述处理器通信,
其中,所述接口用于接收第一写请求,所述第一写请求携带第一逻辑块地址和第一待写数据;
所述处理器用于获得所述第一待写数据的第一指纹,当指纹表不包含所述第一指纹时,将所述第一指纹插入所述指纹表,并为所述第一待写数据从所述存储设备分配第一存储地址,将所述第一待写数据存储到所述第一存储地址,建立所述第一逻辑块地址与所述第一存储地址的映射关系,所述指纹表不包含所述第一指纹与所述第一存储地址之间的映射关系;
所述接口还用于接收第二写请求,所述第二写请求携带第二逻辑块地址和第二待写数据;
所述处理器还用于获得所述第二待写数据的指纹,所述第二待写数据的指纹为所述第一指纹,根据所述第二待写数据的所述第一指纹查询所述指纹表确定所述指纹表中所述第一指纹不存在与所述第一指纹对应的存储地址时,为所述第二待写数据从所述存储设备分配第二存储地址,将所述第二待写数据存储到所述第二存储地址,建立所述第二逻辑块地址与所述第二存储地址的映射关系,在所述指纹表中建立所述第一指纹与所述第二存储地址的映射关系。
22.根据权利要求21所述的控制器,其特征在于,所述处理器具体用于从所述存储设备的第一存储区域中为所述第一待写数据分配所述第一存储地址,从所述存储设备的第二存储区域中为所述第二待写数据分配所述第二存储地址;所述第二存储区域的存储性能高于所述第一存储区域的存储性能。
23.根据权利要求21所述的控制器,其特征在于,所述接口还用于接收第三写请求,所述第三写请求携带第三逻辑块地址和第三待写数据;
所述处理器还用于获得所述第三待写数据的指纹,所述第三待写数据的指纹为所述第一指纹,当根据所述第三待写数据的第一指纹查询所述指纹表确定所述第一指纹对应的存储地址为所述第二存储地址时,建立所述第三逻辑块地址与所述第二存储地址的映射关系。
24.根据权利要求22所述的控制器,其特征在于,所述接口还用于接收第三写请求,所述第三写请求携带第三逻辑块地址和第三待写数据;
所述处理器还用于获得所述第三待写数据的指纹,所述第三待写数据的指纹为所述第一指纹,当根据所述第三待写数据的第一指纹查询所述指纹表确定所述第一指纹对应的存储地址为所述第二存储地址时,建立所述第三逻辑块地址与所述第二存储地址的映射关系。
25.根据权利要求21至24任一所述的控制器,其特征在于,所述处理器还用于在所述指纹表中记录所述第二存储地址的引用次数。
26.根据权利要求21至24任一所述的控制器,其特征在于,所述处理器还用于在所述指纹表中记录插入所述第一指纹的时间。
27.根据权利要求25所述的控制器,其特征在于,所述处理器还用于在所述指纹表中记录插入所述第一指纹的时间。
28.根据权利要求26所述的控制器,其特征在于,所述处理器还用于删除所述指纹表中的第二指纹;其中,所述第二指纹没有对应的存储地址,并且所述第二指纹在所述指纹表中存在的时长超过预设时长。
29.根据权利要求27所述的控制器,其特征在于,所述处理器还用于删除所述指纹表中的第二指纹;其中,所述第二指纹没有对应的存储地址,并且所述第二指纹在所述指纹表中存在的时长超过预设时长。
30.根据权利要求21所述的控制器,其特征在于,所述处理器还用于统计接收写请求中携带指纹值为所述第一指纹的待写数据的次数,当所述次数大于预设次数N时,将所述第二待写数据存储到所述第二存储地址,在所述指纹表中建立所述第一指纹与所述第二存储地址的映射关系;其中N为不小于1的整数。
31.一种应用于存储系统的控制器,其特征在于,
所述存储系统包括所述控制器和存储设备,
所述控制器包含接收单元、获取单元、插入单元、确定单元、分配单元、存储单元和建立单元;其中,所述接收单元用于接收第一写请求,所述第一写请求携带第一逻辑块地址和第一待写数据;
所述获取单元用于获得所述第一待写数据的第一指纹;
所述插入单元用于当指纹表不包含所述第一指纹时,将所述第一指纹插入所述指纹表;
所述分配单元用于为所述第一待写数据从所述存储设备分配第一存储地址,所述指纹表不包含所述第一指纹与所述第一存储地址之间的映射关系;
所述存储单元用于将所述第一待写数据存储到所述第一存储地址;
所述建立单元用于建立所述第一逻辑块地址与所述第一存储地址的映射关系;
所述接收单元还用于接收第二写请求,所述第二写请求携带第二逻辑块地址和第二待写数据;
所述获取单元还用于获得所述第二待写数据的指纹,所述第二待写数据的指纹为所述第一指纹;
所述分配单元还用于根据所述第二待写数据的所述第一指纹查询所述指纹表确定所述指纹表中所述第一指纹不存在与所述第一指纹对应的存储地址时,为所述第二待写数据从所述存储设备分配第二存储地址;
所述存储单元还用于将所述第二待写数据存储到所述第二存储地址;
所述建立单元还用于建立所述第二逻辑块地址与所述第二存储地址的映射关系,在所述指纹表中建立所述第一指纹与所述第二存储地址的映射关系。
32.根据权利要求31所述的控制器,其特征在于,所述分配单元具体用于从所述存储设备的第一存储区域中为所述第一待写数据分配所述第一存储地址,从所述存储设备的第二存储区域中为所述第二待写数据分配所述第二存储地址;所述第二存储区域的存储性能高于所述第一存储区域的存储性能。
33.根据权利要求31所述的控制器,其特征在于,所述接收单元还用于接收第三写请求,所述第三写请求携带第三逻辑块地址和第三待写数据;
所述获取单元还用于获得所述第三待写数据的指纹,所述第三待写数据的指纹为所述第一指纹;
所述建立单元还用于当根据所述第三待写数据的第一指纹查询所述指纹表确定所述第一指纹对应的存储地址为所述第二存储地址时,建立所述第三逻辑块地址与所述第二存储地址的映射关系。
34.根据权利要求32所述的控制器,其特征在于,所述接收单元还用于接收第三写请求,所述第三写请求携带第三逻辑块地址和第三待写数据;
所述获取单元还用于获得所述第三待写数据的指纹,所述第三待写数据的指纹为所述第一指纹;
所述建立单元还用于当根据所述第三待写数据的第一指纹查询所述指纹表确定所述第一指纹对应的存储地址为所述第二存储地址时,建立所述第三逻辑块地址与所述第二存储地址的映射关系。
35.根据权利要求31至34任一所述的控制器,其特征在于,所述控制器还包括记录单元,所述记录单元用于在所述指纹表中记录所述第二存储地址的引用次数。
36.根据权利要求31至34任一所述的控制器,其特征在于,所述控制器还包括记录单元,所述记录单元用于在所述指纹表中记录插入所述第一指纹的时间。
37.根据权利要求35所述的控制器,其特征在于,所述记录单元还用于在所述指纹表中记录插入所述第一指纹的时间。
38.根据权利要求36所述的控制器,其特征在于,所述控制器还包括删除单元,所述删除单元用于删除所述指纹表中第二指纹;其中,所述第二指纹没有对应的存储地址,并且所述第二指纹在所述指纹表中存在的时长超过预设时长。
39.根据权利要求37所述的控制器,其特征在于,所述控制器还包括删除单元,所述删除单元用于删除所述指纹表中第二指纹;其中,所述第二指纹没有对应的存储地址,并且所述第二指纹在所述指纹表中存在的时长超过预设时长。
40.根据权利要求31所述的控制器,其特征在于,还包括统计单元,用于统计接收写请求中携带指纹值为所述第一指纹的待写数据的次数,当所述次数大于预设次数N时,所述存储单元将所述第二待写数据存储到所述第二存储地址,所述建立单元将在所述指纹表中建立所述第一指纹与所述第二存储地址的映射关系;其中N为不小于1的整数。
41.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机程序,所述计算机程序被硬件执行时能够实现权利要求1至10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010124802.9A CN111427855B (zh) | 2016-09-28 | 2016-09-28 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/100629 WO2018058382A1 (zh) | 2016-09-28 | 2016-09-28 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010124802.9A Division CN111427855B (zh) | 2016-09-28 | 2016-09-28 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109074226A CN109074226A (zh) | 2018-12-21 |
CN109074226B true CN109074226B (zh) | 2020-03-20 |
Family
ID=61763010
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680003119.1A Active CN109074226B (zh) | 2016-09-28 | 2016-09-28 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
CN202010124802.9A Active CN111427855B (zh) | 2016-09-28 | 2016-09-28 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010124802.9A Active CN111427855B (zh) | 2016-09-28 | 2016-09-28 | 一种存储系统中重复数据删除方法、存储系统及控制器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10216446B2 (zh) |
EP (2) | EP3767450A1 (zh) |
JP (1) | JP6526233B2 (zh) |
CN (2) | CN109074226B (zh) |
AU (1) | AU2016394896B2 (zh) |
CA (1) | CA2977742C (zh) |
WO (1) | WO2018058382A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389706B (zh) * | 2018-04-16 | 2021-05-11 | 华为技术有限公司 | 一种指纹回收方法以及存储系统 |
EP3971700A4 (en) * | 2019-07-26 | 2022-05-25 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR DATA PROCESSING IN A STORAGE SYSTEM AND COMPUTER-READABLE STORAGE MEDIUM |
CN110750211B (zh) * | 2019-09-05 | 2021-05-04 | 华为技术有限公司 | 一种存储空间的管理方法及装置 |
CN112684975B (zh) | 2019-10-17 | 2022-08-09 | 华为技术有限公司 | 一种数据存储方法及装置 |
CN110908966B (zh) * | 2019-11-15 | 2022-06-10 | 浪潮电子信息产业股份有限公司 | 一种重删率计算方法、装置、设备及可读存储介质 |
US11416462B2 (en) * | 2020-07-13 | 2022-08-16 | EMC IP Holding Company LLC | Techniques for efficient data deduplication |
CN112214503A (zh) * | 2020-10-10 | 2021-01-12 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113010549A (zh) * | 2021-01-29 | 2021-06-22 | 腾讯科技(深圳)有限公司 | 基于异地多活系统的数据处理方法、相关设备及存储介质 |
CN113050892B (zh) * | 2021-03-26 | 2022-02-25 | 杭州宏杉科技股份有限公司 | 重删数据保护方法及装置 |
CN113553005B (zh) * | 2021-07-06 | 2023-12-22 | 杭州宏杉科技股份有限公司 | 一种精简lun的数据读写方法、装置及设备 |
CN115437579B (zh) * | 2022-11-04 | 2023-03-24 | 苏州浪潮智能科技有限公司 | 一种元数据管理方法、装置、计算机设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706825A (zh) * | 2009-12-10 | 2010-05-12 | 华中科技大学 | 一种基于文件内容类型的重复数据删除方法 |
CN102156727A (zh) * | 2011-04-01 | 2011-08-17 | 华中科技大学 | 一种采用双指纹哈希校验的重复数据删除方法 |
US8527544B1 (en) * | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
CN103930890A (zh) * | 2013-10-30 | 2014-07-16 | 华为技术有限公司 | 数据处理方法、装置及重删处理器 |
CN104123102A (zh) * | 2014-07-25 | 2014-10-29 | 华为技术有限公司 | 一种ip硬盘及其数据处理方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8412682B2 (en) * | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US8171253B2 (en) * | 2009-10-30 | 2012-05-01 | Brocade Communications Systems, Inc. | Virtual disk mapping |
US8965856B2 (en) * | 2011-08-29 | 2015-02-24 | Hitachi, Ltd. | Increase in deduplication efficiency for hierarchical storage system |
CN102385554B (zh) * | 2011-10-28 | 2014-01-15 | 华中科技大学 | 重复数据删除系统的优化方法 |
KR20130064518A (ko) * | 2011-12-08 | 2013-06-18 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
JP2013222230A (ja) * | 2012-04-13 | 2013-10-28 | Hitachi-Lg Data Storage Inc | 情報処理システム |
US9779103B2 (en) * | 2012-04-23 | 2017-10-03 | International Business Machines Corporation | Preserving redundancy in data deduplication systems |
WO2014046650A1 (en) * | 2012-09-19 | 2014-03-27 | Bluearc Uk Limited | System and method for managing deduplication using checkpoints in a file storage system |
US9424285B1 (en) * | 2012-12-12 | 2016-08-23 | Netapp, Inc. | Content-based sampling for deduplication estimation |
US9467294B2 (en) * | 2013-02-01 | 2016-10-11 | Symbolic Io Corporation | Methods and systems for storing and retrieving data |
KR20140114515A (ko) * | 2013-03-15 | 2014-09-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법 |
JP6098301B2 (ja) * | 2013-03-29 | 2017-03-22 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
US9342253B1 (en) * | 2013-08-23 | 2016-05-17 | Nutanix, Inc. | Method and system for implementing performance tier de-duplication in a virtualization environment |
WO2015065312A1 (en) * | 2013-10-28 | 2015-05-07 | Hitachi, Ltd. | Method and apparatus of data de-duplication for solid state memory |
EP3037949B1 (en) * | 2014-09-15 | 2019-07-31 | Huawei Technologies Co. Ltd. | Data duplication method and storage array |
CN104239518B (zh) * | 2014-09-17 | 2017-09-29 | 华为技术有限公司 | 重复数据删除方法和装置 |
US9792069B2 (en) * | 2014-09-29 | 2017-10-17 | Western Digital Technologies, Inc. | Offline deduplication for solid-state storage devices |
US9569114B2 (en) * | 2014-11-14 | 2017-02-14 | Sk Hynix Memory Solutions Inc. | Deduplication using a master and a slave |
CN107844270A (zh) * | 2014-12-31 | 2018-03-27 | 华为技术有限公司 | 一种存储阵列系统及数据写请求处理方法 |
US9699504B2 (en) * | 2015-09-28 | 2017-07-04 | Rovi Guides, Inc. | Systems and methods for identifying a source of media content based on a log of content identifiers |
US9977746B2 (en) * | 2015-10-21 | 2018-05-22 | Hewlett Packard Enterprise Development Lp | Processing of incoming blocks in deduplicating storage system |
CN105701024B (zh) * | 2015-12-31 | 2018-11-06 | 华为技术有限公司 | 一种存储设备及其垃圾数据回收的方法 |
CN105787037B (zh) * | 2016-02-25 | 2019-03-15 | 浪潮(北京)电子信息产业有限公司 | 一种重复数据的删除方法及装置 |
US10585611B2 (en) * | 2016-04-26 | 2020-03-10 | Netapp Inc. | Inline deduplication |
-
2016
- 2016-09-28 JP JP2017552037A patent/JP6526233B2/ja active Active
- 2016-09-28 CN CN201680003119.1A patent/CN109074226B/zh active Active
- 2016-09-28 CA CA2977742A patent/CA2977742C/en active Active
- 2016-09-28 EP EP20180403.6A patent/EP3767450A1/en active Pending
- 2016-09-28 EP EP16894804.0A patent/EP3321792B1/en active Active
- 2016-09-28 CN CN202010124802.9A patent/CN111427855B/zh active Active
- 2016-09-28 WO PCT/CN2016/100629 patent/WO2018058382A1/zh active Application Filing
- 2016-09-28 AU AU2016394896A patent/AU2016394896B2/en active Active
-
2018
- 2018-04-23 US US15/960,546 patent/US10216446B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706825A (zh) * | 2009-12-10 | 2010-05-12 | 华中科技大学 | 一种基于文件内容类型的重复数据删除方法 |
CN102156727A (zh) * | 2011-04-01 | 2011-08-17 | 华中科技大学 | 一种采用双指纹哈希校验的重复数据删除方法 |
US8527544B1 (en) * | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
CN103930890A (zh) * | 2013-10-30 | 2014-07-16 | 华为技术有限公司 | 数据处理方法、装置及重删处理器 |
CN104123102A (zh) * | 2014-07-25 | 2014-10-29 | 华为技术有限公司 | 一种ip硬盘及其数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111427855A (zh) | 2020-07-17 |
CA2977742A1 (en) | 2018-03-28 |
US20180239553A1 (en) | 2018-08-23 |
EP3321792A1 (en) | 2018-05-16 |
WO2018058382A1 (zh) | 2018-04-05 |
EP3321792B1 (en) | 2020-07-29 |
JP6526233B2 (ja) | 2019-06-05 |
CA2977742C (en) | 2024-04-16 |
AU2016394896B2 (en) | 2018-08-09 |
CN111427855B (zh) | 2024-04-12 |
JP2018532166A (ja) | 2018-11-01 |
EP3767450A1 (en) | 2021-01-20 |
US10216446B2 (en) | 2019-02-26 |
CN109074226A (zh) | 2018-12-21 |
BR112017019142A8 (pt) | 2019-01-22 |
BR112017019142A2 (pt) | 2018-07-03 |
AU2016394896A1 (en) | 2018-04-12 |
EP3321792A4 (en) | 2018-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109074226B (zh) | 一种存储系统中重复数据删除方法、存储系统及控制器 | |
US9720928B2 (en) | Removing overlapping ranges from a flat sorted data structure | |
US10248623B1 (en) | Data deduplication techniques | |
US10169365B2 (en) | Multiple deduplication domains in network storage system | |
CN107209714B (zh) | 分布式存储系统及分布式存储系统的控制方法 | |
US10747440B2 (en) | Storage system and storage system management method | |
CN107122131B (zh) | 自动精简配置的方法及装置 | |
KR102440370B1 (ko) | Ssd 내 핫 데이터 및 스트림을 식별하기 위한 시스템 및 방법 | |
CN108604165B (zh) | 存储装置 | |
US9959049B1 (en) | Aggregated background processing in a data storage system to improve system resource utilization | |
US9355121B1 (en) | Segregating data and metadata in a file system | |
US20140019706A1 (en) | System and method of logical object management | |
US9672144B2 (en) | Allocating additional requested storage space for a data set in a first managed space in a second managed space | |
US10146780B1 (en) | Data storage system using paced deallocation of truncated file blocks | |
US10180901B2 (en) | Apparatus, system and method for managing space in a storage device | |
US10365846B2 (en) | Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing | |
US11513702B2 (en) | Placement of metadata on data storage drives in a first storage enclosure of a data storage system | |
US11016884B2 (en) | Virtual block redirection clean-up | |
US11803527B2 (en) | Techniques for efficient data deduplication | |
US10853257B1 (en) | Zero detection within sub-track compression domains | |
BR112017019142B1 (pt) | Método para deduplicação em sistema de armazenamento, sistema de armazenamento e controlador |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |