CN107003814A - 存储系统中的有效元数据 - Google Patents
存储系统中的有效元数据 Download PDFInfo
- Publication number
- CN107003814A CN107003814A CN201580065481.7A CN201580065481A CN107003814A CN 107003814 A CN107003814 A CN 107003814A CN 201580065481 A CN201580065481 A CN 201580065481A CN 107003814 A CN107003814 A CN 107003814A
- Authority
- CN
- China
- Prior art keywords
- data block
- metadata table
- metadata
- content identity
- 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
Classifications
-
- 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/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/14—Details of searching files based on file metadata
-
- 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
- G06F16/1752—De-duplication implemented within the file system, e.g. based on file segments based on file chunks
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- G06F3/064—Management of blocks
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- 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
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
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)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种在存储系统中管理元数据的方法。该存储系统包括处理器、存储介质、内存、将每个数据块的LBN映射到其独有的内容身份的第一元数据表、将每个内容身份映射到其在存储介质上的PBN的第二元数据表。在数据移动处理的过程中,处理器配置为确定数据块的内容身份,然后更新其在第二元数据表中的条目,但不访问第一元数据表。还公开了一种减小第一元数据表的大小的方法。第一元数据表仅包括内容身份,而数据块的LBN可以基于元数据条目在第一元数据表中的相对位置来确定。元数据条目存储在元数据块中,并被去重。
Description
相关申请
本公开主张于2014年10月1日提交的美国临时申请62/058328的优先权。
技术领域
本公开总体涉及存储系统,更具体地,涉及存储系统中的元数据管理。
背景技术
存储系统一般包括持久存储介质和运行存储软件的存储处理器。存储介质可以包括硬盘驱动器(HDD,hard disk drive)、固态设备(SSD,solid-state device)、硬盘驱动器和固态设备的混合(Hybrid),或是使用另外一种存储技术的存储设备。存储介质也可以包括用于数据冗余和负载平衡的RAID(Redundant Array of Inexpensive Disks)硬件或软件。存储介质还可以包括用于延迟写入的NVRAM。存储处理器可以专门运行存储软件应用,或在存储应用和用户应用之间共享。存储软件应用,诸如逻辑卷管理软件或文件系统软件,可以提供存储虚拟化,数据服务功能,及数据移动。
存储虚拟化将由用户应用寻址的逻辑存储空间与永久性存储介质上的物理数据位置分离。通过存储虚拟化,处理器可以根据存储介质的特性来优化物理数据位置,并提供诸如去重和快照等增值数据服务功能。为了支持存储虚拟化,处理器将以逻辑块地址(LBN)寻址的用户输入/输出(I/O)转换为以物理块地址(PBN)寻址的存储介质I/O。为了实现这个转换,处理器需要支持元数据条目前向映射表,其中每个元数据条目将数据块的LBN映射到存储介质上的PBN。为了支持数据去重,处理器保持有元数据条目去重表,其中每个元数据条目将数据块的指纹(数据块内容的散列函数)映射到该数据块在存储介质上的PBN。处理器也可以为其他数据服务功能,例如压缩和快照,支持其他元数据表。
数据块是处理器通过元数据管理的最小的存储单元。数据块可以小到4KB或大到整个数据卷。小数据块在优化数据布局及增加去重率上有优势。前向映射表的大小由数据块的大小和存储系统的可用容量决定。在一个小容量、大数据块的存储系统上,整个元数据表小到可以存储在内存中,便于快速访问。随着系统容量的增加和数据块的减小,元数据表会变得越来越大。诸如去重、压缩、快照之类的数据服务功能还会增加系统的可用容量,进而成倍增加元数据表大小。在内存不足以存储整个元数据表的情况下,元数据表只能被存储在存储介质上,其中一部分缓存在内存中。缓存只有在元数据访问有局部性时才有效。实际运行中用户应用程序往往会经常访问相关的逻辑存储地址。所以处理器可以利用用户访问的局部性来用内存缓存被经常访问的元数据条目,从而不显著地损失性能。没有用户访问的局部性,缓存就变成了颠簸,不但耗尽了系统资源而且大大降低性能。
数据移动在现代存储系统中变得越来越重要。数据移动的一个示例是固态存储介质的垃圾回收。垃圾回收将数据从一个部分填充的存储段移动到另一个存储段,直到整个存储段不再存有数据,可以重新用于新的顺序写入。另一个示例是容量扩展或组件故障后的负载平衡。负载平衡将数据从其当前的物理位置移动到新的物理位置,以便在现有可用容量和带宽内重新分配负载。数据移动对用户应用程序需要是透明的,既更改数据块的物理位置不能影响用户应用程序寻址的LBN。为了支持透明的数据移动,处理器一般维持一个反向映射元数据表。反向映射表将每个物理数据块的PBN映射到一个或多个LBN。在把物理数据块从PBN1移动到PBN2的过程中,处理器先用PBN1在反向映射表中找到对应的一个或多个LBN;然后在前向映射表中查找到这些LBN的元数据条目并更新这些条目,将其映射到PBN2;接着处理器需要更新反向映射表,删除PBN1的条目,添加PBN2的条目;最后处理器需要计算数据块的指纹,在去重表中的查找到该指纹的元数据条目并更新这个条目,将其映射到PBN2。鉴于数据移动不受益于用户访问的局部性,以上这些对多个元数据表的查询及更新无法被有效地缓存在内存中,从而导致系统颠簸。
因此,存储虚拟化,数据服务功能,数据移动需要更有效的元数据管理方法和装置来解决上述问题。
发明内容
公开了用于管理存储系统中的元数据的方法和装置。
存储系统被配置为支持存储虚拟化、数据服务功能及数据移动。存储系统包括处理器、持久存储介质、内存、第一元数据表、第二元数据表。第一元数据表将每个数据块的LBN映射到其独有的内容身份(content ID)。第二元数据表将每个内容身份映射到该数据块在存储介质上的PBN。处理器配置为通过确定数据块的内容身份、并在第二元数据表中更新内容身份的条目,从而进行数据移动处理。处理器可以或通过计算数据块内容的强哈希函数,或读取与数据块存在一起的内容身份,来确定数据块的内容身份。由于该独有的内容身份,使得数据块被去重。在有些实施例中,第一元数据表被存储在存储介质上,并基于访问局部性被缓存在内存里。在有些实施例中,第二元数据表可以整个存储在内存中,便于快速访问。在有些实施例中,第一元数据表条目仅包括数据块的内容身份。不存储LBN,但LBN可以基于其元数据条目在第一元数据表中的相对位置来确定。在有些实施例中,第一元数据表中的条目存储在元数据块中。为每个元数据块生成独有的内容身份,从而元数据块被去重。
当然,本发明不限于以上概述的特征,优点,背景。通过阅读以下具体实施方式并查看附图,熟悉存储技术的人员会认识到另外更多的特征和优点。
附图说明
图1图示存储系统的框图;
图2图示元数据表的框图;
图3图示处理读取请求的流程图;
图4图示处理写入请求的流程图;
图5图示透明数据移动的框图;
图6图示数据移动过程的流程图;
图7图示另一个数据移动过程的流程图;
图8图示第一元数据表利用树数据结构的框图;
图9图示元数据去重的框图。
具体实施方式
公开了用于管理存储系统中的元数据的方法,以更有效地支持存储虚拟化、数据服务功能及数据移动。
图1图示了存储系统100的一个实施例,包括处理器110,内存120,持久存储介质130。存储介质130可以包括多个存储设备135a-135c。存储设备的示例包括固态设备(SSD),硬盘驱动器(HDD),或固态设备和硬盘驱动器的混合(Hybrid)。存储介质可以包括用于为存储设备135a-135c提供数据冗余和负载平衡的RAID(Redundant Array of InexpensiveDisks)系统。RAID系统的示例包括软件RAID,硬件RAID卡,芯片上的RAID,擦除编码,或JBOD(只是一堆盘)。存储介质130还可以包括用于写入缓存和延迟的NVRAM。NVRAM示例包括NVRAM卡,电池供电的DRAM,及NVDIMM。存储系统100向一个或多个用户应用程序140提供持久存储。在有些实施例中,多个存储系统100组成集群以实现冗余和高性能。在有些实施例中,存储介质130可以为多个存储系统100共享。在另外一些实施例中,应用程序140和存储系统100可以在同一个物理系统上运行。在有些实施例中,应用程序140可以通过诸如FibreChannel,Ethernet,InfiniBand,PCIe等存储网络来访问存储系统。
处理器110在应用程序140和存储介质130之间接口。处理器110控制和管理存储介质130。例如,处理器110可以为应用程序140提供一组用于读取和写入存储介质130的命令。另外,处理器110可以运行存储软件,以提供存储介质130本身无法实现的存储虚拟化,数据服务功能,及数据移动。
在本公开中,存储系统100包括一个或多个元数据表150。元数据150可以整个存储在内存120中,或存储在存储介质130上并被缓存在内存120中。在有些实施例中,元数据150包括条目的前向映射表,其中每个条目将应用程序140寻址的LBN映射到其存储介质130上的PBN。为了支持存储虚拟化,处理器110利用前向映射表把来自应用程序140基于LBN中寻址的用户I/O转换成另一组面向存储介质130基于PBN寻址的物理I/O。在有些实施例中,元数据150还包括反向映射表,其中每个条目将存储介质130上的PBN映射到一个或多个被应用程序140寻址的LBN。为了支持对应用程序140透明的数据移动,处理器110先在反向映射表中查找到对应数据块PBN的一个或多个LBN,然后基于该一个或多个LBN来更改前向映射表。在内存120不足以存储整个元数据150的情况下,上述这些对反向映射表和前向映射表的大量访问导致处理器100颠簸并且内存120不断地吞吐元数据条目,造成性能降低。因为数据移动不受益于用户访问局部性,缓存在这种情况下帮助很小。
图2图示了本公开提供的管理元数据150的方法和装置。元数据表150包括第一元数据表152和第二元数据表154。第一元数据表152包括多个条目,每个条目将逻辑数据块的LBN 200a映射其独有的内容身份(content ID)(CID 210)。内容身份对其数据块的内容是独有的,即,两个内容不同的数据块具有相同内容身份的可能性几乎不存在。在有些实施例中,处理器110使用诸如由美国国家标准与技术研究所(NIST)开发的SHA1强哈希函数来计算数据块的内容身份,这样使得两个不同内容的数据块具有相同的内容身份的可能性几乎不存在。第二元数据表154包括多个条目,每个条目将数据块的CID 210映射到其存储介质130上的PBN 230。当两个逻辑数据块LBN 200a和LBN 200b具有重复内容时,LBN 200a和LBN200b被映射到同一个CID 210及其PBN 230。引用计数220被用来记录被映射到同一个CID210的LBN的数量。因此,数据去重不需要单独的元数据去重表。当数据块大小固定时,第一元数据表152的大小与存储系统的可用容量成比例,第二元数据表154的大小与存储系统的物理容量成比例。在有些实施例中,由于去重,压缩,快照,存储系统的可用容量比其物理容量大了许多倍,导致第一元数据表152比第二元数据表154大了许多倍。
图3图示了处理器110处理来自应用程序140读取请求的流程图:
步骤310:处理器110接到对LBN 200a的读取请求;
步骤320:处理器110在第一元数据表152中查找到LBN 200a及其对应的CID 210;
步骤330:处理器110在第二元数据表154中查找到CID 210及其PBN对应的230;
步骤340:处理器110读取地处PBN 230的物理数据块;
步骤350:处理器110向应用程序140确认读取请求的完成。
在有些实施例中,处理器110被配置为计算位于PBN 230的物理数据块的内容身份,并将其与元数据条目中的CID 210进行比较。如果两个内容身份相同,处理器110则可以确证从存储介质读取的是原数据。
图4图示了处理器110处理来自应用程序140写入请求的流程图:
步骤410:处理器110接到对LBN 200b的写入请求;
步骤420:处理器110计算写入数据块的CID 210;
步骤430:处理器110在第二元数据表154中查找CID 210;
步骤440:如果CID 210已经在第二元数据表154中存在,则将其引用计数220增加1;
步骤450:如果CID 210在第二元数据表154中不存在,则将数据块写入新的物理位置PBN 230;
步骤460:处理器110在第二元数据表154中为CID 210和PBN 230创建新条目,并将其引用计数设置为1;
步骤470:处理器110在第一元数据表152中为LBN 200b和CID 210创建新条目;
步骤480:处理器110向应用程序140确认写入请求的完成。
在有些实施例中,在步骤450处,处理器110将数据块先写入NVRAM并向应用程序140确认写入完成(步骤480),然后在延迟后才将数据块写入存储介质130上的新物理位置(延迟写入)。
作为对读取或写入请求的服务的一部分,使用LBN200a和200b访问第一元数据表152受益于用户访问的局部性。在有些实施例中,第一元数据表152被存储在存储介质130上,并基于用户访问的局部性被缓存在内存120中。使用CID210访问第二元数据表154不受益于用户访问的局部性,因此不能被有效地缓存。在有些实施例中,第二元数据表154比第一元数据表152要小许多倍,可以被整个存储在内存120中。
图5图示了透明的数据移动的框图。处理器110需要将物理数据块从PBN 230a移动到PBN 230b,在此过程中不能影响应用程序140对逻辑块地址LBN 200a和LBN 200b的访问。
图6图示了该数据移动过程的流程图:
步骤610:处理器110从PBN 230a读取物理数据块;
步骤620:处理器110计算数据块的CID 210;
步骤630:处理器110在第二元数据表154中查找到CID 210;
步骤640:处理器110将数据块写入新的物理位置PBN 230b;
步骤650:处理器110在第二元数据表154中将CID 210映射到PBN 230b;
步骤660:处理器110在自由块表上标记PBN 230a是自由的。
在有些实施例中,为了避免在步骤620处计算内容身份,内容身份与物理数据块一起被存储在存储介质130上。图7图示在内容身份与物理数据块一起存储在存储介质130时数据移动过程的流程图:
步骤710:处理器110从PBN 230a读取物理数据块;
步骤720:处理器110读取与数据块存在一起的CID210;
步骤730:处理器110在第二元数据表154中查找到CID 210;
步骤740:处理器110将数据块及其CID 210写入新的物理位置PBN 230b;
步骤750:处理器110在第二元数据表154中将CID 210映射到PBN 230b;
步骤760:处理器110在自由块表上标记PBN 230a是自由的。
从上述流程图可以看出,数据移动对于用户应用程序140是透明的。还很明显的是,仅访问了第二元数据表154,作为数据移动处理的一部分。在有些实施例中,第二元数据表154比第一元数据表152小了许多倍,可以被整个存储在内存120中,便于快速访问。
第一元数据表152的大小与存储系统的可用容量成比例,并且由于去重、压缩和快照,可能变得非常大。即使基于用户访问局部性,第一元数据表152的缓存还是一个难题。本公开提供了缩小第一元数据表152的方法,从而减少其内存需求并使其缓存更有效。
在有些实施例中,第一元数据表152以图8所示的树数据结构实现。树的底部包括数据块D0,D1,...,DN,DN+1,...的线性序列,对应于LBN 0,1,...,N,N+1,...。每个数据块内容(P,Q,R)被散列,其内容身份(H(P),H(Q),H(R))被存储在元数据块中。每个元数据块的内容(X,Y),也被散列,其散列后的内容身份(H(X),H(Y))被存储在元数据块中。递归地重复这个过程,直到获得单一的内容身份H(V),其表示树的根。在数据块D1和DN具有相同的内容Q的情况下,元数据M1和MN也具有相同的内容身份H(Q),导致数据去重。例如LBN N,不存储在元数据条目MN中,但可以根据MN在树中的相对位置来确定。这不仅大大减小了第一元数据表152的大小,而且使得元数据块的去重变得可能。图9图示了元数据块在树的两个版本之间被去重。从版本1到版本2的唯一区别是LBN N的数据块内容从Q变成为S。这个变化得到了新的元数据条目M'N,新的元数据块Z,及新的元数据块W,但元数据块X没有变,被版本1和版本2共享。
Claims (17)
1.存储系统,其配置为支持存储虚拟化、数据服务及数据移动,包括:
持久存储介质;
内存;
第一元数据表,其包括多个元数据条目,每个条目将数据块的LBN(逻辑地址)映射到该数据块的独有的内容身份;
第二元数据表,其包括多个元数据条目,每个条目将独有的内容身份映射到其存储介质上的PBN(物理地址);
存储处理器,其被设置来进行数据移动处理;作为所述数据移动处理的一部分,该存储处理器被设置执行以下步骤:
从当前的物理地址PBN A读取数据块;
确定所述数据块的独有的内容身份;
在第二元数据表中查找所述内容身份;
将所述数据块写入其新的物理地址PBN B;
在第二元数据表中将所述内容身份映射到PBN B;
在自由块表上标记PBN A为自由的。
2.根据权利要求1所述的存储系统,其特征在于,
所述存储处理器通过计算数据块内容的强哈希函数来确定所述独有的内容身份。
3.根据权利要求1所述的存储系统,其特征在于,
所述存储处理器通过读取与数据块存在一起的内容身份来确定所述独有的内容身份。
4.根据权利要求1所述的存储系统,其特征在于,
所述内容身份对数据块的内容是独有的,从而数据块被去重。
5.根据权利要求1所述的存储系统,其特征在于,
所述第一元数据表存储在所述存储介质上,并基于访问局部性被缓存在所述内存中。
6.根据权利要求1所述的存储系统,其特征在于,
所述第二元数据表被整个存储在所述内存中。
7.根据权利要求1所述的存储系统,其特征在于,
所述第一元数据表条目仅包括数据块的内容身份,而不包括其LBN;所述数据块的LBN可以基于元数据条目在第一元数据表中的相对位置来确定。
8.根据权利要求1所述的存储系统,其特征在于,
所述第一元数据表中的多个条目被存储在一个元数据块中,且为每个元数据块产生独有的内容身份,从而元数据块被去重。
9.在存储系统中执行以支持数据移动处理的方法,该存储系统包括持久存储介质、内存、包含多个条目的第一元数据表,其中每个条目将数据块的LBN(逻辑地址)映射到其独有的内容身份,包含多个条目的第二元数据表,其中每个条目将一个不同的内容身份映射到其存储介质上的PBN(物理地址),所述方法包括:
从数据块当前的物理地址PBN A读取数据块;
确定该数据块的独有的内容身份;
在第二元数据表中查找所述内容身份;
将所述数据块写入其新的物理地址PBN B;
在第二元数据表中将所述内容身份映射到PBN B;
在自由块表上标记PBN A为自由的。
10.根据权利要求9所述的方法,其特征在于,
确定所述内容身份包括计算数据块内容的强哈希函数。
11.根据权利要求9所述的方法,其特征在于,
确定所述内容身份包括读取与数据块存在一起的内容身份。
12.根据权利要求9所述的方法,其特征在于,
所述内容身份对于数据块的内容是独有的,从而数据块被去重。
13.根据权利要求9所述的方法,其特征在于,
对读取请求进行服务包括计算物理数据块的内容身份,并将其与元数据条目中的内容身份进行比较,以确保所述存储介质返回的是原数据。
14.根据权利要求9所述的方法,其特征在于,
所述第一元数据表被存储在所述存储介质上,并基于访问局部性被缓存在所述内存中。
15.根据权利要求9所述的方法,其特征在于,
所述第二元数据表被整个存储在所述内存中。
16.根据权利要求9所述的方法,其特征在于,
所述第一元数据表条目仅包括数据块的内容身份,而不包括其LBN;其中所述数据块的LBN可以基于元数据条目在第一元数据表中的相对位置来确定。
17.根据权利要求9所述的方法,其特征在于,
将所述第一元数据表中的多个条目存储在元数据块中,并为每个元数据块生成对独有的内容身份,从而元数据块被去重。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462058328P | 2014-10-01 | 2014-10-01 | |
US62/058,328 | 2014-10-01 | ||
PCT/US2015/053226 WO2016054212A1 (en) | 2014-10-01 | 2015-09-30 | Efficient metadata in a storage system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107003814A true CN107003814A (zh) | 2017-08-01 |
Family
ID=55631437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580065481.7A Pending CN107003814A (zh) | 2014-10-01 | 2015-09-30 | 存储系统中的有效元数据 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10176117B2 (zh) |
CN (1) | CN107003814A (zh) |
WO (1) | WO2016054212A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284237A (zh) * | 2018-09-26 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种全闪存储阵列中的垃圾回收方法及系统 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294193B (zh) * | 2015-06-03 | 2019-10-15 | 杭州海康威视系统技术有限公司 | 存储设备及基于该存储设备的分块存储方法 |
US10747678B2 (en) * | 2016-10-27 | 2020-08-18 | Seagate Technology Llc | Storage tier with compressed forward map |
US10795859B1 (en) | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | Micro-service based deduplication |
US10795860B1 (en) | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | WAN optimized micro-service based deduplication |
US11461269B2 (en) | 2017-07-21 | 2022-10-04 | EMC IP Holding Company | Metadata separated container format |
US10949088B1 (en) | 2017-07-21 | 2021-03-16 | EMC IP Holding Company LLC | Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system |
US10860212B1 (en) | 2017-07-21 | 2020-12-08 | EMC IP Holding Company LLC | Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier |
US10936543B1 (en) | 2017-07-21 | 2021-03-02 | EMC IP Holding Company LLC | Metadata protected sparse block set for SSD cache space management |
US10459633B1 (en) | 2017-07-21 | 2019-10-29 | EMC IP Holding Company LLC | Method for efficient load balancing in virtual storage systems |
US11113153B2 (en) | 2017-07-27 | 2021-09-07 | EMC IP Holding Company LLC | Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network |
US10481813B1 (en) | 2017-07-28 | 2019-11-19 | EMC IP Holding Company LLC | Device and method for extending cache operational lifetime |
US10929382B1 (en) | 2017-07-31 | 2021-02-23 | EMC IP Holding Company LLC | Method and system to verify integrity of a portion of replicated data |
US11093453B1 (en) * | 2017-08-31 | 2021-08-17 | EMC IP Holding Company LLC | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication |
US10831521B2 (en) | 2018-04-27 | 2020-11-10 | Nutanix, Inc. | Efficient metadata management |
US10839093B2 (en) | 2018-04-27 | 2020-11-17 | Nutanix, Inc. | Low latency access to physical storage locations by implementing multiple levels of metadata |
WO2022140918A1 (en) * | 2020-12-28 | 2022-07-07 | Alibaba Group Holding Limited | Method and system for in-memory metadata reduction in cloud storage system |
US12007968B2 (en) | 2022-05-26 | 2024-06-11 | International Business Machines Corporation | Full allocation volume to deduplication volume migration in a storage system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7321962B1 (en) * | 2007-02-07 | 2008-01-22 | Network Appliance, Inc. | Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream |
US7386532B2 (en) * | 2002-12-19 | 2008-06-10 | Mathon Systems, Inc. | System and method for managing versions |
US7454592B1 (en) * | 2006-02-16 | 2008-11-18 | Symantec Operating Corporation | Block-level and hash-based single-instance storage |
US20110113281A1 (en) * | 2009-11-12 | 2011-05-12 | Via Technologies, Inc. | Data storage system and method |
US20130185526A1 (en) * | 2009-04-17 | 2013-07-18 | Gridlron Systems, Inc. | System for increasing utilization of storage media |
US8725986B1 (en) * | 2008-04-18 | 2014-05-13 | Netapp, Inc. | System and method for volume block number to disk block number mapping |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE467893T1 (de) * | 2005-11-22 | 2010-05-15 | Sandisk Corp | Verfahren und speichersystem für legacy-hosts |
WO2010045262A1 (en) * | 2008-10-14 | 2010-04-22 | Wanova Technologies, Ltd. | Storage-network de-duplication |
US9047301B2 (en) * | 2010-04-19 | 2015-06-02 | Greenbytes, Inc. | Method for optimizing the memory usage and performance of data deduplication storage systems |
US9223511B2 (en) * | 2011-04-08 | 2015-12-29 | Micron Technology, Inc. | Data deduplication |
WO2014087458A1 (en) * | 2012-12-06 | 2014-06-12 | Hitachi, Ltd. | Storage apparatus and data management method |
US9141554B1 (en) * | 2013-01-18 | 2015-09-22 | Cisco Technology, Inc. | Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques |
US20140229655A1 (en) * | 2013-02-08 | 2014-08-14 | Seagate Technology Llc | Storing Error Correction Code (ECC) Data In a Multi-Tier Memory Structure |
US20150244795A1 (en) * | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US10254989B2 (en) * | 2014-05-30 | 2019-04-09 | Hitachi, Ltd. | Method and apparatus of data deduplication storage system |
-
2015
- 2015-09-30 CN CN201580065481.7A patent/CN107003814A/zh active Pending
- 2015-09-30 WO PCT/US2015/053226 patent/WO2016054212A1/en active Application Filing
- 2015-09-30 US US15/516,265 patent/US10176117B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386532B2 (en) * | 2002-12-19 | 2008-06-10 | Mathon Systems, Inc. | System and method for managing versions |
US7454592B1 (en) * | 2006-02-16 | 2008-11-18 | Symantec Operating Corporation | Block-level and hash-based single-instance storage |
US7321962B1 (en) * | 2007-02-07 | 2008-01-22 | Network Appliance, Inc. | Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream |
US8725986B1 (en) * | 2008-04-18 | 2014-05-13 | Netapp, Inc. | System and method for volume block number to disk block number mapping |
US20130185526A1 (en) * | 2009-04-17 | 2013-07-18 | Gridlron Systems, Inc. | System for increasing utilization of storage media |
US20110113281A1 (en) * | 2009-11-12 | 2011-05-12 | Via Technologies, Inc. | Data storage system and method |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284237A (zh) * | 2018-09-26 | 2019-01-29 | 郑州云海信息技术有限公司 | 一种全闪存储阵列中的垃圾回收方法及系统 |
CN109284237B (zh) * | 2018-09-26 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种全闪存储阵列中的垃圾回收方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20170300424A1 (en) | 2017-10-19 |
WO2016054212A1 (en) | 2016-04-07 |
US10176117B2 (en) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107003814A (zh) | 存储系统中的有效元数据 | |
US10936503B2 (en) | Device access point mobility in a scale out storage system | |
US11010300B2 (en) | Optimized record lookups | |
US9891858B1 (en) | Deduplication of regions with a storage system | |
US7882304B2 (en) | System and method for efficient updates of sequential block storage | |
US8930648B1 (en) | Distributed deduplication using global chunk data structure and epochs | |
US8732217B2 (en) | Using a per file activity ratio to optimally relocate data between volumes | |
US9110919B2 (en) | Method for quickly identifying data residing on a volume in a multivolume file system | |
JP5330503B2 (ja) | ストレージ性能の最適化 | |
US20160203135A1 (en) | In-memory latch-free index structure | |
US8219749B2 (en) | System and method for efficient updates of sequential block storage | |
US10789228B2 (en) | Data presence/absence determination apparatus and computer-readable storage medium storing program for determination of data presence/absence | |
US8321642B1 (en) | Information storage system, snapshot acquisition method, and data storage medium | |
CN102694828A (zh) | 一种分布式缓存系统数据存取的方法及装置 | |
JP2018520420A (ja) | ハイブリッドオブジェクトストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズム | |
CN104616680A (zh) | 基于光盘存储的重复数据删除系统及数据操作方法、装置 | |
CN110276713A (zh) | 一种面向遥感影像数据的高效缓存方法及系统 | |
JP2019028954A (ja) | ストレージ制御装置、プログラム、及び重複排除方法 | |
US9710514B1 (en) | Systems and methods for efficient storage access using metadata | |
CN108595589A (zh) | 一种海量科学数据图片高效存取方法 | |
CN114647388B (zh) | 一种分布式块存储系统和管理方法 | |
US10686906B2 (en) | Methods for managing multi-level flash storage and devices thereof | |
US11327664B1 (en) | Fast small write forwarding with non-temporal cache memory | |
US9864761B1 (en) | Read optimization operations in a storage system |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170801 |
|
WD01 | Invention patent application deemed withdrawn after publication |