副本数据的动态安置的制作方法

文档序号:6348993阅读:127来源:国知局
专利名称:副本数据的动态安置的制作方法
副本数据的动态安置
背景技术
随着计算设备变得更加普及并且在大众之间广泛地使用,这些设备生成和利用的数据量快速地增长。例如,计算和数据存储技术的近来的进步已经使得甚至形状因子最受限制的设备也能够针对各种耗费大量数据的应用(如文档编辑、媒体处理等)存储和处理大量的信息。进一步,通信技术近来的进步可以使得计算设备能够高速率地传递数据。除了其它技术之外,这些进步尤其已导致例如可以使用网络上多个位置处的计算设备进行的分布式计算服务的实施方案。另外,这些进步已经使得能够实现诸如基于网络的存储的服务的实施,所述服务允许计算设备的用户将与计算设备相关联的数据的一个或多个复本保持在网络上的远程位置。现有的系统和/或数据存储解决方案使得用户能够在与其原始的源分离的位置和/或介质中存储信息。由此,例如可以将来自计算设备的数据从硬盘驱动器复制到诸如磁带(tape)驱动器、外部硬盘驱动器之类的外部介质。然而,在基于网络的存储的实施方案和/或可用来提供物理上的远程位置以用于存储数据的其它解决方案中,与用户机和远程存储位置之间的用户数据的传输和恢复相关联的成本和复杂度可能在很大程度上限制系统的有用性。

发明内容
以下呈现对于本创新的简化的总结,以便提供对于这里描述的某些方面的基本理解。该总结不是对于所请求保护的主题的详尽的综述。其并非旨在识别所请求保护的主题的关键或决定性的要素,也并非旨在描绘主题创新的范围。其唯一目的在于以简化的形式呈现所请求保护的主题的某些构思,作为对于稍后呈现的更详细描述的前序。本主题创新涉及方便数据的分布式存储的系统和/或方法。分布式文件系统可以在存储节点上实施,以使得系统将数据的多个复本(例如副本)置于各种完全不同的存储节点以保证数据的可用性并使数据的丢失最小化。可以选择副本的安置和数量以满足可用性和耐用性要求。另外,可以优化安置决定以降低成本(例如存储成本、带宽成本、延迟成本寸y。根据一个方面,动态地评估存储节点以识别各个特征。在一个示例中,所述特征可包括存储节点的可用性、存储节点的容量、与存储节点相关联的数据存储成本、与存储节点相关联的数据传输成本、存储节点的定位、网络拓扑、与存储节点相关联的用户偏好、副本要求的便利选择。这些特征可用于生成最佳的安置决定。另外,这些特性可用于支持副本安置的动态重新分配。根据另一方面,可以通过在此描述的分布式存储技术来支持混合备份架构。在混合备份架构中,备份数据可以保留在网络或互联网络内的全球位置(例如“云”)以及一个或多个对等点上。据此,某些或所有的备份数据可以从云或靠近的对等点获得,由此降低了与恢复操作相关联的延迟和带宽消耗。在一个示例中,可以基于诸如但不限于位置的可用性、 网络拓扑、位置资源等等之类的因素来以智能和自动的方式选择要用于存储和/或重新获得备份数据的位置的选择。下列描述和附图详细阐述了所请求保护的主题的某些说明性的方面。然而,这些方面只表示可以采用本创新原理的各种方式中的一些,所请求保护的主题旨在包括所有这些方面及其等同体。当结合附图加以考虑时,所请求保护的主题的其他优点和新颖特性将会根据对于本创新的下列详细描述而变得显而易见。


图1图示根据各种方面的方便副本数据在一组存储节点之间的分布式安置的示例系统的框图。图2图示根据各种方面的方便生成副本要求的示例系统的框图。图3图示根据一个或多个方面的方便在一组存储节点之间分发数据的副本的示例系统的框图。图4图示根据各种方面的方便监视存储节点以动态分发副本的示例系统的框图。图5图示可与在此描述的各种方面结合使用的示例网络实施方案的框图。图6图示根据各种方面的方便生成和分发数据副本的示例系统的框图。图7图示根据各种方面的用于生成要在分布式文件系统中存储的部分数据的副本要求的示例性方法。图8图示根据各种方面的用于在存储节点之间分发部分数据的副本的示例性方法。图9图示可以采用所请求保护的主题的新颖方面的示例性联网环境。图10图示根据所请求保护的主题可采用的示例性操作环境。
具体实施例方式参照附图描述所请求保护的主题,其中贯穿各附图,相似的附图标记用以指代相似的要素。在下列描述中,为了说明,阐述许多特定的细节以便提供对于主题创新的彻底理解。然而,可能显而易见的是,所请求保护的主题可以在没有这些特定细节的情况下加以实施。在其它例子中,以框图形式示出了公知的结构和设备,以方便描述主题创新。如这里所使用的,措词“组件”、“系统”、“数据存储装置”、“云”、“对等点”、“超级对等点”、“客户端”等旨在指代与计算机有关的实体(硬件、硬件上执行的软件和/或固件)。 例如,组件可以是处理器上运行的进程、对象、可执行程序、程序、函数、库、子例程和/或计算机,或者硬件和软件的组合。通过说明的方式,服务器上运行的应用程序和服务器两者均可以是组件。一个或多个组件可以驻留在进程内,并且组件可以局部化于一个计算机上和 /或分布在两个或更多个计算机之间。各种方面将会以可包括数个组件、模块等的系统而加以呈现。要明白和理解的是, 所述各种系统可以包括额外的组件、模块等,和/或可以并非包括结合附图讨论的所有这些组件、模块等。也可以使用这些办法的组合。可以对电子设备(其包括利用了触摸屏显示技术和/或鼠标和键盘类型的接口的设备)执行在此公开的各种方面。这些设备的示例包括计算机(台式和移动式)、智能电话、个人数字助理(PDA)以及其它有线和无线的电子设备。
此外,所请求保护的主题可以实施为使用标准编程和/或工程技术来产生用以控制计算机实施所公开主题的软件、固件、硬件或其任何组合的方法、装置或制造品。这里使用的术语“制造品,,旨在囊括可以从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可包括但不限于磁存储装置(例如硬盘、软盘、磁条……)、光盘 (例如,高密度盘(⑶)、数字多功能盘(DVD)……)、智能卡和闪存设备(例如卡、棒、键驱动器……)。另外,应当理解,载波可用以承载计算机可读电子数据(如发送和接收电子邮件时或访问诸如因特网或局域网(LAN)之类的网络时所使用的那些)。当然,本领域技术人员要认识到,可以在不脱离所请求保护的主题的范围或精神的情况下对这种配置进行许多修改。此外,用语“示例性,,在此用以表示用作示例、例子或说明。在此描述为“示例性,, 的任何方面或设计不一定要解释为相比于其它方面或设计是优选的或有益的。而是,用语示例性的使用旨在以具体形式公开构思。如本申请中所使用的,术语“或”旨在表示包容的 “或”而非排它的“或”。即,除非另外指定或根据上下文清楚地,否则“X采用A或B”旨在表示任何的自然包容置换。即,如果X采用A ;X采用B ;或者X既采用A又采用B,那么“X采用A或B”在任何的上述例子之下都是满足的。另外,本申请和所附权利要求书中使用的冠词“一”应当一般解释为表示“一个或多个”,除非另外指定或者根据上下文清楚地指明是单数形式。现在转到附图,图1图示根据各种方面的方便副本数据在一组存储节点之间的分布式安置的系统100。在一个示例中,系统100可用以实施将复本文件、系统图像和/或其它数据安置在多台机器上的分布式文件系统。在一个方面中,所述机器可以是个人计算机、 膝上型计算机、服务器、便携式数字助理(PDA)、移动设备、智能电话、蜂窝电话、便携式游戏设备、媒体播放器或者可以存储、操作和/或传输数据的任何其它适当的计算设备。根据一个方面,可以结合基于网络的或在线的备份解决方案(例如,如下文进一步详细地描述的云备份系统)来利用系统100,基于网络的或在线的备份解决方案在客户机关联到的网络或互联网络上的一个或多个远程存储位置存储来自客户机的备份信息。传统的在线备份解决方案通过将在各种时间点从备份客户端获得的一组文件保持在远程的存储位置而工作。随后,通过按照请求从存储位置重新获取一个或多个文件以进行恢复。为了保证数据的可用性和/或防止数据丢失,系统100可以方便数据在一组存储节点108当中的分布式存储。这组存储节点108可以包括客户机(例如个人计算机、膝上型计算机等)、服务器、移动设备、网络存储装置、云存储位置和/或在分布式环境中可访问的任何其它适当的存储装置。更具体地,当客户机上的用户期望可靠地存储数据(如数据部分 104)时,复制处理组件102可用于生成副本要求以满足可用性、耐用性和/或冗余性标准。 副本要求可以是指定要分散在存储节点108之间的数据部分104的副本的总数的参数。在一个示例中,复制处理组件102可以基于存储节点108的特征来识别副本要求。存储节点的特征可以包括这样的特性,这些特性例如但不限于存储节点的可用性、存储节点的存储容量、存储节点上的存储成本、从/向存储节点传输的成本、存储节点相对于原始节点的网络接近度和/或定位以及网络拓扑等。复制处理组件102可以针对每个存储节点108单独地动态地评估这些特征。要理解,可以进行这些评估和/或重估,以使得在一时间段上保持关于节点特征的历史和/或统计的信息,以方便对于副本要求的智能确定。
在另一个方面中,一旦生成反映要分散的副本数量的副本要求,则安置组件106 可用以根据副本要求在一个或多个存储节点108当中复制数据部分104。在一个示例中,副本要求可以指示需要数据部分104的三个副本或复本,以满足可用性、冗余性和/或耐用性的级别。据此,安置组件106可以将三个副本散发在一组存储节点108中的三个节点。类似于复制处理组件102,安置组件106可以基于评估出的存储节点108的特征来做出安置决定。安置组件106可以从存储节点108选择一个或多个节点来保留副本。通过示例的方式, 安置组件106可以选择客户机附近的存储位置来保留新备份版本的副本,以便在一旦恢复时方便保持网络带宽的更加快速的重新获取。要理解,系统100可包括任何适当的和/或必要的接口组件(未示出),其提供各种适配器、连接器、通道、通信路径等以将复制处理组件102和安置组件106集成至几乎任何的应用、操作和/或数据库系统(一个或多个)和/或彼此集成。另外,接口组件可提供各种适配器、连接器、通道、通信路径等,其提供与复制处理组件102、安置组件106、存储节点 108和/或系统100所关联的组件的交互以及在复制处理组件102、安置组件106、存储节点 108和/或系统100所关联的组件之间的交互。现在转至图2,图示了根据各种方面的方便生成副本要求的系统200。如图2图示,系统200可包括复制处理组件102,其可基于数据和/或存储位置的特征来创建副本要求(例如确保数据存储的可用性和/或可靠性所需要的复本的数量)。在一个示例中,可将部分数据104提供给复制处理组件102,其中复制处理组件102可以确定与数据部分104相关联的副本要求。根据一个方面,复制处理组件102可以分析数据部分104以方便对于副本要求的确定。具体地,复制处理组件102可以利用数据评估组件202来检查可能影响所要求的和/ 或可能的复本数量的数据部分104的属性。在一个示例中,数据评估组件202可以探知数据部分104的大小。在另一个示例中,数据评估组件202可以评估数据部分104以确定是否可以将数据部分104压缩和/或分割以减小对于各个存储节点的存储影响。例如,可以将数据部分104划分为多个片段(例如,块(chunk)、方块(block)等),以使得可以将相应的块各自分发给不同的存储节点。由于可以在存储成本没有相对增大的情况下实现存储节点的更大的多样化,因此这种分割可以在减小副本要求的同时增强可靠性。另外,数据评估组件202可以探知附于数据部分104的任何许可证(例如数据权限管理)。此外,数据评估组件202可以针对禁止和/或限制复制处理、分割或其它数据操作的事项来分析许可证。根据另外的方面,安置组件102可以包括网络分析器组件204,其可分析与系统 200相关联的计算网络以及分析存储节点108。网络分析器组件204可以识别存储节点的特征,以使得识别出的特征可以方便判定副本要求。所述特征可包括存储节点(例如,基于设备活动级别、通电或断电状况等)的可用性、节点的可用存储空间、节点的存储成本、向/ 从节点传输数据的成本、节点的网络定位等。这些特征可以方便例如以最佳定位平衡各种数据的可用性。根据另一个方面,复制处理组件102可包括量化组件206,其至少部分基于数据评估组件202和/或网络分析器组件204提供的结果来生成对于数据部分104的副本要求。 例如,量化组件206可以利用通过对于数据部分104的评估所获取的信息以生成要求。在一个示例中,量化组件206可以在数据部分104很大(例如消耗大量的存储资源)时减小副本要求,以便平衡可用性和存储成本。在另一个示例中,量化组件206可以类似地减小对于可分离的数据部分的要求。利用能够加以分割的数据部分,可以在保持存储利用级别的同时通过存储节点的更大多样化来增大可用性。另外,量化组件206可以考虑通过授权许可或其它数字权限管理所施加的对于复制处理的限制。量化组件206可以进一步基于通过对存储节点108的分析所获得的信息来生成副本要求。具体地,量化组件206可以在生成副本要求时对网络分析器组件204确定出的存储节点108的特征进行分解。量化组件206可以单独地评估存储节点108的特征和/或集合可用存储节点108的特征。在一个示例中,可以在存储节点108的可用性为高时指定更低的副本要求。在另一个示例中,可以在存储容量充足和/或存储成本低的时候指示更高的副本要求。根据另一个方面,量化组件206可以采用基于机器学习和/或启发式方法的统计模型以方便对于针对各个信息的副本要求的智能、自动的指定。具体地,量化组件206可以采用这样的模型其并入、集合和/或利用了量化组件206基于网络分析器组件204和 /或数据评估组件202所提供的信息的各个判定。在一个示例中,量化组件206可以利用任何适当的人工智能(Al)、机器学习和/或本领域公知的其它算法(一种或多种)。当在本说明书中使用时,术语“智能”是指用以基于关于系统的现有信息来推断或断定(例如推测) 系统当前或将来的状态的能力。人工智能可用于在无人干预的情况下识别特定的上下文 (context)或动作,或者生成系统的特定状态的概率分布。人工智能依赖于将高级数学算法(例如决策树、神经网络、回归分析、聚类分析、基因算法和加强学习)应用于系统上的一组可用数据(信息)。例如,可以将众多方法中的一种或多种用于从数据中进行学习,然后从这样构造的例如隐马尔可夫模型(HMM)和有关的原型依赖模型的模型推断更一般的概率图模型,如例如由使用贝叶斯模型评分或近似的结构搜索所创建的贝叶斯网络、线性分类器 (如支持向量机(SVM))、非线性分类器(如称为“神经网络”方法、模糊逻辑方法的方法,以及根据实施在此描述的各种自动方面的其它办法(其进行数据融合等))。图3图示根据一个或多个方面的在一组存储节点当中分发数据的副本的系统 300。如图3图示,系统300可包括安置组件106,其可以根据副本要求在存储节点108之间分发数据部分104的复本。在一个示例中,可以如上面参照图1和图2所述那样通过诸如复制处理组件102之类的复制处理组件生成副本要求。根据一个方面,安置组件106可包括网络分析器组件302,其可以分析与系统300 相关联的计算网络以及分析存储节点108。网络分析器组件302可以识别存储节点的特征, 以使得识别出的特征可以方便判定副本要求。所述特征可以包括存储节点(例如,基于设备活动级别、通电或断电状况等)的可用性、节点的可用存储空间、节点的存储成本、向/从各节点传输数据的成本、节点的网络定位等。在另一个方面中,安置组件106可包括策略生成组件304,其利用识别出的特征生成安置策略306。安置组件106可以另外地包括分发组件308,其根据安置策略306将数据部分104的副本分散至存储节点108。在一个示例中,安置策略306指定存储节点的优先级,以便安置组件106可以在最初尝试将数据部分104的副本置于较高优先级的节点。例如,安置策略306可包括被优先级化和评级的存储节点的列表,其中针对网络分析器组件 302识别出的每个特征提供相应列表。
在另一个示例中,分发组件308可以在所有特征当中利用节点的优先级的集合。 例如,分发组件308可以以统计方式组合(例如,平均、启发式组合、机器学习或其它的统计模型)对于每个特征的节点的优先级以得到累积的或总的优先级。分发组件308可以将数据部分104复制到最高评级的存储节点,直至副本要求中所指定的数量。在另一个示例中,分发组件308可以根据安置策略306利用一个或多个标准以选择存储节点。例如,分发组件308可以采用一个标准,以使得将副本存储于具有最高可用性的存储节点。据此,分发组件308根据安置策略选择就可用性而言具有最高优先级的存储节点。要注意,不受限制地或者不失一般性,分发组件308可以利用其它的标准。例如,另一标准可以偏好具有大存储容量和/或低成本存储丰富的存储节点。据此,分发组件308 可以选择就存储容量和/或存储成本而言具有最高优先级的存储节点。要理解,根据一个方面,用户可以人工地配置安置策略306。例如,用户可以在各存储节点108内指定优选的存储节点,以使得分发组件308将大量的副本分散至优选节点。 此外,用户可以指示限制存储节点108上的对于系统300可用的存储的参数。在另一个示例中,用户可以指定标准偏好。例如,分发组件308可以根据用户设定的偏好,对一种特征 (如可用性)比另一种特征(例如存储容量)更高地加权。根据另一个方面,安置组件106可以包括索引组件310和/或否则与索引组件310 相关联,该索引组件310可以保持列出了数据部分104的副本和副本已经分发到的存储节点之间的关系的索引。在一个示例中,索引组件310可以在分发组件308做出有关副本安置的分发决定时添加、删除和/或修改索引中的条目。在另一示例中,可以在各存储节点108 之间连同数据部分104的副本一起分发索引。要注意,不受限制地或者不失一般性,整个索引可以被复制并存储于一个或多个节点,或者索引可以在多个节点之间以块的方式予以分割和分发。尽管未在图3中描绘,但是要理解,系统300可以采用机器学习和推理(MLR)技术以针对各个信息方便对于存储节点的智能、自动选择。在一个示例中,可以采用任何适当的人工智能(Al)、机器学习和/或本领域公知的其它算法(一个或多个)。当在本说明书中使用时,术语“智能”是指用以基于关于系统的现有信息来推断或断定(例如推测)系统当前或将来的状态的能力。人工智能可用于在无人干预的情况下识别特定的上下文或动作, 或者生成系统的特定状态的概率分布。人工智能依赖于将高级数学算法(例如决策树、神经网络、回归分析、聚类分析、基因算法和加强学习)应用于系统上的一组可用数据(信息)。 例如,可以将众多方法中的一种或多种用于从数据中进行学习,然后从这样构造的例如隐马尔可夫模型(HMM)和有关的原型依赖模型的模型推断更一般的概率图模型,如例如由使用贝叶斯模型评分或近似的结构搜索所创建的贝叶斯网络、线性分类器(如支持向量机 (SVM))、非线性分类器(如称为“神经网络”方法、模糊逻辑方法的方法,以及根据实施在此描述的各种自动方面的其它办法(其进行数据融合等))。参照图4,所图示的是根据各种方面的方便监视存储节点以动态分发副本的系统 400。如图4中所描绘的,系统400可以包括监视一组存储节点108的观察组件402。尽管在图4中描绘了与存储节点108分离的观察组件402,但要理解,观察组件402可以包括分别与每个存储节点相关联的监视代理。监视代理可负责监视和报告与代理关联的各个存储节点的状况。
根据一个方面,观察组件402可以监视存储节点108。具体地,观察组件402可以跟踪各个存储节点108的健康、性能、可用存储量、可用带宽、连接性、总体可用性和/或其它资源的可用性。另外,观察组件402可以跟踪上面分别参照图2和图3描述的网络分析器组件204和/或302所识别出的特征。观察组件402可以将监视结果传递至安置组件 106,其可以有效地重新分配信息(例如副本)。在一个示例中,安置组件106可以将更多个副本分配给由观察组件402确定为具有更高可用存储量的存储位置。在另一个示例中,安置组件106可以基于监视数据在存储节点108之间分发副本,以实现可靠性和/或耐用性要求。在一个示例中,特定存储节点可以就对于客户机的定位而言是最佳的。然而,存储节点可能呈现低的可用性。据此,安置组件106可选择辅助存储节点以保留另外的副本。这种冗余性向客户机保证了在不总是最佳位置的情况下,数据的副本从某个存储节点将会是可用的。根据另一个方面,安置组件106可以基于监视结果动态地调整副本的分发。观察组件402可以持续地将有关存储节点108的监视结果传递至安置组件106。继而,安置组件 106可以在存储节点108周围移动副本。在一个示例中,安置组件106可以增大冗余性、减小冗余性、从靠近存储容量的节点删除副本、将另外的副本分配给具有增大的存储可用性的节点等。接下来参见图5,提供了示图500,其图示了可以结合这里描述的各种方面加以利用的示例网络实施方案。如示图500图示,网络实施方案可以利用混合点对点和基于云的结构,其中云服务提供商510与一个或多个超级对等点520以及一个或多个对等点530-540 交互。图5中图示的网络实施方案可以利用如上面参照先前的附图所描述的分布式存储系统,以实施混合点对点/基于云的备份架构。根据一个方面,云服务提供商510可以用来从与超级对等点(一个或多个)520和/ 或对等点(一个或多个)530-540相关联的网络/互联网络(例如因特网)上的给定位置来远程实施一个或多个计算服务。云服务提供商510可以源自一个位置,或者可替代地,云服务提供商510可以实施为分布式的基于因特网的服务提供商。在一个示例中,云服务提供商 510可以用来将备份功能提供给与云服务提供商510相关联的一个或多个对等点520440。 据此,云服务提供商510可以实施备份服务512和/或提供相关联的数据存储装置514。在一个示例中,数据存储装置514可以与超级对等点520处的备份客户端522和/ 或相应对等点530或540处的备份客户端532或542进行交互,以用作对于驻留于相应对等点实体520440的数据的中心存储位置。以此方式,通过数据存储装置514,云服务提供商510可以有效地用作对于位于对等点520-540的数据的在线“保险箱”。可以理解的是, 可以针对诸如文件(例如,文档、照片、音频、视频等)、系统信息等之类的任何适当类型(一种或多种)的信息进行备份。另外地或可替代地,可以实施分布式网络存储,以便超级对等点520和/或对等点530-540也被配置为包括相应的数据存储装置524、534和/或M4以用于备份与相关联的本地网络上的一台或多台机器相关联的数据。在另一个示例中,可以将诸如重复数据删除、增量存储之类的技术和/或其他适当的技术用于降低示图500代表的网络中的一个或多个对应实体处的数据存储装置514、5M、534和/或544所要求的存储空间量,以用于实施基于云的备份服务。根据另一个方面,云服务提供商510可以与一个或多个对等点机器520、530和/或540交互。如示图500中所图示的,一个或多个对等点520可被指定为超级对等点,并且可以用作相关联的本地网络中的云服务提供商510和一个或多个其它对等点530-540之间的联络器。尽管未在图5中图示,但应当理解,在认为合适的情况下,任何适当的对等点 530和/或MO以及指定的超级对等点(一个或多个)520都可以与云服务提供商510直接交互。由此,可以理解的是,云服务提供商510、超级对等点(一个或多个)520和/或对等点 530或540可以在任何适当的时间相互通信,以在示图500中所图示的各个实体之间同步文件或其他信息。在一个示例中,超级对等点520可以是网络上的与对等点520-540相关联的中心实体,如内容分发网络(CDN)、企业服务器、家用服务器和/或被确定为具有以这里描述的方式用作超级对等点的能力的任何其它适当的计算设备(一个或多个)。除了标准的对等点功能之外,超级对等点(一个或多个)520可负责在本地网络中的对等点520-540之间收集、 分发和/或索引数据。例如,超级对等点520可以保持存储索引526,该存储索引5 可包括对应于对等点520-540的各个文件和/文件片段的身份,以及对于网络中和/或云数据存储装置514中可以找到文件或其片段的相应位置(一个或多个)的指示器(一个或多个)。 另外地或可替代地,例如通过经由云上传组件5 在指定的非峰值时段将各个数据上传至云服务提供商510,超级对等点520可以用作其它对等点530-540和云服务提供商510之间的网关。在另一个方面中,提供备份对等点550,其可以将文件或其它信息备份到对等点 530和M0、超级对等点520和/或云510。在一个示例中,可以在云510、超级对等点520 和/或一个或多个对等点530-540之间分发文件或部分数据,以使得将此文件或部分数据的副本存储在一个或多个位置。备份对等点550可包括复制处理组件552,其可生成副本要求(例如需要存储的副本的数量)。复制处理组件可以分析数据存储装置556中保留的文件或部分数据,以及识别对等点530440、超级对等点520和云510的特征。基于该分析,复制处理组件552可以确定对于此文件或部分数据的适当副本要求。备份对等点550可以进一步包括安置组件554,其选择一个或多个存储节点以存储文件或部分数据的副本。存储节点可包括云510、超级对等点520和/或对等点530440。 在一个示例中,安置组件5M可以根据从分配给存储节点的特征得到的安置策略来做出安
置决定。要理解的是,系统500中图示的数据存储装置(例如数据存储装置514、522、532、 542和556)例如可以是易失性存储器或非易失性存储器,或者可以包括易失性和非易失性存储器两者。通过图示而非限制的方式,非易失性存储器可包括只读存储器(ROM)、可编程 ROM (PROM)、电可编程ROM (EPROM)、电可擦除可编程ROM (EEPROM)或闪存。易失性存储器可包括用作外部高速缓存存储器的随机存取存储器(RAM)。通过说明而非限制的方式,RAM 可以以许多形式可用,如静态RAM (SRAM)、动态RAM (DRAM)、同步DRAM (SDRAM)、双倍数据率 SDRAM (DDR SDRAM)、增强 SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), Rambus 直接 RAM (RDRAM)、直接 Rambus 动态 RAM (DRDRAM)和 Rambus 动态 RAM (RDRAM)。本主题系统和方法的数据存储装置旨在不加以限制地包含这些和任何其它适当类型的存储器。另外, 要理解的是,数据存储装置可以是服务器、数据库、硬件驱动器、笔式驱动器、外部硬盘驱动器、便携式硬盘驱动器等。
图6图示根据各种方面的生成和分发数据副本的系统600。系统600可包括复制处理组件102和安置组件106,其可以基本上类似于先前图中描述的各个组件、框、系统和接口。系统600进一步包括智能组件602。智能组件602可以由复制处理组件102和/或安置组件106用来例如推断存储节点的特征、部分数据的属性、副本的最佳安置、部分数据的副本要求等。智能组件602可以采用信息价值(VOI)计算,以便识别适当的存储节点来实现副本的最佳分配。例如,通过利用VOI计算,可以确定最理想和/或合适的副本分配。此外,要明白的是,智能组件602可提供从经由事件和/或数据捕获的一组观察中推断或推测系统、 环境和/或用户的状态。推测可用于识别特定的上下文或动作,或者例如可以生成关于状态的概率分布。推测可以是概率统计的一即,基于数据和事件的考虑关于感兴趣状态的概率分布的计算。推测也可以涉及用于从一组事件和/或数据构成更高级别的事件的技术。 这种推测导致从一组观察到的事件和/或存储的事件数据构造新的事件或动作,而不管事件是否很接近地时间相关,以及事件和数据是否来自一个或若干个事件和数据源。结合通过结合所请求保护的主题执行自动和/或推测的动作,可以采用各种分类(明确地和/或隐含地训练的)方案和/或系统(如支持向量机、神经网络、专家系统、贝叶斯信念网络、模糊逻辑、数据融合引擎......)。分类器是将输入属性矢量χ= (xl,x2, x3, x4, xn)映射到输入属于一定类别 (class)的置信度(confidence)的函数,S卩,f (x) confidence (class)。这种分类可采用基于概率的和/或统计的分析(例如,分解至分析效用和成本),以预测或推测用户期望自动执行的动作。支持向量机(SVM)是可以采用的分类器的示例。SVM通过在可能输入的空间中找到超曲面(该超曲面试图将触发标准与非触发标准事件进行分离)而工作。直观上, 这使得分类针对靠近但不同于训练数据的测试数据进行校正。可以采用提供了独立的不同形态的其它定向和非定向的模型分类办法,例如包括朴素贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型和概率分类模型。这里所用的分类也包括用来开发优先级模型的统计回归。复制处理组件102和/或安置组件106可以进一步利用呈现组件604,其提供各种类型的用户界面以方便用户与耦接至系统600的任何组件(例如存储节点、复制处理组件、 安置组件、安置策略、备份客户端、备份服务等)之间的交互。如所描绘的,呈现组件604是可以与复制处理组件102和安置组件106 —起使用的分离的实体。然而,要理解的是,呈现组件604和/或类似的观看组件可以并入到复制处理组件102、安置组件106和/或单独的单元中。呈现组件604可以提供一个或多个图形用户界面(⑶I)、命令行界面等。例如,可以做出这样的⑶I 其向用户提供用以加载、导入、读取、编辑(等)数据的区域或手段,并且可包括用以呈现这样的结果的区域。这些区域可以包含已知的文本和/或图形区域(包括对话框、静态控件、下拉菜单、列表框、弹出菜单、编辑控件、组合框、单选按钮、复选框、按钮和图形框。另外,可以采用用以方便呈现的应用,如用于导航的垂直和/或水平滚动条,以及用以确定区域是否将会是可浏览的工具条按钮。例如,用户可以与耦接和/或并入至复制处理组件102和/或安置组件106中的一个或多个组件进行交互,以指示对于副本的生成、数量和安置的偏好。用户例如也可以与区域进行交互,以便经由各种设备(如鼠标、滚动球、触摸板、数字小键盘(keypad)、键盘、触摸屏、笔和/或语音启动、身体运动检测)选择和提供信息。典型地,在录入信息之后可以采用诸如键盘上的按钮或确认键之类的机构,以便开始搜索。然而,要理解的是,所请求保护的主题不就此受限。例如,仅仅使复选框高亮就可以开始信息传达。在另一个示例中,可以采用命令行界面。例如,命令行界面可以经由提供文本消息向用户提示(例如经由显示器上的文本消息和音频音调)信息。用户然后可以提供合适的消息,如与界面提示中提供的选项对应的字母数字输入或者对于提示中提出的问题的答案。 要理解的是,命令行界面可以结合GUI和/或API加以使用。另外,命令行界面可以结合具有有限图形支持的显示器(例如黑白、EGA、VGA、SVGA等)和/或硬件(例如视频卡),和/或低带宽通信信道加以使用。图7-8图示了根据请求保护的主题的方法和/或流程图。为了说明简化起见,将该方法描绘和描述为一系列的动作。要明白和理解的是,本主题创新不限于图示的动作和 /或动作的顺序。例如,动作可以以各种顺序和/或同时地发生,并且可以与这里未呈现和描述的其它动作一起发生。此外,为了实施根据所要求保护的主题的方法,可以并不要求所有图示的动作。另外,本领域技术人员将明白和理解的是,可以经由状态图或事件将该方法可替代地表示为一系列相互关联的状态。另外,应当进一步理解的是,下文和贯穿此说明书所公开的方法能够存储在制造品上,以方便将这些方法输送和转移至计算机。这里使用的术语制造品旨在囊括从任何的计算机可读设备、载体或介质可访问的计算机程序。参见图7,图示了用于生成要在分布式文件系统中存储的部分数据的副本要求的方法700。在附图标记702处,分析部分数据以探知属性。该属性可包括这部分数据的存储量大小、这部分数据是否可以被压缩和/或分割以降低存储量或其它适当的属性。另外,可以分析这部分数据以授权许可可能限制或否则影响可用的副本复本数量的事项(例如数字权限管理)。在附图标记704处,可以评估一个或多个存储节点以探知节点的特征。在一个示例中,存储节点的特征可包括这样的特性,这些特性例如但不限于存储节点的可用性、存储节点的存储容量、存储节点上的存储成本、向/从存储节点传输的成本、存储节点相对于原始节点的定位和/或网络接近度以及网络拓扑等。在附图标记706处,可以生成副本要求。副本要求指定要在一个或多个存储节点之间分发的副本的数量。在一个示例中,副本要求可以基于这部分数据的属性。在另一个示例中,可以根据评估出的存储节点的特征来生成副本要求。现在转至图8,图示了用于在存储节点之间分发部分数据的副本的方法800。在附图标记802处,可以获得副本要求。副本要求指示要在一个或多个存储节点之间分散的副本的数量。在附图标记804处,评估所述一个或多个存储节点的特征。在附图标记806处, 该特征可用于生成安置策略。安置策略指定存储节点的优先级,以使得可以将副本置于更高优先级的节点。例如,安置策略可包括予以优先级化或评级的存储节点的列表,其中针对每个特征提供相应列表。在附图标记808处,可以根据策略和/或副本要求将副本分发至存储节点。为了提供用于实施所请求保护的主题的各种方面的另外的上下文,图9-10和下列讨论旨在提供对于其中可以实施本主题创新的各种方面的适当计算环境的简洁的、一般的描述。例如,诸如对等点和超级对等点之类的客户机以及云存储位置可以在这种适当的计算环境中加以实施。尽管上面已经在本地计算机和/或远程计算机上运行的计算机程序的计算机可执行指令的一般上下文中描述了所请求保护的主题,但是本领域技术人员将认识到,本主题创新也可以结合其它的程序模块加以实施。通常,程序模块包括执行特定任务和/或实施特定抽象数据类型的例程、程序、组件、数据结构等。通常,程序模块包括执行具体任务和/或实施特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域技术人员要理解的是,所请求保护的主题可以利用每一个均可以在操作上耦接至一个或多个相关联设备的其它计算机系统配置(包括单处理器或多处理器计算机系统、小型计算机、大型计算机以及个人计算机、手持式计算设备、基于微处理器或可编程消费类电子产品等)加以实施。也可以在其中通过经由通信网络链接的远程处理设备执行某些任务的分布式计算环境中实施所图示的各方面。在分布式计算环境中,程序模块可以位于本地和远程的存储器存储装置两者之中。计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计算机访问的任何可用介质,并且包括易失性和非易失性介质、可拆除和非可拆除介质两种。通过示例而非限制的方式,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质可包括用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的以任何方法或技术实施的易失性和非易失性介质、可拆除和非可拆除介质。计算机存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它的磁存储装置或者可用于存储期望的信息并可由计算机访问的任何其它介质。通信介质通常以诸如载波或其它传输机制之类的调制的数据信号来包含计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。术语“调制的数据信号”是指这样的信号其特征中的一个或多个以对信号中的信息进行编码的这种方式加以设置或改变。通过示例而非限制的方式,通信介质包括有线介质(如有线网络或直接有线连接)和无线介质(如声学、RF、红外和其它的无线介质)。上面的任何的组合应当也包括在计算机可读介质的范围内。现在参照图9,图示了可操作用以执行所公开的架构的示例性计算编译系统的示意框图。系统900包括一个或多个客户端902。客户端902可以是硬件和/或软件(例如线程、进程、计算设备)。在一个示例中,客户端902可以通过采用在此描述的一个或多个特性而容纳cookie (—个或多个)和/或相关联的上下文信息。系统900还包括一个或多个服务器904。服务器904也可以是硬件和/或软件 (例如线程、进程、计算设备)。在一个示例中,服务器904可以通过采用在此描述的一个或多个特性而容纳用以执行变换的线程。客户端902和服务器904之间的一种可能的通信可以是适于在两个或更多个计算机进程之间传送的数据分组的形式。数据分组例如可以包括 cookie和/或相关联的上下文信息。系统900包括可用于方便客户端(一个或多个)902和服务器(一个或多个)904之间的通信的通信框架906 (例如诸如因特网之类的全球通信网 可以通过有线(包括光纤)和/或无线技术方便通信。客户端(一个或多个)902在操作上连接至可用于存储客户端(一个或多个)902本地的信息(例如cookie (—个或多个) 和/或相关联的上下文信息)的一个或多个客户端数据存储装置908。类似地,服务器(一个或多个)904在操作上连接至可用于存储服务器904本地的信息的一个或多个服务器数据存储装置910。参考图10,用于实施在此描述的各种方面的示例性环境1000包括计算机1002,计算机1002包括处理单元1004、系统存储器1006和系统总线1008。系统总线1008耦接至系统组件,系统组件包括但不限于处理单元1004或系统存储器1006。处理单元1004可以是各种在商业上可用的处理器中的任何一个。双微处理器和其它的多处理器架构也可以用作处理单元1004。系统总线1008可以是若干类型的总线结构中的任何一种,其可以通过使用各种在商业上可用的总线架构中的任何一种而进一步与存储器总线(具有或没有存储器控制器)、外设总线和本地总线互连。系统存储器1006包括只读存储器(ROM) 1010和随机存取存储器(RAM) 1012。基本输入/输出系统(BIOS)存储在诸如R0M、Era0M、EEPR0M之类的非易失性存储器1010中,该BIOS包含帮助例如在启动期间在计算机1002内的各元件之间传输信息的基本例程。RAM 1012还可以包括诸如静态RAM之类的用于缓存数据的高速RAM。计算机1002进一步包括内部硬盘驱动器(HDD) 1014 (例如EIDE、SATA),该内部硬盘驱动器1014也可配置在适当的机箱(未示出)中以供外部使用;磁性软盘驱动器(FDD) 1016 (例如用以从或向可拆除盘1018进行读取或写入);以及光盘驱动器1020 (例如读取 CD-ROM盘1022,或者用以从或向诸如DVD之类的其它高容量光学介质进行读取或写入)。硬盘驱动器1014、磁盘驱动器1016和光盘驱动器1020可以分别通过硬盘驱动器接口 1024、 磁盘驱动器接口 10 和光学驱动器接口 10 而连接至系统总线1008。用于外部驱动器的接口 IOM的实施方案包括通用串行总线(USB)和IEEE-1394接口技术中的至少一个或两者。其它的外部驱动器连接技术在本主题公开的考虑之内。驱动器和其相关联的计算机可读介质提供了对于数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机1002,驱动器和介质容纳对于适当数字格式的任何数据的存储。尽管上面的计算机可读介质的描述涉及HDD、可拆卸磁盘和可拆卸光学介质(如 CD或DVD),但本领域技术人员应当理解的是,在示例性的操作环境中,也可以使用可由计算机读取的其它类型的介质(如极碟(zip)驱动器、磁盒、闪存卡、磁筒等),并且进一步,任何这种介质可包括用于执行在此公开的方法的计算机可执行指令。多个程序模块可存储在驱动器和RAM 1012中,包括操作系统1030、一个或多个应用程序1032、其它的程序模块1034和程序数据1036。操作系统、应用、模块和/或数据中的所有或部分也可缓存在RAM 1012中。要理解的是,所请求保护的主题可以利用各种商业上可用的操作系统或操作系统的组合而加以实施。用户可以通过一个或多个有线/无线的输入设备(例如键盘1038和诸如鼠标1040 之类的指向设备)而将命令和信息键入至计算机1002。其它的输入设备(未示出)可以包括麦克风UR遥控器、操纵杆、游戏板、手写笔、触摸屏等。这些和其它的输入设备经常通过耦接至系统总线1008的输入设备接口 1042而连接至处理单元1004,但是可以通过其它接口 (如并行端口、串行端口、IEEE-1394端口、游戏端口、USB端口、顶接口等)进行连接。监视器1044或其它类型的显示设备也经由接口(如视频适配器1046)连接至系统总线1008。除了监视器1044之外,计算机通常还包括诸如扬声器、打印机等之类的其它外设输出设备(未示出)。
通过使用经由有线和/或无线通信与一个或多个远程计算机(如远程计算机1048 (一个或多个))的逻辑连接,计算机1002可以在联网的环境中工作。远程计算机(一个或多个)1048可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设施、对等点设备或其它常见的网络节点,并且通常包括所描述的与计算机1002有关的许多或所有的元件(尽管为了简洁起见,仅图示了存储器/存储装置1050)。所描绘的逻辑连接包括对于局域网(LAN) 1052和/或更大的网络(例如,广域网(WAN) 1054)的有线 /无线连接。这种LAN和WAN联网环境在办公室和公司中是普遍的,并且方便了都可以连接至全球通信网络(例如因特网)的企业范围的计算机网络(例如内联网)。当在LAN联网环境中使用的时候,计算机1002通过有线和/或无线的通信网络接口或适配器1056连接至本地网络1052。适配器1056可方便到LAN 1052的有线或无线通信,其也可包括布置在其上的用于与无线适配器1056进行通信的无线接入点。当在WAN联网环境中使用的时候,计算机1002可包括调制解调器1058,或者连接至WAN 10 上的通信服务器,或者具有用于通过WAN 1054 (例如通过因特网)建立通信的其它装置。调制解调器1058 (其可以是内部或外部以及有线或无线设备)经由串行端口接口 1042连接至系统总线1008。在联网的环境中,所描绘的有关计算机1002的程序模块或其部分可以存储在远程存储器/存储装置1050中。要理解的是,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。计算机1002可操作用于与在操作上以无线通信方式布置的任何无线设备或实体 (例如打印机、扫描仪、台式和/或便携式计算机、便携式数字助理、通信卫星、与无线可检测标签相关联的任何设备或者位置(如售货亭、报摊、洗手间)以及电话)进行通信。这至少包括Wi-Fi和蓝牙 无线技术。由此,与传统的网络或仅仅是至少两个设备之间的ad hoc(专用)通信一样,通信可以是预定义的结构。Wi-Fi或无线保真是与使得设备能够在基站范围内的任何地方发送和接收数据的手机中所使用的无线技术类似的无线技术。Wi-Fi网络使用IEEE-802.il (a、b、g等)无线电技术以提供安全、可靠和快速的无线连接。Wi-Fi网络可用于将计算机连接至彼此、因特网和有线网络(其使用IEEE-802. 3或以太网)。Wi-Fi网络例如以13Mbps (802. Ila)或 54 Mbps (802. lib)数据速率工作在未经授权许可的2. 4GHz和5GHz无线电波段中,或者与含有这两个波段(双波段)的产品一起工作。因此,使用Wi-Fi无线技术的网络可以提供与 IOBaseT有线以太网类似的真实世界性能。上面已经描述的内容包括所请求保护的主题的示例。当然,不可能描述用于描述所请求保护的主题的目标的组件或方法的每个可设想到的组合,但是本领域普通技术人员可以认识到的是,许多进一步的组合和置换是可能的。据此,详细的描述旨在包含落入所附权利要求书的精神和范围内的所有这些变更、修改和变型。特别地,且针对上述组件、设备、电路、系统等所执行的各种功能,除非另外指出, 否则用以描述这些组件的术语(包括对于“手段”的引用)旨在对应于执行所描述的组件的特定功能(例如功能上的等同体)的任何组件,即使在结构上不等同于所公开的结构,其执行在此说明的示例性方面中的功能。就此,还要认识到的是,所描述的方面包括用于执行各种方法的动作和/或事件的系统以及具有计算机可执行指令的计算机可读介质。另外,尽管可能已经针对若干实施方案中的仅一个公开了具体的特性,然而如可能对于任何给定或具体的应用而言所期望和有利的那样,这种特性可以与其它实施方案的一个或多个其它特性组合。此外,就具体的描述或权利要求书中使用术语“包括”和“包含” 及其变体而言,这些术语以与术语“含有”类似的方式旨在是包容性的。
权利要求
1.一种方便副本在一组存储节点之间的分配的系统,包括处理器,其耦接至保留计算机可执行指令的存储器,所述处理器执行复制处理组件(102),其至少部分地基于数据(104)的属性或者一个或多个存储节点 (108)的特征来生成对于部分数据(104)的副本要求;以及安置组件(106),其根据所述副本要求在所述一个或多个存储节点之间分发所述部分数据的一个或多个副本,所述安置组件基于识别出的存储节点的特征来选择要存储副本的存储节点。
2.如权利要求1所述的系统,其中,所述部分数据的属性包括以下之中的至少一个所述部分数据的大小、所述部分数据的压缩性、所述部分数据的可恢复性或对于所述部分数据的授权限制。
3.如权利要求1所述的系统,其中,所述复制处理组件包括识别所述部分数据的属性的数据评估组件。
4.如权利要求1所述的系统,进一步包含网络分析器组件,其评估一个多个存储节点, 以便将特征分配给所述一个或多个存储节点。
5.如权利要求1所述的系统,其中,存储节点的特征包括以下之中的至少一个存储节点的可用性、存储节点的可用存储容量、对应于存储节点的存储的成本、向或自存储节点的数据传输的成本或存储节点相对于原始节点的网络定位。
6.如权利要求1所述的系统,其中,所述复制处理组件包括量化组件,其根据对于所述部分数据的属性以及一个或多个存储节点的特征的分析来选择副本要求。
7.如权利要求6所述的系统,其中,所述量化组件采用基于机器学习或启发式方法的至少一个的统计模型。
8.如权利要求1所述的系统,其中,所述安置组件包括策略生成组件,其根据所述一个或多个存储节点的特征生成安置策略,其中,所述安置策略指定存储节点的评级,并且所述安置组件利用安置策略分发副本以使得所述安置组件将优先级给予更高评级的存储节点。
9.如权利要求1所述的系统,其中,所述安置组件包括保持索引的分类组件,所述索引包含所述部分数据的副本和副本已分发到的存储节点之间的关系的列表,其中,当安置组件做出分发决定时,安置组件对索引中的条目进行添加、删除或修改中的至少一个。
10.如权利要求1所述的系统,进一步包含观察组件,其监视所述一个或多个存储节点以检测特征的变化,其中,所述安置组件基于所述观察组件持续传递的监视结果来动态地调节副本的分发。
11.如权利要求1所述的系统,其中,所述复制处理组件利用用户偏好生成副本要求, 并且所述安置组件利用用户偏好分发副本。
12.如权利要求1所述的系统,其中,所述这组存储节点包括一个或多个对等点或云存储位置,其中,所述安置组件通过相比于对应于云存储位置的存储节点,向对应于对等点的存储节点施加更高级别的偏好来分发副本。
13.—种在一个或多个存储位置当中存储数据的方法,包含采用执行计算机可读存储介质上存储的计算机可执行指令的处理器以实施下列动作将特征分配给一个或多个存储节点,所述特征包括以下之中的至少一个所述一个或多个存储节点的可用性、所述一个或多个存储节点的存储容量、与所述一个或多个存储节点处的数据的存储相关联的成本或所述一个或多个存储节点在网络中的定位(704、804); 至少部分地基于所分配的特征来指定对于部分数据的副本要求(706);以及根据所分配的特征和所述副本要求,将一个或多个副本置于所述一个或多个存储节点 (808)。
14.如权利要求13所述的方法,进一步包含利用所分配的特征以生成在特征方面对所述一个或多个存储节点进行优先级化的安置策略。
15.一种方便在一组存储节点当中分发数据的副本的系统,包含用于评估部分数据以探知如下属性的装置,所述属性包含以下之中的至少一个所述部分数据的大小、所述部分数据的压缩性、所述部分数据的可分离性或附于所述部分数据的许可证的事项(102、202、702);用于识别一组存储节点的特征的装置,所述特征包括存储节点的可用性、存储节点的容量或存储节点的网络定位(102、204、704、804);用于基于所述部分数据的属性或所述这组存储节点的特征中的至少一个来生成副本要求的装置(102、206、706);以及用于根据基于所识别出的特征的安置策略来选择至少一个存储节点的装置,所选择出的存储节点存储所述部分数据的副本(106、308、808)。
全文摘要
所请求保护的主题涉及方便数据的分布式存储的系统和/或方法。分布式文件系统可以在存储节点上实施,以使得系统将数据的多个复本(例如副本)置于各种完全不同的存储节点上以保证数据的可用性并使数据的丢失最小化。动态地评估存储节点以识别各个特征。在一个示例中,特征可包括存储节点的可用性、存储节点的容量、与存储节点相关联的数据存储成本、与存储节点相关联的数据传输成本、存储节点的定位、网络拓扑或与存储节点相关联的用户偏好。这些特征可用于生成最佳的安置决定。
文档编号G06F17/00GK102414692SQ201080018060
公开日2012年4月11日 申请日期2010年4月21日 优先权日2009年4月24日
发明者E. S. 墨菲 E., D. 梅尔 J., V. 莱辛斯基 Y. 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1