首页> 中国专利> 控制存储系统中区域存储中心间的数据存储的方法和装置

控制存储系统中区域存储中心间的数据存储的方法和装置

摘要

本发明提供了一种用于控制通过全球存储系统中的网络可操作地耦合的多个区域存储中心中的数据存储的方法。所述方法包括以下步骤:定义至少一个规则集用于确定所述至少一个数据集的存储位置;通过在全球存储系统运行的一个或多个数据请求实体获取关于所述至少一个数据集的需求的信息;并且根据所述规则集,确定关于在拥有可利用资源的区域存储中心中所述数据集的存储位置的信息,所述可利用资源减少所述数据集在服务至少一个指定的数据请求实体时穿越的总距离,和/或减少所述数据集传递到所述指定的一个数据请求实体的延迟。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-07

    授权

    授权

  • 2014-07-16

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20131129

    实质审查的生效

  • 2014-06-18

    公开

    公开

说明书

背景技术

本发明大体上涉及电气、电子和计算机领域,更具体地,涉及数据 存储和分布。

随着网络连接和云计算的广泛使用,数据或其它内容不再局限于驻 留于本地存储设备上。相反,一个新的趋势(尤其是对于在多个用户之 间共享的数据)是利用服务器的大型分布系统,通常被称为内容分发网 络(CDN),所述内容分发网络通过互联网部署于全球多个数据中心, 用于有效地把内容提供给终端用户。CDN供应目前可以利用的互联网内 容的很大一部分,包括网络对象(例如文本、图形、网址和脚本)、可下 载的对象(例如媒体文件、软件、文档)、应用程序(例如电子商务、门 户网站)、流媒体直播、流媒体点播、社交网络等等。为了使这些提供的 内容具有高可用性和高性能,物理数据通常需要在网络内被复制。

目前,为有效分配而复制的一些数据由嵌入在互联网中的代理缓存 处理。代理缓存将分配例如视频内容到所选区域。在这种情况下,同样 一份只读数据(例如视频数据)的多个副本位于分散在世界各地的代理 缓存中。每一个代理缓存分配请求的数据到它的区域客户,从而减少网 络流量拥塞、延迟和功耗。然而,尽管只读数据的副本一般能够通过世 界各地不同的代理缓存直接传播,但是读出/写入数据却不是这样的。

发明内容

本发明的实施例提供了一种能有益地减少网络流量拥塞、功耗和/ 或在云计算环境下的数据存储、管理和传输的成本的设备。

根据本发明的一个实施例,提供了一种用于控制在通过全球存储 系统中的网络可操作地耦合的多个区域存储中心之间的数据存储的 方法。该方法包括以下步骤:定义至少一个数据集,该数据集包括存 储在全球存储系统中的数据的至少一个子集;定义用于确定将至少一 个数据集存储在什么位置的至少一个规则集;通过在全球存储系统中 运行的一个或多个数据请求实体获取关于对至少一个数据集的需求 的信息;以及根据至少一个规则集,确定关于在拥有可利用资源的多 个区域存储中心之间用于存储至少一个数据集的位置的信息,该位置 减少至少一个数据集在服务一个或多个数据请求实体中的至少一个 时穿越的总距离,和/或减少至少一个数据集传递到一个或多个数据请 求实体中的至少一个的延迟。

根据本发明的一个实施例,提供了一种用于控制在全球存储系统中 通过网络可操作地耦合的多个区域存储中心之间的数据存储的方法,该 方法包括以下步骤:接收对包括存储于全球存储系统中的数据的至少一 个子集的至少一个数据集的请求;接收用于确定将至少一个数据集存储 在什么位置的至少一个规则集;通过在全球存储系统中运行的一个或多 个数据请求实体获取关于对至少一个数据集的需求的信息;以及根据至 少一个规则集,确定关于在拥有可利用资源的多个区域存储中心之间用 于存储至少一个数据集的位置的信息,该位置减少以下至少一个:至少 一个数据集在服务一个或多个数据请求实体中的至少一个时穿越的总距 离,以及至少一个数据集传递到一个或多个数据请求实体中的至少一个 的延迟。

根据本发明的一个实施例,提供了一种用于控制在全球存储系统中 通过网络可操作地耦合的多个区域存储中心之间的数据存储的装置,该 装置包括:配置为定义至少一个数据集的模块,该数据集包括存储在全 球存储系统中的数据的至少一个子集;配置为定义至少一个规则集的模 块,该规则集用于确定将至少一个数据集存储在什么位置;配置为通过 在全球存储系统中运行的一个或多个数据请求实体获取关于对至少一个 数据集的需求的信息的模块;和配置为,根据至少一个规则集,确定关于 在拥有可利用资源的多个区域存储中心之间用于存储至少一个数据集的 位置的信息的模块,其中该位置减少以下至少一个:(i)至少一个数据 集在服务一个或多个数据请求实体中的至少一个时所穿越的总距离,以 及(ii)至少一个数据集传递到一个或多个数据请求实体中的至少一个的 延迟。

根据本发明的一个实施例,提供了一种用于控制在全球存储系统中 通过网络可操作地耦合的多个区域存储中心之间的数据存储的装置,该 装置包括:配置为接收对包括存储于全球存储系统中的数据的至少一个 子集的至少一个数据集的请求的模块;配置为接收用于确定将至少一个 数据集存储在什么位置的至少一个规则集的模块;配置为通过在全球存 储系统中运行的一个或多个数据请求实体获取关于对至少一个数据集的 需求的信息的模块;和配置为根据至少一个规则集,确定关于在拥有可 利用资源的多个区域存储中心之间用于存储至少一个数据集的位置的信 息的模块,该位置减少以下至少一个:至少一个数据集在服务一个或多 个数据请求实体中的至少一个时穿越的总距离,以及至少一个数据集传 递到一个或多个数据请求实体中的至少一个的延迟。

通过以下对本发明解说性实施例的具体介绍并结合附图,可以清楚 本发明的这些和其它特征和优势。

附图说明

以下附图仅以示例的形式描述了本发明,且不受此局限,其中在这 些示例中相同附图标记(若有使用)在所以图中指代相同部件,其中

图1表示根据本发明一实施例的云计算节点;

图2表示根据本发明一实施例的云计算环境;

图3表示根据本发明一实施例的抽象模型层;

图4表示根据本发明一实施例的概念视图,描述一个示例性全球存 储系统(即,云)的至少一部分,说明了第一个数据集迁移场景;

图5表示根据本发明一实施例的流程图,描述管理数据迁移的示例 性方法的至少一部分;

图6表示根据本发明一实施例的概念视图,描述一个示例全球存储 系统的至少一部分,说明了第二个数据集迁移场景;

图7表示根据本发明一实施例的流程图,描述管理数据集迁移的示 例性方法的至少一部分,所述方法评估用户(例如实体或个人)的物理 移动;

图8表示根据本发明一实施例的方框图,描述对全球存储系统适用 的示例性区域存储中心的至少一部分;

图9表示根据本发明一实施例的方框图,描述示例全球存储系统的 至少一部分;

图10表示根据本发明一实施例的概念视图,描述根据数据类型的 示例性先验数据集的迁移决定;

图11表示根据本发明一实施例,概念性地描述了利用在图10中定 义的示例性数据类型形成示例性数据迁移政策;

图12表示根据本发明一实施例,概念性地描述了一些示例属性, 这些属性被用于数据集迁移确定;

图13和图14表示根据本发明的替代实施例的概念视图,描述示例 全球存储系统的至少一部分,说明了带有数据镜像的示例性数据集迁移 场景;

图15和图16表示根据本发明的替代实施例的概念视图,描述示例 性全球存储系统的至少一部分,说明了多用户示例性数据集迁移场景;

图17是方框图,描述其中实施了本发明的实施例的示例性数据处 理系统的至少一部分。

应该理解为,为了简单清晰,附图中的部件被阐明了出来。在一个 商业上可行的实施例中有用或者必要的普通但是易理解一些部件并未描 述出来,以为了更好地理解这些示例性实施例。

具体实施方式

本发明的各个方面将在一个示例机制的语境中来说明,以便于读出 /写入数据在内容存储、管理和传输网络中跨多个数据存储中心的管理和 /或分布。然而,应该理解为,本发明并不局限于本文中的示例性的展示 和描述的具体装置和/或方法。本发明也不局限于能够从本发明的实施例 中得到好处的应用类型。相反,本发明的实施例针对更广泛的技术,用 于减少网络流量拥塞、功耗和/或在云计算环境下的数据存储、管理和传 输的成本。此外,在不偏离所说明的实施例的范围的情况下,对于本技 术领域的技术人员来说,对实施例的很多修改将是显而易见的。也就是 说,关于这里描述的具体实施例,不应该设定或推测任何限制。

首先,这里将提供说明书中所使用的一些术语的定义。具体地,这 里使用的术语“数据集”一般广泛地指数据的集合,所述集合在其生命 周期作为一个单元被管理,并且可以作为一个单元从一个存储中心迁移 到另外一个存储中心。多个文件、对象和/或其它技术存储单元可以被纳 入一个数据集。类似地,单个文件也可以分布在多个数据集。数据集的 例子包括但不局限于单个文件、文件集合、单个或多个文件的一部分、 数据库、一个或多个逻辑卷、一个或多个卷组、虚拟机等等。本文所用 的术语“距离”一般广泛地指网络距离,而不是地理距离。

两个位置之间的网络距离例如可以理解为下面所述的一个或多个: 两个地点之间以公里为单位计算的最短物理网络线路距离;两个位置之 间最大网络带宽的倒数(即,如果没有其它流量存在的话),或者给定类 型(即,额定的或被观察的)的其它数据流量的平均带宽的倒数;数据 包在两个位置之间转移的周转时间,即,数据包从一个位置传送,经过 其到达另一个位置,直到在前一个位置收到数据包的到达收条所用的时 间(同样,在最好的情况下,即没有其它流量存在,或平均值);两个位 置之间的网络成本(例如,每兆字节(MB)的成本);延迟(者两个地 点之间单程网络流量在最好的情况下或平均用时);两个位置之间例如发 送每兆字节的网络能耗;或者在其它定义中,以上所述的一个或多个结 合(可以加权)。在这些网络距离的概念中,通常存储提供商可能不知道 网络所用的电力,然而成本却可以代替使用,因为网络供应商通常计算 电力花费。因此,在数据存储系统的语境下减少(例如最小化)网络距 离的概念通常广泛地指优化存储系统的一个或多个与网络相关的特性, 而不仅仅是使两点之间的地理距离最小化。

本发明的实施例可以很好地应用于云计算架构中,云计算是一种服 务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访 问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少 的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务 器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至 少五个特征、至少三个服务模型和至少四个部署模型。

云模式的特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的 情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算 能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种 标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移 动电话、膝上型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户 (multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和 虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并 不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例 如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力, 以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部 署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数 量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、 带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化 资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费 者双方提供透明度。

服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础 架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基 于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用 户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操 作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署 消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和 工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存 储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境 配置可能也具有控制权。

基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其 中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其 他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对 操作系统、存储和其部署的应用具有控制权,对选择的网络模块(例如 主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组 织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例 如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可 以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或 外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组 织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体 云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用 能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突 发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块 性和语意的互操作性。云计算的核心是包括互连节点网络的基础架构。

现在参考图1,其中显示了云计算节点的一个例子。图1显示的云 计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例 的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现 和/或执行以上所述的任何功能。

云计算节点10具有计算机系统/服务器12,其可与众多其它通用或 专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务 器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人 计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设 备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电 脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云 计算技术环境,等等。

计算机系统/服务器12可以在由计算机系统执行的计算机系统可执 行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括 执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、 模块、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络 链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云 计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存 储介质上。

如图1所示,云计算节点10中的计算机系统/服务器12以通用计算 设备的形式表现。计算机系统/服务器12的模块可以包括但不限于:一 个或者多个处理器或者处理单元16,系统存储器28,连接不同系统模块 (包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者 存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结 构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限 于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增 强型ISA总线、视频电子标准协会(VESA)局域总线以及外围模块互 连(PCI)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这些 介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包 括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质, 例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统 /服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计 算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、 非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中 未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁 盘驱动器,以及对可移动非易失性光盘(例如CD-ROM、DVD-ROM或 者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通 过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少 一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些 程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储 在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者 多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某 种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述 的实施例中的功能和/或方法。

计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、 指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计 算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器 12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制 解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。 并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个 网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特 网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器 12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模 块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设 备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动 器以及数据备份存储系统等。

现在参考图2,其中显示了示例性的云计算环境50。如图所示,云 计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的 一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理 (PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计 算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于 如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个 或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。 这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境 50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服 务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性 的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络 可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

现在参考图3,其中显示了云计算环境50(图2)提供的一组功能 抽象层。首先应当理解,图3所示的模块、层以及功能都仅仅是示意性 的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:

硬件和软件层60包括硬件和软件模块。硬件模块的例子包括:主 机,例如IBMzSeries系统;基于RISC(精简指令集计算机)体系 结构的服务器,例如IBM pSeries系统;IBM xSeries系统;IBM BladeCenter系统;存储设备;网络和网络模块。软件模块的例子包括: 网络应用服务器软件,例如IBM WebSphere应用服务器软件;数据库 软件,例如IBM DB2数据库软件。(IBM、zSeries、pSeries、xSeries、 BladeCenter、WebSphere以及DB2是国际商业机器公司在全世界各地 的注册商标)。

虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子: 虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操 作系统,以及虚拟客户端。

在一个示例中,管理层64可以提供下述功能:资源供应功能:提 供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计 量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提 供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功 能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。 用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务 水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。 服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资 源未来需求提供预先安排和供应。

工作负载层66提供云计算环境可能实现的功能的示例。在该层中, 可提供的工作负载或功能的示例包括:地图绘制与导航;软件开发及生 命周期管理;虚拟教室的教学提供;数据分析处理;交易处理;以及移 动平台。为了减少计算机系统的网络流量,期望将不同的(例如区域的) 存储中心聚集到全球存储云(或系统),所述全球存储云(或系统)可以 是在一个企业的内部,也可以是在由一个公共云提供商提供的所有云部 件的内部,或者是在多供应商组织的内部。可以通过将选择的数据随时 间从这样一个全球存储系统中的一个存储中心迁移到另外一个存储中心 来降低数据存储、管理和传输的成本。根据本发明的实施例,可以控制 不同区域存储中心之间的数据存储、传输和管理的方法,以有利地优化 全球存储系统的一个或多个特性(例如减少网络流量、成本、延迟、功 耗等等)。

例如:当(i)新的或旧的商业使得它们的企业增长并将这些企业传 播到全球各地时,以及当(ii)受欢迎的女主角或文化偶像席卷区域人口 时,对数据集的需求将会跨区域波动。为了把情况(ii)阐述的更加清楚, 仅通过例子的方式考虑下列情况:首先,费城人民开始经常光顾当地的 一个摇滚乐队,数月后,伦敦人民听到这种新的音乐风格,并且被这种 音乐强烈吸引,并且最终随着该乐队吸引更多的国际关注,布拉格的人 民为这支新乐队举办了一场音乐会,与此同时,该乐队引起了国际轰动。 随着该乐队的流行度扩散,对该乐队的信息需求也在扩散。在这些情况 下,其中,每一个数据集都应该随着时间的步骤,在理想情况下迁移到 例如消费者需求重心的位置(在每一个时间间隔处)。因此,本文中所用 的术语“重心”连同指定的数据集的数据存储、管理和传输,通常指在 全球存储系统的存储中心的位置,该位置能够最大限度的减少该数据集 在服务其预期的一个或多个终端用户时所穿越的总距离。

更详细地,给出为任意两个地点l1和l2定义一个特定的网路距离函 数概念d(l1,l2)的具体选择。进一步,给出在地点L的数据集S、时间段 T以及数据集S在时间段T的预期或真正使用模式。例如,可以以列表 或矩阵((l1,a1),(l2,a2),...,(ln,an))的形式描述这样的使用模式,其中l1,..., ln指距使用完成位置的位置,并且a1,...,an指各自数据传输的数据量(如, 以兆字节(MB)为单位)。那么在时间段T内数据集S穿越的总距离的 初步定义可以被确定为:D=a1·d(l1,L)+...+an·d(ln,L)。当我们还没有 固定数据集S的位置L时,通过在时间段T内的数据集S的重心,给出 该使用模式,我们定义了对其值D是最小值的位置L。通常,位置L是 独一无二的,但理论上可以有不止一个重心。位置L可能局限于在该处 整个存储系统(如,云)有存储中心的这些位置。因此,重心可以被定 义为位置L*,这样,对于每个其他可能的位置L,有a1·d(l1,L*)+...+ an·d(ln,L*)≤a1·d(l1,L)+...+an·d(ln,L)。

网络距离所用的特定定义通常会影响到要优化的网络特性。例如: 如果把网络距离定义为纯距离或者成本,那么上述重心的定义就是以上 限定的字面上的意义。在这种情况下,目标被最小化或者在其他情况下 减少数据传送包括潜在迁移的距离的总距离或成本。换句话说,如果在 给定的或估计的使用模式的时间段T之前,数据集D就位于位置L′,那 么对于该时间段,迁移数据集D到其重心L*就不一定是最优的。可能 需要考虑到数据集的自身迁移。如果数据集的大小以兆字节(MB)为 单位是b,并且数据集存储于位置L′(如:迁移之前存储中心的位置), 那么我们所寻找的位置L^对于每个其他可能的位置L(正如前面定义 的)就有:a1·d(l1,L^)+...+an·d(ln,L^)+b·d(L′,L^)≤a1·d(l1,L)+...+ an·d(ln,L)+b·d(L′,L)。在某些情况下,可以用于数据集自身迁移的网络 距离的不同测量结果可以用不同的方式计算,或者完全没有;例如,周 转时间或延时对迁移而言就被认为不重要。

假设一个或多个不同的需求场景,这种数据传送的计算可能包括缓 存的评估。在这种情况下,在考虑缓存时,重心可能被相反的定义为将 生成的流量或成本最小化。因此,根据一个实施例,代替将数据集的位 置L到网络距离的加权和最小化,位置L到所有用户的最小生成树的大 小被优选地计算,其中,生成树选自的图中的节点是可能的缓存、用户 位置以及数据集位置,而且,给出使用模式,用它们的网络距离与流过 它们的数据量的乘积来对图的边缘进行加权。生成树分析是众所周知的 技术,并且因此本文将不就其具体细节进行展示。

如果把网络距离定义为周转时间,那么目标可以是最小化所有用户 的最大周转时间,而不是增加周转次数。因此,对于这种情况,重心的 另一种定义是位置L*使得对于每个其他可能的位置L,有max(a1·d(l1, L*),...,an·d(ln,L*))≤max(a1·d(l1,L),...,an·d(ln,L))。在此定义中,可能 还省略了加权因子a1,...,an(他们代表以MB为单位的数据量),或者用 不同的数据传输编号c1,...,cn代替这些加权因子,这取决于如何评估用 户的等待次数。

如果把网络距离定义为带宽的倒数(对于含有大型项目的数据集这 可能是合适的),重心的基本定义再一次成为首选。如果关键目标是最小 化用户的等待时间直到数据传送完成,那么甚至可以选择迁移到重心, 而不用考虑迁移距离。例如:如果用户U1,…,Un在时间段T内从该数 据集取得a1,…,an兆字节数据,而且如果用户可以利用的带宽分别是 B1,…,Bn兆字节/秒,那么每一个用户Ui将会有ai/Bi秒的等待时间,而 且,最小化所有用户的这些等待时间的总和是合理的,对于把网络距离 定义为1/Bi的定义,等待时间也确实是重心的定义。

确定在数据集重心定义中假设的使用模式的第一个方法是评估数 据集最近在不同地区出现的需求(如由消费者或人们引发)。确定使用模 式的第二种方法是评估居住在与该数据集有联系的存储云基础设施之外 的人员和实体的移动。本发明的实施例也同样考虑了其它确定数据集重 心的方法,在这里的教导的启示下,对于本领域的技术人员来说这是显 而易见的。

关于确定使用模式的第二种方法,如果某些类型的数据集属于用户 或者实体,而且主要是由它们的一个或多个拥有者使用,那么如果由区 域数据中心服务的用户或实体更永久性地移动到了一个新的地理区域, 那么在那一时间段,把他们的数据集和他们一起移动到离他们新的位置 最近的区域存储中心是有益的。在其他益处中,本地访问数据有减少网 络延迟、拥塞和功耗等益处。然而,如果用户或实体的移动只是暂时的 (如度假或短期商务旅行),那么相反的情况可能为真。

正如将在下面详细介绍的一样,本发明的实施例提供了一种方法, 该方法用于管理数据的大部分自动化复制和迁移,以提高全球系统的其 他系统特性中的整体效率和弹性。考虑到数据的生成、使用和退役在时 间和空间上横跨构成这样的系统的区域存储中心而改变,这是尤为重要 的。

图4是表示根据本发明一实施例的概念视图,描述了示例性全球存 储系统(例如云)100的至少一部分。存储系统100进行操作以管理多 个存储中心之间数据集的迁移和/或复制,这些多个存储中心服务于不同 地理区域,然而仍然一同作为单个全球存储云服务发挥作用。应该强调 的是,参照确定使用模式的第二种方法描述的人和实体都在存储系统 100之外。他们可能触发在存储系统内部的动作,但是他们不是所述存 储系统定义的正式部分。

一般而言,在其他因素中,数据集的迁移和/或复制可能由以下几个 引起:(i)跨越地域和它们的生命周期的对数据集的需求的增长和萎缩; (ii)用户或实体移进或移出给定地理区域;(iii)网络距离的变化;和/ 或(iv)区域数据中心容量的增加或减少。全球存储系统100包括本地 (即,区域)存储中心、网络(例如,互联网)以及多个数据请求实体。

参考图4,全球存储系统100包括多个存储中心102、104和106, 存储中心102、104和106中的每一个都能够通过网络108或另一替代通 信方式彼此沟通。存储中心可以存在于全球各地的不同的地理位置L。 结合术语“重心”的讨论,L先前被定义为“对于每个其它位置L”。在 本语境中,L是代表系统100中的每一个存储位置的位置的变量。

在此实施例中,网络108从概念上示出为通过相应的固定(有线) 连接(例如,光学的、铜、电缆等),与各个存储中心102、104和106 耦合,尽管本发明的实施例类似地考虑了以常规方式利用无线通信方式 (例如,微波、红外、射频(RF)等)建立一个或多个连接。更准确地 说,连接是抽象网络的一部分;例如,连接可以是互联网,或者包括在 区域存储中心中的公共网络和本地内部互联网。网络108可能包括一个或 多个软件或硬件操作监视器109,其可进行操作以监视网络的一个或多个 特性。例如,操作监视器109可以配置为广播网络的状态、宽带容量、当 前平均带宽、周转次数、和/或其它数据,这些数据对确定网络距离很重 要,因此对于确定数据集的最终重心和迁移策略也很重要。

存储中心102、104和106各包括有存储器和控制器。更具体地,存 储中心102包括持久(即,非易失性)存储器110和能和存储器110可操作 地耦合的控制器112。存储中心104包括持久存储器114和能和存储器114 可操作地耦合的控制器116。同样,存储中心106包括持久存储器118和能 和存储器118可操作地耦合的控制器120。注意,存储器可以物理上分布 于多个存储设备,而这些存储设备也可以拥有各自的低等级控制器。这 就是大规模存储系统和数据中心的现有技术状态,并且没在图中详细表 述。每个存储中心的控制器优选地包括自动迁移系统逻辑,其可操作地 控制存储于相应存储器中的一个或多个数据集的迁移。

存储于一个存储中心102的存储器110中的数据集121A可以随着时 间迁移,使得该数据集移到不同的区域存储中心104,并且在该处保持在 存储器114中。数据集的适时位置由用于数据集的符号121A和121B来表 示。在迁移之前,数据集是121A;迁移之后,同一个数据集则表示为121B。

系统100包括位于不同的地理位置的多个用户和/或其它实体,本文 中一般广泛地将它们称作数据请求实体(DRE)122、124、126、128、 130、132、134和136。每DRE经由网络108通过建立在它们之间的相应连 接(例如123、125、129、131和133)通信。尤其,DRE能通过网络108 与存储中心102、104和106中的一个或多个通信。

用于确定地理数据迁移的系统100的各方面可以通过考虑两个示例 性情况以及每一个情况如何需要一组特定的构造元素来支持迁移决定来 理解,其中在这两个示例性情况中,迁移可以被保证。仅作举例但不受 此局限地,图4中描述的第一种迁移情况(情况1)通过发起对于数据集 的请求并连接到网络108(如互联网)的确定装置(DRE)的地址(如 互联网协议(IP)地址)来评估每一个数据集的区域需求。在装置(如 移动装置、手机等)发生移动的场景中,该装置的位置仍然可以例如根 据呼叫或是数据集请求从其起源的蜂窝电话服务提供商或互联网服务提 供商(ISP)来确定,该场景可视为属于情况1。

如前所述,情况1强调了图4示出的全球存储系统100的构造方面, 这些构造方面能够例如通过记录数据集每一个数据请求实体的地址(如: IP地址)来衡量对数据集的需求,由此一起衡量对该数据集的需求。在 这个例子中DRE是物理地连接到网络108的“固定”设备,,尽管DRE 并不局限于是固定的(如在移动用户或实体的情况下)。相反或除了使 用IP地址外,可以使用更高等级的地址,例如,如果对于使用数据集的 验证需要用户的ID,则可以使用用户的ID。在每种情况下,从地址到位 置优选地有映射,因此网络距离可以根据最初为地址收集的用户模式计 算出来。对IP地址而言,根据互联网服务提供商(ISP)的位置以及大型 企业网络的位置,这样的映射在互联网上极为可用。对于更高等级的地 址而言,到位置的映射可以由用户向全球存储系统的注册来给出(例如, 如果用户需要输入他们的家庭地址)。

如果属于某个小的集合r1,...,rN的用户位置是抽象的(即,我们没 有把每一个用户和他们的确切物理位置li相关联,而是仅仅把r1,...,rN的 集合中一个极为接近用户的位置和该用户相关联),那么我们就可以讨 论“区域”了——和位置rj相关联的所有用户和实体被认为属于区域Rj。 例如,如果用IP地址来确定位置并且该位置仅能够被了解到用户的互联 网服务提供商位置为止,这就可以得到实现——那么所述位置可以被选 为互联网服务提供商的位置,并且由一个互联网服务提供商服务的所有 用户属于同一个区域。区域的概念会在下文中进一步使用(如在与图4 类似的后面的图(如图6)中得到明确添加),以让物理地理变得更加清 晰。不应该认为这种区域标志仅局限于本发明的实施例中。

在用较高水平地址的情况下,全球存储系统100也可以界定用户等 级的不同重要性(如根据服务水平协议(SLA)或者不同优先级的定价), 并且利用对不同水平需求的加权模式。换句话说,如果根据所述方案, 处于位置li的用户Ui的权重为wi,并且如果不使用重心的基本定义,那么 代替的位置L*对于每个其他可能的位置L有:w1a1d(l1,L*)+...+ wnand(ln,L*)w1a1d(l1,L)+...+wnand(ln,L)。

图5表示根据本发明一实施例流程图,描述管理数据迁移的示例方 法200的至少一部分。根据本发明的实施例,方法200使用区域需求来判 断是否迁移数据集,尽管其他的或额外的因素也可以用在这种判断中。 方法200包括定义一个或更多规则集202(如:选择距离概念等),以及 定义数据集204,所述两个步骤都在该方法操作前执行。这里使用的术语 “规则集”通常指任何标准(如规则、指令、政策等等),这些标准可 以用来判断是否执行和/或如何执行规定的一个或多个行动。规则集可能 包括一个或多个规则。定义一个或多个规则集202可能包括例如定义用来 确定将数据集存储在什么位置的优化特征。在操作期间,方法200进行操 作以收集关于步骤206中数据集的需求信息,而且,根据需求信息,在步 骤208中确定请求数据集的重心。在步骤210中,基于至少部分收集到的 信息以及重心,判断数据迁移是否值得。如果判断为数据迁移是不值得 的,方法200在步骤206中继续以收集需求信息。或者,如果在步骤210 中判断为数据迁移是值得的,方法200继续在步骤212中迁移数据集,然 后该方法在步骤206中得以继续。

图6表示根据本发明另一实施例的概念视图,描述一个示例性全球 存储系统(如云)300的至少一部分。在图6中,可以把由全球存储系统 服务的地理区域划分为多个区域,从1到N,其中N是整数。不应认为这 种详细的划分是局限性的。区域可以是不重叠的地理位置(即区域): 分别为区域1、区域2、区域3,直到区域N,其中N是整数。然而,在其 他实施例中,一个区域的至少一部分可能与一个或多个区域的至少一部 分相重叠。区域可以被用来指具体的地理位置,也可以被用来暗示更多 各种用于捆绑(bundling)的机会。

如前所说明的,术语区域可以用来指许多人聚集到可以识别的IP地 址中:例如,如果利用IP地址来识别位置,并且这些位置仅仅能够被了 解到用户的互联网服务提供商的位置为止,这就可以得到实现,——那 么所述位置可以被选为互联网服务提供商(ISP)的位置,并且由一个互 联网服务提供商服务的所有用户属于同一个区域。术语区域也可以描述 IP地址、DNS名称或独立的DRE地址的更高等级的聚合体。这样的聚合 体能够导致少量的区域(Rj)被分配在全球存储系统100或300内。随着 区域(Rj)减少,更少的关联位置(rj)必须得到保留以描述时间段T内 对数据集需求。随之,与特定数据集的存储元数据相关联的存储器大小/ 成本可以因此减少。由此,应该理解的是,本发明的实施例并不受限于 示出的特定区域数目或结构。也应该理解,根据本发明的实施例,本质 上能够想到全球存储系统100或300的任一数目或区域结构。

更详细地,图6阐述了第二种数据迁移情况(情况2),该情况把一 个或多个实体(如公司或一群人人)或人们的更加永久的物理迁移分别 与他/她或他们的数据集相关联。与情况1形成对照,在情况2中,考虑到 了数据集的所有权概念,数据集的所有权必须让全球存储系统300知晓, 所以“他/她或他们的数据集”的概念得到了明确的定义。而且,在该方 法中,假设一个或多个数据集的所有者是所述数据集的一个或多个关键 用户,因此需要考虑一个或多个所有者的位置,以确定数据集的最佳位 置。在一些情况下,数据集的所有权关系可能是固定的,但是在其它情 况下可能是变化的,例如公司员工的角色变化。

应该理解的是,可以使得情况1和情况2二者具有区域和不具有区 域。因此,尽管图4描述了不具有区域的情况1,图6描述了具有区域的情 况2,本发明的实施例并不局限于这些说明性的场景,如对于本领域的技 术人员而言在此教导下显而易见的。例如,本发明的实施例仔细考虑了 其中情况1具有区域的场景,或者其中情况2不具有区域的另外一个场景 这些其它场景类似地在本发明的实施例的范围内。

就像在图4中示出的全球存储系统100一样,全球存储系统300包括 通过网络108通信的多个区域存储中心102、104和106,以及多个位置监 测装置(如手机信号发射塔)302、304、306、308、310、312、314、316、 和318。系统300还包括一个或多个位置显示装置320,该装置可以是例如 与移动用户或实体连接的手机。在该装置是手机的情况下,位置显示装 置320可能不仅仅显示用户322的位置,还可以用作移动数据请求实体(移 动DRE)。该移动数据请求实体通过蜂窝塔(cell tower)与潜在的硬连 接网络连接(正如位置监测装置所示)。

更准确地,根据本发明一示例性实施例,位置显示装置320也有拥 有者,所以该装置的当前位置被假定与其拥有者的当前的位置相同。如 果用户希望利用所述方法,装置320设置为允许转发其位置。一个或多个 位置监测装置302、304、306、308、310、312、314、316和/或318可以 追踪位置显示装置320的位置,并且在全球存储系统中报告其位置。位置 显示装置也可以配置为服务多个和/或变化的用户。而在另一个极端,位 置显示装置可以是用户或实体322的他/她/它本身,正如图6中附图标注 “我已经移动到……”所示的那样。如前所解释的,可以把由全球存储 系统300服务的地理区域划分为多个区域,从1到N,N是整数。再一次, 此处使用区域而不是准确位置的动机与情况1中的动机一样;即,有可能 无法获得精确位置信息(如作为位置监测装置的蜂窝电话塔可能只转发 它自己的位置,所以它定义了一个区域),或者,处理(区域的)若干 位置而不是数量众多的所有可能位置会更加容易,至少更容易计算。

在图6所示的例子中,区域1包括区域存储中心102以及DRE 302、 304和306,区域2包括区域存储中心104以及位置监测装置308和310,并 且区域N包括区域存储中心106和位置检测装置312。区域3包括一个或多 个位置监测装置314,然而,在该例子中,区域3不包括区域存储中心。 而且,如位置检测装置316的情况一样,系统300的一些位置监测装置不 由任何定义区域包括,尽管每个这些监测装置都仍能够通过已建立的连 接与网络108通信。如先前所描述的那样,图6中所示的位置显示装置320 与移动实体(如人322)相关联。在此需要强调的是,位置显示装置320 也可以作为移动DRE,与蜂窝电话塔(如位置监测装置如318、316所示) 交换数据。相比之下,在一定程度上,图4示出的DRE的地理位置较为 固定(如多个服务器)。然而,也可以考虑(具有多个用户或位置所有 权的)示例性情况1,在此情况中,移动DRE充当位置显示装置,或者 由位置监测装置确定位置的位置显示装置。应该理解的是,本发明的实 施例并不局限于示出的特定数目或区域结构。也应该理解,根据本发明 的实施例,全球存储系统300的任一数目或区域结构都是可以想到的。

很容易将图6描述的第二个情况(情况2)中的运动可视化。具体地, 箭头325指用户(个人A)322从第一个区域(即区域1)以及相应的包括 该他/她的一个或多个数据集324的区域存储中心102移动到第二个区域 (即区域2)。考虑到全球存储系统300可以含有使其能够预测用户322 已经从区域1更加永久的移动到了区域2的启发法(将在下文进一步详细 解释),可能期望将该用户的一个或多个数据集324迁移到与区域2相关 联的区域存储中心104,如箭头327所示。

总结性地说,情况2说明了用户或实体相对于他的/她的、它的或他 们的一个或多个数据集的物理运动。如果只考虑一个所有者,那么优化 公式优选地是情况使用的那些公式的简单版本,其中仅出现了一个用户。 例如,用重心的基本定义确定迁移的公式基本包括寻找位置L^,使得对 于所有其它可能位置L′,有a·d(l,L^)+b·d(L′,L^)≤a·d(l,L)+b·d(L′, L),其中l是数据集D的所有者的位置,数据集D的大小为b百兆字节,并 且在时间段T之前处于位置L′,而且预计数据集所有者将在时间段T内转 移a兆字节到数据集D或从数据集D中转移出a兆字节。如果考虑到一个或 多个所有者,可以用权重(wi)的概念来管理所有者的至少一个子集中 的每一个对重心计算的数据集产生的影响,权重的概念首先相对于在图4 中示出的全球存储系统100的更高等级地址引入。

现在参考图7,根据本发明的实施例,该流程图描述了管理数据集 迁移的示例方法400的至少一部分,示例方法400评估用户(例如,实体 或人物)的物理运动。如图7中明显示出的,方法400中的某些步骤在该 方法操作前执行,或者在该方法的一个操作前或操作中执行,或者在该 方法操作期间执行。具体地,在方法400的操作前,步骤402就定义了规 则集(如建立本地化方案并确定移动的持久性标准),步骤404定义了数 据集。在可以在方法400的一个操作前或操作中执行的步骤406中,建立 将移动实体/用户与他们对应的数据集相关联的各个链接。若步骤406预 先完成,那么该步骤406可以包括例如根据用户身份数据集的明确注册。 如果没有可利用的注册,那么全球存储系统可以如情况1一样在较高等级 地址下执行使用监测,或者在长时间观察一个用户时假设数据集可以像 情况2中的数据集一样对待。

在操作中,方法400进行操作以分析步骤408中各个实体/用户的位置 变化(即移动)。如果在步骤410中判断为所发现的变化不是永久性的移 动,那么方法400继续回到步骤408,以监测实体/用户位置变化。或者, 如果在步骤410中判断为移动是永久性的,那么方法400在步骤412中判断 是否应该执行与该实体/用户相联的一个或多个数据集的迁移。如果判断 为数据集迁移不应该执行,那么方法400继续回到步骤408,在步骤408 中继续监测实体/用户位置的变化。或者,如果在步骤412中判断为数据 集迁移应该被执行,那么方法400在步骤412中执行数据迁移,在此之后, 方法400在步骤408中继续监测该实体/用户位置的变化。

图8表示根据本发明一实施例的方框图,描述适合在全球存储系统 (如图4和图5分别示出的系统100或系统300)中使用的示例区域存储中 心500的至少一部分0。区域存储中心500包括元数据数据库502的逻辑视 图,或者可替代的存储器,其进行操作以存储其他项目中关于数据集503 的信息。元数据数据库502、数据集503本身和所有其它数据505中的信息 或数据可以分别存储于图4所示的区域存储中心102、104和106中的存储 器110、114和118内。冠以“所有其它”的数据505可以包括,但并不局 限于,用于支持迁移逻辑处理的实际代码,如框508、502、512、514、 516、518、520和522中的一个或多个所示。元数据数据库502可以描述状 态、所有权链接(如到用户或移动实体)、以及存储于存储器110、114 和118(见图4)内的数据集的使用。下文将更详细描述元数据数据库502 的内容;尤其是关于表1、图10和图11。而且,数据库502可以包括关于 移动用户或实体的其它数据,以判断移动用户和实体的移动在本质上是 暂时性的还是更永久性的,如将会参考图12讨论的一样。

存储中心500包括两个主馈送源的至少一个,以向数据库502提供关 于数据集迁移和重新定位的数据。具体地,第一模块504进行操作以为数 据集收集DRE需求,第二模块506进行操作以追踪移动实体。第一和第 二模块504、506中的任意一个都在之前结合图4至图7讨论过。更详细地 讲,如参照图4和图5所描述的,模块504根据情况1提供了用于收集DRE 需求的机制,并且如参照图6和图7所描述的,模块506根据情况2提供了 用于追踪移动实体的机制。

继续参考图8,第一模块504包括以模块508统表示并与一个或多个 输入处理器510耦合的一个或多个收集器。收集器508中的每一个都进行 操作以接收全球存储系统中DRE和关联数据集请求的至少一个IP地址 或者完全限定域名(FQDN),并且进行操作生成表明DRE位置的元数 据标签,收集器508通过评估DRE的地址来请求该数据集。更详细地, 收集器508连同来自于存储事物的关联元数据一起复制数据集请求发起 者(如DRE)的地址,然后为收集到的数据排队,以供一个或多个输入 处理器510做进一步处理。这种可选择的排队步骤有利于减少核心处理器 的实时需求。

一个或多个输入处理器510进行操作以映射IP地址/FDQN以及从收 集器508中接收到的关联数据集请求,并且生成到被请求的数据集的链 接。一个或多个输入处理器510孤立该数据集,标记它,并执行一些初步 分析(包括,将映射发起者地址(即,IP地址,或完全限定域名,简称 为FQDN)映射到区域),并且为即将到来的存储事物流内的每一个数 据集在一个或多个元数据数据库502中最终加载位置或者增加一个与该 数据集相关联的区域。数据集自身的位置由将它存储在什么位置来明确 表示或揭露:在此例中,为存储中心1(标号102)。在该实施例中,数 据集的大小也被保留为元数据。因此,用于计算(数据集在时间段T内 的)总网络距离和用于表明数据集大小的相关信息也被保留在元数据数 据库502中。

第二个模块506包括一个或多个移动更新处理器512,该移动更新处 理器进行操作以接收全球存储系统中的用于移动用户和/或实体的位置 更新。更详细地,移动更新处理器512的至少一个子集能够首先进行操作 以从全球住宅位置分发器513接收用户和/或实体(如:人群、移动机器 人/无人机等)的地理地址的变化。全球住宅位置分发器513进行操作以 分配链接到位于全球存储系统中的特定数据集的用户和/或实体各自的 住宅(即地理)地址。元数据数据库502通过一个或多个移动更新处理器 512搜索与该用户/实体链接的数据集记录。对于每一个与一个或多个用 户/实体链接的数据集,该一个或多个移动更新处理器512更新每个所有 者用户和/或实体的地理地址(即位置)。

区域存储中心500还包括规则管理模块514、分数计算模块516、数 据库同步工具模块518和数据迁移引擎520,它们操作地与元数据库520 耦合。区域存储中心500内迁移逻辑可以有利地实施为模块化系统。由于 模块514、516、518以及模块512(还未介绍)的任一个都可以直接和其 它构成模块直接通信,所以把这些模块的集体视为迁移决定和执行模块 507是有用的。该决定和执行模块507被配置为实现参考图6和图7描述的 高等级决定逻辑。

更详细地讲,规则管理模块514含有由分数计算模块516使用的规 则。让规则与实际计算分开,使得该系统从开发的角度而言更容易维护, 因此是优选的,尽管本发明的实施例并不受这样的限制。规则具体包括: (i)网络距离测量的选择;(ii)列成使用表格的时间段T的长度(在一 些实施例中,也是分数计算模块516对每一个数据集操作的频率);以及 (iii)是否可以考虑除了重心以外的迁移努力(当选择数据集的下一个 位置时)。数据库同步工具模块518允许位于不同地理区域中的不同存储 中心(如524、526,在这里也指数据中心)的元数据数据库分享和同步 它们的元数据(即关于数据集的数据)。数据迁移引擎520被用于把数据 集从一个地区迁移到另一个地区。分数计算模块516进行操作以利用规则 分析数据库502的记录,以确定并将用于数据集的自动迁移优先。因此, 如前所述,分数计算模块516是实际计算重心和优化公式的模块。除了为 每个数据集计算最优配置外,分数计算模块516还考虑交叉数据集标准 (如,在任何时候有多少数据可以得到迁移,或者关于一些数据集到达 存储基线并因此不再是迁移考虑的可能位置的消息)。

在全球存储系统中,数据迁移引擎520与实际数据集存储503、与元 数据库502以及与一个或多个其它区域存储中心524至526耦合。数据迁移 引擎520也和全球地址更新分发器528耦合,全球地址分发其528进行操作 以发送地址更新到一个或多个存储地址重定向控制器。正如参照图9更详 细地讨论的,一个或多个全球地址更新分发器可以将关于数据集被存储 在什么位置——存储中心500、524和526的最新信息传播到嵌入在网络 108中或者在存储中心的初始网络关联元件之中(如,反向代理服务器或 Web服务器)的本地地址虚拟化系统(指图9中的“存储地址重新定向模 块”),以将从来自于DRE(消费者)的请求引导到包括所感兴趣的数 据集的存储中心500、524和526。此外,如参照图9讨论的,全球住宅位 置分发器513可以被用来向存储中心500、524和526提供终端消费者现在 的位置以及将来可能的位置,这些终端消费者作为它们所有者而与一些 数据集相链接。

在分数计算模块516或数据迁移引擎520中,自动迁移决定逻辑或替 代控制机构进行操作以:(i)利用关于所关联的服务水平协议(SLA) 的信息;(ii)考虑管理一个或多个数据集和网络108的一般可用性问题; 以及(iii)确定数据集迁移的恰当时间(如非高峰时间,以将网络拥塞 最小化)。例如、SLA可以描述数据集已经并应当继续分别在迁移的源 存储中心和目标存储中心。逻辑存储卷、虚拟机、平面文件数据和数据 库等应该被考虑。

区域存储中心500还可以包括硬件操作模块522,与数据迁移引擎 520或者区域存储中心的一个或多个模块耦合。硬件操作监测器522(标 记为“操作?”)能够有效地监测表示数据迁移引擎520的一个或多个操 作特征的状态。例如,硬件操作监测器522可以执行下列中的至少一个: (i)评估相应存储中心500的操作状态(如运行、没有运行、部分运行); (ii)传播相应区域存储中心的操作状态到与其它区域存储中心相关联的 的所有其它硬件操作监测器(如:通过区域存储中心524到526);(iii) 通过网络取回其它所有存储中心的操作状态;以及(iv)通知在其区域 存储中心500上得到支持的相应数据迁移引擎520中的自动迁移决定逻 辑。

因此,图8主要描述了在存储中心1、2和3(分别为102、104和106) 中使能的自动迁移逻辑112、116和120的示例性逻辑和互动。自动迁移逻 辑的主要部件可能包括例如元数据数据库502、第一模块504(对于情况 1——进行操作以收集对数据集的DRE需求)、第二模块506(对于情况 2——进行操作以追踪移动实体),以及迁移决定和执行模块507。根据 本发明的实施例,单独的系统通过选择第一模块504和第二模块506中的 一个来被使能。包括模块504和507的组合的系统需要数学不等式,该数 学不等式结合(i)参照情况1(图4和图5)描述的,根据在时间段T内收 集到的网络流量对最优存储位置L的重新评估,以及(ii)参照情况2(图 6和图7)描述的,基于与该数据集相关联的实际消费者(一个或多个人 或移动实体)的当前住宅位置对最优存储位置L的选择进行加权。

对虚拟存储的支持也是需要的,并且将会结合图9做进一步详细解 释。具体地,图9是是根据本发明的一实施例的方框图,描述了示例全球 存储系统600的至少一部分。全球存储系统600包括通过网络108相互通信 的多个区域存储中心102、104和106。全球存储系统600服务的地理区域 被划分为多个地区,从1到N,N是整数。用这种方式,全球存储系统600 与在图4和图6中分别示出的示例性全球存存储系统100和300类似。

全球存储系统600还包括一个全球住宅位置分发器513和一个全球 地址更新分发器528,它们可以以与图8示出的全球住宅位置分发器513 和全球地址更新分发器528一致的方式实现,尽管本发明的实施例并不局 限于这些模块的任何具体实现方式。如前所述,全球住宅位置分发器513 进行操作以分配与位于全球存储系统600中的特定数据集相链接的用户/ 实体的各自的住宅(即地理)地址。一个或多个因素可以表明住宅地址 的改变,这将在下文进行进一步的详细讨论。全球地址更新分发器528 可以操作以向一个或多个存储地址重定向控制器发送地址更新。

全球存储系统600中的每一个地理区域都可以包括相应的存储地址 重新定向模块或者类似的控制机构。更详细的讲,区域1包括地址重新定 向模块602,区域2包括地址重新定向模块604,区域3包括地址重新定向 模块606,区域N包括地址重新定向模块608。总的来说,地址重新定向 模块602、604、606和608共同形成了全球存储系统600的存储地址重定向 系统。

根据本发明的实施例,利用全球存储系统的数据集的应用可以从最 近的存储地址重新定向模块获取任何所需数据集的物理地址(或者通过 间接访问数据集,而不用知道其物理地址)。同样,如果数据集是由全 球存储系统定义的虚拟实体但是包括许多用户定义的文件等,则如果该 用户希望访问单个文件等,这也仍然成立。通过该地址系统,对数据集 的请求可以通过例如统一资源定位器(URL)重新定向、卷重新定向等 重新定向到全球存储系统内的N个区域中的一个。对于所存储的数据元 素,诸如该用户在某种情况下需要读取或写入的文件或网页,用户将会 有永久性的身份标识。例如,这可以是在通过固定的身份标识或特定的 存储中心登陆到存储系统后使用的、针对全球存储系统的URL或身份标 识文件名。因为所需存储元素的实际位置可能由于迁移而改变,所以每 个地址重新定向模块优选地能够将请求转换并路由到数据元素当前位于 的存储中心。

一个固定的或移动的DRE自身可以包括存储地址重新定向模块的 逻辑和存储器。在这种情况下,代表着数据集的新的物理地址的更新可 以由全球地址更新分发器528传播到DRE。如果数据集具有使用它们的 一个或很少的所有者(如情况2),这会很管用。便利地,这种地址重新 定向的实施不会显著影响互联网的现有网络结构。然而,先前提到的大 多数地址重定向的实施不会影响到互联网的现有网络结构以及那些仅通 过已有机构使用的网络结构,如,DNS更新。

根据本发明一实施例,当数据集从一个存储中心到另一个存储中心 的迁移已经完成时,进行数据集的物理地址的更新。一旦数据集迁移完 成,数据迁移引擎520以及图8示出的其它逻辑通知全局地址更新分发器 528,全局地址更新分发器528与所有存储地址重新定向模块602、604、 606和608同步更新该数据集的物理地址。实际异步更新可能涉及到位于 每一个区域存储中心的控制逻辑。

数据集从全球存储系统中的源区域存储中心迁移到目标区域存储 中心可能涉及一系列广泛的方法,包括但不局限于聚集、时间交织以及 迁移的离峰执行。例如,通过对数据集迁移利用聚集的方法,数据集聚 集、打包在一起,并且以一个单独的数据包的形式迁移。聚集方法允许 评估从一个区域存储中心迁移到另一个区域存储中心的数据集,并且把 这些数据集打包成一个批量文件传输。批量文件传输的部分评估是数据 集自身。如果该数据集是需要被移动的一组文件,那么执行批量文件传 输可能比传输单个文件更有效率地执行。打包的数据集可以根据优先级 移动。较高优先级的数据集可以不打包,而是自行移动。较低优先级的 数据集可以打包,并在特定时间移动(如在离峰/非高峰时间期间)。

通过对于数据集迁移使用时间交织方法,数据集的迁移被时间交织 和/或可以定期的穿越区域存储中心。例如,迁移一个特定的数据集的决 定可能一个月发生一次,尽管本发明的实施例并不限制于数据集迁移的 任何特定时间安排。可以制定用于数据集迁移判断的方程式或其它表达 式,其对在做数据集迁移决定的时可用的属性进行加权。

通过利用数据集迁移的离峰执行,可以跨一个或多个时间窗口来表 征或者以其他方式简述数据集的使用,以确定数据集最不经常使用的时 间。在离峰时间,数据集可以有利地迁移。根据本发明的一实施例,动 态使用特性的一种代替是提前表征预期的数据集使用并且向管理数据集 迁移决定的元数据字段提供这些信息。用于迁移时机的属性将会在下文 进一步描述。

迁移决定可以受到除了将一群“等价”消费者和分配器(区域存储 中心)之间的网络距离最小化外的其它因素影响。例如,除了网络距离 外,可以用来影响数据集迁移决定的一个标准是以向地区、用户和/或数 据集分配优先级并且创建约束关系的方式对它们进行评分。每个地区可 能只支持到其它各类地区的某一水平的吞吐量。一个地区可以有分配给 它的一个优先级,该优先级让重新定位到该区域的数据集具有更高优先 级或给这些数据集更高的带宽/吞吐量。或者,基于正在迁移的数据集的 优先级,可能存在对于迁移的数据有可用带宽的节流。节流也可以根据 每天内迁移的时间实现。例如,在离峰时间,更多的带宽可以分配被给 数据集迁移工作,并且在在高峰使用时间,较少的带宽能分配给数据集 迁移。可以给数据和/或用户分配向这一个数据/用户类型提供比另一个数 据/用户类型更高的优先级或带宽的优先级。地区优先级和/或数据/用户 优先级都被给与了具体权重,这将之后被用来生成用于数据集迁移优先 级的分数或其它特征。

根据其它实施例,数据集可能有与该数据集相关的服务质量标签 (QoS)。该QoS标签可以以直接(如命名区域或地理区域,如国家) 或者根据规定的质量水平(如可用性保证、采用的安全措施、改变控制 政策、遵守一定的规则等)的方式用来限制数据集向哪一区域移动。数 据集这样的QoS标签可以在与该数据集关联的元数据中指定。一般认为 不被允许移动的数据集是被“钉住”的。认为被限制只能移动到一定指 定区域存储中心的数据集是“受限制的”。认为能够自由移动到任何区 域存储中心位置的数据集被认为是“漫游的”。每一个区域存储中心都 应该有与其相关联的QoS,并且根据该QoS,数据集可能可以或者不可 以移动到该区域存储中心。QoS标签方法利用了对于数据集迁移来说最 近的并不总是更好的观测方法。根据前面所描述的优化的初始表达式, QoS标签限制要考虑的可能的位置L的集合。

根据本发明的实施例,全球存储系统的另外一个好处是能够把数据 集从几乎充满的区域存储中心迁移到有额外存储容量的一个或多个其它 区域存储中心。如先前所述,硬件操作监测器进行操作以通知数据迁移 引擎关于本地(即区域)存储中心和全球存储中心的状态。如果本地存 储中心的存储已接近其容量,数据迁移引擎(如图8中的520)能够识别 相邻的数据存储中心,以卸载这些数据集,或者在其他数据集迁移选择 中,可以选择在安排的时间表相对于它们应当被迁移之前主动迁移。考 虑后一个选择,根据本发明的实施例,可以设计容量和迁移加速的函数 关系。根据先前描述的优化的初始表达式,考虑数据存储中心的容量局 限再次限制了要考虑的可能的位置L的集合。

表一仅仅以示例的形式然而并不失一般性的阐述了用于数据集的 示例性元数据表,其包括可以用来做出迁移决定的属性。这些属性包括 但并不局限于元数据,如具体的谁、为什么、做什么、什么时间、什么 地点以及怎样做出数据集迁移的确定细节。

表1

如先前参考图8所述,DRE需求的重心可以从表一所描述的用于数 据集的元数据来计算或量化。此外,迁移所用的其它细节也可以被描述 为每一个数据集的元数据,例如对于特定用户组的迁移的(超过其它用 户的)优先、用于迁移的指定的或计算的时间、位置信息以及迁移方法。

可以提前关于什么样的数据应当或者在某些情况下不应当被移动 做出一些迁移决定。图10是根据本发明的一实施例的概念视图,描述了 根据数据类型的示例性先验数据迁移决定。参考图10,不同类型的数据 701被分为3组;即,不可以移动的数据702,可以移动到指定区域存储中 心的数据704,以及可以移动到每一个区域存储中心的数据706。数据的 类型可以确定做出数据迁移的确定的顺序。因此,根据本发明的一个实 施例,首先为最受局限的数据类型做出迁移确定,并且最后为最不受局 限的数据类型做出迁移确定;如果一些区域存储中心的存储已接近其容 量,这样做是非常有用的。

根据例如他们的所有者或发起者的规格而不可以移动的数据类型 的例子可以包括,但不局限于,一个或多个支付卡行业数据(或卷)、 受保护的健康信息、个人可识别信息、国家调节的测量或收入数据,以 及数据集和关联的不能用于其它区域存储中心的有特殊目的商业逻辑 (假设区域存储中心是区域数据存储的包括其它功能的一部分)。根据 它们的所有者或发起者的规格而可以移动到指定区域存储中心的数据类 型的例子可以包括但不局限于,一个或多个归档日志、数据集市或数据 仓库(或卷)、主配置文件、输出品(export)、法律和电子搜索信息、 财务档案、后台文件、语音和视频数据、数字介质、科学和教育数据、 能源和石油数据、以及临床实验数据和关联的非全局可用的特殊目的商 业逻辑。根据它们的所有者或发起者的规格而可以移动到任何区域存储 中心的的数据类型的例子可以包括但不局限于,一个或多个web服务器 文件或内容存储、通用文件存储、高性能解析、数字介质工作空间、计 算机辅助工程数据以及邮件/信息数据,如果很明显它们不包括受监管数 据的话。

一旦不同类型的数据已经确定作为移动的候选者,利用一个或多个 属性(其例子已在表一中示出),这些数据相应的数据集的目的地被与 该数据集的相关联的元数据中指定。根据本发明的一实施例,利用图10 中定义的示例性数据类型702、704和706,图11从概念上描述了示例性数 据迁移政策802的形成过程。至少部分地根据数据迁移政策802做出合格 的区域存储中心位置804的确定。现在参考图11,认为一个不允许移动的 数据集(702)被钉住了,并且因此没有列出合格的区域存储中心位置。 一个只允许移动到指定数据存储中心的数据集(704)被认为是受限制的, 因此,该数据集可以移动到的合格的区域存储中心是那些指定的存储中 心(如数据中心X、Z和R)。一个允许移动到每一个区域存储中心(706) 的数据集被认为是漫游的,因此不需要明确指定该数据集迁移的合格区 域存储中心。

根据本发明的其它实施例,除了上述列的元数据属性之外,还有可 以分配给元数据集或它们的所有者的其它各种类型的元数据属性。根据 本发明的一实施例,图12从概念上描述了可以用来做出与移动用户和/ 或实体的更永久的位置(住宅位置)相关联的确定的所有者的某些示例 性属性。在该实施例中,使用了位置改变持续时间的属性902,表示到目 前为止位置改变的持续时间,以及用户/实体的个人属性904,其包括年 龄信息906、财富/财务信息908和旅行习惯类别910中的一个或多个。另 外一个选择可以是新的位置,例如,该位置是否已知为度假胜地。在这 里,确定性的相对量度(即数据迁移分数)被分配给相应的属性或属性 的子集。

例如,把位置改变持续时间的属性902安排到子集。驻留的持续时 间可能从根据情况2收集到的手机信号或者其它因素推倒出来,并且应该 影响到迁移的触发。图12中持续时间下的数字越大(如“大于六个月”), 对于该人或移动实体而言,驻留越有可能是永久性的,因此与其相关的 数据集更应该被迁移。在图12示出的示例场景中,持续时间“大于一个 月”被分配的确定性的相对量度+1,持续时间“超过3个月”被分配的确 定性的相对量度+2,持续时间“超过6个月”被分配的确定性的相对量度 +3,尽管本发明的实施例并不局限于对于持续时间的的确定性的任何特 定分配。持续时间“大于N个月”可以被分配的确定性的相对量度+N, 在这里,M和N都是整数,变量范围从0到很大的数字。

同样的,确定性的变量范围+N的被分配给年龄子类“低于18岁”、 “18至25岁”、“26至39岁”、“40至46岁”以及“65岁及以上”。N 同样也是对确定性进行加权的整数变量(对每一个年龄段可能不一样)。 如将在下文进一步详细描述的一样,这样的信息可能被一种启发法使用, 该方法归结了确定性指标的至少一个子集(如位置变化持续时间902、年 龄906、健康908、旅行习惯类别910等),用来预测更永久的“居住位置”; 总数越大,确定性越大。

可以为判断住宅位置变化是否是永久性的而指定一个阈值。一旦超 出阈值,全球住宅位置分发器513可以把该移动用户或实体的新的住宅位 置传播到自动迁移系统逻辑112、116和120以进一步处理以及潜在包括与 存储于元数据库(如数据库502)的关联元数据表(如表1)中,如先前 关于图8所述。因此,如果把适当的权重分配给指标,那么启发法就能正 确解决所述场景。这里仅仅以实例说明,如果一个人选择乘飞机到佛罗 里达去度过一个周末假期,他/她并没有改变其住宅位置,因为这样一个 定义并不适用于与数据集迁移相关的潜在的昂贵的过程。因此无论是这 个人的住宅地址还是他/她的关联的一个或多个数据集都不应该得到改 变或迁移。应该理解的是本发明并不局限于使用的指标属性的任何具体 数字,本发明的实施例也不局限于确定性量度的任何具体分配。

如表1所示,另外一个可以用来做迁移确定的元数据属性是数据镜 像的存在和位置。在做地理迁移决定时,数据集来源和数据集镜像可以 相对轻松的互相转换,使得数据集镜像变成数据集来源,并且因此,迁 移到具体镜像数据中心所耗精力要比迁移到其它数据中心做耗精力少得 多。

一个或多个启发法可以用来判断一个给定的数据集迁移是否是值 得的。用来做出这样一个数据集迁移确定的一些示例性启发法可能包括, 如:(i)判断如果不执行移动那么服务于对数据集的请求所需要的传输 总量是否大于传输特定数据集所需要的迁移总量;(ii)判断如果不执行 移动,那么对以本地缓存服务于对数据集的请求所需要的传输总量是否 大于传输特定数据集所需要的迁移总量;以及(iii)判断通过迁移数据 集到更近的位置,是否能够达到或超越所定义的服务水平协议。

如先前结合图4所述,根据本发明的实施例,确定一个最优地理位 置以存储数据的方式包括追踪来自于各个数据集的数据从其区域存储中 心到请求该数据的一个或多个用户/或实体的移动(见,例如,基于本文 先前描述的网络距离的对于整体数据传输的表达式)。随着时间的推移, 可以为每个数据集汇编区域历史。在元数据表(表1)中,对每一个数据 集的区域需求可以通过优选地在规定的时间段T内对从位于特定区域的 DRE发出的请求的数量进行计数来测量。参考上面的表1,根据全球存 储系统所下的定义,“区域需求”具有累积来自于每一个区域的需求的 特点。换句话说,对于每一个区域的累积需求数字在元数据表中得以列 出。根据本发明的实施例,当数据集已经迁移或为了分析建立了新的时 间窗口时,累积需求数字可以周期性地被重置为零,例如,或者可以采 用滑动窗口技术,在该技术中,总是对于从现在往前的时间段T内提供 数据。

根据所简报的区域需求,每一个数据集都可以按照周期间隔重新定 位到历史上的最佳地理位置。根据本发明的实施例,实际上,这样的地 理位置是选择的具有足够容量的最近的区域存储中心。除了总容量之外, 区域存储中心还可以提供多个存储层,而且可以将可能位置局限到在正 确的存储层内具有足够容量的那些区域存储中心,,以容纳数据集。应 该理解的是“存储层(tiering)”可以被广义的定义为把物理磁盘的较 高性能组分配到需要较高性能的应用程序和数据库,而把磁盘的较低性 能组分配到需要较低性能的应用程序和数据库的处理。它也可能包括位 于同一数据中心的其它QoS属性(如“更好的”存储层可能也有更高的 可用性)。根据本发明的实施例,可以通过比较数据集的QoS标记和存 储中心的对他们的存储层的QoS描述来确定合适的存储层。

正如先前所讨论的(在情况2中),根据本发明的实施例,与用户 或实体有关的数据的数据集迁移可以通过发现该用户或实体的地理位置 变化而自动触发。不考虑用来探测用户或实体地理位置变化的方式,仅 以实例说明,通过考虑两个真实世界的场景存在能够更好的理解一个附 加说明:(i)第一个场景,用户A离开了他/她在区域1的家,去区域2度 过一个短暂的假期;以及(ii)第二个场景,用户A得到了一份新的工作, 永久的从区域1搬到了区域2。特别地,整个数据集的迁移是个昂贵的过 程,尤其是当数据集是个非常大的文件时,这主要是因为数据集的移动 消耗了大量的网络带宽。因此,在第一个场景中,全球存储系统最好不 要迁移用户A的数据集。在制定迁移决定时,不仅需要使用GPS位置信 息,还需要考虑其它一些相关标准。正如图12所示,示例的标准可能包 括但不局限于:(i)地理位置的区域变化持续时间(如,如果持续时间 为两天,可以认为是在旅行,然而如果持续时间是两个月,可能表示更 加持久的地理位置变化);(ii)个人属性,如用户或实体的年龄、财富, 用户的旅行习惯等(如,一个45岁的人,不太可能在一个不是其持久居 住地的地方呆两个月,而一个富裕的老年人可能花30%的时间呆在一个 地方,另外30%的时间在其它地方,等等);(iii)用户到数据集相关 数据的特定部分的访问模式;以及(iv)一旦通过移动设备检测到表示 位置变化的地理变化,源自用户或实体的简单问题的答案,等等。

如先前所述,确定住宅位置是否变化的决定逻辑最好位于全球住宅 位置分发器(例如,图8和图9中的513),尽管本发明的实施例并不局限 于决定逻辑的任何具体实施。所述示例性迁移影响机制的一个重要因素 是形成一个数据集列表,这些数据集要与全球存储系统管理的每一个用 户或实体的相关度最高。本发明的实施例进行操作以生成一个链接表, 或者替代的映射方式,以保持给定的数据集与使用这个给定的数据集的 一个或多个实体之间的对应关系。

关于其中至少一部分数据集在多个用户或实体之间共享数据的数 据集迁移的处理,根据本发明的实施例,在做数据集迁移判断时,可能 使用不同的和/或附加的标准。例如,考虑涉及到决定把它的绝大多数员 工从第一个区域(如加州的圣地亚哥)搬到第二个区域(如华盛顿特区) 一个公司的场景;该公司90%的员工搬到了华盛顿特区,其它10%的员 工留在圣地亚哥。在该场景中,在其他标准中,数据迁移决定可能涉及 到评估搬走的员工的百分比和/或关于该公司多个人员共享的公用数据 的使用统计数据。该场景包括情况1和情况2的混合——如情况1中一样的 多个用户,然而一些用户是指定的所有者并得到由高权重代表的优先对 待,或者这些用户将来所处的位置可能已经提前知道,正如情况2有时出 现的那样。

根据本发明的实施例,对于情况1,可以预料到可能性可以被制定 在适应性迁移规则中,适应性迁移规则可能权衡关于在当地存储中心和 全球存储中心的聚合内一般和特定的数据集使用都知道些什么。在所述 实施例中,规则管理模块514可以含有分析数据集历史使用的功能。利用 反馈过程,它能够适应(即,修改、“调节”,或控制)数据库中现存 的规则集。在不同存储中心和/或区域中的数据库应当由通过数据库同步 工具(如图8所示的数据库同步工具模块518)互相共享数据而受益。

关于终端用户和/或实体在地理上的移动,先前结合图6做了描述了 一个示例性场景(情况2),该场景将实体或个人的更加持久的物理移动 与它的或他的/她的数据集分别相关联。然而,应该理解的是本发明的实 施例也同样考虑了各种替代性场景,这些场景包括终端用户和/或实体相 对于他们的数据集的物理移动,其中一些场景将结合图13至图16做简要 描述。图13和图14描述了数据镜像,在数据镜像中,该数据集和数据集 的副本(即复制品)存在于两个不同的存储中心,以数据集恢复为目的 (如一个存储中心掉线或者是难以进入),以及其它应用程序。尽管这 些图是为情况2而示出这些,情况1也可以使用类似的数据镜像。图15和 图16强调了与多个终端用户和/或实体相联系的配置决定。图13至图16描 述的所有这些示例性场景都涉及到一个或多个移动个人或实体从一个地 方到另一个地方的示例性移动,它们都是情况2的替代性场景。为了强调 一个或多个移动个人或实体的移动以及他们的关联数据集的移动,在图 13至图16中所有无关信息都已删除。

对于每一个场景,从第一个区域(区域1)到第二个区域(区域2) 的移动旨在说明性的,并且因此,它可以代表从任何一个区域到其它区 域的移动。更一般地说,这五个示例性场景(第一个场景已经先前结合 图6或者通过解释情况1的图4做了描述)从概念上描述了类似的移动需求 情况(其中一个或多个个人的移动代表着一个或多个DRE的需求转移, 因此也代表着重心的转移),这在情况1(图4)中基本上是被隐藏起来 的。因此,尽管图13至图16示出的示例性场景涉及个人或实体的物理移 动,这些场景应该更宽泛的解读为代表着由全球存储系统的固定和移动 DRE的单个请求引起的数据集需求波动。

图13的场景代表着个人(A)从区域1到区域2的移动,区域1包括其 中存储有个人A的数据集1002的区域存储中心102,区域2包括其中存储 有个人A的数据集的镜像1004的区域存储中心104。如箭头325所示,个 人A从区域1永久性的迁移到了区域2。在该场景中,因为个人A的数据集 的“镜像”在区域存储中心104中已经存在,该数据集就不需要迁移到区 域2。然而,需要改变个人A的地址。这种永久性的地址变化由全球住宅 位置分发器513传播并且最终传播到(1)存储地址重新定向模块和(2) 数据集(目前位于存储中心2)和其副本(目前位于存储中心1)的元数 据表(如表1)。行动(1)允许个人A获取区域2当地的数据集。行动(2) 涉及元数据表属性的改变,其包括(a)该移动用户或实体的住宅位置和 (b)数据镜像。这些修改使得未来的数据集迁移容易处理。

图14的示例性场景代表个人A离开区域1,区域1包括其中存储有个 人A的数据集1002的区域存储中心102。个人A的数据集的镜像1004存储 于包括在区域N终端区域存储中心106。在该场景中,如箭头325所示, 个人A从区域1永久性的迁移到了区域2。因为无论是个人A的数据集1002 还是个人A的数据集的镜像1004都没有存储于区域2,个人A的数据集或 是其副本必须被迁移到位于区域2的区域存储中心104。然而,并不像图6 所示的场景A,这里存在一个选择,即个人A的数据集(或数据集镜像) 应该从哪一个存储中心迁移出,是存储中心102,还是存储中心106。在 存储中心102和存储中心106中,优先选择离存储中心104最近的一个,这 不仅根据地理距离选择,还根据其它的优化因素,例如但并不局限于最 短网络路径、最小功耗等中的一个或多个。上面包括位置、数据镜像的 表达式意味着从执行数据集自身迁移的位置起还有很多替代位置。例如, 我们现在可以寻找一个现存的数据镜像的位置L′以及一个新的位置L^, 对于每个其他可能的位置L(如之前定义的)和一个现存的数据镜像的 每一个位置L″,有a1·d(l1,L^)+...+an·d(ln,L^)+b·d(L′,L^)≤a1·d(l1, L)+...+an·d(ln,L)+b·d(L″,L)。

图15和图16的场景分别阐明了数据集由一个以上的个人或实体如 个人A、B、C和D共享的情况。在这种场景中,将个人A、B、C和D共 同使用的数据集迁移到能够最大限度得减少从所有个人到共享数据集的 平均距离或总距离的区域存储中心或是优化另一特性将是有利的。此外, 数据集的定位或分配最好趋向于最多使用数据集的人(或人们)的位置。

在图15的示例场景中,由于个人A、B、C和D都请求同一个共享数 据集1202,而这四个人位于同一个区域,包括存储有该共享数据集1202 的区域存储中心104的区域2,因此不需要迁移该数据集。然而,在图16 所示的场景中,个人A居住于包括区域存储中心104的区域2,而个人B、 C和D居住于包括存储有共享数据集1202的区域存储中心106的区域N。 在这种情况下,共享数据集最好位于域区域存储中心106,因为该区域存 储中心最接近最大数量的请求个人或实体。

根据本发明一实施例,图13和图14的场景提供了一种概念性的理解 方式,在这种方式中,数据镜像在全球存储系统中的到处理。图15和图 16至少在某种程度上提供了已经描述过的形象化规则。

示例系统和制造细节物品

本领域的技术人员应该可以理解,本发明的各个方面可以体现为一 个系统、方法或计算机程序产品。因此,本发明的各个方面可以表现为 以下形式,即完全硬件实施例、完全软件实施例(包括固件、常驻软件、 微代码等)或结合软件和硬件方面的实施例,在本文中硬件方面通常指 “电路”、“模块”、“块”或“系统”。而且,根据本发明的一实施 例,本发明的各个方面还可以体现为计算机程序产品,该计算机程序产 品包括有形的计算机可读存储介质,它以一种非可执行程序指令的方式 存储,当执行时,实施方法步骤。

本发明的一个或多个实施例,或其原理,可以以装置的形式实现, 这些装置包括存储器和至少一个能够和存储器耦合并有效执行示例方法 步骤的处理器。

根据本发明的实施例,图17是一机器的实施例的方框图,以计算系 统1400的形式出现,在该系统中有一套指令1404,当这套指令执行时, 使得该机器执行任何一个或多个方法。在一些实施例中,该机器作为独 立的设备操作。在一些实施例中,该机器与其它机器相连接(如,通过 图4、6、9以及图13至图16中的网络1404,或者网络108)。在网络化实 施中,该机器作为服务器或客户端用户机,在客户端用户网络环境中运 行。本文中,经过精心策划的该机器的示例实施例包括但不局限于一个 服务器、客户端用户计算机、个人电脑(PC)、平板电脑、网络服务器、 个人数字助理(PDA)、移动设备、环球网设备或者任何一台机器,该 机器要能够执行一套指令(顺序或反序)而且该套指令能够使该台机器 执行指定操作。

计算系统1400包括一个或多个处理装置1406(如中央处理器 (CPU)、图形处理器(GPU),或者二者都有),一个或多个程序存 储装置1408以及一个或多个数据存储装置1410,这些装置通过总线1412 互相通信。计算系统1400还包括一个或多个显示装置1414(如液晶显示 器(LCD))、平板、固态显示器或阴极射线管(CRT)。计算系统1400 包括一个或多个输入装置1416(如键盘)、一个或多个光标控制装置1418 (如鼠标)、一个或多个磁盘驱动装置1420、一个或多个信号生成装置 1422(如扬声器或遥控装置)以及一个或多个网络接口装置1424,这些 装置和/或与其它功能块,通过总线1412有效耦合在一起。

一个或多个磁盘驱动装置1420包括一个或多个机器可读介质1426, 其中存储着体现本文一个或多个方法(包括本文示例方法)或函数的一 套或多套指令。指令1402的全部或至少部分在其由计算系统1400执行时, 也位于一个或多个程序存储装置1408、一个或多个数据存储装置1410和/ 或一个或多个处理装置1406。一个或多个程序存储装置1408和一个或多 个处理装置1406也构成机器可读介质。专用硬件实现,例如但不限于, 专用集成电路、可编程序逻辑阵列和其他硬件被配置为实现本文描述的 方法。包括不同实施例的装置和系统的应用程序一般含有各种各样的电 子和计算机系统。在一些实施例中,函数作为专用集成电路的一部分实 现,或是在两个或多个特定互联网硬件模块或装置中实现,该特定互联 网硬件模块或装置有相关的控制和数据信号,而且这些控制和数据信号 在模块之间通信或通过模块通信。因此,示例系统对软件、固件以及硬 件实现都是适用的。

根据本发明的不同实施例,本文描述的方法、函数或逻辑可以作为 在计算机处理器上运行的一个或多个软件程序执行。为实现本文中描述 的方法而配置的专用硬件实现包括但不局限于专用集成电路(ASIC)、 可编程序逻辑阵列(PLA)以及其它硬件装置。更进一步的,为了实现 本文描述的方法、函数或逻辑而配置的替代软件实现包括但不局限于分 布式处理或模块/对象分布式处理、并行处理或虚拟机处理。

该实施例考虑了包括指令1402的机器可读介质或计算机可读介质, 或者这样一个装置,该装置能够通过传播信号接收并执行指令1402,以 便一个连接到网络1404的装置能够发送或接收语音、视频或数据,并且 利用指令1402通过网络1404通信。通过网络接口装置1424,指令1402经 由网络1404进一步传输或接收。在本文的系统和方法的一示例性实施例 中,机器可读介质也包括一个数据结构,以存储在数据和机器或计算机 之间提供函数关系的有用数据。

尽管在一示例性实施例中,机器可读介质1402被示出为一个单独的 介质,应该认为术语“机器可读介质”包括存储有一套或多套指令的一 个单独介质或多个介质(如一个集中式或分布式数据库,和/或关联缓存 和服务器)。也应该认为术语“机器可读介质”包括任何能够存储、编 码或携带有以供该机器执行并且引起该机器执行该实施例中任何一个或 多个方法的介质。因此,应该认为术语“机器可读介质”包括但不局限 于:固体存储器如存储器卡或其它含有一个或多个只读(非易失性)存 储器、随机存取存储器或其它可重写(易失性)存储器的程序包;磁光 或光学介质例如磁盘或磁带;和/或到电子邮箱或其它包括信息档案(组) 的其它数字文件附件,这些数字文件附件被认为是等同于有形存储介质 的分布介质。因此,如本文所列出的,该实施例被认为包括任何一个或 多个有形机器可读介质或一个有形分布介质,并且包括技术公认的同等 设备以及后继介质,本文的软件实现即在此存储。

应该注意到,执行本文方法、功能或逻辑的软件随意的存储在有形 存储介质,例如:磁性介质,如磁盘或磁带;磁光或光学介质例如磁盘; 或固态介质,例如存储器卡或其它含有一个或多个只读(非易失性)存 储器、随机存取存储器或其它可重写(易失性)存储器的程序包。到电 子邮箱或其它自包括信息档案(组)的数字文件附件被认为是等同于有 形存储介质的分布介质。因此,如本文所列出的,该实施例被认为包括 一个有形存储介质或分布介质,以及其它同等设备和后继介质,本文的 软件实现即在此存储。

本文描述的示例性实施例旨在对各种实施例的结构提供大致的了 解,而不是作为可能利用本文所描述的结构的装置和系统的所有元件和 特性的完整描述。在浏览以上实施例后,很多其它实施例对于本领域的 技术人员而言可以是显而易见的。其它实施例是由此运用并派生出来的, 这样在不脱离本公开的范围的情况下,可以做出结构和逻辑的替换和改 变。附图仅仅是代表性的,而不是按比例绘制。为了便于解释本发明的 实施例,某些比例可能夸大,有些比例可能缩小。因此,本说明书和附 图应该被认为是示例性的,而非局限性的。

仅为了方便而不是旨在主动将本申请的范围局限为任何单一实施 例或发明概念,可以通过术语“实施例”在此单独和/或共同指代本公开 的类似实施例。因此,尽管在此已经示例并描述了具体的实施例,但是 应该理解被设计用于实现相同目的的任何设计,可以替代所示的具体实 施例。本公开旨在涵盖各种实施例的任意和所有的适应性修改和变化。 浏览了以上描述后,上述实施例的组合以及未在此具体描述的其他实施 例对本领域的技术人员将是显而易见的。

在之前描述的本发明的实施例中,为了简化本公开,各种特点被归 结到一个单独的实施例中。这种描述方法不该被理解为反映实施例有比 每项权利要求中明确记载的特征更多的特征。相反,如权利要求所述, 发明的主题的特征少于单一实施例中的所有特征。因此以下权利要求被 包括到发明内容中,每项权利要求代表其自己作为一个独立的示例实施 例。

摘要的提供是为了符合37C.F.R.§1.72(b)的规定,它要求要有一个 能够让读者迅速确定技术公开实质的摘要。应该理解,摘要的提交并不 是为了解释或限制权利要求的范围或意义。此外,在之前的发明内容中, 可见,为了简化本公开,各不同的特征归纳到一个单独的实施例中。不 应该认为这种描述方法反应这种描述方法不该被理解为反应实施例有比 每项权利要求中明确记载的特征更多的特征。相反,如权利要求所述, 发明的主题的特征少于单一实施例中的所有特征。因此以下权利要求被 包括到发明内容中,每项权利要求代表其自己作为一个独立的要求权利 的主题。

尽管详细的示例实施例在本文中得以描述,在不超出本文所描述的 发明主题的更加宽泛的范围的情况下,对本发明的这些实施例的修饰和 改变是显而易见的。因此,本说明书和附图应该被认为是示例性的,而 非限制性的。附图构成了本发明的一部分,以示例的方式说明本发明主 题实施的具体实施例,但并不局限于此种方式。本文的示例实施例提供 了足够的细节,能够使该领域的技术人员实践这些教导。其它实施例是 由此运用并派生出来的,这样在不脱离本公开的范围的情况下,可以做 出结构和逻辑的替换和改变。因此,本详细说明书不应该被理解成限制 性的。并且各种实施例的范围仅由所附权利要求及这些权利要求的等同 物的完整范围所限定。

根据在此提供的本发明的教导,本领域的普通技术人员能够想到本 发明的技术的其它实施和应用方式。尽管本发明的示例性实施例已在本 文中参照附图加以描述,但应了解本发明不限于这些确切的实施例,且 应了解在不脱离本发明附属权利要求的范围的情况下,其它各种改变及 修改可由本领域的技术人员实现。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号