CN104272272A - 混合储存集合去除重复 - Google Patents
混合储存集合去除重复 Download PDFInfo
- Publication number
- CN104272272A CN104272272A CN201380023858.3A CN201380023858A CN104272272A CN 104272272 A CN104272272 A CN 104272272A CN 201380023858 A CN201380023858 A CN 201380023858A CN 104272272 A CN104272272 A CN 104272272A
- Authority
- CN
- China
- Prior art keywords
- storage block
- accumulation layer
- storage
- block
- data
- 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.)
- Granted
Links
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
- 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/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
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供用于在混合储存集合中进行去除重复的方法和设备。在一个实施例中,这样的方法包括操作一个包括不同类型的物理存储介质的多个层的混合储存集合。所述方法包括识别包含相同数据的所述混合储存集合的第一存储块和第二存储块和确定所述第一存储块和第二存储块的缓存状态。该方法还包括基于所述第一存储块和第二存储块的缓存状态对第一存储块和第二存储块进行去除重复。
Description
相关申请的交叉引用
本申请要求美国专利申请号No.13/413,898,申请日为2012年3月7日的优先权,这里通过引用将该公开全部内容结合于此。
技术领域
本申请的多个实施例通常与管理数据存储系统的领域的相关。更具体地,本申请的多个实施例涉及对被缓存的混合储存集合去除重复的方法与系统。
背景技术
计算机和计算系统的普及导致了对电子数据的可靠及高效存储的需求不断增长。存储服务器是提供与数据的组织与存储相关的存储服务的专用计算机。数据通常被储存于可写入的持久性存储介质,例如非易失性存储器和磁盘。存储服务器可以被配置为根据信息传递的客户端/服务器模型操作,使许多客户端或应用访问该系统提供的数据。存储服务器可以使用在文件级下运用随机和流媒体访问模式提供数据的存储架构,如附网存储(NAS)环境下,或在块级别下如在存储区域网络(SAN)下。
用于存储服务器的各种类型的非易失性存储介质可具有不同的延迟。访问时间(或延迟)是从存储介质中获取数据所需的时间。在很多情况下,数据被储存于具有相对高延迟的硬盘驱动器(HDD)中。在HDD中,磁盘访问时间包括磁盘启动时间、寻道时间、旋转延迟时间和数据传输时间。在其他情况下,数据被储存于固态硬盘(SSD)中。SSD相较HDD通常具有较低的延迟,因为SSD不存在操作HDD时固有的机械延迟。HDD通常在读取顺序存储在物理介质中的大块数据时具有较好的性能。但是,在随机访问时,HDD的表现也不佳,因为该装置的机械组件需要频繁地移动到介质上的不同物理位置。
SSD通常使用固态存储器,如非易失性闪速存储器以储存数据。由于没有移动部件,SSD通常在随机和频繁的访问中提供更好的性能,因为它们具有较低的延迟。然而,SSD通常比HDD更加昂贵,并且有时因为磨损或别的退化原因使其具有较短的运行寿命。这些额外的前期和更换成本对具有使用数千个存储装置的存储服务器的数据中心可以很大。
混合储存集合结合了HDD和SSD的优点。存储“集合”是物理存储的逻辑集合体,即存储池的逻辑容器,它结合了一种或多个物理大容量存储设备或其零件成为单个逻辑存储对象,其包含或提供储存给一个或多个处于更高级别抽象的逻辑数据集(例如卷)。在一些混合储存集合中,相对昂贵的SSD作为混合储存集合的一部分并提供高性能,而相对廉价的HDD构成存储阵列的剩余部分。在某些情况下,具有各种延迟的存储设备的其他组合也可被用于替代HDD和SSD或与HDD和SSD结合。这些其他存储设备包括非易失性随机存取存储器(NVRAM),磁带驱动器,光盘,及微机电(MEMS)存储设备。由于低延迟(即SSD)存储空间在混合储存集合中是有限的,与低延迟储存设备相关联的好处通过运用其存储访问最频繁的(即,“热的”)数据得到了最大化。剩下的数据被存储在较高延迟的设备中。因为数据和数据的用量随着时间改变,所以确定哪些数据是热的并且应被存储在低延迟的设备中就是一个持续的过程。将数据在高延迟和低延迟的设备中移动是一个多步骤地过程,需要更新指针和其他标识数据位置的信息。
在一些情况下,所述较低的延迟存储通常被用作较高延迟存储的缓存。在这些配置下,最频繁访问的数据副本存储在缓存中。当执行数据存取时,将会先检查更高速的缓存以确认所需要的数据是否存于其中,如果是的,那么数据将从缓存中被访问。在这样的模式下,缓存通过减少高延迟设备必须被访问的次数来减少了总的数据访问次数。在一些情况下,缓存空间被用于存储被频繁写入的数据(即,写缓存)。备选地,或额外地,缓存空间被用于存储被频繁读取的数据(即,读缓存)。对于读缓存和写缓存的管理与运作方法往往是不同的。
为了更有效地使用存储系统中的可用数据存储空间并将成本最小化,各种技术被用于对数据进行压缩和/或最小化重复数据的实例的数量。数据去除重复(Data deduplication)是从存储系统中删除重复数据实例的一种方法。数据去除重复是消除粗粒度的冗余数据的一种技术。在去除重复的过程中,数据块与存储于系统中的其它数据块进行比较。当两个或更多个相同数据块被识别出时,冗余块被删除或从系统中被释放。与已删除的块相关联的元数据被修改为指向未被删除的数据块实例。通过这种方式,两个或更多的应用或文件可以利用同一个数据块而用于不同用途。去除重复过程通过合并重复的数据块和协调单个数据块实例的共享节省了存储空间。然而,在混合储存集合中执行去除重复但不考虑数据块的缓存状态可能会抑制或抵消利用高速缓存的性能优势。
发明内容
在混合储存集合中进行去除重复的方法和设备将在此处介绍。这些技术包括对混合储存集合以多种方式进行去除重复,在这些方式中待被去除重复块的缓存状态也被考虑其中。数据块可以以不同的方式进行去除重复,具体取决于它们是否是读缓存块,读被缓存储存块,写缓存块或是没有任何缓存状态的块。考虑这些状态可以使得系统可以获得去除重复带来的空间优化的好处。如果去除重复在不考虑这些状态的情况下实施,与缓存相关的性能效益可能被抵消。
在一个示例中,这样的方法包括操作一个具有不同类型的物理存储介质的多个层的混合储存集合。该方法包括识别混合存储集合的具有相同数据的第一存储块和第二存储块以及识别第一存储块和第二存储块的缓存状态。该方法还包括基于第一存储块和第二存储块的缓存状态对第一存储块和第二存储块进行去除重复。实施去除重复的过程可能会根据块是读缓存块,读被缓存储存块或者是写缓存块发生改变。如本文中所用的,“读缓存块”通常是指在存储系统中的较低延迟层的数据块,它被用作位于存储系统的较高延迟层的“读被缓存存储块”的高性能副本。“写缓存”块通常是指位于较低延迟层中的用于写入性能的数据块。
在另一个例子中,存储服务器系统包括处理器、混合储存集合和存储器。该混合储存集合包括第一存储层和第二存储层。该第一存储层具有相较第二存储层更低的延迟。存储器与处理器耦接,并包括一个存储管理器。所述存储管理器指示处理器识别混合储存集合中的包含重复数据的第一存储块和第二存储块。然后所述存储管理器识别与所述第一存储块和第二存储块相关联的缓存关系,并对第一存储块和第二存储块基于所述缓存关系,进行去除重复。
如果不考虑缓存关系就进行去除重复,与缓存相关联的性能优势会减少或消除。例如,一个热数据块可能会因为性能原因被缓存进一个较低延迟层。另一个该数据块,其是热数据块的副本,可能被存储在高延迟层。如果没有考虑缓存状态,去除重复过程可能会导致将热数据块从低延迟层移出并且与热数据块相关联的元数据被修改,这样访问该数据块将直接定向到在高延迟层的副本。这一结果减少或消除了混合储存集合的性能优势。因此,以一种保留混合储存集合性能优势的方法执行去除重复是有益的。在一些情况下,去除重复过程可能发生变化,进一步取决于所述块是被用作读缓存还是写缓存。
此处介绍的实施例还包括其他的方法、具有各种组件的系统和非临时性计算机可读存储介质,它存储的指令在被一个或多个处理器执行的情况下,指示所述一个或多个处理器执行所述方法、方法的变形或其他在如本文所述的操作。虽然有多个实施例被公开,其它实施例通过下面的详细介绍,对于本领域的技术人员还是明显的,这些都将在示意性实施例中得到展现和说明。将被理解到的是,本发明可以在各个方面进行修改,且都没有脱离本发明的精神和范围。因此,附图和具体实施例都应被视为在本质上是具有示例性的而不是限制性的。
附图说明
本发明的具体实施方式将使用附图进行描述和解释:
图1所示是本发明的一些实施例可以使用的操作环境。
图2所示是本发明的一些实施例可以使用的存储系统。
图3所示是根据一个阐释性实施例的缓冲树的示例。
图4所示是混合储存集合的去除重复的方法的示例。
图5A所示是在执行去除重复过程之前的文件系统的框图。
图5B所示是在执行去除重复过程之后,图4A中的文件系统的框图。
图6A所示是根据本发明的一个实施例的在操作混合储存集合中执行去除重复过程之前的文件系统示例框图。
图6B所示是根据本发明的一个实施例在执行去除重复过程后的图6A的文件系统的框图。
图6C所示是根据本发明的另一个实施例在执行去除重复过程后的图6A的文件系统的框图。
图7A所示是根据本发明的一个实施例的在混合储存集合中执行去除重复过程前的的文件系统框图。
图7B所示是根据本发明的一个实施例,在混合储存集合中执行去除重复过程后的图7A中的文件系统的框图。
图8所示是另一个对混合储存集合进行去除重复的方法示例。
附图不一定是按比例绘制的。例如,附图中的某些元件尺寸可以扩大或缩小以帮助对本发明实施例的理解。类似地,为了讨论本发明的一些实施例,一些部件和/或操作可以被分成不同的块或组合成一个单独的块。此外,虽然本发明可以修改为各种修改和替换的形式,具体的实施例将通过附图中例子的形式显示并在下面进行详细描述。但是这意图不是限制本发明于所述的具体实施例内。与此相反,本发明意在覆盖由所附权利要求限定的所有修改、等价物和替换,这些都在由所附的权利要求所限定的本发明的范围之内。
具体实施例
一些数据存储系统包括由不同类型的具有不同延迟时间的储存设备组成的持久性存储空间。具有低延迟的设备通常提供更好的性能,但通常具有成本和/或其他缺点。实现一部分采用低延迟设备的存储系统可以改善一些性能,而且是在不产生与整个系统全部采用这些低延迟设备类型设备相关的的高费用或是其它限制。系统性能的改善可以通过选择性地缓存那些访问最频繁的数据(即,热数据)储存于低延迟设备中。这使得发生在更快的低延迟设备中的系统的读写操作数量最大化。低延迟设备中的可用存储空间可以被用于实现读缓存或写缓存或两者。
为了最有效地利用可用存储空间,可以实施多种数据压缩和合并。数据去除重复是一种去除存储系统中的重复数据实例的一种方法,用以释放存储空间给更多的非重复数据。在去除重复的过程中,数据块将与存储在系统中的其他数据块进行比较。当识别到相同的数据块,冗余块被指向剩余存储块的指针或引用所替换。两个或更多的应用或文件共享相同的数据存储块。去除重复过程通过合并这些重复的数据块和协调块的剩余单实例的共享来节省存储空间。然而,不考虑数据块是缓存还是被缓存块就对这些块执行去除重复,会对与混合储存集合相关联的性能增益造成有害影响。如在本文中所使用的,一“块”数据是一组长度已知的起始于一个特定地址值的连续的数据集合。在特定的实施例中,每个0层的块是4字节的长度。然而,这些块也可以是其它大小的。
这里介绍的技术通过基于被去除重复的块的缓存状态对混合储存集合进行去除重复以解决这些和其他问题。去除重复技术通常包括删除,移除或以其他方式释放重复块的其中一个。在一些情况下,重复块中的一个是位于较低延迟存储的读被缓存,并且性能收益是通过删除非读被缓存的重复块得到保持的。在其他情况下,重复的数据块的其中一个是写被缓存,并且去除重复过程,通过扩展写被缓存的性能收益至已识别的块的重复实例,在未删除重复块中的其中之一就已经提高了系统的性能。
图1所示是一操作环境100,其中一些在此介绍的技术实施例中也可以使用。操作环境100包括存储服务器系统130,客户端180A和180B,以及网络190。
存储服务器系统130包括存储服务器140,HDD 150A,HDD 150B,SSD 160A,和SSD 160B。存储服务器系统130也可以包括其它设备或其它不同种类的存储部件,它们被用于管理、包含或提供访问数据或数据存储资源。存储服务器140是一个包括一个实现了一个或多个文件系统的存储操作系统的计算装置。存储服务器140也可以是一个服务器级的计算机,它提供与可写的、持久性存储介质的信息组织相关的存储服务给,可写的、持久性存储介质如HDD 150A,HDD 150B,SSD 160A,和SSD 160B。HDD 150A和HDD 150B是硬盘驱动器,而SSD 160A和SSD 160B是固态驱动器(SSD)。
一个典型的存储服务器系统可以包括比图1所示更多的HDD和/或SSD。应当被理解的是,存储服务器系统130也可以通过使用了其它种类的持久性存储设备来替代或与HDD和SSD结合被实现。这些其它类型的持久性存储设备可以包括,例如,快闪存储器,NVRAM,MEM存储设备或它们的组合。存储服务器140还可以包括其它设备,包括一个用于访问和管理所述持久性存储设备的存储控制器。存储服务器系统130被示出为一个单块系统,但是可以包括分布在不同的地理位置的系统和设备。存储服务器系统130还可以包括额外的存储服务器,使用与存储服务器140相同或不同的存储操作系统进行操作。
根据在此介绍的实施例,存储服务器140对存储在HDD 150A,HDD 150B,SSD 160A,和SSD 160B内的数据进行去除重复。本说明书的教导可用于各种存储服务器架构,包括但不限于网络附加储存(NAS),存储区域网络(SAN)或直接连接到一个客户端或主机电脑的磁盘组件。所述术语“存储服务器”因此应包括这些广泛的安排方式。
图2所示是存储系统200,其中在这里介绍的一些技术有关的实施例也可以使用。存储系统200包括存储器220,处理器240,网络接口292和混合储存集合280。混合储存集合280包括HDD阵列250,HDD控制器254,SSD阵列260,SSD控制器264和RAID模块270。HDD阵列250和SSD阵列260是持久性存储介质的异构层。因为它们具有不同类型的存储介质,因此,它们具有不同的性能特性,HDD阵列250和SSD阵列260被称为存储的不同的“层”。HDD阵列250包括相对便宜同时较高延迟的磁存储介质,它使用磁盘和可机械移动到磁盘不同位置的读/写磁头。SSD阵列260包括相对昂贵同时较低延迟的电子存储介质340,它用非易失性的闪存器件阵列构成。混合储存集合也可包括其它种类不同延迟的存储介质。此处所描述的实施例不限于HDD/SSD的配置,也不限于只有两层持久性存储介质的实现。
混合储存集合280是HDD阵列250和SSD阵列260存储中的逻辑集合。在这个例子中,混合储存集合280是RAID组的集合,它可能包括一个或多个卷。RAID模块270将一个特定卷内的HDD和SSD组织为一个或多个奇偶校验组(例如,RAID组),并管理HDD和SSD内数据的位置。RAID模块270根据一个或多个RAID实现来配置RAID组,以给一个或多个HDD或SSD的故障事件提供保护。RAID实现,通过写入数据“条”增强了数据存储的可靠性和完整性,该数据“条”穿过RAID组中的给定数量的HDD和/或SSD,该RAID组包括冗余信息(如奇偶校验)。HDD控制器254和SSD控制器264对分布在在各自阵列上的多个物理设备的数据采取低级别管理。RAID模块270采用HDD控制器254和SSD控制器264以响应HDD阵列250和SSD阵列260中的数据访问请求。
存储器220包括由处理器240可寻址的、用以存储执行此处所述的技术的软件程序和数据结构的存储位置。处理器240包括电路,被配置用来执行所述软件程序和操做数据结构。存储管理器224就是这类软件程序的一个例子。存储管理器224指示处理器240在其它事项外,实现一个或多个文件系统。处理器240同时与网络接口292相互连接。网络接口292允许其他设备或系统从混合储存集合280中访问数据。
在一个实施例中,存储管理器224通过采取数据放置和数据布局算法,提高了混合储存集合280中的读写性能。存储管理器224可以被配置为基于数据的访问特性在HDD阵列250和SSD阵列260之间迁移数据。例如,当该数据被确定为是热的时,意味着数据被频繁访问,随机访问,或两者都有时,存储管理器224可以将数据从HDD阵列250迁移到SSD阵列260。这是有好处的,因为SSD阵列260具有更低的延迟,并且在有限数量的可用的SSD空间中具有最频繁和/或随机访问的数据将提供存储系统200的最大的整体性能益处。
在此解释的上下文中,涉及到一块数据时,术语“随机”访问,涉及这块数据是否与存储在与在存储介质中的该块数据在同一个物理环境中其它块中的数据一同被访问。具体地说,随机访问块是一种不与存储于与在存储介质中的该块数据在同一物理环境下的块中的数据连同访问的块。虽然访问的随机性通常对固态存储介质的性能几乎或没有影响,但是它对于基于磁盘的存储介质的性能影响很显著,因为机械驱动部件需要移动到磁盘的不同的物理位置。通过迁移被随机访问的数据块至较低延迟层,会带来显著的性能提升,即使所述块没有被访问得足够频繁可以衡量其为热数据。因此,访问的频率和访问的性质(即,访问是否是随机的)可以被一起考虑用于确定哪些数据应被置于较低延迟层。
在另一个例子中,存储管理器224最初可在SSD阵列260的SSD中存储数据。接着,因为数据不被经常访问的或以顺序的方式经常访问,数据可能会变“冷”。因此,最好将这个冷数据从SSD阵列260移动到HDD阵列250,以使得SSD阵列260中有更多地空间给热数据。存储管理器224与RAID模块270配合工作来确定初始存储位置,监控数据使用量,并适当地将阵列之间的数据迁移。冷热数据之间的阈值的标准会根据低延迟层中的可用空间的量而变化。
在至少一个实施例中,数据以逻辑容器,例如卷、目录和文件的形式储存于混合储存集合280中。一个“卷”是一组与例如磁盘的大容量存储设备相关的存储数据的集合,它从(即,包含在)一个集合中获取其储存,并将其作为一个独立的管理单元进行管理,例如一个完整的文件系统。每个卷可以以一个或多个文件、目录、子目录、逻辑单元(LUN)或其它类型的逻辑容器的形式包含数据。
混合储存集合280中的文件可以以缓冲树的形式表示,如图3中的缓冲树300。缓冲树300是包含关于一文件的元数据的分层数据结构,所述元数据包括用于定位文件中的数据块的位置的指针。这些构成文件的数据块通常不储存在连续的物理位置上并且可能分布在存储阵列的许多不同的物理位置或区域。随着时间的推移,一些数据块可能被移动到其它位置而文件的其它数据块则不被移动。因此,缓冲树是一种用于定位文件的所有块的机制。
缓冲树包括一级或更多级的间接块,间接块包含一个或多个指向较低级别的间接块和/或直接块的指针。确定块的实际物理位置可能需要通过几个级别的间接块的工作。在缓冲树300的例子中,被指定为“1级”的块是间接块。这些块指向的是文件的直接块——“0级”的块。间接块的附加级是可能的。例如,缓冲树300可以包括指向1级块的2级块。在某些情况下,一组中的一些2级块可能指向1级块,而组中其他的2级块指向0级块。
缓冲树300的根是索引节点322。索引节点是元数据容器,其用来存储关于文件的元数据,如文件所有者,文件的访问权限,文件大小,文件类型,和指向最高级别的文件间接块的指针。该索引节点通常存储在一个单独的索引节点文件中。索引节点是查找所有相关联数据块的位置的起点。在所示的例子中,索引节点322引用了1级间接块324和325。这些间接块中的每一个都存储有至少一个物理卷块号码(PVBN)和一个对应的虚拟卷块号码(VVBN)。为了说明的目的,只有一个PVBN-VVBN对被显示在每个间接块324和325上。然而,许多PVBN-VVBN对可被包含在每个间接块中。每个PVBN引用在混合储存集合280中的物理块,并且相对应的VVBN引用卷中的相关联的逻辑块号。在所示的实施例中,间接块324中的PVBN引用物理块326,间接块325中的PVBN引用物理块328。类似地,间接块324中的VVBN引用逻辑块327,间接块325中的VVBN引用逻辑块329。逻辑块327和329分别指向物理块326和328。
文件块号(FBN)是特定文件中的数据块的逻辑位置。每个FBN映射到卷中的一个VVBN-PVBN对。存储管理器224实现了FBN到PVBN的映射。存储管理器224进一步配合RAID模块270来控制HDD阵列250和SSD阵列260的存储操作。存储管理器224将每个FBN转换成混合储存集合280内的PVBN位置。然后,块可以使用由RAID模块270所提供的拓扑信息在存储装置中被获取。
当HDD阵列250中的数据块被移动到HDD阵列250中的另一个位置时,与该块相关联的间接块被更新以反映新的位置。然而,索引节点322和其他间接块可能不需要被改变。类似地,数据块通过复制该块至新的物理位置并将新的位置更新至相关联的间接块这样的方式来将数据块在HDD阵列250和SSD阵列260之间移动。组成文件的各个块可以分散在多个非连续的物理位置,甚至可能分散在不同类型的存储介质中,例如组成HDD阵列250和SSD阵列260的那些。在整个这个说明书的其余部分,与一个数据块的移动相关联的缓冲树的变化将被描述为改变该块的元数据以指向新的位置。改变块的元数据可以包括改变相关联的缓冲树中元素的任何一个或其任何组合。
图4所示是对混合储存集合进行去除重复的方法400。方法400包括操作包括不同类型的物理存储介质的多个层的混合储存集合(步骤410)。该方法包括:在处理器240上运行的存储管理器224,识别混合存储集合中包含相同的数据的第一存储块和第二存储块(步骤420)。每个第一和第二存储块可以位于存储系统的任何一个存储层。此外,第一和第二存储块也都可以是读缓存块,读被缓存块,写缓存块或者可以不具有缓存状态。该方法还包括存储管理器224识别第一存储块和第二存储块的缓存状态(步骤430),并基于第一存储块和第二存储块的缓存状态对第一存储块和第二存储块进行去除重复(步骤440)。如在下面的实施例描述,可以基于含有重复的数据块是写缓存块,读缓存块,或是读被缓存块选择特定的去除重复的实现。
图5A表示在执行去除重复过程之前,文件系统的框图。文件系统包含与两个文件相关联的两个缓冲树结构。文件系统通常包括更多的文件和缓存树结构。用于说明的目的,仅示出了两个。索引节点522A和522B,除了其他功能,其指向与相关文件相关联的间接块。该间接块指向HDD阵列550中构成各自文件的数据的物理块。例如,索引节点522A由标记为数据块561,数据块562和数据块563的数据块组成。通常文件由更多的块组成,但是出于说明的目的,块的数量是有限的。图5A所示的数据块的填充图案表示的是数据块的内容。如填充图案所示出的,被标记的数据块563,数据块564和数据块566包含相同的数据。因为它们包含重复的数据,去除重复可以使存储系统中有额外的可用存储空间。
图5B所示是去除重复已经执行之后,图5A中的文件系统的框图。该过程的结果是,数据块563和数据块566不再被使用。间接块524B,525A和525B现在各指向数据块的一个实例,数据块564。数据块564现在被两个索引节点522A和522B所使用。数据块563和566不再被使用,并且相关联的存储空间现也可用于其它目的。应当被理解的是,与物理存储介质上的数据块563和566相关联的比特在过程中可能没有被真正地移除或删除。在一些系统中,数据位置的引用被移除或改变,从而在逻辑上将系统内的那些存储位置从使用中释放出来。即使被释放,组成那些块的比特可以存在于物理存储位置,直至在稍后的某个时间点,当该部分的物理存储空间被用于存储其他数据时这些比特被覆盖。在此处的“已删除”的术语用于表示一个数据块不再被引用或者使用,并且不必然表明在当时在物理存储介质上的与块相关联的比特被删除或覆盖。
在一些情况下,通过去除重复处理从缓冲树删除的块被称为接收块。在图5A和图5B的例子中,数据块563是一个受体块。在某些情况下,仍然存在并被相关联的元数据所指向的数据块被称为供体块。在图5A和图5B的例子中,数据块564是供体块。
在一个例子中,去除重复是通过数据块在存储时为每个数据块产生独特的指纹来进行的。这可以通过对数据块使用散列函数,如SHA-256或SHA-512来实现。两个或多个相同的数据块将始终具有相同的指纹。通过在去除重复过程中比较指纹,重复的数据块可被识别并合并如图5A和5B所示。根据所使用的指纹过程,两相匹配的指纹单独就足以表明相关联的块是相同的。在其他情况下,匹配的指纹可能不是决定性的,并且可能需要对块进行进一步比较。因为块的指纹比数据块本身小得多,大量的数据块的指纹可以被存储,而无需耗费系统中的显著存储容量。指纹的生成过程可以在数据块被接收时被执行,或者可以在块已经被存储之后通过后处理执行。类似地,去除重复过程可以在数据块的初始接收和存储时进行的,或该块已经被存储之后执行,如图5B所示。
图6A是示出了根据本发明的一个实施例的在混合储存集合进行去除重复处理之前的文件系统的框图。图6A的HDD阵列650是图2中的HDD阵列250的一个例子。图6A中的SSD阵列670是图2中的SSD阵列260的例子。SSD阵列670被用于以一种提高混合储存聚合的性能的方式有选择地存储数据块。在大多数情况下,将所有HDD阵列650全部更换为SSD设备,如那些组成SSD阵列670的,将是非常昂贵的。SSD阵列670包括缓存映射610。缓存映射610是SSD阵列670中的用于存储关于哪些数据块被存储在SSD阵列670的信息的区域,包括有关SSD阵列670内的这些数据块的位置的信息。
应当理解的是,包括其它类型的存储设备的存储阵列可被取代为HDD阵列650和SSD阵列670的一个或两个。此外,额外的存储阵列可以被添加,以提供包含三个或更多层存储的系统,并且每一个层都具有与其他层不同的延迟。就如图5A和图5B,图6A和6B中的数据块的填充图案表示该些数据块的内容。
读缓存块是为目前正在频繁读取(即数据块是热的)的数据块创建在一个较低延迟存储层中的数据块的拷贝。因为该块被频繁地读取,增量的性能改善可以通过在较低延迟存储层放置块的副本并指示对该块的请求至较低延迟存储层来实现。在图6A,数据块663在某个在先的时间点被确定为是热的,数据块663的副本在SSD阵列670被创建(即数据块683)。在创建该拷贝的同时,在缓存映射610中建立一个条目,以指示该数据块663的拷贝(即,数据块683)在SSD阵列670中是可用的并指示位置。当从存储系统读取数据块时,缓存映射610首先被检查,以确定在SSD阵列670中所请求的数据块是否可用。
例如,当接收到请求读数据块663,缓存映射610首先被检查以确定SSD阵列670中数据块663的拷贝是否可用。缓存映射610包括指示数据块683是否可用作为数据块663的副本的信息,并提供它的位置,以及关于所有存储在SSD阵列670中的其它块的信息。在本例中,因为数据块663的拷贝是可用的,读取请求通过读取数据块683得到满足。换言之,在读取与数据块663相关联的数据时HDD阵列650不被访问。由于SSD阵列670特性,数据块683可以比数据块663更快地被读取。当数据块663不再热时,至数据块663和数据块683的引用被从缓存映射610移除。被数据块683所占用的物理存储空间然后可以用于其它热数据块或用于其他目的。
图6B示出了根据本发明的一个实施例执行去除重复过程之后,图6A中的文件系统的框图。如先前所描述的,去除重复删除或移除系统中的相同数据块的重复的实例,以释放空闲存储空间用于其他用途。在图5A和5B中,没有选择标准被应用来确定三个重复的数据块中哪个被删除,释放或保留。
与此相反,图6A和6B所示的去除重复过程是基于含有重复的数据块的缓存状态进行的。数据块663,664和683包含相同的数据。必须选择某个块被删除或释放,作为去除重复过程的一部分。由于数据块683已经作为数据块663的读缓存存在,通过杠杆式地使用数据块683,系统性能有机会进一步提高。因此,由于其缓存状态,读缓存数据块683在去除重复过程中不会被删除或释放。
此外,删除或释放数据块663会破坏已经存在的读缓存安排,因为存储在缓存映射610的信息已将数据块663与数据块683相链接。因此,为了实现去除重复,释放或删除数据块664是最有效的,而不是数据块663或683。在与数据块664相关联的间接块625A中的元数据被更新,以指向数据块663。
通过选择性地基于所述数据块的缓存状态执行去除重复,不仅已到位的与数据块663相关联的缓存好处被保留,重复的好处也被实现。存储空间在HDD阵列650中被释放并且数据块683的性能优势通过与两个索引节点622A和622B相关联的读取被实现。
图6C示出了在执行替代去除重复过程之后,图6A中的文件系统的框图。在图6C中,作为数据去除重复过程的一部分,数据块663被解放,释放,或删除。与数据块664相关联的元数据被修改,使之作为与读缓存数据块683相关联的读被缓存块。读缓存关系被有效地从数据块663“转移”到数据块664,作为去除重复过程的一部分。先前与数据块663相关联的元数据被修改为指向数据块664。如图6B中,两个索引节点622A和622B现在接收SSD阵列670中的数据块683的读缓存的好处。虽然读取数据块663的读被缓存状态没有给出优于先前未被缓存的数据块664的保留优先级,如图6B所示,在去除重复过程仍然考虑到数据块683作为读缓存块的缓存状态。
在图6C中,数据块663被解放,删除或释放,而不是图6B中的数据块664。间接块624B被更新为指向数据块664。数据块683不再是数据块683的读缓存块,而变为数据块664的读缓存块。如图6B,图6C所示的缓存映射610中包含将与数据块663和数据块664相关联的读取请求指向SSD阵列670中数据块683的信息。读取请求使用缓存映射610处理,以确定所请求的数据块是否是在SSD阵列670中。如果不是,则读请求使用HDD阵列650中的数据被满足。
尽管图6C的去除重复过程需要比在图6B所示的过程多至少一个步骤,图6C的过程却在某些情况下仍然可能是优选的。例如,可能是优选的保留数据块664,而不是数据块663,因为它相对于数据块663的物理位置,其具有优选的物理位置。这个位置可能是优选的,因为它被有顺序地与其他经常同时被读取的数据块排在一起。在另一个例子中,可以是优选地对数据块663去除重复,而不是数据块664,因为数据块663位于非优选位置或在系统试图清除的某个位置。在另一个例子中,即使它已经读被缓存,如果它变冷了,数据块663可被去除重复。
图7A示出根据本发明的另一个实施例的混合存储集合进行去除重复处理之前的文件系统的方框图。在图7A中,数据块783是写缓存块。数据块783先前从HDD阵列760移动到SSD阵列770,因为它具有相对于其他块的高写入频率(即,它是热的)。对数据块783的每个写入都可以更快地完成,因为它是位于较低延迟的SSD阵列770。在写缓存的这个例子中,被缓存数据的一个副本不保存在硬盘驱动器阵列760中。换句话说,HDD阵列760中没有对应于数据块783的对应物,与图6A,6B和6C的读缓存的例子不同。该结构对于写缓存是优选的,因为HDD阵列760中的对应数据块必须在每次数据块783被写入时都要被更新。这将消除或显著减少数据块783在HDD阵列770中所带来的性能优势。如在前面的例子中,缓存映射710中包含指示在SSD阵列770中哪些数据块可用以及它们的位置。
在图7A的例子中,数据块783和数据块764包含相同的数据。如在前面的例子中,数据块764和783的缓存状态将在确定如何对图7A中的文件系统进行去除重复时考虑。
例如,如果数据块783仍然是热的,或预计将继续是热的,以数据块764对其进行去除重复可能没有什么好处,这是正确的,因为有很高的可能性,该数据将在下一次写入时发生改变。换句话说,数据块783和数据块764可以在这一时刻是相同的,数据块764可以进行去除重复以保留数据块783,而数据块783在一段相对短的时间内将很有可能发生变化。一旦数据块发生了变化,连同索引节点722A或722B中的任一个,去除重复过程将必须反转,因为两个索引节点所需要的数据块将不再是相同的。虽然这在任何去除重复的情况下都是属实的,但是它发生的概率在写缓存的情况下高得多,因为该块已知是正被频繁写入的。在数据块764和783上执行去除重复过程的开销提供很少或根本没有好处。换言之,在去除重复过程中避免对写缓存块进行去除重复作为去除重复过程的一部分可能是最有利的,即使它是在文件系统中的另一个数据块的一个副本。
图7B示出了在图7A中的文件系统上执行去除重复之后,图7A所示的文件系统的框图。尽管数据块783是写缓存块,与上所述例子相反,在块上执行去除重复过程,如果该块已经或者是正在变冷(即,该块不再被频繁写入),那么这可能是有利的。在这种情况下,去除重复涉及将数据块783从写缓存块转换到读缓存块。数据块764的元数据被修改为指向数据块783,从而提高读取性能。间接块724B也被修改为指向数据块764。在这种情况下,去除重复没有改变在任一HDD阵列760或SSD阵列770中的存储使用量,但元数据的变化将数据块783的读取性能上的好处提供给两个索引节点722A和722B。
图8显示了对混合储存集合进行去除重复的方法800。如先前所讨论的,开始于步骤802的去除重复方法可以在后处理中进行,或者可以在新数据块被接收和存储时递增地进行。在步骤804中,存储管理器224识别在混合存储集合中的包含相同数据的两个数据块。在步骤810中,确定块中的任一个是否是写缓存块。如果两个块中的任何一个是写缓存块中,下一次确定发生在步骤840,以确定该写缓冲块是否是冷的或是否正在变冷(即,不经常被访问的)。为了确定块是否是冷的,可以使用访问频率阈值,其中如果块自身的访问频率下降到低于该阈值,该块将被认为是冷的。在这方面所使用的特定阈值是特定于实现的,并且与本描述没有密切关系。如果写缓存块不冷,不对这两个识别的块采取行动。如果该块被确定是冷的,该写缓存块将以类似于图7B讨论步骤850的方式被变换为读缓存块。
返回到步骤810,如果两个块都不是写缓存块,下一次确定发生在步骤820,以识别任意一块是否是读被缓存。如果没有块是读被缓存,这两个块在步骤860进行去除重复。这是通过修改块中的第一个的元数据以指向另一个块并且第一块被删除或释放完成的。步骤860以类似于相对于图5B中讨论的方式进行。如果这两个块都是读被缓存,可能会做出哪块被保留而哪块被去除重复的选择。在某些情况下,该确定可以基于哪块具有更高的引用计数。引用计数包括多少不同的文件使用该块的信息。例如,只被一个文件所使用的数据块可以具有一个引用计数。由几个文件使用的数据块,可能是以前的去除重复处理的结果,通常有一个大于一的值。具有较高的引用计数的块可以被保留,而具有较少被引用的块被解放或释放。与被解放或被释放的块相关联的引用计数可以被添加至到或结合到保留块的引用计数上,以正确地反映所保留块的新的参考计数。
返回到步骤820,如果其中的一个块是读被缓存,这两个块在步骤870中通过修改一个块的元数据以指向另一个块,对它们进行去除重复,。与另一数据块相关联的元数据也被修改以指向现有的读缓存块(即,在SSD阵列中包含与识别的两个块中相同数据的第三数据块)。步骤870是以类似于相对于图6B讨论的方式进行。
本发明的实施例包括各种步骤和操作,这些已经在上文进行描述。各种步骤与操作可以由硬件组件或者可以在机器可执行指令中呈现,其可用于利用指令编程以执行这些步骤的一个或多个的通用或专用处理器。或者,所述步骤可以通过硬件、软件和/或固件的组合来执行。
本文介绍的技术的实施例可以被提供作为一个计算机程序产品,它包括一个机器可读介质,其上存储有可用于对计算机或其它电子设备进行编程以实现本文所述的一些或全部操作的非临时性指令。所述机器可读介质可包括但不限于光盘,光盘只读存储器(CD-ROM),磁光盘,软盘,只读存储器,随机存取存储器(RAM),可擦可编程只读存储器(EPROM),电可擦除可编程只读存储器(EEPROM),磁卡或光卡,闪存或其它类型的适合存储电子指令的机器可读介质。此外,本发明的实施例还可以下载为计算机程序产品,其中所述程序可通过一个通信链路以体现为载波或其它传播介质的数据信号的方式从远程计算机传送到请求的计算机。
如“在某些实施例中”,“根据一些实施例”,“在所示的实施例中”,“在其它实施例中”,“在一些例子中”以及一些相似的短语,其指的一般是在该短语之后的特定的特征、结构或特性被包括在本发明的至少一个实施例中,并且可以包括在一个以上的本发明的实施例中。此外,这样的短语不一定指的是相同的实施例或使不同的实施例。
虽然本发明的一个或多个实施例的详细描述已经在上文给出,各种替换、修改和等价,在不脱离本发明的精神的前提下,对于本领域的技术人员是明显的。例如,虽然上文所描述的实施例涉及具体的特征,本发明的范围也包括具有不同特征组合的实施例以及不具有所有所描述的特征的实施例。因此,本发明的范围旨在涵盖在权利要求书范围内的所有这样的替换,修改和变式,以及所有的等价变换。因此,上文的描述不应被视为限制本发明的范围,范围应由权利要求书限定。
Claims (30)
1.一种方法,包括:
操作包括不同类型的物理存储介质的多个层的混合储存集合;
识别包含相同数据的所述混合储存集合的第一存储块和第二存储块;
确定所述第一存储块和所述第二存储块的缓存状态;以及
基于所述第一存储块和所述第二存储块的所述缓存状态对所述第一存储块和所述第二存储块进行去除重复。
2.根据权利要求1所述的方法,其中所述多个层中的第一存储层包括持久性存储介质,其相较所述多个层中的第二存储层的持久性存储介质具有较小的延迟。
3.根据权利要求2所述的方法,其中所述第一层储存的所述持久性存储介质包括固态储存装置,所述第二层储存的所述持久性存储介质包括基于磁盘的储存装置。
4.根据权利要求2所述的方法,进一步包括将所述第一存储层作为所述第二存储层的缓存。
5.根据权利要求2所述的方法,其中所述多个层的第三存储层包括存储介质,其相比所述第一存储层的所述持久性存储介质具有较低的延迟,并且还包括将所述第三存储层作为一个或多个所述第一存储层和所述第二存储层的缓存。
6.根据权利要求2所述的方法,其中:
所述第一存储块和所述第二存储块位于所述第二存储层;
第三存储块位于所述第一存储层,其包含与所述第一存储块相同的数据以及与所述第一存储块相关联的元数据指向所述第三存储块;以及
去除重复包括改变与所述第二存储块相关联的元数据指向所述第一存储块。
7.根据权利要求6所述的方法,进一步包括:
接收读取所述第二存储块的请求;以及
发送所述第三存储块的数据以响应所述请求。
8.根据权利要求2所述的方法,其中:
所述第一存储层被操作为所述第二存储层的缓存;
所述第一存储块以及所述第二存储块位于所述第二存储层;
位于所述第一存储层的第三存储块包含与所述第一存储块相同的数据以及与所述第一存储块相关联的元数据指向所述第三存储块;以及
去除重复包括改变与所述第三存储块相关联的元数据指向所述第二存储块以及改变与所述第一存储块相关联的元数据指向所述第二存储块。
9.根据权利要求8所述的方法,还包括:
接收读取所述第一存储块的请求;以及
发送所述第三存储块的数据以响应所述请求。
10.根据权利要求2所述的方法,其中:
所述第一存储层被操作为所述第二存储层的缓存;
所述第一存储块位于所述第一存储层,并具有低于阀值的访问频率;
所述第二存储块位于所述第二存储层;以及
去除重复包括改变所述第二存储块的元数据指向所述第一存储块以将所述第一存储块作为所述第二存储块的缓存。
11.根据权利要求2所述的方法,其中:
所述第一存储层被操作为所述第二存储层的缓存;
所述第一存储块以及所述第二存储块位于所述第一存储层;
第一参考计数指示使用所述第一存储块的文件的数目,第二参考计数指示使用所述第二存储块的文件的数目,其中所述第一参考计数大于所述第二参考计数;以及
去除重复包括:
改变所述第二存储块的元数据以指向所述第一存储块;以及
添加所述第二存储块的访问频率至所述第一存储块的访问频率。
12.一种储存服务器系统,包括:
处理器;以及
与所述处理器耦合的存储器,包括一个存储管理器,其指示所述处理器:
操作混合储存集合,包括第一存储层和第二存储层,其中所述第一存储层具有相较所述第二存储层较小的延迟;
确定包含重复数据的所述混合储存集合中的第一存储块和第二存储块。
13.根据权利要求12所述的储存服务器系统,其中所述第一存储层的永久储存介质包括固态储存装置,所述第二存储层的持久性存储介质包括硬盘设备。
14.根据权利要求12所述的储存服务器系统,其中所述存储管理器进一步指示所述处理器将所述第一存储层操作为所述第二存储层的缓存。
15.根据权利要求12所述的储存服务器系统,其中所述混合存储集合包括具有相较所述第一存储层较小的延迟的第三存储层,所述存储管理器还指示所述处理器将所述第三存储层操作为一个或多个所述第一存储层和所述第二存储层的缓存。
16.根据权利要求12所述的储存服务器系统,其中:
所述存储管理器进一步指示所述处理器将所述第一存储层操作为所述第二存储层的缓存;
所述第一存储块和所述第二存储块位于所述第二存储层;以及
所述第一存储块被第三存储块读被缓存,所述第三存储块位于所述第一存储层,其包含与所述第一存储块相同的数据以及与所述第一存储块相关联的元数据指向所述第三存储块。
17.根据权利要求16所述的储存服务器系统,其中所述存储管理器还指示所述处理器:
接收读取所述第二存储块的请求;以及
发送所述第三存储块的所述数据以响应所述请求。
18.根据权利要求12所述的储存服务器系统,其中:
所述存储管理器进一步指示所述处理器将所述第一存储层操作为所述第二存储层的缓存;
所述第一存储块和所述第二存储块位于所述第二存储层中;
所述第一存储块被第三存储块读被缓存,所述第三存储块位于所述第一存储层中,其包含与所述第一存储块相同的数据以及与所述第一存储块相关联的元数据指向所述第三存储块;以及
去除重复包括改变与所述第三存储块相关联的元数据指向所述第二存储块以及改变与所述第一存储块相关联的元数据指向所述第二存储块。
19.根据权利要求18所述的储存服务器系统,其中所述存储管理器还指示所述处理器:
接收读取所述第一存储块的请求;以及
发送所述第三存储块的数据以响应所述请求。
20.根据权利要求12所述的储存服务器系统,其中:
所述存储管理器进一步指示所述处理器将所述第一存储层操作为所述第二存储层的缓存;
所述第一存储块位于所述第一存储层中,并具有低于阀值的访问频率;
所述第二存储块位于所述第二存储层中;以及
去除重复包括改变与所述第二存储块相关联的元数据指向所述第一存储块以将所述第一存储块作为所述第二存储块的缓存。
21.根据权利要求12所述的储存服务器系统,其中:
所述存储管理器进一步指示所述处理器将所述第一存储层操作为所述第二存储层的缓存;
所述第一存储块和所述第二存储块位于所述第一存储层中;
第一参考计数指示使用所述第一存储块的文件的数目,第二参考计数指示使用所述第二存储块的文件的数目,其中所述第一参考计数大于所述第二参考计数;以及
去除重复包括:
改变所述第二存储块的元数据以指向所述第一存储块;以及
添加所述第二存储块的访问频率至所述第一存储块的访问频率。
22.一种非临时性计算机可读介质,包括非临时性指令,当由一个或多个处理器执行时,其指示所述一个或多个处理器:
识别包含相同的数据的第一存储块和第二存储块,所述第一存储块和所述第二存储块都位于混合储存集合中,其包含第一存储层和第二存储层,其中所述第一存储层相较所述第二存储层具有较小的延迟,以及所述第一存储层被操作为所述第二存储层的缓存;
确定与所述第一存储块和所述第二存储块相关联的缓存状态;以及
基于所述缓存状态对所述第一存储块和第二存储块进行去除重复。
23.根据权利要求22所述的非临时性计算机可读介质,其中所述第一存储层的永久储存介质包括固态储存装置,所述第二存储层的持久性存储介质包括硬盘设备。
24.根据权利要求22所述的非临时性计算机可读介质,其中所述混合存储集合包括具有相较所述第一存储层较小的延迟的第三存储层,所述指示还进一步指示所述一个或多个处理器将所述第三存储层操作为一个或多个所述第一存储层和第二存储层的缓存。
25.根据权利要求22所述的非临时性计算机可读介质:
所述第一存储块和所述第二存储块位于所述第二存储层中;
位于所述第一存储层中的第三存储块包含与所述第一存储块相同的数据,以及与所述第一存储块相关联的元数据指向所述第三存储块;以及
去除重复包括改变与所述第二存储块相关联的元数据指向所述第一存储块。
26.根据权利要求25所述的非临时性计算机可读介质,其中所述存储管理器还指示所述处理器:
接收读取所述第二存储块的请求;以及
发送所述第三存储块的数据以响应所述请求。
27.根据权利要求22所述的非临时性计算机可读介质,其中:
所述第一存储块和所述第二存储块位于所述第二存储层中;
位于所述第一存储层中的第三存储块包含与所述第一存储块相同的数据以及与所述第一存储块相关联的元数据指向所述第三存储块;以及
去除重复包括改变与所述第三存储块相关联的元数据指向所述第二存储块和改变与所述第一存储块相关联的元数据指向所述第二存储块。
28.根据权利要求27所述的非临时性计算机可读介质,其中所述指令还指示一个或多个所述处理器:
接收读取所述第一存储块的请求;以及
发送所述第三存储块的数据以响应所述请求。
29.根据权利要求22所述的非临时性计算机可读介质,其中:
所述第一存储块位于所述第一存储层中,并具有低于阀值的访问频率;
所述第二存储块位于所述第二存储层中;以及
去除重复包括改变所述第二存储块的元数据指向所述第一存储块以将所述第一存储块作为所述第二存储块的缓存。
30.根据权利要求22所述的非临时性计算机可读介质,其中:
所述第一存储块和所述第二存储块位于所述第一存储层中;
第一参考计数指示使用所述第一存储块的文件的数目,第二参考计数指示使用所述第二存储块的文件的数目,其中所述第一参考计数大于所述第二参考计数;以及
去除重复包括:
改变所述第二存储块的元数据以指向所述第一存储块;以及
添加所述第二存储块的访问频率至所述第一存储块的访问频率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/413,898 US20130238832A1 (en) | 2012-03-07 | 2012-03-07 | Deduplicating hybrid storage aggregate |
US13/413,898 | 2012-03-07 | ||
PCT/US2013/029288 WO2013134347A1 (en) | 2012-03-07 | 2013-03-06 | Deduplicating hybrid storage aggregate |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104272272A true CN104272272A (zh) | 2015-01-07 |
CN104272272B CN104272272B (zh) | 2018-06-01 |
Family
ID=49115119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380023858.3A Active CN104272272B (zh) | 2012-03-07 | 2013-03-06 | 混合储存集合去除重复 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20130238832A1 (zh) |
EP (1) | EP2823401B1 (zh) |
JP (1) | JP6208156B2 (zh) |
CN (1) | CN104272272B (zh) |
WO (1) | WO2013134347A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893272A (zh) * | 2016-03-23 | 2016-08-24 | 联想(北京)有限公司 | 一种数据处理方法、处理设备及存储系统 |
CN106610903A (zh) * | 2015-10-21 | 2017-05-03 | 株式会社东芝 | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 |
CN106777342A (zh) * | 2017-01-16 | 2017-05-31 | 湖南大学 | 一种基于可靠性的高性能文件系统混合节能存储系统及方法 |
CN110168491A (zh) * | 2017-01-06 | 2019-08-23 | 甲骨文国际公司 | 云规模处的zfs块级去重 |
CN112445423A (zh) * | 2019-08-27 | 2021-03-05 | 爱思开海力士有限公司 | 存储器系统、计算机系统及其数据管理方法 |
CN113535088A (zh) * | 2021-07-15 | 2021-10-22 | 深圳市安存数据技术有限公司 | 存储设备、数据处理方法和存储系统 |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9235577B2 (en) * | 2008-09-04 | 2016-01-12 | Vmware, Inc. | File transfer using standard blocks and standard-block identifiers |
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US10140308B2 (en) * | 2012-03-06 | 2018-11-27 | International Business Machines Corporation | Enhancing data retrieval performance in deduplication systems |
US9547443B2 (en) * | 2012-04-30 | 2017-01-17 | Hitachi, Ltd. | Method and apparatus to pin page based on server state |
KR101709118B1 (ko) * | 2012-05-04 | 2017-02-22 | 한국전자통신연구원 | 하이브리드 스토리지 시스템의 파일 관리 방법 및 장치 |
US8930612B2 (en) * | 2012-05-31 | 2015-01-06 | Seagate Technology Llc | Background deduplication of data sets in a memory |
US8880476B2 (en) | 2012-06-28 | 2014-11-04 | International Business Machines Corporation | Low-overhead enhancement of reliability of journaled file system using solid state storage and de-duplication |
US9081683B2 (en) * | 2013-02-08 | 2015-07-14 | Nexenta Systems, Inc. | Elastic I/O processing workflows in heterogeneous volumes |
KR101752583B1 (ko) * | 2013-03-14 | 2017-07-11 | 마이크론 테크놀로지, 인크. | 트레이닝, 데이터 조직, 및/또는 섀도잉을 포함하는 메모리 시스템들 및 방법들 |
US20140344538A1 (en) * | 2013-05-14 | 2014-11-20 | Netapp, Inc. | Systems, methods, and computer program products for determining block characteristics in a computer data storage system |
US9043569B2 (en) * | 2013-05-31 | 2015-05-26 | International Business Machines Corporation | Memory data management |
KR20150002297A (ko) * | 2013-06-28 | 2015-01-07 | 삼성전자주식회사 | 스토리지 시스템 및 그의 동작 방법 |
WO2015015550A1 (ja) * | 2013-07-29 | 2015-02-05 | 株式会社日立製作所 | 計算機システム及び制御方法 |
GB2518158A (en) * | 2013-09-11 | 2015-03-18 | Ibm | Method and system for data access in a storage infrastructure |
US9268502B2 (en) | 2013-09-16 | 2016-02-23 | Netapp, Inc. | Dense tree volume metadata organization |
US9405783B2 (en) | 2013-10-02 | 2016-08-02 | Netapp, Inc. | Extent hashing technique for distributed storage architecture |
US9152684B2 (en) | 2013-11-12 | 2015-10-06 | Netapp, Inc. | Snapshots and clones of volumes in a storage system |
US9201918B2 (en) | 2013-11-19 | 2015-12-01 | Netapp, Inc. | Dense tree volume metadata update logging and checkpointing |
CN110825324B (zh) * | 2013-11-27 | 2023-05-30 | 北京奥星贝斯科技有限公司 | 混合存储的控制方法及混合存储系统 |
US9529545B1 (en) * | 2013-12-26 | 2016-12-27 | EMC IP Holding Company LLC | Managing data deduplication in storage systems based on storage space characteristics |
US10031703B1 (en) * | 2013-12-31 | 2018-07-24 | Emc Corporation | Extent-based tiering for virtual storage using full LUNs |
US9170746B2 (en) | 2014-01-07 | 2015-10-27 | Netapp, Inc. | Clustered raid assimilation management |
US9251064B2 (en) | 2014-01-08 | 2016-02-02 | Netapp, Inc. | NVRAM caching and logging in a storage system |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
US9529546B2 (en) | 2014-01-08 | 2016-12-27 | Netapp, Inc. | Global in-line extent-based deduplication |
US9152330B2 (en) | 2014-01-09 | 2015-10-06 | Netapp, Inc. | NVRAM data organization using self-describing entities for predictable recovery after power-loss |
US9268653B2 (en) | 2014-01-17 | 2016-02-23 | Netapp, Inc. | Extent metadata update logging and checkpointing |
US9483349B2 (en) | 2014-01-17 | 2016-11-01 | Netapp, Inc. | Clustered raid data organization |
US9454434B2 (en) | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
US9256549B2 (en) | 2014-01-17 | 2016-02-09 | Netapp, Inc. | Set-associative hash table organization for efficient storage and retrieval of data in a storage system |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
JP6281333B2 (ja) * | 2014-03-11 | 2018-02-21 | 日本電気株式会社 | ストレージシステム |
US9946724B1 (en) * | 2014-03-31 | 2018-04-17 | EMC IP Holding Company LLC | Scalable post-process deduplication |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9524103B2 (en) | 2014-09-10 | 2016-12-20 | Netapp, Inc. | Technique for quantifying logical space trapped in an extent store |
US9501359B2 (en) | 2014-09-10 | 2016-11-22 | Netapp, Inc. | Reconstruction of dense tree volume metadata state across crash recovery |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US9710199B2 (en) | 2014-11-07 | 2017-07-18 | International Business Machines Corporation | Non-volatile memory data storage with low read amplification |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US10970259B1 (en) * | 2014-12-19 | 2021-04-06 | EMC IP Holding Company LLC | Selective application of block virtualization structures in a file system |
US10162700B2 (en) | 2014-12-23 | 2018-12-25 | International Business Machines Corporation | Workload-adaptive data packing algorithm |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9843536B2 (en) * | 2015-02-27 | 2017-12-12 | Netapp, Inc. | Techniques for dynamically allocating resources in a storage cluster system |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US10296219B2 (en) * | 2015-05-28 | 2019-05-21 | Vmware, Inc. | Data deduplication in a block-based storage system |
US9703485B2 (en) | 2015-07-15 | 2017-07-11 | Western Digital Technologies, Inc. | Storage management in hybrid drives |
US10565230B2 (en) | 2015-07-31 | 2020-02-18 | Netapp, Inc. | Technique for preserving efficiency for replication between clusters of a network |
US10394660B2 (en) | 2015-07-31 | 2019-08-27 | Netapp, Inc. | Snapshot restore workflow |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US9712190B2 (en) | 2015-09-24 | 2017-07-18 | International Business Machines Corporation | Data packing for compression-enabled storage systems |
US9785525B2 (en) | 2015-09-24 | 2017-10-10 | Netapp, Inc. | High availability failover manager |
US20170097771A1 (en) | 2015-10-01 | 2017-04-06 | Netapp, Inc. | Transaction log layout for efficient reclamation and recovery |
US9836366B2 (en) | 2015-10-27 | 2017-12-05 | Netapp, Inc. | Third vote consensus in a cluster using shared storage devices |
US9870285B2 (en) | 2015-11-18 | 2018-01-16 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
US10235059B2 (en) | 2015-12-01 | 2019-03-19 | Netapp, Inc. | Technique for maintaining consistent I/O processing throughput in a storage system |
US10229009B2 (en) | 2015-12-16 | 2019-03-12 | Netapp, Inc. | Optimized file system layout for distributed consensus protocol |
US9401959B1 (en) | 2015-12-18 | 2016-07-26 | Dropbox, Inc. | Network folder resynchronization |
WO2017109822A1 (ja) * | 2015-12-21 | 2017-06-29 | 株式会社日立製作所 | 重複排除機能を有するストレージシステム |
US9830103B2 (en) | 2016-01-05 | 2017-11-28 | Netapp, Inc. | Technique for recovery of trapped storage space in an extent store |
US10108547B2 (en) | 2016-01-06 | 2018-10-23 | Netapp, Inc. | High performance and memory efficient metadata caching |
US9846539B2 (en) | 2016-01-22 | 2017-12-19 | Netapp, Inc. | Recovery from low space condition of an extent store |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US9952767B2 (en) | 2016-04-29 | 2018-04-24 | Netapp, Inc. | Consistency group management |
US10613761B1 (en) * | 2016-08-26 | 2020-04-07 | EMC IP Holding Company LLC | Data tiering based on data service status |
US11086562B2 (en) * | 2016-09-13 | 2021-08-10 | Hitachi, Ltd. | Computer system having data amount reduction function and storage control method |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US10740251B2 (en) * | 2017-01-20 | 2020-08-11 | Seagate Technology Llc | Hybrid drive translation layer |
US10635581B2 (en) | 2017-01-20 | 2020-04-28 | Seagate Technology Llc | Hybrid drive garbage collection |
US10318175B2 (en) * | 2017-03-07 | 2019-06-11 | Samsung Electronics Co., Ltd. | SSD with heterogeneous NVM types |
US10572407B2 (en) * | 2017-08-11 | 2020-02-25 | Western Digital Technologies, Inc. | Hybrid data storage array |
US11775482B2 (en) * | 2019-04-30 | 2023-10-03 | Cohesity, Inc. | File system metadata deduplication |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101479944A (zh) * | 2006-04-28 | 2009-07-08 | 网络装置公司 | 基于采样消除重复数据的系统和方法 |
US20110161291A1 (en) * | 2009-12-28 | 2011-06-30 | Riverbed Technology, Inc. | Wan-optimized local and cloud spanning deduplicated storage system |
US20110225352A1 (en) * | 2007-08-13 | 2011-09-15 | Duran Paul A | Apparatus and system for object-based storage solid-state drive |
Family Cites Families (16)
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 |
CN101681282A (zh) * | 2006-12-06 | 2010-03-24 | 弗森多系统公司(dba弗森-艾奥) | 用于共享的、前端、分布式raid的装置、系统和方法 |
US8775368B1 (en) * | 2007-06-27 | 2014-07-08 | Emc Corporation | Fine grained tiered storage with thin provisioning |
US8548953B2 (en) * | 2007-11-12 | 2013-10-01 | F5 Networks, Inc. | File deduplication using storage tiers |
US7567188B1 (en) * | 2008-04-10 | 2009-07-28 | International Business Machines Corporation | Policy based tiered data deduplication strategy |
US8190823B2 (en) * | 2008-09-18 | 2012-05-29 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system and method for storage cache deduplication |
US20100211616A1 (en) * | 2009-02-16 | 2010-08-19 | Rajesh Khandelwal | Performance by Avoiding Disk I/O for Deduplicated File Blocks |
US8725946B2 (en) * | 2009-03-23 | 2014-05-13 | Ocz Storage Solutions, Inc. | Mass storage system and method of using hard disk, solid-state media, PCIe edge connector, and raid controller |
US20110055471A1 (en) * | 2009-08-28 | 2011-03-03 | Jonathan Thatcher | Apparatus, system, and method for improved data deduplication |
JP2011209973A (ja) * | 2010-03-30 | 2011-10-20 | Hitachi Ltd | ディスクアレイ構成プログラム、計算機、計算機システム |
KR101152108B1 (ko) * | 2010-04-19 | 2012-07-03 | (주)다윈텍 | 하이브리드 하드 디스크 드라이브 장치 및 그 리드/라이트 제어 방법 |
US9355109B2 (en) * | 2010-06-11 | 2016-05-31 | The Research Foundation For The State University Of New York | Multi-tier caching |
US8612699B2 (en) * | 2010-06-25 | 2013-12-17 | International Business Machines Corporation | Deduplication in a hybrid storage environment |
US8612682B2 (en) * | 2010-09-29 | 2013-12-17 | International Business Machines Corporation | Methods for managing ownership of redundant data and systems thereof |
US8463981B2 (en) * | 2010-12-08 | 2013-06-11 | Hitachi, Ltd. | Storage apparatus having deduplication unit |
US8639899B2 (en) * | 2011-04-26 | 2014-01-28 | Hitachi, Ltd. | Storage apparatus and control method for redundant data management within tiers |
-
2012
- 2012-03-07 US US13/413,898 patent/US20130238832A1/en not_active Abandoned
-
2013
- 2013-03-06 CN CN201380023858.3A patent/CN104272272B/zh active Active
- 2013-03-06 JP JP2014561066A patent/JP6208156B2/ja active Active
- 2013-03-06 EP EP13757008.1A patent/EP2823401B1/en active Active
- 2013-03-06 WO PCT/US2013/029288 patent/WO2013134347A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101479944A (zh) * | 2006-04-28 | 2009-07-08 | 网络装置公司 | 基于采样消除重复数据的系统和方法 |
US20110225352A1 (en) * | 2007-08-13 | 2011-09-15 | Duran Paul A | Apparatus and system for object-based storage solid-state drive |
US20110161291A1 (en) * | 2009-12-28 | 2011-06-30 | Riverbed Technology, Inc. | Wan-optimized local and cloud spanning deduplicated storage system |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106610903A (zh) * | 2015-10-21 | 2017-05-03 | 株式会社东芝 | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 |
CN106610903B (zh) * | 2015-10-21 | 2019-12-17 | 株式会社东芝 | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 |
CN105893272A (zh) * | 2016-03-23 | 2016-08-24 | 联想(北京)有限公司 | 一种数据处理方法、处理设备及存储系统 |
CN105893272B (zh) * | 2016-03-23 | 2019-03-15 | 北京联想核芯科技有限公司 | 一种数据处理方法、处理设备及存储系统 |
CN110168491A (zh) * | 2017-01-06 | 2019-08-23 | 甲骨文国际公司 | 云规模处的zfs块级去重 |
CN110168491B (zh) * | 2017-01-06 | 2023-06-13 | 甲骨文国际公司 | 云规模处的zfs块级去重 |
US11714784B2 (en) | 2017-01-06 | 2023-08-01 | Oracle International Corporation | Low-latency direct cloud access with file system hierarchies and semantics |
US11755535B2 (en) | 2017-01-06 | 2023-09-12 | Oracle International Corporation | Consistent file system semantics with cloud object storage |
CN106777342A (zh) * | 2017-01-16 | 2017-05-31 | 湖南大学 | 一种基于可靠性的高性能文件系统混合节能存储系统及方法 |
CN112445423A (zh) * | 2019-08-27 | 2021-03-05 | 爱思开海力士有限公司 | 存储器系统、计算机系统及其数据管理方法 |
CN113535088A (zh) * | 2021-07-15 | 2021-10-22 | 深圳市安存数据技术有限公司 | 存储设备、数据处理方法和存储系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2013134347A1 (en) | 2013-09-12 |
EP2823401A4 (en) | 2015-11-04 |
EP2823401B1 (en) | 2020-06-17 |
JP2015511037A (ja) | 2015-04-13 |
EP2823401A1 (en) | 2015-01-14 |
CN104272272B (zh) | 2018-06-01 |
JP6208156B2 (ja) | 2017-10-04 |
US20130238832A1 (en) | 2013-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104272272A (zh) | 混合储存集合去除重复 | |
US8793466B2 (en) | Efficient data object storage and retrieval | |
US20230013281A1 (en) | Storage space optimization in a system with varying data redundancy schemes | |
US7882304B2 (en) | System and method for efficient updates of sequential block storage | |
US8250335B2 (en) | Method, system and computer program product for managing the storage of data | |
US9720928B2 (en) | Removing overlapping ranges from a flat sorted data structure | |
US8140860B2 (en) | Policy-driven file system with integrated RAID functionality | |
US7584229B2 (en) | Method and system for priority-based allocation in a storage pool | |
US20060047905A1 (en) | Tape emulating disk based storage system and method with automatically resized emulated tape capacity | |
CN107924291B (zh) | 存储系统 | |
US9959049B1 (en) | Aggregated background processing in a data storage system to improve system resource utilization | |
WO2015061594A1 (en) | Data management in distributed file systems | |
CN105791353A (zh) | 基于纠删码的分布式数据存储方法及系统 | |
US9158695B2 (en) | System for dynamically adaptive caching | |
US9367256B2 (en) | Storage system having defragmentation processing function | |
US9170930B1 (en) | Method for achieving sequential I/O performance from a random workload | |
US6904508B2 (en) | Recovery of dynamic maps and data managed thereby | |
US20130332652A1 (en) | Computer system and method for controlling computer system | |
US10620844B2 (en) | System and method to read cache data on hybrid aggregates based on physical context of the data | |
JP6228374B2 (ja) | 動的に適応されるキャッシュ格納のためのシステム | |
JP4779012B2 (ja) | 瞬時ボリューム復元のためのオン・デマンドでデータを復元するシステム、および方法 | |
US6658528B2 (en) | System and method for improving file system transfer through the use of an intelligent geometry engine | |
JP2019028954A (ja) | ストレージ制御装置、プログラム、及び重複排除方法 | |
US20190056878A1 (en) | Storage control apparatus and computer-readable recording medium storing program therefor | |
US9606938B1 (en) | Managing caches in storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: NETAPP incorporated company Address before: American California Applicant before: Network Appliance Inc. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |