分布式存储的系统和方法_3

文档序号:8909166阅读:来源:国知局
示,逻辑驱动路径信息410可包括表示文件150将如何被显示给用户的字符串。例如,文件150名称和路径可被显示为“C:\test.txt”。包括文件150的文件可如同被存储在单个逻辑驱动器中那样被显示,如图6描述的那样,这是为解说目的而非限定。也就是说,每个计算设备可被配置成显示被存储在分布式存储层中的文件,如同它们被存储在单个逻辑驱动器600中那样。
[0052]版本V0430和版本V1440可作为完整文件被存储,并且版本V2450可作为与之前版本V1440作比较的差异而被存储,如下文中更详细描述的那样。也就是说,版本V0430可包括访问包括指针431的信息,该指针431指向文件150的版本VO的经散列化部分的位置。同样,版本V1440可包括访问包括指针441的信息,该指针441指向文件150的版本Vl的经散列化部分的位置。为了检索版本V0430或版本V1440,这些指针可被求解并且计算设备可请求创建文件版本的本地副本所需的部分。版本V2450可包括访问信息,该访问信息包括指向先前版本V1440的指针451和指向差异文件453的指针452。为了检索版本V2450,这些指针可被求解并且计算设备可请求V1441的部分和差异文件453以创建文件150的版本V2450的本地版本。
[0053]当本地存储时,与本地存储的文件150对应的元数据可包括指向本地存储上的文件的位置的指针。例如,在多个计算设备之一处检索电子文件150可包括从元数据确定电子文件150的诸个部分的位置(例如使用指针431、441或451和452)。随后可经由网络从这些位置检索这些部分并将它们组装并存储在计算设备的本地存储层上。计算设备上的元数据可随后被更新以包括指向本地存储的部分而不是指向被存储在分布式存储层上的部分的指针。
[0054]为了解说而非限定,图5A、5B和5C示出根据所披露的主题结合所存储的元数据的示例性散列文件部分(块)。图5A示出一个例子,其中三个部分510被存储在本文描述的系统的分布式存储层中。这三个部分包括与两个文件(文件X 530和文件Y 540)对应的部分。每个部分可如本文披露的那样被散列化520以产生与文件部分对应的散列(C、M和O) ο可通过发出对部分C和M的查找调用(look-up call)来请求文件X 530。文件Y 540可包括与文件X 530的一些重叠,并因此可通过发出对部分O和M的查找调用而被请求。由于文件X 530和文件Y 540共享部分M,因此区块M不需要被存储两次。
[0055]如本文中提到的,对文件的编辑或更新可或者通过创建差异文件(这允许从先前版本计算文件的新版本)或者通过存储文件的全新版本而被存储。图5B示出通过形成文件的新版本对文件X 530的示例性编辑。在该示例性场景中,可将五个部分511存储在分布式存储层中并根据本文披露的技术将其散列化(B、C、G、M、0)521。这些部分511可包括与两个文件(即文件X和文件Y 541)对应的部分,其中文件X具有两个版本531a和531b。可通过分别发出对部分C、M和部分B、M的查找调用来请求文件X的版本V1531b和版本V2531a。也就是说,例如文件X的版本V2531a可包括仅与版本V1531b的文件部分之一(例如版本V1531b的部分C)对应的编辑。同样地,文件Y 541可包括与文件X的某些重叠,例如两个文件均包括部分M。
[0056]图5C示出通过基于之前的版本创建差异文件对文件X 530的示例性编辑。在这种场景下,可计算差异并将其存储在一个或多个新部分中。六个部分512可被存储在分布式存储层中并如本文披露地被散列化(A、B、C、G、M、0)522。文件X可包括两个版本532a和532b。可如前所述地通过发出对部分C和M的查找调用来请求文件X的版本V1532b。然而,对文件X编辑以创建版本V2532可包括存储部分A,它可以表示相对于版本V1532b的改变。也就是说,可通过除了发布对部分A的查找调用之外发出对版本V1531b的部分的查找调用来请求例如文件X的版本V2531a。请求计算设备可随后在请求的区块上执行操作以在本地存储层上组装版本V2531a。根据所披露的主题,对文件的编辑可基于对文件作出的改变程度使用新版本或差异文件来存储。另外,当大量差异已被执行时,可将差异组合到单个版本中以提高查找操作的速度。
[0057]在示例性实施例中,本地存储层的容量可能是有限的。例如,系统可被配置以使给定机器将贡献IGB数据给系统。在一些实施例中,本地存储层可充当高速缓冲存储器。例如,在预定时间流逝后,可从本地存储再分配文件。作为附加或替代,可根据启发将文件从本地存储中移除。为了解说而非限定,如果机器具有大容量,则与具有小容量的节点相比,它可控制更大部分的键空间。例如,具有大容量的计算设备可以被指派多个逻辑节点,从而给予它更大部分的键空间。然而,这种配置可能涉及将件部分散列化到同一物理机上的不同逻辑节点上。因此,可作出将节点指派给一部分键空间以使同一机器上的逻辑节点占据键空间的连续部分。
[0058]在某些情形下,本文披露的技术可能导致冲突的更新或编辑(例如同一文件的并发更新或创建、同一文件的并发重命名、或者仅当副本更新时文件的删除)。在这些情形下,并根据所披露的主题,可基于更新的时戳将“胜利(winning) ”更新传播至其它计算设备,或者如果竞争更新的时戳相同,则基于计算设备的标识传播。“失败”更新可被保留在添加至系统的新文件中,可基于原始文件给予其名称。可对冲突更新创建冲突文件,并且存储在每个计算设备上的元数据可被更新以针对“失败”更新引用新文件。
[0059]在初始化过程中,每个计算设备可使用发现服务加入系统。例如,计算设备可在初始化时宣告其在网络上的存在。每个计算设备也可运行发现线程,该发现线程可监视网络已寻找变得活跃的新计算设备。
[0060]本文披露的技术可提供一种存储系统,该存储系统组合现有数据存储方案的力量并减轻其弱点,包括具有本地存储的写速度以及联网存储服务器的共享存储空间的存储系统。分布式存储层可将现有办公室机器中的未经使用容量(否则就会浪费的容量)聚集在一起一一并可在它们之间分摊数据存储的负载以及数据存储的风险。安全云存储层可用于版本化、远程访问和长期备份。本文披露的技术可提供完整文件版本历史以实现审核和兼容目的,并且不需要IT工作人员、维护以及新硬件。
[0061]此外,本文披露的技术可提供其中不同策略可供不同组织需求使用的缩放性和扩展性。例如,法律事务所的策略可规定对文件高速缓存作为临时存储器使用,由此在机器被拔去电源插头时擦除任何本地副本。也可在对其仅存储总备份中的一部分的多个因特网辖地中规定多个基于web的备份设施一一每一个在其本身上是不可用的一一由此降低数字搜索和获取的ECPA类行动的威胁。
[0062]氺氺氺
[0063]如前面结合某些实施例描述的那样,某些组件,例如本地存储层110、分布式存储层120和云存储层130可包括一个或多个计算机、处理器、网络、移动设备、簇或其它硬件以执行多种功能。此外,所披露主题的某些要素可体现为计算机代码,该计算机代码可被存储在计算机可读介质中并且当被执行时使得处理器执行某些功能。在这些实施例中,计算机在网络(例如局域网和/或因特网)上实现分布式存储的系统和方法方面起到重大作用。例如,计算机、处理器、存储器、存储和联网硬件的存在提供了计算设备中未经使用容量的集合,并能对版本化、远程访问和长期备份提供支持。
[0064]另外,如前面结合某些实施例描述的那样,某些组件可例如通过网络(比如因特网)与某些其它组件通信。尽管前面未明确声明,但所披露的主题旨在涵盖每次交易的两侧,包括发送和接收。本领域内技术人员将容易理解,对于前面描述的特征,如果一个组件传送、发送或以其它方式可供另一组件使用,则另一组件将接收或获取,而不管是否明确声明。
[0065]当前披露的主题不受本文中的具体实施例的范围限制。事实上,除了本文描述的那些,所披露的主题的多种修正对本领域内技术人员从前面的描述和附图中将变得显而易见。这些修正旨在落入所附权利要求书的范围内。
【主权项】
1.一种用于使用经由网络通信地耦合的多个计算设备的分布式存储的方法,包括: 将电子文件存储在所述多个计算设备中的一个的本地存储层中; 在网络上将存储在多个计算设备中的一个的本地存储层中的电子文件部分以诸部分的形式异步地传送至多个计算设备中的其它计算设备,以使得跨分布式存储层中的其它计算设备存储所述电子文件; 在网络上将存储在分布式存储层中的电子文件异步地传送至云存储层,以使得电子文件被镜像在所述云存储层中;以及 对于分布式存储层中存储的每个电子文件,在多个计算设备的每个计算设备的本地存储层中存储元数据,所述元数据具有指向存储在本地存储层和分布式存储层内的所述电子文件的所述部分的位置的指针。2.如权利要求1所述的方法,其特征在于,还包括用与计算设备中的一个耦合的显示设备将存储在所述分布式存储层中的电子文件如同被存储在单个逻辑驱动中那样进行显不O3.如权利要求1所述的方法,其特征在于,所述多个计算设备包括台式计算机、膝上型计算机或手持式计算设备中的一个或多个。4.如权利要求1
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1