CN101336435A - 可缩放文件复制和基于web的访问 - Google Patents

可缩放文件复制和基于web的访问 Download PDF

Info

Publication number
CN101336435A
CN101336435A CNA2006800521074A CN200680052107A CN101336435A CN 101336435 A CN101336435 A CN 101336435A CN A2006800521074 A CNA2006800521074 A CN A2006800521074A CN 200680052107 A CN200680052107 A CN 200680052107A CN 101336435 A CN101336435 A CN 101336435A
Authority
CN
China
Prior art keywords
file
replication
metadata
scalable
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.)
Granted
Application number
CNA2006800521074A
Other languages
English (en)
Other versions
CN101336435B (zh
Inventor
D·特多西
D·C·斯蒂尔
M·安纳马莱
N·S·伯杰纳
M·J·博兰德
H·刘
P·E·波兹曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101336435A publication Critical patent/CN101336435A/zh
Application granted granted Critical
Publication of CN101336435B publication Critical patent/CN101336435B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system

Abstract

各个实施例介绍了实现高度可缩放文件复制系统的复制实体的概念。在一个实施例中,复制实体驻留于可缩放复制服务的形式中。在至少一些实施例中,复制服务提供“天空中的驱动器”工具,诸如订户的个体可使用它来同步其各个机器,使得其文件被自动复制至安全且始终开启的位置。可替换地或另外,诸如订户的个体还可在他们离开其机器时通过基于web的接口访问其文件。

Description

可缩放文件复制和基于web的访问
背景
许多年来使用各种方法诸如基于状态或者基于事件的复制建立了多主文件复制系统。通常,这些系统将在二个或多个计算设备(节点)之间同步文件系统一部分,使得对一个节点上的文件或目录所作的改变会传播至其它节点。
很多时候,其上发生复制的计算设备往往是不能永久访问的计算机,或是因为这些计算设备没有运行,或是因为它们从因特网断开。因此,在这些环境中,用户通常只有在他们能够访问其计算设备时才能访问其复制的文件。因此,四处旅行的用户可能会在访问其文件时经历很多困难。
概述
各个实施例介绍实现高度可缩放文件复制系统的复制实体的概念。在一个实施例中,复制实体驻留于可缩放复制服务形式中。在至少一些实施例中,复制服务提供“天空中的驱动器(drive in the sky)”工具,可由诸如订户的个体用于同步其各个机器,使得他们的文件被自动复制至安全且始终开启的位置。可替换地或者另外,诸如订户的个体还可在离开其机器时通过基于web的接口访问其文件。
附图简述
图1提供构成典型的基于状态的复制系统的各组件的高级概观。
图2例示复制一个文件F的过程,包括使用筹备区(staging area)。
图3更详细地例示筹备文件的各组件。
图4提供构成将文件系统元数据与blob存储去耦的可缩放文件存储的系统的各组件的高级概观。
图5例示在图4系统中存储一个文件F的过程。
图6例示按照一个实施例的示例性架构。
图7例示按照一个实施例用于将文件从消费者复制客户机复制至图6的架构的控制流。
图8例示按照一个实施例用于将文件从web客户机上传至图6的架构的控制流。
图9例示按照一个实施例用于将文件从图6的架构下载至web客户机的控制流。
详细描述
概观
下面描述的各个实施例介绍了实现高度可缩放文件复制系统的复制实体的概念。复制实体可以驻留于任何合适的形式中,诸如以服务或者复制中心的形式。
在本文中使用的示例中,复制实体驻留于可升级复制服务形式中。在至少一些实施例中,复制服务提供“天空中的驱动器”工具,它可由如订户的个体使用以同步其各个机器,使得其文件被自动复制至安全且始终开启的位置。可替换地或者另外,诸如订户的个体还可在他们离开其机器时通过基于web的接口访问其文件。
本发明实施例解决与将复制服务缩放至非常大量订户相关联的问题。例如,如技术人员可以理解,仅仅将文件系统卷缩放至数十或数百千兆兆(petabyte)的存储就造成严重的成本、可缩放性、管理和可靠性难题。可以构建按照可缩放性、管理和可靠性提供理想特性的存储,但由于与在该尺寸提供文件系统语义相关联的复杂性,它们通常将不会具有全部的文件系统语义。此外,文件系统复制系统通常另外保存一些复制元数据。由于该元数据是独立于文件系统更新路径来更新的,因此它可以(且经常)与实际文件系统内容失去同步。如果是这种情形,则复制器通常将重新扫描整个文件系统以重建元数据的权威副本。重新扫描(特别是如果相对频繁地发生)在可缩放服务中是非常繁重的操作。
因此,在下面描述的实施例中至少一些中,这些和其它问题是通过在服务中不使用文件系统的设计来解决的。作为替换,该设计基于使用可缩放、自管理且可靠的二进制大对象(blob)存储(下面也称为“可缩放文件存储”),blob不提供全部的文件系统语义。例如,不提供全部的文件系统语义意味着不支持以下各项之一或多项:分层文件名空间逻辑文件名、文件更新操作、文件截断或扩展、稀疏文件、文件锁定或者文件系统改变日志。当“天空(sky)”节点从订户节点之一收到文件时,该文件是作为二进制大对象(blob)来接收的,该对象包含实际文件数据和元数据两者。然而,代替对该blob解包并且将它存储在文件系统中,天空节点仅仅将它存储在可缩放blob存储中。
另外,在至少一些实施例中,将复制元数据与可缩放文件存储元数据合并,与其一起存储。因而,对blob存储的任何更新(无论是源自对订户机器之一的复制,还是由于通过web接口所作的改变)可以同时处置blob存储元数据和复制元数据两者。这减轻了复制元数据与blob存储之间的同步化问题并且因而可以消除对重新扫描的需求。
为了向下面的可缩放文件复制的讨论提供一些上下文,考虑有关基于状态的复制的以下内容。应当了解和理解,尽管在基于状态的复制的上下文中描述本发明实施例,但本文描述的技术还可以应用于其它类型的复制器,诸如基于事件的复制器。
基于状态的复制
文件复制器用于在二或多个机器(计算设备)即“节点”之间同步文件系统的内容。对这些节点之一上的文件系统执行的任何修改将被传播至其它节点。复制器被设计为处理所有可能的竞态条件,诸如对多个节点上的同一文件的冲突更新等等。节点文件系统可以是任何常用文件系统,诸如NTFS、FAT、XFS等。
图1在100处概括地提供构成典型的基于状态的复制系统的各组件的高级概观。这里,有两个节点——上游节点102和下游节点104。这些节点参与从上游102至下游104的单向同步。为实现双向同步,节点102和104可以在同时扮演上游和下游角色两者。
文件系统修改事件在每一节点上本地处理,并且积累在该节点的复制元数据数据库106中。在NTFS的情形中,文件系统修改事件可以从文件系统的改变日志108中读出,该日志记录所有的文件创建、删除和修改。其它文件系统可具有不同的通知机制。节点数据库的ID表110记录每一复制的文件和目录的复制元数据。除实际文件系统数据之外,还需要该元数据来有效地确定在两个节点之间的需要同步什么文件以及标识和解决冲突与文件移动。
在此示例中,上游节点102提供复制的内容而下游节点104接收复制的内容。vv上和vv下箭头表示节点之间的通信,诸如版本向量的交换,该通信设计为保证最小量的更新可从上游节点102流至下游节点104。空间和更新箭头表示信用系统,借此下游节点102可控制它在版本向量交换之后从上游节点104收到的更新的数量。
下游节点104使用会合(meet)组件112处理更新,并且依赖于文件更新的本质来决定是要下载还是删除文件,如技术人员可以理解的。当节点104决定下载文件时,它从上游节点102检索文件内容,并且将文件内容放置在筹备区114中。使用取(get)和放(put)协议在节点之间交换文件。
在该图中的其它组件包括文件系统接口(FS)以及包含有关FS上有什么内容的元数据的数据库106。数据库还包含对于所有复制的节点是全局的标识符。
现有参考ID表110,即在下面的表1中,考虑存储在ID表110中的主要复制元数据的概观。
列名 大小(字节) 类型 描述
 UidMachine 16  GUID 唯一标识符的机器GUID
 UidVersion 8  版本 唯一标识符的版本
 GvsnMachine 16  GUID GVSN的机器GUID
 GvsnVersion 8  版本 GVSN的版本
 ParentMachine 16  GUID 父UID的机器GUID
 ParentVersion 8  版本 父UID的版本
 Clock 8  文件时间 时钟值(用于解决文件冲突)
 CreateTime 8  文件时间 创建时间(用于解决目录冲突)
Name 522  Wchar[] 资源名称。它是可变长度列。
表1
前两个字段(UidMachine和UidVersion)给出资源的唯一全局标识符。唯一全局标识符在更新资源时不会改变----它在该资源的生存期内是不变的。
相反,全局版本序号(即GvsnMachine和GvsnVersion)每当更新给定资源时即改变。GvsnMachine字段标识作出改变的伙伴,而GvsnVersion字段标识改变的时戳。
ParentMachine和ParentVersion字段标识父目录的唯一标识符。具体地,由于文件是在文件系统中复制的,因此在复制对象的地方存在祖先关系。Parent字段是用于标识文件驻留其中的目录的字段。
Clock字段提供资源的更新时间并且用于解决更新冲突。具体地,如果存在两个并发的更新,则这些更新通常将具有不同的时钟,这些时钟随后用于解决冲突。
CreateTime字段还用于解决目录冲突。固定资源的创建时间不会改变。
Name字段是资源出现在文件系统中的资源名字。这不是完全合格的名字,而是相对于父资源的名字。
如图1所示,节点周期性地相互同步,此时它们比较其数据库106来决定需要发送什么信息。该数据库比较操作被称为vv联结(vvjoin)。基于状态的复制器依赖于该能力来有效地执行vv联结以便执行同步,如技术人员可以理解的。
同步核心由两个伙伴即上游和下游节点之间的信号交换组成。如技术人员会了解的,同步总是从上游节点向下游节点发生。对于双向同步,需要两次信号交换。两个伙伴通过交换版本向量开始信号交换,版本向量是它们所有文件的GVSN的概要,如在其各自的ID表中所反映的。基于从其下游伙伴接收的版本向量,上游节点确定它具有的、其下游伙伴还未见到的信息(即文件)。上游节点随后开始发送更新(即关于下游还未见到的文件的信息),并且下游节点基于这些更新下载内容。
如图1所示,上游和下游节点使用筹备区114来实现下载和上传。该区是一个独立的目录,用于保存上传或下载文件编组(marshaled)的版本。如技术人员可以理解地,筹备区用于处理下游复制品集合中的共享违背、部分下载以及频带外复制(off-band copying)。
图2例示复制一个文件F的过程,包括使用筹备区114。这里,下游节点104在1处发送请求Get(F)至上游节点102以准备传送文件F。在2处,上游节点102将文件F的数据和元数据编组(或“筹备”)成二进制大对象(blob)Staged(F)并且将该blob存储在筹备区114中。对于NTFS文件,Staged(F)包括文件F的主数据流、任何备选数据流,以及复制的元数据,诸如文件创建时间和访问控制列表(ACL)。诸如最后修改时间的一些NTFS元数据不会被复制并且因此不包括在Staged(F)中。上游节点随后在3处通过响应Put(Staged(F))将Staged(F)发送至下游节点104。在3处,下游节点104还将Staged(F)存储在其筹备区114中。最后在4处,下游节点114对Staged(F)解编(unmarshal)以产生其复制文件F的自己的副本,它将其安装(install)在其自己的同步目录的副本中。
图3更详细地例示Staged(F)的各组件。除了文件F的经压缩编组的表示CM(F)之外,这些组件可包括其它元数据。例如,附加的元数据可由用于差异文件F传送的签名(即远程差异压缩或RDC签名),以及用于在文件的压缩版本中高效寻找的转移表。该其它元数据可存储在表示Staged(F)的NTFS文件的备选稀疏流中。
在接收到远程资源的元数据时,节点必须确定关联于该资源的文件内容及其特定版本是否为可接纳的。具体地,文件必须通过下列过滤器:
1.如果没有对应于父UID的目录,则不可能在文件系统中接受文件内容。类似地,如果对应于父UID的元数据指示父目录已经被删除,这被称为墓碑(tombstone),则不可能接受文件内容,除非被删除的父目录可以通过从对等对象下载它而复活。
2.如果在文件系统的同一父目录下存在具有不同UID但相同名称的文件或目录,则不可能在文件系统中接受文件内容,除非分开重命名冲突文件,或者彻底删除这些资源之一。
3.如果由父目录强加的祖先关系在与节点上的当前文件系统状态比较时引入了循环,则不可能接受文件内容,因为当前NTFS文件系统语义强加了有向无环图结构的分层结构。
在更新独立于本地存储的文件版本作出的意义上,通过上述测试的更新仍有可能冲突。该情景在合作者同时在两个不同节点上编辑相同文档时是常见的。然而,在文件系统上可能安装任一版本,因此更新冲突不违犯任何文件系统约束。
已经讨论了文件复制,现在考虑可缩放文件存储。
可缩放文件存储
多年来已经使用了各种方法,包括名空间分区(例如,AFS,DFS)、元数据和blob去耦(例如Google的GFS)和群集文件系统(例如Sistina的GFS)建立了可缩放文件存储系统。本文描述的技术和方法可应用于将元数据和blob去耦的可缩放文件存储,尽管本文所述技术还可应用于其它类型的可缩放文件存储。
图4在500处概括地提供构成将文件系统元数据和blob存储去耦的可缩放文件存储的系统的各组件的高级概观。在该示例中,系统500包括一或多个访问节点502、一或多个元数据节点504和一或多个blob存储节点506。
可缩放文件系统元数据被存储在优化用于元数据存储和索引的一个或多个节点504上。为可用性和可靠性而复制元数据。SQL数据库通常用作元数据存储。
如技术人员所理解的,文件的数据流通常存储在一或多个优化用于blob存储的节点506上。可缩放blob存储通常提供与传统文件系统相比减少的存储语义,通常仅提供对象放、取和删除操作。为可用性和可靠性而复制写到blob存储的对象。
客户机通过调用访问节点502上的远程HTTP和SOAP API来执行可缩放文件系统操作。访问节点502包括被设计为实现文件数据流在blob存储节点506中的存储以及其相关联元数据在元数据节点504中的存储的存储逻辑,如在下面更详细地描述的。
图5例示在图4的系统中存储一个文件F的过程。通过带圈数字例示各个文件存储步骤。
在1处,存储客户机首先将对F的写请求发送至访问节点502。在2处,访问节点502使用放操作将F的数据流(Fd)发送至可缩放blob存储506。在3处,在可缩放blob存储506的至少一个节点上存储Fd。Fd可存储为NTFS文件,或者存储为将若干blob分组在一起的某种较大文件中的组块。在4处,在完成放操作之前可在blob存储506内复制Fd,以保证放的耐久性。
在5处,blob存储506返回Fd的定位符标记Lt(Fd)。定位符标记以后可用作blob存储的取操作的自变量以定位和检索Fd的内容。
在6处,访问节点502可向元数据存储504发送元数据写请求以存储文件系统元数据Fm和F的定位符标记两者。在7处,随后可在元数据存储504中存储Fm和Lt(Fd)。在8处,可使用SQL复制以复制该信息来保证它的耐久性。
为了检索文件F,可逆向执行上面的过程。也就是说,首先由访问节点502从元数据存储504检索定位符标记,且随后使用定位符标记在blob存储506中定位适当的blob。
在具有相关联文件系统的节点上的文件复制服务必须检查上述条件1、2和3。然而,在无文件系统的代理上的复制服务不必考虑这些条件,因为它仅将对象存储在不要求文件系统约束的对象存储中。这提供增加的可缩放性和延迟的冲突解决。
示例性实施例——天空驱动器架构
图6在700处概括地例示按照一个实施例的示例性天空驱动器架构。在该实施例中,该架构通过将基于状态的复制系统与可缩放文件存储相结合来提供用于文件复制和基于web的访问的可缩放服务。该架构可结合任何合适的硬件、软件、固件或它们的组合来实现。在一个实施例中,架构的各种组件以驻留在计算机可读介质上的计算机可执行指令形式用软件来实现。
在该特定实施例中,作为示例而非限制,架构700包括消费者方组件和服务方组件,它们由虚线描绘。
消费者方组件包括一或多个复制客户机702和一或多个web客户机704。服务方组件包括一或多个复制前端706(它们各自包括复制引擎)、一或多个复制分组重定向服务708、一或多个包含演示层的web服务器710、一或多个存储访问节点712、一或多个元数据节点714和一或多个blob存储节点716。按照一个实施例,存储访问节点包括如上所述的HTTP和SOAP API,以及复制业务逻辑和存储逻辑,它们在下面更详细地描述。
在该实施例中,存储在可缩放文件系统的元数据节点中的文件系统元数据扩充以在表1中描述的复制器的元数据。在访问节点712中运行的复制业务逻辑为可缩放文件服务而对统一的元数据作出更新,使得两段元数据可以一起处置。文件的数据流以其筹备格式存储在可缩放blob存储716中,如图3所示。这样是为了优化与消费者复制客户机的复制过程。
消费者复制客户机702采用寄宿在复制前端706上的基于状态的复制引擎的实例来执行基于状态的复制。消费者的复制客户机使用在与另一基于消费者的运行于常规文件系统顶端上的复制器进行复制时使用的同一复制协议参加与复制服务的双向复制,因而使与blob存储所支持的复制服务进行复制在功能上等价于使用传统文件系统的复制。
消费者通过复制分组重定向服务708被定向到复制前端706的特定实例,因而确保在基于状态的复制引擎的单个实例上执行用于一组文件的所有复制,而不管对该组文件活动地执行复制的消费者数量。文件组与复制引擎的特定实例之间的密切关系用于允许在复制前端706上对更新进行存储器内锁定和定序,以便减少更新冲突的数量。通常,复制给定文件组的消费者数量会较小,即不超过几百。
基于web的客户机704与寄宿在web服务器710上以HTML呈现文件系统的演示层通信。演示层转换来自基于web的客户机704的HTTP请求并且将这些经转换的请求转发给可缩放文件服务访问节点712。嵌入在可缩放文件服务访问节点712中的复制业务逻辑在作为web上传的结果进行文件写(即HTTPPUT(放)请求)期间将文件编组为筹备文件格式(例如,如图3所述),并且在由web下载所致的读请求(即HTTP GET(取)请求)期间解编筹备文件。
考虑图7,它在700处概括地例示按照一个实施例的用于将文件从消费者复制客户机复制至天空驱动器架构的控制流。复制过程的各步骤由带圈数字指示。
在该示例中,在1处,复制客户机702联系复制分组重定向服务708以确定要使用哪个复制前端来复制文件F。在2处,复制客户机702随后编组文件F以产生筹备文件,表示为Staged(F)。结合上面的图3和4描述可如何完成该操作的一个示例。在3处,客户机随后将Staged(F)发送至合适的复制前端706。在4处,复制前端将对Staged(F)的写请求发送至存储访问节点712。在5处,存储访问节点712随后将Staged(F)发送至可缩放blob存储716。在6处,通过请求放操作将Staged(F)存储在至少一个blob存储节点716上。在7处,可在完成放请求之前在blob存储内复制Staged(F)以保证放的耐久性。
在8处,blob存储返回用于Staged(F)的定位符标记Lt(Staged(F))。在9处,复制前端706随后将元数据写请求发送至存储访问节点712以写复制元数据(图2中的ID_Table数据)、F的文件系统元数据Fm和Staged(F)的定位符标记Lt(Fd)。在10处,存储访问节点712将写请求转发给元数据存储714。在11处,在至少一个元数据节点上进行写。在12处,可使用SQL复制来保证在存在元数据节点故障时事务的耐久性。
在一个实现中,消费者复制客户机702可在步骤3期间上传整个文件F。在另一个实现中,文件F可从消费者复制客户机702流至可缩放blob存储716,因而作为流水线操作执行步骤3至5。如果在步骤3至5期间发生了错误,其中包括但不限于网络断开、复制客户机故障或者服务内的故障,则复制前端706可尝试存储以后恢复对该消费者复制客户机传送Staged(F)所需的信息。该信息包括将Staged(F)的部分传送版本存储在blob存储716中以及将有关Staged(F)的部分传送版本的元数据存储在元数据存储714中,包括客户机的身份和恢复复制过程所需的任何其它文件版本信息。
现在考虑图8,它例示按照一个实施例将文件从web客户机704上传至天空驱动器架构的控制流。复制过程的各步骤由带圈的数字指示。
在该示例中,在1处,web客户机704上传文件F至web服务器710。在2处,web服务器710座位响应将文件F写至存储访问节点712。在3处,存储访问节点712上的复制业务逻辑产生F的筹备版本Staged(F),包括生成ID表信息,与上面图3所述的方式相似。在4处,存储访问节点712将Staged(F)发送至可缩放blob存储716。在5处,在至少一个blob存储节点716上存储Staged(F)。在6处,在完成放请求之前可在blob存储716内复制Staged(F)以保证放的耐久性。在7处,blob存储器716随后返回Staged(F)的定位符标记Lt(Staged(F))。
在8处,存储访问节点712中的复制逻辑层将元数据更新请求发送至元数据存储器714,包括F的文件系统元数据Fm、复制元数据(图2中的ID_Table数据)和Staged(F)的定位符标记Lt(Staged(F))。在9处,在至少一个元数据节点714上进行写。在10处,可使用SQL复制来保证在存在元数据节点故障的情况下事务的耐久性。
如果在步骤8中元数据更新因由另一个web客户机或消费者复制客户机所作的更新之间的事务冲突而失败,则存储访问节点中的复制逻辑层重试元数据更新。
在一个实现中,web客户机704可在步骤1期间上传整个文件F。在另一个实现中,文件F可从web客户机704流至可缩放blob存储716,因而作为流水线操作执行步骤1至5。
现在考虑图9,它例示按照一个实施例将文件从天空驱动器架构下载至web客户机的控制流。下载过程的各步骤由带圈数字指示。
在该示例中,在1处,web客户机704向web服务器710请求文件F。在2处,web服务器710请求从存储访问节点712读文件F。在3处,存储访问节点712上的存储逻辑使用元数据存储器714执行对文件F的查找以获得Lt(Staged(F))。在4处,元数据存储714从SQL数据库读F的元数据(Fm,Lt(Staged(F),ID表数据)以将F映射到Lt(Staged(F))。在5处,元数据存储714将Lt(Staged(F))返回至存储访问节点712。在6处,存储访问节点712上的存储逻辑使用Lt(Staged(F))并且发出对来自blob存储716的Staged(F)的取请求。在7处,blob存储716从存储读Staged(F),并且在8处将taged(F)返回至存储访问节点712。
在9处,存储访问节点712上的复制业务逻辑解编Staged(F),有次产生F。在10处,存储访问节点712随后将文件F返回至web服务器710,在11处,后者继而将文件F返回至web客户机704。
在图9和10的替换实现中,web客户机704运行业务逻辑,诸如可体现为ActiveX控件的逻辑,以执行Staged(F)的编组和解编。这减轻了对在存储访问节点712上编组和解编Staged(F)的需求,由此使系统能够端对端地读写Staged(F),减少了存储访问节点712上的资源消耗。
扩展
如上所述,复制中心形式的复制实体可用于实现上述功能。也就是说,可部署一或多个始终开启的复制中心以提供存储且转发复制和比典型的复制客户机高的网络带宽。这些中心通常部署在具有比典型的复制节点明显高得多的网络连通性的商业数据中心中。复制中心可以是无文件系统的,因而仅提供用于文件的数据流的复制,或者复制所有文件系统元数据,如上在架构章节中描述的。
结论
上述各个实施例提供实现高度可缩放文件复制系统的复制实体。在至少一些实施例中,复制服务提供“天空中的驱动器”工具,诸如订户的个体可使用它来同步其各个机器,使得其文件被自动复制至安全且始终开启的位置。可替换地或另外,诸如订户的个体还可在他们离开其机器时通过基于web的接口访问其文件。本发明实施例解决和克服与将复制服务缩放至非常大量订户相关联的至少一些问题。在至少一些实施例中,依靠可缩放、自管理且可靠的二进制大对象(blob)存储来解决这些问题,如上所述。另外,在至少一些实施例中,复制元数据与可缩放存储器元数据合并。因而,对blob存储的任何更新(无论源自与订户机器之一的复制,还是由于通过web接口所作的改变)可以同时处置blob存储元数据和复制元数据两者。这减轻了复制元数据与blob存储之间的同步问题并且因而可以消除重新扫描的需求。
尽管已经以专用于结构特征和/或方法学步骤的语言描述了本发明,但应当理解,所附权利要求书中定义的本发明不必受限于所述的这些特定特征或步骤。相反,这些特定特征和步骤是作为实现所要求的本发明的优选形式而被公开的。

Claims (20)

1.一种系统,包括:
复制实体(706),被配置为:
复制文件;
将文件数据存储在可缩放二进制大对象(blob)存储(716)中;以及
将文件元数据存储在可缩放元数据存储(714)中。
2.如权利要求1所述的系统,其特征在于,所述复制实体被配置为在所述可缩放元数据存储中将复制元数据与文件元数据合并。
3.如权利要求2所述的系统,其特征在于,所述复制实体被配置为响应于对所述blob存储的更新,一起处置文件元数据和复制元数据两者。
4.如权利要求3所述的系统,其特征在于,所述复制实体被配置为通过web接口接收至少一些更新。
5.如权利要求1所述的系统,其特征在于,所述复制实体包括服务。
6.如权利要求1所述的系统,其特征在于,所述复制实体包括一或多个中心。
7.如权利要求1所述的系统,其特征在于,所述复制实体被配置为基于状态的复制实体。
8.如权利要求1所述的系统,其特征在于,所述blob存储不要求全部的文件系统语义。
9.一种系统,包括:
一或多个复制前端,它们各自与被配置为提供基于状态的文件复制的文件复制引擎(706)相关联;
至少一个可缩放文件存储(716),用于以不要求全部文件系统语义的方式存储文件数据;以及
至少一个可缩放元数据存储(714),用于存储相关联的文件元数据。
10.如权利要求9所述的系统,其特征在于,所述至少一个可缩放元数据存储储存与所述文件元数据相关联的复制元数据。
11.如权利要求10所述的系统,还包括一或多个访问节点,它们各自被配置为一起处置所述复制元数据和相关联的文件元数据两者。
12.如权利要求9所述的系统,其特征在于,所述系统被体现为服务。
13.如权利要求12所述的系统,其特征在于,复制客户机可以使用与在同文件系统上运行的另一复制客户机进行复制时使用的相同的复制协议参加与所述复制服务的双向复制。
14.如权利要求9所述的系统,其特征在于,还包括一或多个复制分组重定向服务,用于将复制客户机定向至复制前端的特定实例。
15.如权利要求9所述的系统,其特征在于,还包括一或多个服务器,它们各自作为被配置为与一或多个web客户机通信并且为所述一或多个web客户机演示HTML文件系统视图的演示层的宿主。
16.如权利要求9所述的系统,其特征在于,还包括一或多个可缩放文件服务访问节点,它们中的至少一些被配置为将文件编组为筹备文件格式并且解编筹备文件。
17.一种计算机实现的方法,包括:
用复制实体(706)接收筹备文件;
将对所述筹备文件的写请求发送至存储访问节点(712);
将所述筹备文件发送至可缩放二进制大对象(blob)存储(716);
从所述blob存储(716)接收所述筹备文件的定位符标记;
将元数据写请求发送至所述存储访问节点(712)以写复制元数据、所述筹备文件的文件系统元数据和所述定位符标记;
将所述元数据写请求转发至可缩放元数据存储(714);以及
在所述可缩放元数据存储(714)上进行所述元数据写请求。
18.如权利要求17所述的方法,其特征在于,还包括,在所述接收筹备文件的动作之前,从复制客户机接收通信并且响应于所述通信,将所述复制客户机定向至包括用于复制文件的复制引擎的复制前端的特定实例。
19.如权利要求17所述的方法,其特征在于,还包括将文件从一或多个web客户机上传至所述复制实体。
20.如权利要求17所述的方法,其特征在于,还包括将文件从所述复制实体下载至一或多个web客户机。
CN2006800521074A 2006-02-01 2006-12-29 可缩放文件复制和基于web的访问 Active CN101336435B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/275,870 2006-02-01
US11/275,870 US7743023B2 (en) 2006-02-01 2006-02-01 Scalable file replication and web-based access
PCT/US2006/049663 WO2007089354A1 (en) 2006-02-01 2006-12-29 Scalable file replication and web-based access

Publications (2)

Publication Number Publication Date
CN101336435A true CN101336435A (zh) 2008-12-31
CN101336435B CN101336435B (zh) 2012-08-15

Family

ID=38327720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800521074A Active CN101336435B (zh) 2006-02-01 2006-12-29 可缩放文件复制和基于web的访问

Country Status (5)

Country Link
US (1) US7743023B2 (zh)
EP (1) EP1979845A4 (zh)
JP (1) JP5032504B2 (zh)
CN (1) CN101336435B (zh)
WO (1) WO2007089354A1 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9213699B2 (en) * 2008-04-30 2015-12-15 Aspect Software Inc. Super-object in administering system
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US8442983B2 (en) * 2009-12-31 2013-05-14 Commvault Systems, Inc. Asynchronous methods of data classification using change journals and other data structures
WO2012003504A2 (en) * 2010-07-02 2012-01-05 Air Computing, Inc. A system and method for cloud file management
JPWO2012081405A1 (ja) * 2010-12-14 2014-05-22 コニカミノルタエムジー株式会社 情報処理装置及びデータ管理システム
US9396290B2 (en) 2011-06-09 2016-07-19 Cloudian Holdings, Inc. Hybrid data management system and method for managing large, varying datasets
US9146937B2 (en) 2011-06-23 2015-09-29 Cohort Fs, Llc Client-based data replication
US8738581B1 (en) * 2012-02-15 2014-05-27 Symantec Corporation Using multiple clients for data backup
US20150026147A1 (en) * 2012-02-23 2015-01-22 Vidispine Ab Method and system for searches of digital content
US9078144B2 (en) * 2012-05-02 2015-07-07 Nokia Solutions And Networks Oy Signature enabler for multi-vendor SON coordination
US9858288B2 (en) * 2012-08-03 2018-01-02 Egnyte, Inc. System and method for event-based synchronization of remote and local file systems
US10264071B2 (en) 2014-03-31 2019-04-16 Amazon Technologies, Inc. Session management in distributed storage systems
US10372685B2 (en) * 2014-03-31 2019-08-06 Amazon Technologies, Inc. Scalable file storage service
US20150312331A1 (en) * 2014-04-25 2015-10-29 Shinkuro, Inc. System and Method for Group Collaboration Using a Distributed Network File Repository
US10380076B2 (en) * 2014-07-21 2019-08-13 Egnyte, Inc. System and method for policy based synchronization of remote and local file systems
AU2015207840B2 (en) * 2014-07-31 2020-06-18 Samsung Electronics Co., Ltd. System and method of managing metadata
US10437789B2 (en) 2015-04-10 2019-10-08 Egnyte, Inc. System and method for delete fencing during synchronization of remote and local file systems
US11144510B2 (en) * 2015-06-11 2021-10-12 Egnyte, Inc. System and method for synchronizing file systems with large namespaces
US9891938B2 (en) 2015-06-26 2018-02-13 Vmware, Inc. Modifying an instance catalog to perform operations
US20170177613A1 (en) 2015-12-22 2017-06-22 Egnyte, Inc. Event-Based User State Synchronization in a Cloud Storage System
US11010409B1 (en) * 2016-03-29 2021-05-18 EMC IP Holding Company LLC Multi-streaming with synthetic replication
KR101747265B1 (ko) * 2016-06-20 2017-06-15 주식회사 티맥스데이터 쿼리를 실행하기 위한 방법, 장치 및 컴퓨터 판독가능 매체
US10459647B1 (en) * 2017-03-02 2019-10-29 Amazon Technologies, Inc. Multiple storage class representation in versioned storage
US10802746B1 (en) 2017-03-02 2020-10-13 Amazon Technologies, Inc. Policy-driven multiple storage class representation in versioned storage
US20180309826A1 (en) * 2017-04-24 2018-10-25 EITR Systems, Inc. Fault-tolerant storage system using an alternate network
US10817498B2 (en) 2018-05-31 2020-10-27 Microsoft Technology Licensing, Llc Distributed transactions in cloud storage with hierarchical namespace
US10831720B2 (en) * 2018-05-31 2020-11-10 Microsoft Technology Licensing, Llc Cloud storage distributed file system
US10771524B1 (en) * 2019-07-31 2020-09-08 Theta Labs, Inc. Methods and systems for a decentralized data streaming and delivery network
WO2021072417A1 (en) * 2019-10-11 2021-04-15 Theta Labs, Inc. Methods and systems for decentralized data streaming and delivery network
US11704035B2 (en) 2020-03-30 2023-07-18 Pure Storage, Inc. Unified storage on block containers
US11928093B2 (en) * 2021-06-10 2024-03-12 Actian Corporation Object data stored out of line vector engine

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63121179A (ja) * 1986-11-10 1988-05-25 Hitachi Ltd ステ−ジング方法
US5566331A (en) * 1994-01-24 1996-10-15 University Corporation For Atmospheric Research Mass storage system for file-systems
JPH10240589A (ja) * 1997-02-21 1998-09-11 Hitachi Ltd 実データ遅延取出しを行うデータベース処理方法
US5953729A (en) * 1997-12-23 1999-09-14 Microsoft Corporation Using sparse file technology to stage data that will then be stored in remote storage
US6922708B1 (en) * 1999-02-18 2005-07-26 Oracle International Corporation File system that supports transactions
US6785882B1 (en) * 1999-05-24 2004-08-31 Unisys Corporation Process-driven tool interface for an object management system
US6460055B1 (en) * 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files
US10235368B2 (en) 2000-06-08 2019-03-19 International Business Machines Corporation System and method for updating external file referenced by database with transactional consistency using SQL
US6553391B1 (en) 2000-06-08 2003-04-22 International Business Machines Corporation System and method for replicating external files and database metadata pertaining thereto
US7162499B2 (en) 2000-06-21 2007-01-09 Microsoft Corporation Linked value replication
US6961681B1 (en) * 2000-09-12 2005-11-01 Microsoft Corporation System and method providing virtual applications architecture
US20020143798A1 (en) * 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
US6745209B2 (en) * 2001-08-15 2004-06-01 Iti, Inc. Synchronization of plural databases in a database replication system
US6874001B2 (en) * 2001-10-05 2005-03-29 International Business Machines Corporation Method of maintaining data consistency in a loose transaction model
US7149759B2 (en) * 2002-03-25 2006-12-12 International Business Machines Corporation Method and system for detecting conflicts in replicated data in a database network
US7386532B2 (en) * 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing versions
US20040193952A1 (en) 2003-03-27 2004-09-30 Charumathy Narayanan Consistency unit replication in application-defined systems
US7444337B2 (en) * 2004-03-09 2008-10-28 Ntt Docomo, Inc. Framework and associated apparatus for the adaptive replication of applications with server side code units
US7257592B2 (en) * 2003-06-26 2007-08-14 International Business Machines Corporation Replicating the blob data from the source field to the target field based on the source coded character set identifier and the target coded character set identifier, wherein the replicating further comprises converting the blob data from the source coded character set identifier to the target coded character set identifier
US7200620B2 (en) * 2003-09-29 2007-04-03 International Business Machines Corporation High availability data replication of smart large objects
US7580961B2 (en) 2004-01-21 2009-08-25 Emc Corporation Methods and apparatus for modifying a retention period for data in a storage system
US9229646B2 (en) * 2004-02-26 2016-01-05 Emc Corporation Methods and apparatus for increasing data storage capacity
US7475204B2 (en) * 2004-11-24 2009-01-06 International Business Machines Corporation Automatically managing the state of replicated data of a computing environment
US7987158B2 (en) * 2005-02-09 2011-07-26 International Business Machines Corporation Method, system and article of manufacture for metadata replication and restoration
US20060235893A1 (en) * 2005-04-15 2006-10-19 Emc Corporation Methods and apparatus for managing the storage of content
US7454406B2 (en) * 2005-04-29 2008-11-18 Adaptec, Inc. System and method of handling file metadata
US7805470B2 (en) * 2005-06-23 2010-09-28 Emc Corporation Methods and apparatus for managing the storage of content in a file system

Also Published As

Publication number Publication date
WO2007089354A1 (en) 2007-08-09
EP1979845A4 (en) 2010-01-27
CN101336435B (zh) 2012-08-15
JP2009525534A (ja) 2009-07-09
EP1979845A1 (en) 2008-10-15
JP5032504B2 (ja) 2012-09-26
US7743023B2 (en) 2010-06-22
US20070185932A1 (en) 2007-08-09

Similar Documents

Publication Publication Date Title
CN101336435B (zh) 可缩放文件复制和基于web的访问
US10019460B2 (en) Hosted file sync with direct access to hosted files
US8108429B2 (en) System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
US8341118B2 (en) Method and system for dynamically replicating data within a distributed storage system
CN101490680B (zh) 全局资产管理
US8255364B2 (en) System for emulating a virtual boundary of a file system for data management at a fileset granularity
CN102033912A (zh) 一种分布式数据库访问方法及系统
US20070255763A1 (en) Database replication method and system
CN101272313B (zh) 进行文件级的虚拟化的中间装置、文件服务器系统和中继方法
CN102713901A (zh) 存储复制系统和方法
EP2534571B1 (en) Method and system for dynamically replicating data within a distributed storage system
CN102855239A (zh) 一种分布式地理文件系统
CN109831486A (zh) 多客户端的后台数据服务器系统及数据处理方法
Silberstein et al. Pnuts in flight: Web-scale data serving at yahoo
CN103853612A (zh) 一种基于分布式存储下的数字家庭内容读数据的方法
US11461201B2 (en) Cloud architecture for replicated data services
CN111565211B (zh) 一种cdn配置分发网络系统
Marinković et al. A distributed catalog for digitized cultural heritage
Vohra Apache HBase Primer
CN113076298A (zh) 分布式小文件存储系统
Ramasubramanian et al. Fidelity-aware replication for mobile devices
Konda et al. Balancing & Coordination of Big Data in HDFS with Zookeeper and Flume
EA027808B1 (ru) Система управления базой данных
CN117290298A (zh) 数据处理方法及相关装置
CN110019521A (zh) 针对图书馆海量数据的分布式存储管理系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.