用于在云存储系统中路由数据流的方法和系统.pdf

上传人:a3 文档编号:5996028 上传时间:2019-04-02 格式:PDF 页数:29 大小:1.70MB
返回 下载 相关 举报
摘要
申请专利号:

CN201580038954.4

申请日:

2015.08.25

公开号:

CN106576078A

公开日:

2017.04.19

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 12/721申请日:20150825|||公开

IPC分类号:

H04L12/721; G06F12/0802

主分类号:

H04L12/721

申请人:

CTERA网络有限责任公司

发明人:

A·布兰德

地址:

以色列佩塔提科瓦

优先权:

2014.08.26 US 62/041,941

专利代理机构:

广州嘉权专利商标事务所有限公司 44205

代理人:

郑勇

PDF下载: PDF下载
内容摘要

提供了一种利用云存储系统允许存储服务的系统、方法和计算设备。该方法包括动态地选择在云存储系统(CSS)和计算设备之间的最佳路由,其中CSS在地理上远离计算设备;以及基于所选择的最佳路由,在所述CSS与所述计算设备之间建立数据流,其中所述数据流被建立以允许至少一种与所述CSS相关的存储服务。

权利要求书

1.一种利用云存储系统允许存储服务的计算设备,包括:
处理单元;和
存储器,所述存储器包含指令,当所述指令通过所述处理单元执行时,配置所述计算设
备以:
动态地选择所述云存储系统(CSS)和所述计算设备之间的最佳路由,其中所述CSS在地
理上远离所述计算设备;和
基于所选择的最佳路由,在所述CSS和所述计算设备之间建立数据流,其中建立所述数
据流以允许至少一种与所述CSS相关的存储服务。
2.根据权利要求1所述的计算设备,其中,所述至少一种存储服务是以下中的任何一
种:所述CSS和所述计算设备之间的文件同步、文件缓存到所述CSS中、备份文件到所述CSS
中、远程访问在所述CSS或在所述计算设备中的文件。
3.根据权利要求2所述的计算设备,其中,所述计算设备进一步配置为:
与可信网络中的其他计算设备共享存储空间以提供增强的缓存能力。
4.根据权利要求1所述的计算设备,其中,所述最佳路由是以下中的任何一种:所述CSS
与所述计算设备之间的直接路由,以及通过至少一个中间计算设备的间接路由。
5.根据权利要求1所述的计算设备,其中,所述计算设备是以下中的任何一种:云存储
网关(CSG),以及端点。
6.根据权利要求1所述的计算设备,其中,基于以下至少一个来确定所述最佳路由:带
宽、响应时间、价格、数据流类型、拓扑距离、数据流关系类型、可用性、延迟、包含在可允许
元素的列表中、从可允许元素的列表中排除,以及域名系统(DNS)查询解析。
7.根据权利要求1所述的计算设备,其中,基于定义至少所述数据流关系的关系类型和
至少一个可配置属性的数据流模板来建立所述数据流。
8.根据权利要求7所述的计算设备,其中,所述至少一个可配置属性包括以下中的任一
种:要同步或缓存的内容、要从同步或缓存中排除的内容、设置、数字版权管理(DRM)指令和
锁定策略。
9.根据权利要求8所述的计算设备,其中,所述锁定策略是自动锁定策略。
10.一种利用云存储系统允许存储服务的方法,包括:动态地选择在云存储系统(CSS)
和计算设备之间的最佳路由,其中所述CSS在地理上远离所述计算设备;和
基于所选择的最佳路由,在所述CSS和所述计算设备之间建立数据流,其中,建立所述
数据流以允许至少一种与所述CSS相关的存储服务。
11.根据权利要求10所述方法,其中,所述至少一种存储服务是以下中的任何一种:所
述CSS和所述计算设备之间的文件同步、文件缓存到所述CSS中、备份文件到所述CSS中、远
程访问在所述CSS或在所述计算设备中的文件。
12.根据权利要求11所述的计算设备,其中,在所述CSS中缓存文件进一步包括:
与可信网络中的其他计算设备共享存储空间以提供增强的缓存能力。
13.根据权利要求10所述的方法,其中,所述最佳路由是以下中的任何一种:所述CSS与
所述计算设备之间的直接路由,以及通过至少一个中间计算设备的间接路由。
14.根据权利要求10所述的方法,其中,所述计算设备是以下中的任何一种:云存储网
关(CSG)和端点。
15.根据权利要求10所述的方法,其中,基于以下至少一个来确定所述最佳路由:带宽、
响应时间、价格、数据流类型、拓扑距离、数据流关系类型、可用性、延迟、包含在可允许元素
的列表中、从可允许元素的列表中排除,以及域名系统(DNS)查询解析。
16.根据权利要求10所述的方法,其中,基于定义至少所述数据流关系的关系类型和至
少一个可配置属性的数据流模板来建立所述数据流。
17.根据权利要求16所述的方法,其中,所述至少一个可配置属性包括以下中的任一
种:要同步或缓存的内容、要从同步或缓存中排除的内容、设置、数字版权管理(DRM)指令和
锁定策略。
18.根据权利要求17所述的方法,其中,所述锁定策略是自动锁定策略。
19.一种非暂时性计算机可读介质,其上存储有用于使一个或多个处理单元执行根据
权利要求1所述的方法的指令。
20.一种用于允许访问多个云存储系统的分布式存储系统,包括:
多个云存储系统(CSS);和
多个计算设备,其中该多个计算设备彼此非常接近并且在地理上远离所述多个CSS中
的每一个,其中每个计算设备被配置为:动态地选择多个CSS中的一个CSS与所述计算设备
之间的最佳路由;以及基于所选择的最佳路由,在所述CSS和所述计算设备之间建立数据
流,其中,建立所述数据流以允许至少一种与所述CSS相关的存储服务。
21.根据权利要求20所述的分布式存储系统,其中,所述至少一种存储服务是以下中的
任何一种:所述CSS和所述计算设备之间的文件同步、文件缓存到所述CSS中、备份文件到所
述CSS中、远程访问在所述CSS或在所述计算设备中的文件。
22.根据权利要求20所述的分布式存储系统,其中,所述最佳路由是以下中的任何一
种:所述CSS与所述计算设备之间的直接路由,以及通过至少一个中间计算设备的间接路
由。
23.根据权利要求20所述的分布式存储系统,其中每个计算设备是以下中的任一种:端
点和云存储网关(CSG)。
24.根据权利要求20所述的分布式存储系统,进一步包括:
区域缓存,其中所述区域缓存包括所述多个计算设备中的每一个的存储器中的至少部
分。
25.根据权利要求20所述的分布式存储系统,其中,基于以下至少一个来确定所述最佳
路由:带宽、响应时间、价格、数据流类型、拓扑距离、数据流关系类型、可用性、延迟、包含在
可允许元素的列表中、从可允许元素的列表中排除以及域名系统(DNS)查询解析。
26.根据权利要求20所述的分布式存储系统,其中,基于限定至少一个可配置属性的数
据流模板来建立所述数据流。
27.根据权利要求20所述的分布式存储系统,其中,基于以下中的至少一个来确定紧密
邻近:地理位置、网络拓扑访问延迟、带宽标准、成本标准和管理配置。
28.根据权利要求19所述的分布式存储系统,其中,每个计算设备配置为在所述CSS和
所述计算设备之间提供选择的优选路由,其中所述优选路由是以下中的任一种:所述计算
设备与所述CSS之间的直接路由;以及通过以下中的任一种的间接路由:中间CSS和中间计
算设备。

说明书

用于在云存储系统中路由数据流的方法和系统

相关申请的交叉引用

本申请要求2014年8月26日提交的美国临时申请62/041,941的权益,该临时申请
的内容通过引用并入本文中。

技术领域

本发明涉及云存储网络中的文件共享和同步,尤其涉及用于文件共享和同步的多
级系统。

背景技术

对数据存储的需求已经迅速上升,因为随着比如用户存储的数字介质的数据量的
增长,在长时间内可靠地存储数字介质的需求也在增长。存储数字介质的存储系统范围从
本地存储介质(例如CD和备份磁带)和网络存储系统(例如NAS或NAT)到基于云的存储系统。

比如NAS和NAT的网络存储系统通过标准文件共享协议(例如,通用互联网文件系
统(CIFS)或网络文件系统(NFS))提供对连接到局域网中的用户的文件的访问。

基于云的存储系统(也称为云存储服务(CSS))通过互联网提供的Web服务接口提
供大容量存储。存储基础设施包括通过广域网(WAN)连接到多个客户端的地理上分布的数
据中心的分布式阵列。

图1示出了设计为提供云存储服务的存储系统100。该系统100包括地理上分布的
数据中心110-1到110-M的分布式阵列(以下统称为数据中心110或单独地称为数据中心
110,仅仅为了简化的目的)通过广域网(WAN)130连接到多个客户端120-1至120-N(以下统
称为客户端120或单独地称为客户端120,仅仅为了简化目的)。

数据中心110通常包括服务器和大容量存储促进云存储服务到客户端120。这样的
服务使得应用能够包括例如数据的备份和恢复、数据迁移、数据共享、数据协作等等。云存
储服务可从世界任何地方访问。为此,每个客户端120实现web服务接口,所述web服务接口
设计为至少与数据中心110同步数据。通过云存储服务启用的应用通常不知道服务的细节
和底层数据同步操作。市售的云存储服务的缺点是这样的服务不实现标准文件共享协议
(例如,通用互联网文件系统(CIFS)或网络文件系统(NFS))。此外,访问存储在云存储中的
文件通常比访问存储在本地存储设备中的文件慢。

虽然在图1中未示出,但是存储系统100可以包括多个缓存服务器以加速数据存储
和检索,以及包括允许访问远程存储在数据中心110中的文件的云代理。云代理可以是连接
到特定工作站、服务器或其他计算设备的或与其相关联的硬件组件、软件组件或其组合。例
如,工作站代理可以是安装在个人计算机上的软件,比如将该工作站与CSS和/或云集成存
储设备集成。作为另一示例,移动设备代理可以是安装在移动设备例如智能手机上的应用,
用于将移动设备与云存储系统集成。

云存储系统能够用于在用户之间共享内容。例如,在企业中,数据通常能够在不同
的部门、分支机构和个人用户之间共享。每个这样的能够保存或共享文件的实体通常被分
配例如不同的许可规则。此外,每个用户可以使用不同类型的设备(节点),每个设备可以是
但不限于PC、智能手机、存储设备、文件服务器等。因此,存储在云存储(数据中心110)中的
文件夹能够由来自不同地理位置的多个不同用户访问。另外,用户可以从不同的位置和/或
与用户相关联的不同设备访问云存储。

云存储系统的基本要求是在本地设备和远程存储之间、在相同用户的不同设备之
间以及在共享相同内容的用户之间同步数据。另一个基本要求是提供足够的数据吞吐量来
存储和检索来自访问系统的任何设备和/或地理位置的数据。

发明内容

本发明的几个示例实施例的概要如下。提供本概要是为了读者的方便,以提供对
这些实施例的基本理解而不是完全地限定本发明的范围。本概述不是所有预期实施例的广
泛综述,并且既不旨在确定所有方面的关键或重要元素,也不描绘任何或所有方面的范围。
其唯一目的在于以简化的形式呈现一个或多个实施例的一些概念,作为稍后呈现的更详细
描述的前奏。为了方便,术语“某些实施例”在此指的是本公开的单一实施例或者多个实施
例。

所公开的实施例包括利用云存储系统允许存储服务的计算设备。该计算设备包
括:处理单元;以及存储器,所述存储器包含指令,当由处理单元执行时,所述指令配置所述
计算设备以:动态选择云存储系统(CSS)和计算设备之间的最佳路由,其中所述CSS在地理
上远离所述计算设备;以及基于所选择的最佳路由建立所述CSS与所述计算设备之间的数
据流,其中所述数据流被建立以允许至少一种与所述CSS相关的存储服务。

所公开的实施例还包括一种利用云存储系统允许存储服务的方法。该方法包括动
态地选择在云存储系统(CSS)和计算设备之间的最佳路由,其中CSS在地理上远离计算设
备;以及基于所选择的最佳路由,在所述CSS与所述计算设备之间建立数据流,其中所述数
据流被建立以允许至少一种与所述CSS相关的存储服务。

所公开的实施例还包括用于允许访问多个云存储系统的分布式存储系统。分布式
存储系统包括:多个云存储系统(CSS);以及多个计算设备,其中多个计算设备彼此非常接
近并且在地理上远离所述多个CSS中的每一个,其中每个计算设备被配置为:动态地选择多
个CSS中的一个CSS与所述计算设备之间的最佳路由;以及基于所选择的最佳路由,在所述
CSS和所述计算设备之间建立数据流,其中,建立所述数据流以允许至少一种与所述CSS相
关的存储服务。

附图说明

在说明书结尾处的权利要求书中特别指出并清楚地要求保护本文所公开的主题。
结合附图进行以下详细描述,本发明的前述以及其它目标、特征以及优势将变得显而易见。

图1是存储网络系统的示意图;

图2是根据实施例配置的多级文件系统的示意图;

图3是根据实施例配置的多级云存储文件系统的示意图;

图4是根据实施例的包括多于一个云存储系统的多级云存储网络的流程图;

图5是根据实施例的存根文件跟踪和同步的示例性和非限制性流程图;

图6是根据实施例的文件的区域的同步的示例性和非限制性流程图;

图7是根据实施例的按需元数据的同步的示意图;

图8是根据实施例的在文件协作网络中操作的集中式数据流管理系统的示例性和
非限制性框图;

图9是具有树形拓扑的文件协作网络的示意图;

图10是具有森林拓扑的文件协作网络的示意图;

图11是具有图形拓扑的协作网络的示意图;

图12是使用文件协作网络中的模板来建立数据流的方法的流程图;

图13是根据实施例的模板编辑器的用户界面的屏幕截图;

图14是根据实施例的通过同步关系数据流的设置允许控制用户界面的屏幕截图;

图15是根据实施例的用于限定模板分配协议的用户界面的屏幕截图;

图16是其中所公开的实施例可适用的系统的示意图;

图17是根据实施例的用于使用数据流模板来创建和利用数据流的方法的示例性
和非限制性流程图。

具体实施方式

重要的是要注意本文公开的实施例仅仅是本文创新教导的许多有益使用的示例。
通常,在本申请的说明书中做出的表述没有必然限制任何各种要求保护的发明。此外,一些
表述可以适用于一些发明特征,但不适用于其他特征。通常,除非另有说明,否则单数元素
可以是复数,反之亦然,而不失一般性。在附图中,多个视图中相同的数字代表相同的部件。

图2示出了根据实施例的多级文件共享和存储网络200的示例性和非限制性示意
图。在该实施例中,云存储系统(CSS)210通信连接到一个或多个云存储网关(CSG)220-1和
220-2(以下单独地称为CSG 220并且统称为CSG 220,仅仅为了简化目的)。

CSG 220可以是硬件组件、软件组件,或它们的组合。CSG 220可以向端点230提供
缓存、WAN加速、存储加速等。端点230可以是但不限于执行软件代理的客户端设备,软件代
理可以远程访问存储在CSS 210或在应用云计算的存储设备中的文件,例如使用在共同未
决的转让给共同受让人的专利申请13/205,238中的方法,该专利申请在此通过引用将其全
部并入本文。在进一步的实施例中,代理可以安装在端点230。代理允许端点访问CSS 210
和/或CSG 220中的一个以及与CSS 210和/或CSG 220中的一个同步数据。例如,工作站代理
可以是安装在个人计算机上的软件,其允许工作站与CSS 210集成。作为另一示例,移动设
备代理可以是安装在端点230例如智能电话上的应用,用于将端点230与CSS 210、另一客户
端和/或CSG 220集成。

端点230和CSG 220中的每一个可以是包括但不限于存储器、处理单元和存储器的
计算设备。存储器包含当通过处理单元执行时配置计算设备以执行本文所描述的方法的指
令。

一些CSG 220可以相对于地理位置、网络拓扑接入延迟、带宽标准、成本标准、管理
配置等而彼此紧邻地驻留。在一个实施例中,多个CSG 220可以是可信网络的一部分,从而
允许端点230接入可信网络中的每个CSG 220。在另一实施例中,一个或多个CSG,例如,CSG
220-2,可以提供共享的大容量块缓存服务,以增加可以从区域缓存本地满足块读取而不需
要访问CSS 210的可能性。这种共享块容量是有利的,因为CSS 210通常位于远处的数据中
心,并且这种技术可以减小延迟、减少WAN链路上的负载,并且增加云存储服务的总体响应
性和吞吐量。应当注意,在某些实施例中,CSG 220还可以配置有本地缓存(例如,层1-缓
存)。

端点230通过直接连接或通过CSG 220中的一个或多个连接到CSS 210。应当注意,
在图2中只示出了一个端点230仅仅为了简单起见而不是在各个公开的实施例进行限制。如
果端点230都通过直接连接和通过一个或多个CSG 220连接到CSS 210,则在尝试从CSS 210
检索数据或者在CSS 210中存储数据时,可以提示端点230以提供对优选路由的选择,其中
优选路由是直接连接或通过CSG的连接。如果端点230的用户通过CSG 220选择连接,则可以
确定通过CSG 220的数据流的最佳路由。

CSG 220可以在引入方向(客户端到CSS),外出方向(CSS到客户端)或两者上为数
据流提供数据同步服务。数据流可以是但不限制于CSS 210和计算设备之间的文件同步
(“同步关系”),到CSS210中的文件的缓存(“缓存访问关系”),文件到CSS 210的备份(“备份
关系”),以及到CSS 210中或计算设备中的文件的远程访问(“远程访问关系”)。例如,数据
流可以同步从端点中的CSS获得的文件。在一实施例中,可以通过数据流模板来设置数据
流。数据流模板通常在如下文图8进一步描述的集中式系统中保持。

在同步关系数据流中,所选内容,例如文件夹或文件在数据流链路的一个方向上
或在数据流链路的两个方向上同步。在转让给共同受让人的题为“存储设备及其用于将附
加了存储的网络与云存储服务集成的方法”(以下称为759申请)的共同未决美国专利申请
2010/0161759中进一步讨论了同步关系数据流,在此通过引用将其全部内容并入本文。

在备份访问关系数据流中,在一个实体上的文件或文件夹的内容在另一个文件或
文件夹上连续地或周期性地复制。在这样的流中,更新是单向的。在远程访问关系数据流
(也称为直接访问数据流)中,根据需要从对等节点直接检索读取数据(作为非限制性示例,
对等节点可以是在分层文件协作网络的相同级别内的端点)。写入的数据然后可以直接存
储到对等节点。

在缓存的访问数据流中,读取的数据直接从对等节点检索并在本地缓存。写入的
数据存储到对等节点。这种存储可以异步地执行,并且可以利用优化增量编码协议或WAN加
速来执行。在上述参考文献759申请中进一步讨论了缓存的访问数据流。

除了上述的关系类型之外,关系可以包括各种可配置属性。这样的属性可以包括
但不限于将被同步或缓存作为关系的一部分的内容、从同步或缓存中排除的内容(例如,临
时文件可以不同步)、可以是永久的或基于特定调度(例如,带宽限制,区分服务标签等等)
的服务质量(QoS)设置、与通过关系获得的内容相关的数字版权管理(DRM)指令,所述数字
版权管理(DRM)指令在内容已经被接收之后可以用于控制这样的内容的使用(例如,控制用
户查看、复制、打印和/或共享接收到的内容的能力)、以及锁定策略(例如,在访问之后手动
地或自动地锁定文件或文件夹)。可能需要对锁定策略的支持,特别是在大量共享文件夹
中,其中自动锁定可能是有利的。

在不同实施例中,可以为两个实体之间的单个文件或文件夹限定多个数据流关
系。在一些实施例中,这样的关系可以由具有管理特权的用户和/或由独立实体的用户限
定。

在一实施例中,可以动态地改变给定文件或文件夹的关系。

当关系改变时,可以根据关系开始或结束的类型采取不同的动作。作为非限制性
示例,当关系从缓存关系改变为同步关系或备份关系时,缓存数据的实体可以利用缓存副
本作为文件或文件夹备份的或同步的副本,并且可以仅请求文件或文件夹中尚未从匹配实
体缓存的部分。作为另一非限制性示例,如果关系从同步访问或备份访问改变为缓存访问,
则实体可以仅需要改变同步或备份副本的标记以将其标记为缓存。在这种情况下,可以基
于缓存管理策略丢弃数据。

在一个示例中,端点230或CSG 220可以配置为定期同步本地频繁访问的文件,使
得可以以本地速度立即访问这样的文件的最新版本,而可以不本地存储较不频繁访问的文
件,相反,可以在读或写请求时从云获取(这样的直接读和写请求仍然可以由块级缓存加
速)。随着使用模式改变,特定文件或文件夹可以从缓存自动转换到直接访问,反之亦然。持
久跟踪关于哪些文件是存根的信息,并且同步这样的存根文件。使用云文件同步协议保持
同步的文件为最新。在下文中参考图5进一步详细描述存根跟踪和同步。

为了支持非常大的文件,同步可以在子文件粒度(granularity)上,使得例如文件
的频繁访问的区域可以定期地同步,而文件的其他区域仅在需要时获取。可以持续跟踪要
同步的每个文件的区域。

在优选实施例中,同步和缓存的文件都由虚拟文件系统驱动暴露(exposed)(在用
户级或内核级运行)为统一的虚拟文件系统,从而为用户提供对所有文件的无缝读/写访
问,不论它们是否可在本地(同步)或缓存。在一实施例中,虚拟文件系统中的文件配置在多
级命名空间中。在转让给共同受让人的美国专利申请号14/709,902的专利中公开了多级命
名空间的示例性实施方式,该专利申请包含的全部有用信息通过引用并入本文。

在一实施例中,所有文件的元数据同步到端点230或到CSG 220。系统将元数据本
地存储在端点230中,使得甚至没有互联网连接也可以快速满足目录列表请求。在一个可能
的实施方式中,文件作为存根文件存储在本地文件系统中,仅包含文件的同步区域(如果有
的话)。在该实施方式中,当从用户接收到目录列表请求时,通过简单地通过请求,直接由端
点230的底层文件系统提供列表。当端点230未连接到CSS时,端点230仍然可以提供完全访
问以浏览整个全局目录结构。然而,尝试访问不在本地同步的存根文件将导致客户端接收
错误结果。文件部分的同步在下文中参考图6进一步描述。

在另一实施例中,整个元数据不与每个端点同步。

相反,每个端点仅同步云存储目录结构的选择性部分。基于使用模式这可以是动
态的,其中频繁访问的文件夹自动同步,而最近未访问的文件夹仅在需要时同步。有时,由
于连接问题,端点没有连接到CSS,端点仍然可以提供访问来浏览目录结构。尝试列出未在
本地同步的文件夹的内容将导致客户端接收错误结果或空列表。在下文参考图7进一步描
述云存储目录结构的部分的选择性同步。

在另一实施例中,可以自动生成缓存关系。在这样的一实施例中,如果这样的关系
将通过例如减少访问延迟和/或因特网流量来促进整个系统性能,则元素可以为特定文件
或文件夹建立缓存关系。这种自动生成的关系可以不需要两个实体之间的任何“握手”,并
且可以由实体建立和/或取消。当一个实体向另一个实体指示其希望参与通信时,在两个实
体之间发生“握手”。

根据不同实施例,当端点230尝试在CSS 210中存储或获取数据时,端点230可以通
过CSG 220中的任一个和/或通过到CSS 210的直接连接来这样做。路由是从端点230到CSS
210的路径。路由可以是从端点到CSS的直接连接。路由还可以包括通过一个或多个CSG 220
到CSS 210的连接。在这样的实施例中,使用哪个路由的确定通常基于哪个CSG 220提供最
佳连接。可以基于以下标准中的一个或多个来考虑最佳连接:带宽、响应时间、价格、数据流
类型等。最佳连接的确定在下文中参考图4进一步讨论。

作为根据图2所示的实施例的非限制性示例,操作移动设备(即,端点230)的用户
尝试在CSS 210中保存文件。根据对可用路由的分析,确定CSG 220-1和CSG 220-2表现出较
慢的响应时间,并且因此用于保存数据的最佳路由是经由端点230和CSS 210之间的直接连
接。因此,在该示例中,端点可以通过直接路由将数据保存到CSS 210。

作为根据图2所示的实施例的另一非限制性示例,操作工作站(即,端点230)的用
户尝试从CSS210检索文件。根据对可用路由的分析,端点230和CSS 210之间的直接连接被
确定为不可用。此外,CSG 220-1具有比CSG 220-2更高的可用带宽和/或更低的延迟。因此,
最佳路由确定为通过CSG 220-1的数据流。结果,用户经由CSG 220-1使用端点230从CSS
210检索数据。

图3示出了根据实施例的具有多个云存储系统的多级文件共享和存储网络的示例
性且非限制性示意图300。在该实施例中,云存储系统(CSS)310-1和310-2通信地连接到一
个或多个端点330-1到330-3(以下单独地简称为CSS 330并且统称为CSS 330,仅出于简化
目的)和一个或多个云存储网关(CSG)320。端点330可以是但不限于执行软件代理的客户端
设备,软件代理可以远程访问存储在CSS 310或在应用云计算的存储设备中的文件,例如使
用在共同未决的转让给共同受让人的专利申请13/205,238中的方法,该专利申请在此通过
引用将其全部并入本文。端点330通常与如上所限定的代理一起安装。在不同实施例中,可
以实现多于两个的CSS 310。每个端点330和CSG 320可以是但不限于包括处理器和存储器
的计算设备,该存储器包含当通过处理器执行时配置计算设备以执行本文所描述的方法的
指令。

在一实施例中,在检测到在CSS 310中存储或检索数据的尝试时,端点330配置为
选择递送数据的优选路由。优选路由是用于端点330和CSS 310之间的数据流的路径,且可
以是直接的或基于同步的(间接的)。直接路由是CSS 310和端点330之间的直接连接。基于
同步的路由是间接连接,其中数据流动期间数据通过另一CSS 310和/或至少一个CSG 320。
端点330可以基于但不限于用户选择、预定义的用户偏好等来选择优选路由。如果没有直接
路由,则可以将基于同步的路由确定为优选路由。

CSG 320可以向端点330提供缓存、广域网(WAN)加速和/或存储加速。每个CSG 320
进一步连接到端点330的一个或多个。在一实施例中,一些或所有端点330可以直接连接到
CSS(例如,CSS 310-1或CSS 310-2)。

作为根据图3所示的实施例的非限制性示例,客户端尝试经由端点330-1将数据保
存到CSS 310-2。在该示例中,端点330-1不具有与CSS 310-2的任何直接连接。因此,端点
330-1和CSS 310-2之间的任何数据流必须通过CSS 310-1。因此,将基于同步的路由确定为
优选路由。最佳路由被确定为包括直接从端点330-1到CSS 310-1的数据流的路由,而不是
包括从端点330-1到CSG 320的数据流的路由。因此,在该示例中,用户可以使用端点330-1
经由CSS 310-1将数据保存到CSS 310-2。

图4示出了根据实施例的用于在多级文件共享网络中存储数据的方法的示例性且
非限制性流程图400。在S410中,通过默认路由建立初始连接。初始连接通常建立到一个或
多个默认连接实体,诸如一个或多个CSG和/或代理。或者,初始连接可以是如上所述的直接
路由。默认路由可以通过出厂默认设置或用户手动输入来设置。每个默认路由可以配置有
允许的实体的列表,通过所述允许的实体进行连接。允许的实体是默认连接实体可以建立
连接到的实体。

作为非限制性示例,客户端可以允许用户输入用于其默认路由的CSG的URL地址。
当初始连接建立时,端点连接到默认CSG,该默认CSG向客户端提供端点可以通过URL连接到
的其他实体的列表。这些其他实体可以包括但不限于其他CSG和/或CSS。在一实施例中,如
果端点失去其到默认连接点的连接,则端点可以连接到替代的可用路由。在进一步的实施
例中,如果没有可用的连接点,则端点可以直接连接到CSS。

在S420中,选择用于连接的最佳路由。路由通常包括链路,链路可以是直接的或间
接的。直接链路是端点和CSS之间的直接连接。路由还可以包括但不限于本地连接点、CSS、
包括在另一CSS中的CSG、代理等。该选择在给定时间可以是全局的,使得与每个保持的关系
相关的所有交互与另一单个实体一起执行。或者,可以为每个关系单独地执行选择,使得为
不同的文件和/或文件夹选择不同的最佳路由。这样的选择可以基于为不同文件和/或文件
夹限定的数据流。在一实施例中,可以保持用于单个关系的多个替代路由。在另一实施例
中,多个CSS可以一起操作以向实体和客户端提供优化的服务。在这样的实施例中,一个CSS
可以缓存用于其他CSS的数据和/或作为用于最接近(例如,物理地或拓扑地接近)放置的端
点和CSG的网关的服务。

哪个路由选择为用于连接的最佳路由的确定可以基于各种标准,包括但不限于相
对拓扑距离(例如,元素是否位于相同的LAN上、两个实体之间的路由器的数目等)、为特定
文件或文件夹与特定实体保持的关系类型、访问指定元素的有效性、访问每个元素的延迟、
包含在允许元素的列表中或从允许的元素的列表中排除,和DNS查询解析。

在一实施例中,如果在请求已经完成之前连接丢失,则可以与其他可用实体建立
新连接。在进一步的实施例中,用于新连接的最佳路由的选择使用上文关于S430描述的相
同标准。

在S440中,确定所选择的最佳路由的另一端上的实体是否具有足够的存储容量来
满足存储数据的请求。如果是,则继续执行S460;否则,继续执行S450。在S450中,建立对另
一云存储系统的一个或多个连接点的远程访问。在S460中,根据所选择的最佳路由和/或在
任何远程访问的元素中存储数据。

在一实施例中,可以包括附加的CSG作为不同云存储系统的一部分。在这样的实施
例中,CSS或CSG可以用作所请求的关系的代理。在各种实施例中,请求端点或CSG可以不知
道代理,并且可以提供有与本地服务具有相似质量的服务。在进一步的实施例中,一旦本地
或其他邻近存储空间可用,则可以取消代理。

在另一实施例中,CSS和CSG可以使用其他CSS和连接点作为缓存服务。这可能,例
如,当另一个CSS或连接点更接近(物理地或拓扑地),或当另一个CSS或连接点表现出较小
的延迟时发生。在这样的实施例中,需要获得对特定文件或文件夹的访问的CSS或CSG可以
经由其他CSS或连接中的一个的缓存获得访问,而不是通过所选择的最佳连接访问其他
CSS。

图5是示出根据实施例的存根文件跟踪和同步的示例性且非限制性流程图500。在
S510中,接收从文件读取字节范围的请求。在一实施例中,这样的请求可以来自端点(例如,
端点330)。在S520中,检查所请求的文件是否是存根文件。如果是,则继续执行S530;否则,
继续执行S550。在S530中,开始存根文件的文件同步。在S540中,执行停止,直到所请求的字
节范围变得可用于递送。在S550中,返回所请求的字节范围。

图6是根据实施例的文件的区域的同步的示例性和非限制性流程图600。在S610
中,接收从文件读取字节范围的请求。在S620中,检查所请求的字节范围在存根文件中是否
可用。如果是,则继续执行S630;否则,执行终止。在一实施例中,如果所请求的字节范围在
存根文件中不可用,则可以同步整个文件。在S630中,开始包括字节范围的文件中的区域的
同步。在S640中,执行停止,直到所请求的字节范围变得可用。在S650中,返回所请求的字节
范围。

图7是示出根据实施例的按需元数据的同步的示例性和非限制性流程图700。在
S710中,确定目录元数据是否同步。如果是,则继续执行S720;否则,执行终止。在S720,同步
目录元数据。在S730中,返回来自本地文件系统的目录列表。

图8示出根据实施例的在文件协作网络中操作的集中式数据流管理系统的示例性
和非限制性框图800。系统800包括配置为保持连接到网络(网络未示出)的每个端点(端点
未示出)的元数据的端点数据库810、数据流模板数据库820和模板分配单元830。数据库820
配置为保持数据流模板825与端点相关联。管理系统800还包括用户覆盖策略器(user
override policer)840和端点连接器850。

在一实施例中,模板分配单元830配置为评估与每个端点相关的标准,以确定哪个
数据流模板或要应用于每个端点的模板。在进一步的实施例中,所评估的标准可以是但不
限于端点的元数据、由端点的用户预先定义的模板、由管理员限定的模板、安全设置、网络
中的设备的可用性或缓存服务器的可用性等等。端点的元数据可以包括例如端点的类型
(工作站、服务器、设备、移动设备等)、操作系统类型和版本、所有者组、端点主机名等。

在一实施例中,数据流模板可以通过用户(或通过系统管理员)限定并且自动分配
给多个端点。下文参考图8进一步讨论限定模板分配策略。在一实施例中,可以将模板手动
分配给一些或所有端点,而不管标准如何。

在一个实施例中,可以根据模板应当被分配给端点的顺序来对数据流模板进行优
先级排序。这样的数据流可以嵌入智能变量。在一实施例中,模板可以进一步包含与附加设
备设置的配置相关的信息,例如备份设置、软件更新等。智能变量是在模板中限定的变量,
但是通过端点根据端点的局部环境来评估,使得它们在与不同端点交互时可以具有不同的
值。

端点使用其本地可应用的值来代替智能变量,以根据各自的数据流模板来实现端
点的配置。如果端点配置在层级中,则本地可应用的值可以取决于与本地端点和/或与层级
中的其他端点相关联的信息。此外,智能变量可以全局地限定,使得所有端点连接器能够评
估所有智能变量,或者可以限定为在范围里受限,使得仅某些端点连接器能够评估任何或
所有智能变量。

作为智能变量代替的非限制性示例,名为“{MYDOCUMENTS}”(我的文件)的智能变
量可以由设备所有者在他或她的端点设备上的“Documents”(文件)文件夹的正确文件扩展
名替代。然后可以使用正确的值,而不管用户的操作系统或配置。

模板分配单元830配置为将选择的模板及它们指定的端点连接提供给端点连接器
850。端点连接器850经由端点连接815将选择的模板和用户覆盖策略器840的用户覆盖策略
应用于每个端点。在一实施例中,模板分配单元830可以直接选择模板并将模板应用于每个
端点,而不是通过端点连接器850。用户覆盖策略器840由端点用来确定端点的所有者是否
以及如何覆盖所选择的模板。如果允许用户覆盖所选择的模板,则特定数据流可以由该所
有者在本地添加或更改。在一实施例中,管理系统800通信地连接到管理员控制台860,管理
员控制台860允许用户覆盖或限定错误模板,和/或控制模板选择。

图9示出了具有树形拓扑的文件协作网络900的示例性示图。在网络900中,单个云
存储系统(CSS)910经由连接920通信地连接到一个或多个端点930。在这个网络中,端点930
分层级地配置。因此,一些端点可以仅通过到其他端点的连接与CSS 910交互。在这种树形
协作网络中,数据流限制到一个数据流路径。例如,如果端点930仅通过另一端点930连接到
CSS 910,则发送到CSS 910或从CSS 910检索的数据必须流经另一端点930。相反地,在下文
中分别参考图10和图11进一步讨论的具有森林和图形拓扑的文件协作网络可以具有对于
任何给定端点可用的多于一个的潜在数据流路径。

图10示出了图解具有森林拓扑的文件协作网络的网络1000的图。在网络1000中,
云存储系统(CSS)1010-1和1010-2经由连接1020通信地连接到各种端点1030。此外,在该森
林型协作网络拓扑中,CSS 1010-1和CSS 1010-2经由互连链路1040通信地连接。互连链路
1040可以是允许往来于每个CSS 1010的数据通信的双向信任关系。或者,互连链路1040可
以是使得仅一个CSS 1010与另一个通信的一种方式。

CSS 1010-1和CSS 1010-2之间的链接允许每个云充当另一个云的云存储路由器。
结果,连接到一个云存储设备1010的端点1030可以直接(未示出)或间接地通过连接1020、
其他端点1030和/或通过CSS 1010来建立到另一个链接的CSS 1010的数据流。

还可以例如通过缓存、选择性同步或直接访问将数据流应用于入口之间的链路。
进一步地,每个CSS 1010可以实施对互连的云存储服务的用户可以访问哪些内容的控制。
借助于通过管理系统(例如,管理系统800(图8))选择的相应数据流模板,利用正确的数据
流来配置每个端点。

图11示出了根据实施例的具有图形拓扑的协作网络1100的示例性示图。在网络
1100中,如在森林网络拓扑中,每个CSS 1110可以直接地或经由连接1120间接地连接到多
个端点1130。在该实施例中,端点1130可以进一步经由连接1120互连,使得任何或所有端点
1130可以拥有到其相应CSS1110的多于一个的直接和/或间接连接。作为示例,如图所示,各
种端点可以直接通过端点1130和CSS 1110-1之间的连接1120和间接通过两个端点1130之
间的数据流1120与CSS 1110-1交互。

在一实施例中,该交互可以用于允许动态流量选择,以便根据流量效率选择用于
信息传送的最优数据流。流量效率可基于例如连接1120可用性和延迟的因素来确定。选择
最优流量通常将导致性能的优化和能量消耗的降低。通过设置数据流模板来执行数据流的
动态选择。

图12示出了用于使用在文件协作网络中的模板来建立数据流的方法的非限制性
和示例性流程图1200。在一实施例中,该方法通过数据流管理系统,例如,系统800来执行。

在S1210,接收端点初始化的指示。例如,当安装新的设置、软件、固件和/或硬件
时,端点被初始化。这种初始化可能会修改与端点相关联的元数据。在S1220中,从端点检索
端点的元数据,分析该端点的元数据,并与模板的选择标准进行比较,以为每个分析的端点
选择相关模板。元数据中的任何更改或新端点的元数据都保存在端点数据库中。在一实施
例中,该分析由如上文参考图1进一步讨论的模板分配单元(例如,模板分配单元130)执行。
如上所述,端点的元数据可以是但不限于端点类型、操作系统类型和版本、所有者组、端点
主机名等。

在S1230,确定用户(例如,系统管理员)是否可以覆盖模板并且手动地创建数据
流。该确定可以基于由用户覆盖策略器(例如,用户覆盖策略器840)实施的用户覆盖策略。
在S1240,响应于元数据分析或覆盖,选择适当的数据流模板并将其发送到端点。在下文中
参考图17进一步讨论模板的后续使用和数据流的创建。

作为非限制性示例,试图将数据保存到CSS的第一端点可以属于协作网络拓扑,该
协作网络系统是森林类型分级网络拓扑。在这样的示例中,两个或更多的云存储服务将通
信地连接,从而使得能够直接地或通过网络中的任何端点设备间接地访问任何链接的云存
储服务,受到通过管理系统施加的访问上的任何限制。这种拓扑可以进一步包括端点设备
之间的连接。在以示例性实施例中,模板可以由管理系统选择并提供给端点。

第一端点(例如,运行Windows 7操作系统的个人计算机)通过到第二端点(例如,
云存储网关)的连接间接地连接到CSS,其中第二端点通过连接(例如,因特网连接)连接到
CSS。在该示例中,第一端点也通过到第三端点(例如,另一个云存储网关)的连接间接地连
接到CSS,其中第三端点通过连接(例如,因特网连接)直接连接到CSS。分析第一端点的元数
据以确定选择哪个(哪些)模板。在该示例中,特定模板与Windows操作系统相关联。因此,由
于该端点使用Windows 7操作系统,所以选择了该模板。

此外,在该示例中,在用户覆盖策略中设置以确定用户是否可以覆盖所选择的模
板的条件是用户必须是管理员。确定用户不是管理员,因此将该确定的结果连同用户覆盖
策略和所选择的模板一起提供给端点。

图13示出了根据实施例的用于模板编辑器的用户界面的示例性屏幕截图1300。在
该实施例中,用户界面包括与端点设备同步的文件夹1310的列表。

用户可以点击添加按钮1320以将文件夹添加到同步内容的列表。

图14示出根据实施例的通过同步关系数据流的设置允许控制用户界面的屏幕截
图1400。在该实施例中,用户可以选择两个选项1410中的一个:将本地文件夹与云驱动器文
件夹同步,或者将本地文件夹与另一本地文件夹同步。如果用户选择将文件夹同步到另一
本地文件夹,则他或她将在文件扩展框1420中提供该另一文件夹的文件扩展名。在各种实
施例中,用户可以通过注意在排除框1430中的这些文件夹来选择从同步中排除一个或多个
子文件夹。

图15示出了示例性屏幕截图1500,该屏幕截图500示出了根据实施例的用于定义
模板分配协议的用户界面。在该实施例中,确定是否将模板适当地应用于端点的各种条件
被建立。条件管理控件1510允许用户添加新条件或选择现有条件进行修改。通过选择一个
或多个参数类型并限定相关性的条件来限定每个条件的相关性。在图15所示的实施例中,
已经选择了两个参数类型1520:端点设备的所有者以及端点设备的操作系统。每个参数类
型1520与条件语句1530相关联。条件语句限定端点设备与比较参数1540之间所需的关联。
如果条件语句1530为真,则为该端点选择在模板列表1550中注明的模板。在该实施例中,应
用多个条件语句以确定一个或多个相关模板。在进一步的实施例中,如果选择了多个模板,
则可以应用所有选择的模板,或者可以基于例如预先定义的条件进行确定。在各种实施例
中,如果所有条件语句都为假,则可以经由例如默认复选框1560使用默认模板。

作为非限制性示例,在该实施例中,应用于参数类型“owner”的条件“equals”意味
着所有者名称必须匹配要选择的模板“beta”的比较参数“example”。类似地,根据第二条
件,如果操作系统名称以开头,则将选择模板“TEMP-WIN7”。因此,具有
Windows的端点设备将有资格,并且将为该端点设备选择模板“eyal”。或者,如果用户没有
名称“example”并且正在使用例如Mac OS X操作系统来操作最终用户设备,则根据本实施
例将选择默认模板“beta”,因为用户不符合对于与模板相关联的任何条件语句。

图16示出了其中可以应用所公开的实施例的系统1600的示例性且非限制性的示
意图。系统1600包括连接到局域网(LAN)1630的多个端点1610-1到1610-N和一个或多个网
络连接的存储设备1620,局域网(LAN)1630可以是无线或有线网络。设备1620通过网络1650
连接到云存储服务(CSS)1640。CSS 1640包括便于设备1620和存储设备1642(例如磁盘驱动
器和/或SAN/NAS设备),比如EMC Atmos或OpenStack的本地对象存储系统(未示出)之间的
连接的多个云连接器1641,以及到公共云存储提供商1643(例如,亚马逊网络服务、IBM
SmartCloud等)的连接。

设备1620是与云存储服务集成的启用云的存储设备。在共同未决的专利申请12/
641,559中公开了这样的装置的示例,该专利申请被转让给共同受让人,并且在此通过引用
将其全部内容并入本文。设备1620也是CSS 1640的端点。

端点1610可以是执行软件代理的端点,软件代理可以远程访问存储在CSS 1640或
云启用存储设备1620中的文件,例如使用转让给共同受让人的共同未决专利申请13/205,
238中描述的方法,在此通过引用将其全部内容并入本文。云存储中的文件夹能够通过客户
端的许多不同用户访问。

在一实施例中,集中式数据流管理系统1644合并到CSS 1640中。在另一个实施例
中,集中式数据流管理系统1644集成在一个或多个云连接器1641中。

图17是根据实施例的用于使用数据流模板来创建和利用数据流的方法的示例性
和非限制性流程图1700。在S1710,从管理系统(例如,管理系统1644)接收数据流模板。在
S1720,检查用户是否满足覆盖所接收的模板的标准。如果是,则继续执行S1730;否则,继续
执行S1740。在一实施例中,可以基于通过管理系统做出的确定来进行该检查。

在S1730,根据用户可以覆盖所选择的模板的确定,提示用户进行手动数据流输
入。在一实施例中,被允许基于用户覆盖策略覆盖模板的用户仍然可以选择使用接收到的
模板。在另一实施例中,用户可以在决定是否手动输入数据流之前查看模板。

在S1740,在应用模板或手动数据流条目时,经由在所有相关端点设备中的每个可
应用模板或条目中定义的端点之间的连接来创建数据流。在S1750,与所创建的数据流相关
联的任何智能变量适当地替换为与每个端点设备相关的本地可应用的值。在S1760,通过所
建立的数据流来保存或检索所请求的数据。

作为非限制性示例,可以将用户覆盖策略以及数据保存到CSS的请求与第一端点
的元数据各自的模板一起提供。当确定用户可以不覆盖所提供的模板时,根据模板创建数
据流。任何智能变量用相关的局部变量替代,且端点通过建立的数据流将数据保存在CSS
中。

这里的各种公开实施例,可以通过硬件、固件、软件、或者上述任意组合实现。此
外,软件优选在程序存储单元或者有形计算机可读介质上作为有形实施的应用程序执行,
所述可读介质由部件或者某些设备和/或是设备组合构成。该应用程序可以上传至包含任
意合理结构的机器上,并在其上执行。优先地,该机器在拥有硬件的计算机平台上执行,所
述硬件如一个或多个中央处理器(“CPU”)、一个存储器以及输入/输出接口。计算机平台还
可以包括操作系统和微指令代码。本文描述的多个过程和功能可能是微指令的一部分或者
应用程序的一部分、或者是上述组合,不管这些计算机或者处理器是否明确示出,都能够通
过CPU执行。此外,各种其它外围单元可以连接到计算机平台,例如附加数据存储单元和打
印单元。进一步讲,非暂时性计算机可读介质是指除瞬时传播介质信号以外的任何计算机
可读介质。

本文所述的所有示例和条件语言旨在用于教导目的,以帮助读者理解本发明的原
理和发明人为促进本领域所贡献的概念,并且应当解释为不对此类具体引用的实例和条件
做出限制。此外,本文中叙述的本发明的原理、方面和实施例以及其具体示例的所有陈述旨
在包括其结构和功能等同物。另外,这样的等同物旨在包括当前已知的等同物以及将来开
发的等同物,即,开发的执行相同功能的任何元件,而不管结构如何。

用于在云存储系统中路由数据流的方法和系统.pdf_第1页
第1页 / 共29页
用于在云存储系统中路由数据流的方法和系统.pdf_第2页
第2页 / 共29页
用于在云存储系统中路由数据流的方法和系统.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《用于在云存储系统中路由数据流的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于在云存储系统中路由数据流的方法和系统.pdf(29页珍藏版)》请在专利查询网上搜索。

提供了一种利用云存储系统允许存储服务的系统、方法和计算设备。该方法包括动态地选择在云存储系统(CSS)和计算设备之间的最佳路由,其中CSS在地理上远离计算设备;以及基于所选择的最佳路由,在所述CSS与所述计算设备之间建立数据流,其中所述数据流被建立以允许至少一种与所述CSS相关的存储服务。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1