在内容可寻址存储系统中维护并使用子对父映射的缓存的制作方法

文档序号:9327245阅读:400来源:国知局
在内容可寻址存储系统中维护并使用子对父映射的缓存的制作方法
【专利说明】
[0001] 相关申请的交叉引用
[0002] 本申请涉及于2013年11月21日提交的美国专利申请第14/086, 197号,通过引 用将其阐述的全部内容结合于本文中。
技术领域
[0003] 本发明涉及一种存储系统,并且更具体地,涉及用于维护并使用内容可寻址存 储系统(content-addressable storage system)中的子对父映射(child-to-parent mapping)的缓存(cache)。
【背景技术】
[0004] 本部分中所描述的方法可能被实现,但其并非一定是先前已经构思或实现的方 法。因此,除非在本文中明确指出并非如此,否则在本部分中所描述的方法对于本申请中的 权利要求来说并非现有技术并且不应因被包含在本部分中而被视为现有技术。
[0005] 在典型的文件系统中,基于项所存储的位置和项的名称或标识符来对所存储的项 进行检索。例如,如果名为"f〇〇. txt"的文件位于名为"c :\myfiles\text"的目录下,那么 应用程序可以使用路径名"C:\myfiles\text\foo.txt"作为访问密钥(access key)以从 文件系统中检索文件。因为传统的访问密钥是基于正被检索的项的位置,因此,当项在文件 系统的目录结构中被移动时访问密钥改变。另外,因为项的各副本被存储于不同的位置,因 此,各副本具有不同的访问密钥。另一方面,当项的内容被改变时,访问密钥保持不变。
[0006] 与传统的文件系统相比,内容可寻址存储系统允许基于从项的内容生成的数据 (诸如,用于该项的哈希值)来对项进行检索。由于内容可寻址存储系统是基于项的内容而 不是基于针对与特定文件名相关的特定项的静态位置来对项执行存储相关的操作,因此, 请求该操作的应用程序可以在不知道所存储的项的副本的数量或位置的情况下执行这样 的操作。
[0007] 块存储系统(chunk storage system)是一种在不了解数字信息本身的格式或内 容的情况下执行存储操作的存储系统。因为该系统将所有形式的数字项都视为好像那些项 仅仅是数据的不透明块,故这样的存储系统被称为块存储系统。例如,同一块存储系统可 以由文字处理应用程序、图像管理应用程序和日历系统所使用,以分别存储文档、图像和日 程。然而,从块存储系统的角度来看,仅存储一种类型的项:数字信息的不透明块。
[0008] 块存储系统可以被实施为内容可寻址存储系统。例如,块存储系统可以基于块的 内容(诸如通过将密码哈希函数(例如,MD5、SHA-I或SHA2)应用于块)生成用于块的访 问密钥。然后,块储存器可以存储该块并且维护索引数据(indexing data),其中,该索引数 据使哈希值与该块所存储的位置相关。当应用程序随后请求对该块进行检索时,该应用程 序将哈希值提供给块存储系统。块存储系统使用该索引数据以对与哈希值相关的块进行定 位,并且将这样定位的块提供给请求(requesting)应用程序。
[0009] 当通过内容可寻址存储系统中的一个或多个块来表示项时,在项被修改的情况 下,额外的一个或多个块需要添加至该内容可寻址存储系统。因为访问密钥是基于内容的, 故用于与修改后的项相对应的任意块的访问密钥将不同于与用于与原始项相对应的块的 访问密钥。此外,对于原始项的参照,诸如哈希值或其他访问密钥,仅可用于访问原始项而 不能访问修改后的项。
[0010] 文件系统卷(file system volume)可包括按照文件夹层级布置的一个或多个文 件。为了将这样的文件系统卷作为块存储在内容可寻址存储系统中,可以在一个或多个存 储的块来反映文件夹层级本身。例如,假设块A表示文件夹A,并且块B和块C表示文件夹 A中的文件。在这种情况下,表示文件夹A的块A可以包括用于块B和块C的访问密钥, 从而反映了文件夹A与文件B和C之间的层级关系。这样的访问密钥可被用于向下导航 (navigate)文件夹层级。然而,如果在没有导航通过文件夹层级的情况下获得了特定块 (诸如响应于索引搜索),则在确定文件夹层级中的特定块的位置时出现了问题。不同于具 有基于位置的访问密钥(诸如路径名"C :\myfiles\text\foo. txt")的典型的文件系统, 块的访问密钥不包括任何文件夹层级中的块的位置。
[0011] 此外,在内容可寻址存储系统中,当特定的文件的内容被修改时,必须基于所修改 的内容将该文件的新版本存储于不同的地址,导致用于新文件的访问密钥发生改变。当在 一个或多个块中表示文件系统层级时,包含原始文件的访问密钥的块(即,在层级中与所 修改的块相对应的项上方的项相对应的块)也必须被改变至新文件的访问密钥,导致依次 生成额外的新块。因此,修改单个文件可能导致反映文件系统的层级化结构的多个块发生 改变。
[0012] -个或多个索引可被维护用于存储在内容可寻址存储系统中的文件系统卷的块。 该索引可以通过访问密钥来识别文件系统卷的块。当块的新版本被存储在内容可寻址存储 系统中时,还必须更新任何这样的索引。对索引进行更新的未使用过的( nafee)实施方 式包括通过从根块(root chunk)迭代通过层级来对每一个块改变做出响应,以及重建用于 文件系统卷中的所有块的索引。因为它涉及在任何文件被修改时迭代通过文件系统层级中 每一个块,故这不是可升级的解决方案。

【发明内容】

[0013] 根据本发明的一个方面,公开了一种方法,包括:维持子到父映射的缓存;其中, 每个子到父映射对应于存储在内容可寻址存储系统中的块的层级结构中的具体块,并将所 述具体块映射至所述块的层级结构中的父块;其中,所述块的层级结构包括与文件系统卷 相关的第一根块;响应于对于所述文件系统卷的、使新根块与所述文件系统卷相关联的改 变,通过基于从所述新根块遍历当前文件系统层级结构的至少一部分添加一个或多个第一 子到父映射来更新所述缓存,并且基于从所述第一根块遍历先前文件系统层级结构的至少 一部分来移除一个或多个第二子到父映射。
[0014] 根据本发明的另一方面,公开了一种非暂存性计算机可读介质,所述非暂存性计 算机可读介质存储的指令在由一个或多个处理器执行时,使所述一个或多个处理器执行: 维持子到父映射的缓存;其中,每个子到父映射对应于存储在内容可寻址存储系统中的块 的层级结构中的具体块,并将所述具体块映射至所述块的层级结构中的父块;其中,所述块 的层级结构包括与文件系统卷相关的第一根块;响应于对于所述文件系统卷的、使新根块 与所述文件系统卷相关联的改变,通过基于从所述新根块遍历当前文件系统层级结构的至 少一部分添加一个或多个第一子到父映射来更新所述缓存,并且基于从所述第一根块遍历 先前文件系统层级结构的至少一部分来移除一个或多个第二子到父映射。
【附图说明】
[0015] 在附图中:
[0016] 图1是图示了用于表示内容可寻址存储系统中的文件系统的系统的实施方式的 框图;
[0017] 图2是图示了在文件系统变更之前和之后的块的层级的实施方式的框图;
[0018] 图3A至图3C是图示了子对父映射的缓存的实施方式的框图;
[0019] 图4A至图4B是图示了处于变更的子对父映射的缓存的实施方式的框图;
[0020] 图5A至图5B是图示了块索引的实施方式的框图;
[0021] 图6是图示了子对父映射的缓存的实施方式的框图;
[0022] 图7是示出了基于新的根块用于更新子对父映射的缓存的处理的实施方式的流 程图;
[0023] 图8是示出了基于新的根块用于添加一个或多个子对父映射的处理的实施方式 的流程图;
[0024] 图9是示出了基于先前的根块用于移除一个或多个子对父映射的处理的实施方 式的流程图;
[0025] 图10是示出了针对使用子对父映射的缓存以确定块的至少一个祖先(ancestor) 的流程图;
[0026] 图11示出了一个或多个实施方式可以在其上实施的计算机系统。
【具体实施方式】
[0027] 在以下描述中,为了说明的目的,阐述了许多具体的细节以提供对本发明的整体 的理解。然而,将显而易见的是可以在没有这些具体细节的情况下实践本发明。在其他实 例中,以框图的形式示出了众所周知的结构和设备以避免不必要地使本发明模糊不清。
[0028] 总体概览
[0029] 提供了一种用于维护并使用内容可寻址存储系统中的子对父映射的缓存的技术。 子对父映射的缓存被维护用于属于文件系统层级的块。该文件系统层级包括表示文件系统 卷的文件夹和文件的对象块。该块被存储在内容可寻址存储系统中。各个子对父映射将特 定块映射至块的层级的父块。该子对父映射允许在没有从文件系统层级的根块遍历该文件 系统层级的前提下快速地确定任意特定块的路径。
[0030] 当文件系统层级被修改时,生成新的根块。更新子对父映射的缓存是通过:基于从 新的根块遍历当前文件系统层级的至少一部分来添加一个或多个第一子对父映射以及基 于从先前根块遍历先前文件系统层级的至少一部分来移除一个或多个第二子对父映射。表 示文件系统层级的图表被频繁地修改。通常,每次修改包括对大的图表进行的改变的小集 合。本文中描述的技术在与对文件系统层级进行改变的次数成正比的时间量(而非与表示 文件系统层级的图表的大小成正比的时间量)产生对于表示文件系统层级的图表的改变, 使得更新处理是可升级的。
[0031] 更新处理能够产生所添加的块的列表和所移除的块的列表、或者以其他方式识别 先前文件系统层级与随后的当前文件系统层级之间的差异。所添加的块和所移除的块的列 表可以被用于执行一个或多个文件系统维护功能。在一个实施方式中,基于所添加的块和 所移除的块有效地更新了与文件系统卷相关的块数据的索引。
[0032] 块存储服务器
[0033] 图1是图示了一系统的实施方式的框图,该系统用于表示内容可寻址存储系统中 的文件系统卷的。块数据存储器114是被配置为存储多个块的内容可寻址存储系统。尽管 示出了单个块,但是,块数据存储器114可以包括任意数量的块数据存储器、网络部件或适 合于实施数据存储系统的任何其他部件。在一个实施方式中,块数据存储器114和块存储 服务器112是云存储服务器的部件。
[0034] 块存储服务器112提供经由基于块内容的访问密钥(诸如块的内容的哈希值)对 存储在块数据存储
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1