在存储网络中的存储的管理的制作方法

文档序号:12142034阅读:273来源:国知局
在存储网络中的存储的管理的制作方法与工艺

本文讨论的实施方式涉及在存储网络中的存储的管理。

背景

个人数据(例如照片、视频、文档等)的量增加,使得用于存储个人数据的不同方法和系统也增加。然而,存储个人数据的很多方法和系统可提供其它挑战,例如是麻烦的和耗时的,提供不充足的冗余,且不允许在不同设备上的数据的容易可访问性连同其它缺点。

在本文主张的主题不限于解决任何缺点的或只在环境例如上面所述的环境中操作的实施方式。更确切地,这个背景只被提供来说明一个示例技术领域,其中本文所述的一些实施方式可被实践。

概述

示例实施方式包括可包括为与存储网络相关的网络数据的存储而分配的第一部分的存储块。存储网络可包括存储块和一个或多个其它存储块。存储块还可包括为本地数据的存储而分配的第二部分。本地数据可与包括存储块的设备的一个或多个程序相关。此外,存储块可包括第三部分作为存储块的自由空间。第三部分可通过对存储在第一部分上的网络数据的量做出的调节而近似地被维持在目标大小处。

实施方式的目的和优点将被认识到并至少由在权利要求中特别指出的元件、特征和组合实现。

应理解,前述一般描述和下面的详细描述都是示例性的和解释性的且并不限制本发明,如所主张的。

附图的简要说明

将通过附图的使用以额外的具体性和细节描述和解释示例实施方式,其中:

图1示出示例存储系统的方框图;

图2A-2C示出可在图1的存储系统中实现的示例所分配的存储块;

图3是管理在存储块上的存储分配的示例方法的流程图;以及

图4是都根据本文所述的至少一个实施方式的管理在存储块上的存储的示例方法的流程图。

一些示例实施方式的描述

本文所述的一些实施方式涉及在移动存储系统上的数据的存储的管理。示例实施方式包括包含一个或多个设备的存储网络,这些设备包括一个或多个存储代理和一个或多个存储块。存储网络可包括在本公开中可被称为存储网络管理器的管理服务。存储代理可配置成管理在存储块之间的数据的合作存储。存储网络管理器可配置成协调通过一个或多个存储代理的行动以及在存储块当中的存储网络内的数据的存储。与存储网络相关的数据可被称为“网络数据”,并可包括数据文件和数据对象以及与数据文件和数据对象相关的元数据。在一些实施方式中,网络数据可包括存储在存储网络中的数据的目录,其在一些实例中可以是存储在存储网络中的所有数据的目录。

一个或多个存储块可包括为了网络数据的存储而分配的第一部分和为本地数据分配的第二部分。本地数据可以是可由存储块可被包括在其中的设备的一个或多个程序使用和/或管理的数据。此外,一个或多个存储块可包括被分配为自由空间的第三部分。第三部分可具有目标大小,使得期望量的自由空间可被维持在存储块上。如下所述,可调节存储在第一部分上的存储网络数据的量,使得第三部分的实际大小等于或近似等于目标大小。

将参考附图解释本公开的实施方式。

图1示出根据本公开的至少一个实施方式配置的示例存储系统100的方框图。存储系统100可包括存储网络102,其包括存储代理(SA)104a-104c。虽然存储系统100被示为包括具有被包括在其中的三个不同的存储代理104的单个存储网络102,系统100可包括任何数量的存储网络102,每个可包括任何数量的存储代理104。

在一些实施方式中,存储系统100可配置成存储、组织和管理数据文件,例如照片、视频、文档等。在一些实施方式中,数据文件可被包括在数据对象中,数据对象还可包括可提供关于数据文件的信息的元数据。在本公开中的术语“数据”可以指可由存储代理104存储并可包括一个或多个数据对象、数据文件、元数据或其任何组合的任何适当信息。

此外,术语“网络数据”可以指可由存储网络102的多于一个存储代理104共享、存储在存储网络102的多于一个存储代理104上和/或在存储网络102的多于一个存储代理104之间同步的任何数据。例如,网络数据可包括数据文件、元数据、数据对象或其它数据如数据对象根和树结构信息、存储代理状态信息(在下面更详细地解释)、数字版权管理(DRM)许可信息(在下面更详细地解释)、共享票证信息(在下面更详细地解释)、任何其它适当的信息或其任何组合。

存储系统100可配置成以可减小用户所需的输入的量的自动化方式组织并管理存储在与存储代理104a-104c相关的存储块110中的数据。因此,存储系统100可便于由存储网络102内的存储块110存储的数据的组织和对该数据的访问。

存储代理104每个可与处理器150、存储器152和存储块110相关。例如,在所示实施方式中,存储代理104a可包括处理器150a、存储器152a和存储块110a;存储代理104b可包括处理器150b、存储器152b和存储块110b;以及存储代理104c可包括处理器150c、存储器152c和存储块110c。

处理器150可包括例如微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或配置成解释和/或执行程序指令和/或处理数据的任何其它数字或模拟电路。在一些实施方式中,处理器150可解释和/或执行程序指令和/或处理存储在它们相关的存储器152和/或一个或多个存储块110中的数据。

存储器152可包括配置成在一段时间期间保留程序指令和/或数据的任何适当的计算机可读介质。作为例子而不是限制,这样的计算机可读介质可包括有形计算机可读存储介质,包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存设备(例如固态存储器设备)、专用分子序列(例如DNA或RNA)或可用于携带或存储以计算机可执行指令或数据结构的形式的期望程序代码并可由处理器150访问的任何其它存储介质。上述项的组合也可被包括在计算机可读介质的范围内。计算机可执行指令可包括例如使通用计算机、专用计算机或专用处理设备(例如处理器150)执行某些功能或功能组的指令和数据。

存储块110也可以是配置成存储数据和/或数据对象的任何适当的计算机可读介质。存储块110可在不同的存储块110当中存储可以是实质上相同的网络数据,并且还可存储可以只在特定的存储块110上找到的本地数据。虽然每个存储代理104被描绘为包括单个存储块110,存储代理104可包括任何数量的计算机可读介质的任何数量的存储块110。例如,存储代理104可包括是硬盘驱动器的第一存储块110和是闪存磁盘驱动器的第二存储块110。此外,存储块110可包括多于一种类型的计算机可读介质。例如,存储块110可包括硬盘驱动器和闪存驱动器。

此外,多于一个存储代理104可与同一存储块110相关,取决于不同的实现和配置。例如,存储块110可以是可在不同的时间连接到不同的存储代理104的通用串行总线(USB)存储设备或安全数字(SD)卡。此外,虽然存储代理104可明确地被描绘为包括处理器150、存储器152和存储块110,不同的实现可具有不同的配置。例如在一些实施方式中,存储代理104可以是被包括在它们的相关设备的存储器152中的带有计算机可执行指令的模块,计算机可执行指令配置成使它们的相关设备的处理器150执行与可存储在存储块110上的管理数据相关的操作。

与在存储网络102内的数据的组织和管理相关的一些功能可与在存储块110中的一个或多个部分的分配和管理相关。通过分配,存储块110的有效使用可被维持。关于图2A-2C提供存储块110的示例分配和存储块110的示例管理过程。

在一些实施方式中,一个或多个存储代理104与可包括存储代理104的部件的任何适当的设备包括在一起。例如,存储代理104可被包括在云存储服务器、移动电话、平板计算机、个人计算机、膝上型计算机、摄像机、个人数字助理(PDA)、智能电话、音乐播放器、视频播放器、外部硬盘驱动器等中。

与存储代理104相关的设备可包括可允许在存储代理104之间传递数据的任何设备。相应地,设备可提供在存储代理104之间的某种通信能力,例如互联网连接、局域网(LAN)连接、广域网(WAN)连接、蓝牙连接、3G连接、4G连接、LTE连接、无线保真(WiFi)连接、机器对机器(M2M)连接、设备到设备(D2D)连接、任何其它适当的通信能力或其任何适当的组合。

如上面指示的,存储代理104可经由直接通信和/或经由网络通信来执行上述通信。在所示实施方式中,存储代理104被描绘为通信地直接以及通过通信网络112耦合到彼此。在一些实施方式中,通信网络112可单独地或以任何适当的组合包括互联网、内联网、局部WiFi网络、无线LAN、移动网络(例如3G、4G和/或LTE网络)、LAN、WAN或任何其它适当的通信网络。

在存储代理104之间的数据的传递可相应地允许它们的相关设备访问并使用可能不一定在本地存储在它们的相应存储块110上的网络数据。因此,存储网络102和存储代理104可允许网络数据的存储,同时也允许对网络数据的访问,即使数据不在本地存储在特定的存储代理上。

在一些实施方式中,存储代理104可与被包括在基于对象的文件系统中的客户端或服务器类似地起作用。例如,存储代理104可配置成实现与在存储网络102和存储系统100内传递数据相关的协议。此外,由存储代理104管理的一些存储块110可配置成只存储被包括在各种数据对象中的元数据,而其它存储块110可配置成存储被包括在各种数据对象中的元数据和数据文件。

在一些实施方式中,为了管理并提供与在存储网络102中的数据的存储有关的信息,数据的目录可对存储网络102产生并被管理。例如,在一些实施方式中,目录可包括信息,例如哪些存储块110可在本地存储数据对象、单独的数据文件和/或任何其它元数据。目录还可包括可与数据文件相关的任何其它元数据。在一些实施方式中,目录可包括存储在存储网络102中的数据对象的所有元数据的集合。相应地,目录可用于确定哪个存储块110具有存储在其上的某些数据以及关于存储在不同的存储块110上的数据的其它信息。因此,存储代理104可知道从哪里访问数据,如果数据未在本地存储在它们相应的存储块110上。

在一些实施方式中,存储代理104可配置成连接到彼此并同步可存储在存储网络102当中的网络数据。例如,在一些实施方式中,存储块110可配置成存储来自与存储网络102相关的目录的所有元数据,使得每个相关的存储代理104可具有关于由该目录编索引的不同数据文件的信息(例如数据文件更新、数据文件删除、数据文件添加等)。在这些和其它实施方式中,存储代理104可在存储块之间同步目录,使得它们可具有关于存储网络102的最新信息。

通过同步网络数据例如目录,存储代理104可以知道或关于其它存储代理104的状态以及存储在存储网络102内的网络数据被更新。例如,第一存储代理104a可与第二存储代理104b和/或第三存储代理104c同步,使得第一存储代理104a关于第二存储代理104b和/或第三存储代理104c的连接或操作状态以及存储在其上的网络数据被更新。

除了在彼此之间通信以外,在一些实施方式中,存储代理104还可与可管理在整个存储网络中的网络数据的存储并可共同地或单独地被称为存储网络管理器114的一个或多个存储网络控制器通信。存储网络管理器114可与在分布式存储系统中的中央服务类似地起作用。存储网络管理器114可通过存储代理104来执行在存储系统100中的多个功能,例如协调行动。例如,存储网络管理器114的功能可包括但不限于找出在存储网络102内的数据文件的位置,协调在存储代理104之间的网络数据的同步,以及在存储块110之间分配网络数据。

在一些实施方式中,存储网络管理器114可被包括在与存储代理104相同的设备中,且在其它实施方式中,存储网络管理器114可被包括在与存储代理104分离的一个或多个设备中。此外,在一些实施方式中,存储网络管理器114可执行操作,使得存储网络管理器114可充当且是存储代理。例如,存储网络管理器114可存储一些网络数据,例如目录和/或与存储网络102相关的其它元数据,并可使它的网络数据与存储代理104同步,使得存储网络管理器114可关于这样的网络数据充当存储代理。

在一些实施方式中,存储网络管理器114可经由通信网络112(如图1所示)与存储代理104通信。存储网络管理器114还可配置成经由到相应的存储代理104的直接通信(未在图1中明确示出)与一个或多个存储代理104通信。

在一些实施方式中,存储网络管理器114可配置成使得存储在存储网络102中的数据文件不存储在存储网络管理器114上,但与存储网络102的数据文件有关的元数据(例如目录)可存储在存储网络管理器114上。在一些实施方式中,存储网络管理器114可将关于数据的存储的指令传递到存储代理104。存储代理104可响应于从存储网络管理器114传递的指令而起作用。

存储代理104可根据可存储在存储块110上的元数据来找出在存储网络102内的数据文件的位置。例如,存储代理104a可使用存储在与存储代理104a相关的存储块110a上的元数据(例如目录)来找出存储在存储网络110b上的数据文件的位置。找出数据文件的位置的一些或所有信息可在存储代理104之间和/或存储代理104和存储网络管理器114之间的同步期间被传递。此外或可选地,存储代理104可与存储网络管理器114通信以找出存储在存储网络102上的数据文件。

此外,存储网络管理器114可使用与其它存储代理104的不可靠或间歇的连接与一个或多个存储代理104通信。例如,存储代理104c可使用不可靠的连接通信地耦合到存储代理104b和/或存储代理104a,或存储代理104c可被包括在间歇地连接到存储代理104b和/或存储代理104a的外部设备中。存储网络管理器114可经由通信网络112相应地与存储代理104c通信,然后将关于存储代理104c和存储块110c的信息(例如网络数据)分程传递到存储代理104b和/或存储代理104a。

在一些实施方式中,一个或多个存储代理104(或它们的相关设备)可包括本地适配器130。在图1中,本地适配器130被描绘为包括在第二存储代理104b中;然而,一个或多个其它存储代理104a和/或104c或它们的相关设备可包括本地适配器130。通常,本地适配器130可创建在与存储代理104b相关的设备和存储网络102之间的接口。此外,本地适配器130可配置成执行多个功能,例如浏览和阅读数据的目录,创建新数据对象,以及注册并取消注册适配器管理的数据文件。例如,与存储代理104b相关的设备可产生数据对象,且本地适配器130可配置成便于所产生的数据对象吸收到存储网络102内。

在这些和其它情况下,本地适配器130可充当数据对象的短期高速缓存存储器,直到数据对象被吸收到存储网络102内为止。在可选的例子中,存储网络管理器114、一个或多个存储代理104或另一系统可配置成检测所产生的数据对象的数据文件是否是通过本地适配器130可访问的。当数据文件是通过本地适配器130可访问的时,数据对象的元数据可存储在存储块110中,使得数据对象可被添加到目录以向存储网络102的其它存储代理104提供数据对象和相关数据文件的认识。此外,当数据文件是通过本地适配器130可访问的时,存储网络管理器114、存储代理104或另一系统可配置成防止在存储块110中创建数据文件的额外拷贝。数据文件可因此经由本地适配器130由存储网络102可访问,本质上创建到数据文件的模拟链接。

如下面更详细描述的,可分配存储块110以有效地存储网络数据并确保在存储网络102内的冗余以及存储块110的期望配置。图2A-2C示出根据本文所述的至少一个实施方式的可由存储代理201管理的示例所分配的存储块200。所分配的存储块200可实质上类似于关于图1讨论的存储块110。存储代理201可实质上类似于关于图1讨论的一个或多个存储代理104。所分配的存储块200可被包括在存储网络例如图1的存储网络102中。此外,存储代理201和所分配的存储块200可与设备例如图1的设备106之一相关。存储代理201和所分配的存储块200相关于的存储网络可具有可对在存储网络内存储的网络数据编索引的数据的目录。所分配的存储块200可配置成存储数据的目录的数据对象的元数据224和/或数据的目录的数据对象的数据文件。

图2A-2C包括根据本文所述的至少一个实施方式的所分配的存储块200的分配210a-210c。具体地,图2A描绘初始分配210a,图2B描绘中间分配210b,以及图2C描绘所决定的分配210c。组合地参考图2A-2C,所分配的存储块200可包括第一部分202、第二部分204和第三部分206。

可为了与存储网络有关的网络数据的存储而分配第一部分202,所分配的存储块200被包括在存储网络中。例如,存储在第一部分202上的元数据224可包括网络数据的每个数据对象的元数据。在一些实施方式中,元数据224可被布置为对所有网络数据编索引的数据的目录。此外,根据包括在第一部分202中的存储空间的量的各种因素,网络数据的全部或子集可存储在第一部分202上。在一些实施方式中,第一部分202的大小(例如被分配到第一部分202的存储空间的量)可以是存储空间的最小数量或所分配的存储块200的存储空间的某个百分比。在其它实施方式中,第一部分202的大小可以是在第二部分204的期望大小和第三部分206的目标大小被满足之后在所分配的存储块200上留下的存储空间的量,如在下面更详细解释的。

在这个和其它实施方式中,网络数据的全部或子集是否存储在第一部分202上可基于第一部分202的可用空间。当第一部分202的可用空间大于网络数据的大小时,则所有网络数据可存储在第一部分202上。可选地,当第一部分202的可用空间小于网络数据的大小时,网络数据212的第一子集可存储在第一部分202上。在一些实施方式中,存储网络管理器例如图1的存储网络管理器114可配置成分配网络数据的哪些数据文件可被包括在网络数据212的第一子集中。

此外,在一些实施方式中,网络数据212的第一子集的一个或多个数据文件可被设计为数据文件的次级拷贝或初级拷贝。初级拷贝可以是存储网络管理器可指定为存储在第一部分202上作为相关数据文件的期望冗余的部分的拷贝。可选地,次级拷贝是在本地存储在第一部分202中的所分配的存储块200上的相关数据文件以便于对在设备(所分配的存储块200和存储代理201与该设备相关)上的相关数据文件的访问但不是期望冗余的部分的拷贝。在一些实施方式中,次级拷贝可存储在与所分配的存储块200相关的高速缓存存储器中。在一些实施方式中,存储代理201可被允许从第一部分202单方面地移除数据文件的次级拷贝而没有来自存储网络管理器的允许,但在没有来自存储网络管理器的允许时,不可移除数据文件的初级拷贝。

可为可由与存储代理201和所分配的存储块200相关的设备的一个或多个程序使用和/或维持的本地数据分配所分配的存储块200的第二部分204。例如,第二部分204可使与和第一部分202相关的存储网络无关的程序能够存储本地数据以运行和/或处理信息。第二部分204的大小可基于任何数量的因素,例如设备类型、设备的历史使用、装到设备上的多个程序、装在设备上的程序的类型等。例如,设备可包括可产生可存储在第二部分204上的文档的字处理器或电子制表软件。相应地,第二部分204的大小可被分配以适应这种类型的数据的添加。

此外,第二部分204的大小可通常基于在设备上运行的多个程序和/或由程序执行的过程的数量而改变或变化。例如,第二部分204可最初被分配为具有大约与存储在所分配的存储块200上的本地数据大约相同的初始大小。当本地数据的量例如通过程序的添加而增加时,第二部分204的大小也可增加。

所分配的存储块204的第三部分206可被分配为自由空间。术语“自由空间”用于指可没有数据文件、元数据、程序文件等的所分配的存储块200的区段。第三部分206可包括目标大小。目标大小可以是第三部分206的期望大小并可以提供使数据添加到所分配的存储块200的灵活性。在一些实施方式中,目标大小可以是存储空间的固定量或所分配的存储块200的总大小的百分比。

例如,第三部分206的目标大小可包括所分配的存储块200的预先确定的百分比、存储空间的某个数量、或实现本文所述的功能的某个其它目标大小。作为例子,第三部分206可以是存储块200的总存储容量的25%。可选地,第三部分206可包括某个数量的位或字节。在一些实施方式中,目标大小可基于本地数据的数据文件的平均大小和/或网络数据的数据文件的平均大小,使得所分配的存储块200可以有空间来添加可应用的数据文件,如果需要。

第三部分206的大小可改变或变化。例如,当新数据对象被添加到所分配的存储块200(例如被添加到第一部分202、第二部分204或第三部分206)时,在所分配的存储块200中的自由空间的量可减小。相应地,在一些实例中,所分配的存储块200的第三部分206可减小。例如,新数据对象可包括由设备拍摄的照片,所分配的存储块200被包括在该设备上。照片可由相关适配器自动添加到所分配的存储块200(例如到第一部分202),这可减小在所分配的存储块200上的自由存储空间的量并因此可在一些实例中减小第三部分206的大小。作为另一例子,在一些实施方式中,第二部分204可在大小上增加(例如通过程序的添加等),使得第三部分206可在大小上减小。此外,在一些实施方式中,网络数据可以如由存储网络管理器指示的被添加到第一部分202,使得第三部分206的大小可减小。相反,一个或多个数据文件或数据对象可从第一部分202和/或第二部分204移除,这可增加第三部分206的大小。

存储代理201和/或存储网络管理器可配置成通过调节存储在第一部分202上的网络数据的量来将第三部分206维持在大约目标大小处。例如在一些实施方式中,可确定第三部分206的大小(例如在所分配的存储代理上的自由空间的量)大于第三部分206的目标大小。相应地,在一些实例中,存储代理201可将此通知给存储网络管理器,且存储网络管理器可分配来自网络数据的额外数据文件以存储在第一部分202上,这可减小第三部分206的大小。可做出网络数据的额外数据文件到第一部分202的分配,使得第三部分206的大小可等于或近似等于目标大小。

此外,在一些实施方式中,可确定第三部分206的大小小于第三部分206的目标大小。例如,第三部分206的大小可由于数据到第一部分202和/或第二部分204的添加而减小。相应地,在一些实例中,存储代理201可从第一部分202移除网络数据,使得第三部分206的大小可增加。网络数据的移除可被执行,直到第三部分206的大小近似等于或等于目标大小为止。

在一些实施方式中,存储代理201可配置成首先移除被指定为次级拷贝的网络数据的数据文件,因为次级拷贝可以不是它们的相关数据文件的期望冗余。相反,在未首先接收到来自存储网络管理器的允许时,存储代理201可能不能够移除被指定为初级拷贝的数据文件。相应地,在一些实施方式中,当没有存储在第一部分202上的数据文件的更多的次级拷贝且第三部分206的大小小于目标大小时,存储代理201可将关于哪些数据文件可从第一部分202移除的请求传递到存储网络管理器。

图2A-2C示出当第二部分204在尺寸上增加使得第三部分206在尺寸上减小到低于目标大小时在所分配的存储块200中的行动的示例进展。图2A示出初始分配210a。在初始分配中,第三部分206的目标大小可以是所分配的存储块的总存储容量的10%,且第三部分206的大小可以近似等于目标大小。此外,可为与一个或多个程序相关的本地数据分配第二部分204,以及可为元数据224和网络数据212的第一子集的存储分配第一部分202。

图2B示出中间分配210b,其中第二部分204增加以包括第三部分206的一部分208。例如,可最初使用第二部分204的程序可增加存储使用以包括第三部分206的部分208。因此,第三部分206可例如从所分配的存储块200的存储容量的大约10%减小到大约7%。中间分配210b可例如从在包括所分配的存储块200的设备上装入和/或运行的一个或多个程序产生。

图2C示出所决定的分配210c,其中第三部分206可增加。具体地,第三部分206可通过将第一部分202中的一些重新分配到第三部分206内来返回到目标百分比(例如大约10%)。因此,可通过将第一部分202中的一些重新分配到第三部分206内来维持第三部分206的目标大小(例如所分配的存储块200的总大小的10%)。

在一些实施方式中,为了重新分配第一部分202,可检测在第一部分202上的一个或多个数据文件。例如参考图2A和2C,在初始分配210a中,网络数据212的第一子集可存储在所分配的存储块200的第一部分202上。在图2C的所决定的分配中,网络数据216的第二子集可存储在第一部分202上,其中数据文件216的第二子集可以比数据文件212的第一子集小。在数据文件可被删除以维持预先配置的百分比的实施方式中,数据文件216的第二子集可包括数据文件212的第一子集中的一个或多个。

图3是根据本文所述的至少一个实施方式的管理在存储块上的存储分配的示例方法300的流程图。方法300的一个或多个步骤可在一些实施方式中由在存储系统中操作的存储代理和/或存储网络管理器例如在图1的示例存储系统100中操作的示例存储代理104和示例存储网络管理器114实现。例如,图1的存储代理104和/或存储网络管理器114之一可配置成执行计算机指令以执行管理如由方法300的一个或多个块表示的在存储代理上的存储分配的操作。虽然被示为分立的块,各种块可分成额外的块,组合成更少的块,或被消除,取决于期望实现。现在将参考图3讨论方法300。

方法300可在块302开始,在块302,存储块的第一部分被分配到用于网络数据的存储的第一部分内。网络数据可与包括存储块和一个或多个其它存储块的存储网络相关。在块304,可为与包括存储块的设备的一个或多个程序相关的本地数据分配存储块的第二部分。在块306,存储块的第三部分可被分配为存储块的自由空间。第三部分可具有与在存储块上的自由空间的期望量相关的目标大小。

在块308,可通过调节存储在第一部分上的网络数据的量来将第三部分的大小维持在大约目标大小处。在一些实施方式中,第三部分的大小可根据下面关于图4所述的方法400来近似地被维持在目标大小处。

图4是根据本文所述的至少一个实施方式的管理在存储块上的存储的示例方法400的流程图。方法400的一个或多个步骤可在一些实施方式中由在存储系统中操作的存储代理和/或存储网络管理器例如图1和2A-2C的示例存储代理104和201以及在图1的示例存储系统100中操作的示例存储网络管理器114实现。例如,上面所述的存储代理104、201和/或存储网络管理器114之一可配置成执行计算机指令以执行管理如由方法400的一个或多个块表示的在存储代理上的存储分配的操作。虽然被示为分立的块,各种块可分成额外的块,组合成更少的块,或被消除,取决于期望实现。

现在将参考图4讨论方法400。在一些实施方式中,方法400可关于存储块来实现,存储块以如上面关于图2A-2C和3所述的方式被分配到网络数据的第一部分、本地数据的第二部分和自由空间的第三部分内。为了解释的目的,下面关于存储代理201、所分配的存储块200及其相关的第一部分202、第二部分204和第三部分206描述方法400。然而,方法400不限于这个特定的实现。

方法400可在块402开始,在块402,可为所分配的存储块200确定第三部分206的目标大小。在一些实施方式中,存储代理201可确定自由存储空间的目标大小。在这些或其它实施方式中,与存储网络(所分配的存储块200可被包括在存储网络中)相关的存储网络管理器也可确定第三部分206的目标大小并将目标大小传递到存储代理201。

如上面所示的,可在一些实施方式中基于所分配的存储块200的自由存储空间的期望量来确定目标大小,使得所分配的存储块200可添加数据,如果需要或期望。在一些实施方式中,目标大小可基于网络数据的平均文件大小、本地数据的平均文件大小和/或所分配的存储块200的总存储容量。在这些和其它实施方式中,目标大小可以是所分配的存储块200的总存储容量的百分比或存储空间的固定量。

在块404,可监控第三部分206的大小。存储代理201和/或相关的存储网络管理器可执行监控。在块406,可确定第三部分206的大小近似等于或等于与自由存储空间的期望量相关的目标大小。存储代理201和/或相关的存储网络管理器可再一次做出这个确定。当第三部分206的大小近似等于或等于目标大小时,方法400可返回到用于监控第三部分206的大小的块404。当第三部分206的大小不近似等于或等于目标大小时,方法400可继续进行到块408。

在块408,可确定第三部分206的大小是否大于目标大小。在一些实施方式中,当第三部分206的大小大于目标大小时,方法400可继续进行到块410。当第三部分206的大小大于目标大小时,所分配的存储块200可能能够存储更多的数据,例如网络数据。相应地,在一些实施方式中,在块410,可确定网络数据的哪些数据文件可被添加到第一部分202。

在一些实施方式中,在块410,网络数据的某些数据文件可能已经由存储网络管理器分配到第一部分202,但分配到第一部分202的数据文件可能还未全部保存到第一部分202。因此,可确定这些数据文件中的一个或多个应在块410被添加到第一部分202。在这些或其它实施方式中,所有所分配的数据文件可存储在第一部分202上,或分配可能是过时的,使得存储网络管理器可根据任何适当的分配方案产生可被添加到第一部分202的网络数据的数据文件的列表。相应地,在一些实施方式中,可在块410确定由存储网络管理器产生的数据文件的列表的一个或多个数据文件应被添加到第一部分202。在一些实施方式中,存储网络管理器可配置成监控第一部分202,并可单方面地产生列表,而在其它实施方式中,存储代理201可从存储网络管理器请求列表。

在块412,在块210中被确定为添加到第一部分202的网络数据的数据文件可被添加到第一部分202。在一些实施方式中,网络数据的数据文件可从可被包括存储网络中的一个或多个其它存储块添加到第一部分202,存储代理201被包括在存储网络中。在块412之后,方法400可返回到块404。在一些实施方式中,方法400可省略块410和412,且当第三部分的大小大于目标大小时方法400可从块408继续回到块404。

返回到块408,其可确定第三部分206的大小是否大于目标大小。在一些实施方式中,当第三部分206的大小小于目标大小时,方法400可继续进行到块414。在块414,可产生存储在第一部分202上作为次级拷贝的数据文件的列表。在块416,可移除被指定为次级拷贝的一个或多个数据文件。存储代理201和/或存储网络管理器可配置成产生和/或执行与块414和416相关的指令。可在一些实例中首先移除数据文件的次级拷贝,因为如上面提到的,它们关于其相关数据的期望冗余可以不是非常重要。此外,由于操作与数据文件的次级拷贝有关,存储代理201可能能够执行与块414和416相关的操作而没有来自存储网络管理器的授权。

在块418,可在删除一个或多个次级拷贝之后确定第三部分206的大小是否仍然小于目标大小。在一些实施方式中,当第三部分206的大小小于目标大小时,可删除更多的次级拷贝,如果它们没有全部已经被删除。在这些和其它实施方式中,在块420,当第三部分206的大小仍然小于目标大小时,对于可从第一部分202移除的一个或多个数据文件的列表,存储代理210可联系存储网络管理器。存储网络管理器可基于可由存储网络管理器使用以将网络数据分配到存储代理201的分配方案产生该列表。在块422,存储代理201可根据关于在块420产生的请求由存储网络管理器产生的列表从第一部分202移除数据文件。按照块422,方法400可返回到块404。

相应地,方法300和/或400可用于管理在存储块上的数据的存储。本领域中的技术人员将认识到,对于本文公开的这些和其它过程和方法,在过程和方法中执行的功能可以按不同的顺序实现。此外,所概述的步骤和操作仅作为例子被提供,且一些步骤和操作可以是可选的、组成为更少的步骤和操作或扩展成额外的步骤和操作而不减损所公开的实施方式。此外,虽然特定的元件被公开为执行特定的步骤,在一些实施方式中,不同的元件可执行相同的步骤。本文所述的实施方式可包括专用或通用计算机——包括各种计算机硬件和软件模块——的使用,如下面更详细讨论的。

可使用用于携带或具有计算机可执行指令或存储在其上的数据结构的计算机可读介质来实现本文讨论的实施方式。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为例子而不是限制,这样的计算机可读介质可包括非临时计算机可读存储介质,包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备或可用于携带或存储以计算机可执行指令或数据结构的形式的期望程序代码模块并可由通用或专用计算机访问的任何其它非临时存储介质。上述项的组合也应被包括在计算机可读介质的范围内。

计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行某个功能或功能组的指令和数据。虽然以结构特征和/或方法行动特有的语言描述了主题,应理解,在所附权利要求中定义的主题并不一定限于上面所述的特定特征或行动。更确切地,上面所述的特定特征和行动被公开为实现权利要求的示例形式。

如在本文使用的,术语“模块”或“部件”可以指配置成执行模块或部件的操作和/或可存储在通用硬件(例如计算机可读介质、处理设备等)上和/或由通用硬件执行的软件对象或软件例程的特定硬件实现。在一些实施方式中,本文所述的不同的部件、模块、引擎和服务可被实现为在计算系统(例如作为单独的线程)上执行的对象或过程。虽然本文所述的一些系统和方法通常被描述为在软件(存储在通用硬件上和/或由通用硬件执行)中实现,特定的软件实现或软件和特定的硬件实现的组合也是可能的并被设想。在这个描述中,“计算实体”可以是如前面在本文定义的任何计算系统或在计算系统上运行的任何模块或模块的组合。

在本文详述的所有例子和条件语言为教育学目的而设计以帮助读者理解本公开和由发明人为推进本领域而贡献的概念,且应被解释为没有对这样特别详述的例子和条件的限制。虽然本公开的实施方式被详细地描述,应理解,可对其作出各种变化、代替和变更而不偏离本公开的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1