表示可内容寻址存储系统的目录结构的制作方法

文档序号:8457291阅读:417来源:国知局
表示可内容寻址存储系统的目录结构的制作方法
【专利说明】表示可内容寻址存储系统的目录结构
[0001]相关申请的交叉引用
[0002]本申请要求于2012年9月18日提交的美国专利申请第13/622,026号的部分继续申请案的优先权,即,2012年I月26日提交的美国专利申请第13/358,742号的部分继续申请案,通过引用将其全部内容结合在此,如同其在本文中阐述的那样。
技术领域
[0003]本发明涉及存储系统,更具体地,涉及用于表示层次结构的可内容寻址存储系统中的目录结构。
【背景技术】
[0004]在典型的文件系统中,基于(a)各个项所存储的位置和(b)各个项的名称或者标识符检索所存储的各个项。例如,如果名称为“fo0.txt”的文件位于名称为“c:\myfiles\text”的目录下,贝U应用程序可以使用路径名称“c: \myfiles\text\fo0.txt”作为访问密钥而从文件系统中检索文件。
[0005]因为常规访问密钥基于所检索的各个项的位置,所以当在文件系统的目录结构中移动各个项时,则访问密钥改变。此外,一个项的每个副本均具有不同的访问密钥,因为每个副本均存储在不同的位置处。另一方面,当该项的内容改变时,访问密钥保持不变。
[0006]与常规文件系统相比,可内容寻址存储系统允许应用程序基于从各项内容所生成的数据(诸如,用于内容的哈希值)而从存储器中检索各项。因为可内容寻址存储系统基于针对各项生成的哈希值对各项执行存储相关操作,并且哈希值基于各项内容而非各项所存储的位置,在未获知各项的存储副本的数目或者位置的情况下,请求该操作的应用程序可执行这样的操作。例如,可内容寻址存储系统可将项X的多个副本存储在位置A、B、以及C处。希望检索项X的应用程序将基于项X的内容通过利用哈希值发送请求可执行此操作。基于该哈希值,可内容寻址存储系统将提供给应用程序一份从位置A、B、以及C中的一个所检索的项X的副本。因此,在不获知项X实际存储的位置、项X的存在的副本数目、获知实际获得的检索副本的具体位置的情况下,应用程序可获得项X。
[0007]块(chunk)存储系统是一种在不了解数字信息本身的格式或者内容的情况下执行存储操作的存储系统。因为系统处理所有形式的数字项,如同这些项仅是不透明块的数据,所以该存储系统被称之为块存储系统。例如,通过文字处理应用程序、图像管理应用程序、以及日历系统,可使用相同的块存储系统来分别存储文件、图像、以及约会。然而,就块存储系统而言,仅存储一种类型的项:不透明块的数字信息。
[0008]块存储系统可被实现为可内容寻址存储系统。例如,块存储系统可通过将加密哈希函数(例如,MD5、SHA-1或者SHA2)应用于块而生成一个块的哈希值。然后,块存储器可存储该块,并且保持使哈希值与该块所存储的位置相关联的索引数据。
[0009]当应用程序随后请求对该块的检索时,应用程序将哈希值提供给块存储系统。块存储系统使用索引数据来定位与该哈希值相关联的块,并且提供由此被定位至所请求应用程序的块。
[0010]当由可内容寻址存储系统中的一个或者多个块表示一个项时,则当该项被更改时,必须将额外的块添加到可内容寻址存储系统中。因为访问密钥基于内容,所以对应于更改项的任一块的访问密钥不同于对应于原始项的块的访问密钥。而且,对于原始项的导引(reference),例如哈希值或者其他访问密钥等将仅有可用于访问原始项。
[0011]该部分中所描述的解决方案是可以探索的解决方案,但不一定必须是之前构思或者探索的解决方案。因此,除非另有规定,否则,不应仅凭借其在该部分中的内容而假设该部分中所描述的任一种解决方案作为现有技术。
【附图说明】
[0012]图1是描述了用于表示可内容寻址存储系统中的目录结构的系统的实施方式的框图;
[0013]图2是描述对应于文件系统卷的对象块的实施方式的框图;
[0014]图3A是描述目录对象块的实施方式的框图;
[0015]图3B是描述哈希集块的层次结构的实施方式的框图;
[0016]图3C是描述对象块的实施方式的框图;
[0017]图3D是描述名称索引块的实施方式的框图;
[0018]图4是描述对应于文件系统卷的特定目录的哈希集块的实施方式的框图;
[0019]图5是示出了用于访问目录的方法的实施方式的流程图;
[0020]图6是示出了用于将新对象添加到目录中的方法的实施方式的流程图;
[0021]图7示出了可以实现一种或者多种实施方式的计算机系统。
【具体实施方式】
[0022]在下列描述中,出于说明性之目的,设定了无数种具体细节,以提供对本发明的完全理解。然而,显而易见,在不具备这些具体细节的情况下可以实现本发明。在其他情况下,以框图形式示出了所熟知的结构和设备,以避免使本发明变得不清楚。
[0023]概述
[0024]以反映文件系统目录结构的方式提供用于构造可内容寻址存储系统的技术。可内容寻址存储系统中的块实现文件系统的对象(例如,文件和目录)。对于包含一组子对象的特定目录,可内容寻址存储系统包括对应于该目录的目录对象块、对应于目录内所包含的子对象的一组子对象块、以及包含子对象块的哈希值的至少一个哈希集块。使用目录对象块的哈希值可访问目录。
[0025]更改目录(诸如,通过添加子对象、更改子对象、或者移除子对象)致使该目录下子对象块的该组哈希值发生变化。当更改目录时,生成包括新的或者经更改的子对象的新哈希值的一个或多个新哈希集块,或者省略所移除子对象的哈希值的一个或者多个新哈希集块
[0026]在一种实施方式中,哈希集块布置在层次结构中。根哈希集块是该哈希集块的层次结构中所有其他哈希集块的祖代(ancestor)。当从目录中添加、更改、或者移除子对象时,这种变化影响导引(reference)子对象的哈希集块以及受影响哈希集块的祖代。
[0027]块存储服务器
[0028]图1是描述用于表示可内容寻址存储系统中的目录结构的系统的实施方式的框图。
[0029]块存储服务器112是被配置为存储多个块的可内容寻址存储系统。尽管示出了单个块,然而,块存储服务器112可包括任意数目的服务器、数据存储器、网络、或者用于实现数据存储系统的任何其他部件。例如,块存储服务器112可以是云存储服务器。在图1中所示的实施方式中,块存储服务器112被配置为通过诸如云网络等一个或者多个网络与一个或者多个文件系统客户端102至106通信。
[0030]块存储服务器112被配置为存储使用基于块内容的访问密钥可进行访问的块。访问密钥可以是用于块数据的哈希值。在一种实施方式中,哈希函数是不变哈希函数。即,给定块的哈希函数的应用程序始终产生相同的访问密钥。可用于生成访问密钥的哈希函数的实施例包括但不限于MD5、SHA-1、以及SHA-2。尽管描述了使用哈希值作为访问密钥的细节实施方式,然而,可以使用用于表示可内容寻址存储系统中的目录结构的细节实施方式中的任何其他内容类访问密钥。
[0031]文件系统客户端
[0032]通常,文件系统客户端102至106代表被配置为存储和访问使用块存储服务器112所实现的文件系统的文件的实体。因此,文件系统客户端102至106可对应于应用程序、系统、服务、或者使用文件系统的任何其他类型的实体。块存储服务器112可存储用于一个或者多个文件系统客户端102至106的多个文件系统卷。而且,文件系统客户端102至106中的每个均可访问一个或者多个文件系统卷,并且每个文件系统卷均可被一个或者多个文件系统客户端102至106访问。
[0033]在一种实施方式中,文件系统客户端106包括文件夹和文档层108以及块系统客户端110。文件系统客户端106可通过文件夹和文档层108访问由块存储服务器112所存储的一个或者多个文件系统卷。在一种实施方式中,文件夹和文档层108允许文件系统客户端106的用户和应用程序以与传统文件系统相似的方式远程访问所存储的文件系统卷。例如,文件夹和文档层108可代表作为传统层次结构文件系统中的一组文件夹和文档而存储在块存储服务器112中的文件系统卷。
[0034]文件夹和文档层108与块系统客户端110通信以访问与块存储服务器112中所存储的文件系统卷有关的数据。块系统客户端110被配置为与块存储服务器112通信以访问由块存储服务器112所存储的块数据。在一种实施方式中,块系统客户端110被配置为通过诸如云网络等一个或者多个网络与块存储服务器112通信。在一种实施方式中,块系统客户端110被进一步配置为基于从块存储服务器112所检索的块来构造文件系统卷的一个或者多个目录的目录结构。
[0035]出于说明之目的,详细示出了文件系统客户端106的内部功能单元。尽管未独立示出,然而,文件系统客户端102和104可具有与文件系统客户端106相同或者相似的部件。
[0036]文件系统卷
[0037]块可以用来表示卷的文件系统层次结构,其中,一些块对应于文件系统层次结构的文件夹/目录,而其他块对应于存储在文件夹/目录中的文件。可内容寻址存储系统通常不可变。一旦数据块被存储为与访问密钥相关联,诸如,该块的哈希值,则不可直接更改访问密钥位置处的数据块。更确切地,创建该块的新版本,并且该新版本与该块的原始副本分开存储。此外,数据被存储为将新块位置与新访问密钥相关联,其中,新访问密钥基于更改块的内容。为表示通常可变文件系统的目录结构,必须考虑访问密钥的变化。
[0038]图2是描述对应于文件系统卷中诸如文件和目录等对象的对象块202至256的框图。对象块202至256包括对应于目录的目录对象块202至208和252至256以及对应于文件的文件对象块210至218和250。如本发明中所使用的,术语“文件”指与典型文件系统中诸如路径名称等访问密钥相关联的任何非目录数据。
[0039]尽管文件系统层次结构200中的对象块的布置反映了对象块所对应的目录与文件之间的层次结构关系,然而,块存储器内对象块的实际布置与该层次结构没有任何关系。例如,对象块可被分布在诸如云存储系统中等多个存储设备上。
[0040]文件系统层次结构200表示文件系统卷内的目录结构。如图2中所示,文件系统层次结构200是没有重叠结构的一颗树。如此处所使用的,术语“层次结构”包括但不限于树。例如,任何给定的对象块或者对象块的分层次结构还可以属于文件系统层次结构200内的多个分层次结构。任何对象块或者对象块的分层次结构还可以属于用于不同文件系统卷的不同文件系统层次结构。而且,通常,文件系统层次结构200可以是有向非循环图。有向非循环图还可表示潜在共享一个或者多个对象块的多个文件系统层次结构。本发明中所描述的技术同样适用于表示该层次结构的块存储器,作为表示非重叠树层次结构的块存储器。
[0041]文件系统层次结构200包括以反映文件系统卷中所存储的对象之间的层次结构关系的方式而布置的对象块202至218。文件系统层次结构200中的非叶(non-leaf)对象块对应于文件系统卷的非空目录。文件系统层次结构20
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1