使用对象多个维度的信息存储对象转让专利

申请号 : CN201480023063.7

文献号 : CN105144142B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : J·R·哈密尔顿A·H·亨利

申请人 : 亚马逊科技公司

摘要 :

一种用于根据对多个维度的信息的分析对对象进行分组并跨存储系统中的不同存储解决方案存储所述对象的方法可实现为存储管理模块或实现在其中。所述模块收集关于存储系统(例如,数据存储系统)中的对象(例如,数据对象)的信息。所述对象可为已经存储在所述存储系统中的对象或可为有待存储在所述存储系统中的新对象。所述模块跨多个维度分析所收集的信息,以确定所述对象的分组,并且为每一个所确定的分组确定存储解决方案。所述模块随后可根据所确定的存储解决方案引导存储所述分组中的所述对象。一旦获取关于所述存储系统中的对象的新信息,所述模块就可根据包括新信息的分析引导将所述对象从一个存储解决方案移动到另一个存储解决方案。

权利要求 :

1.一种数据存储系统,包括:

不同的两个或更多个存储解决方案,用于将数据对象存储在所述存储系统中,每一个存储解决方案实现具有包括每存储单位成本和可访问性的不同特性的存储技术;以及实现存储管理模块的一个或多个计算设备,所述存储管理模块可操作来:获取关于多个数据对象的信息;

根据两个或更多个维度的所获取的信息至少部分地基于群集分析来确定所述数据对象的多个分组,其中所述维度彼此独立并且其中每个分组包括至少两个所述数据对象;以及响应于确定所述数据对象的所述多个分组:

至少部分地基于所述存储解决方案的至少一个特性以及至少部分地基于所述分组的至少一个特性,为所述数据对象的所述多个分组中的每一个确定所述两个或更多个存储解决方案中的相应一个存储解决方案;并且引导将所述多个分组中的所述数据对象存储至所确定的相应存储解决方案,其中,对于所述两个或更多个维度中的第一维度,所述多个分组中的所述数据对象的第一分组和所述数据对象的第二分组都共享第一维度特性被并引导至不同的存储解决方案,并且其中,对于所述两个或更多个维度中的第二维度,所述数据对象的第一分组的第二维度特性不同于所述数据对象的第二分组的第二维度特性。

2.如权利要求1所述的数据存储系统,其中,为了引导将所述多个分组中的所述数据对象存储至所确定的相应存储解决方案,所述存储管理模块可操作来:引导将所述数据存储系统中的新数据对象存储至所述两个或更多个存储解决方案中的一个;并且引导将所述数据存储系统中的现有数据对象从所述两个或更多个存储解决方案中的一个或多个移动至所述两个或更多个存储解决方案中的不同的存储解决方案。

3.如权利要求1所述的数据存储系统,其中所述两个或更多个维度包括所述数据对象的年限、所述数据对象的访问频率、所述数据对象的访问模式、所述数据对象的类型、所述数据对象之间的关系或所述数据对象的元数据中的两个或更多个。

4.如权利要求1所述的数据存储系统,其中所述存储解决方案中的一个或多个被实现在通电的并且气候受控的数据中心中,并且其中所述存储解决方案中的一个涉及存储至与所述数据中心相比具有更低功率要求和更低水平气候控制的设施的永久性存储介质,并且其中由所述存储解决方案实现的所述存储技术包括闪存技术、固态驱动器(SSD)技术、硬盘驱动器(HDD)技术、光盘(OD)技术或磁带技术中的两个或更多个。

5.如权利要求4所述的数据存储系统,其中,为了引导将所述多个分组中的所述数据对象存储至所确定的相应存储解决方案,所述存储管理模块可操作来:引导将一个或多个数据对象存储至所述存储介质,并且引导将所述存储介质存储在所述设施中;并且引导将至少一个数据对象从所述设施中的所述存储介质复制到所述数据中心中的所述一个或多个存储解决方案中的一个,其中所述至少一个数据对象的原件被保持在所述设施中的所述存储介质上。

6.如权利要求1所述的数据存储系统,其中所述数据存储系统为实现在服务提供者的网络上的存储服务,其中所述存储服务经由针对所述存储服务的API向一个或多个客户提供虚拟化存储装置,并且其中所述数据对象包括由所述一个或多个客户经由针对所述存储服务的所述API存储至所述虚拟化存储装置的数据对象。

7.一种用于数据存储的方法,包括:

通过由一个或多个计算设备实现的存储管理模块执行:

根据关于存储系统中的数据对象的多个维度的信息使用群集分析技术来分析所述数据对象,以确定所述数据对象的多个分组,其中每个分组包括多个数据对象,其中所述维度彼此独立;

响应于确定所述数据对象的所述多个分组:

根据包括每存储单位成本和可访问性的存储解决方案的不同特性并且至少部分地基于每个分组的维度特性,为每一个所确定的分组确定多个存储解决方案中的相应一个存储解决方案,其中,对于所述多个维度的信息中的第一维度,对象分组中的所述数据对象的第一分组和所述数据对象的第二分组共享第一维度特性被并确定为处于不同的存储解决方案中,并且其中,对于所述多个维度的信息中的第二维度,所述数据对象的第一分组的第二维度特性不同于所述数据对象的第二分组的第二维度特性;以及引导将至少第一分组和第二分组存储至所述存储系统中的所确定的相应存储解决方案。

8.如权利要求7所述的方法,其中所述存储系统为数据存储系统,其中所述对象为数据对象,并且其中所述存储解决方案每一个实现不同的存储技术。

9.如权利要求8所述的方法,其中由所述存储解决方案实现的所述存储技术包括闪存技术、固态驱动器(SSD)技术、硬盘驱动器(HDD)技术、光盘(OD)技术或磁带技术中的两个或更多个。

10.如权利要求7所述的方法,其中所述多个维度包括所述对象的年限、所述对象的访问频率、所述对象的访问模式、所述对象的类型、所述对象之间的关系、所述对象的指定优先级或所述对象的对象元数据中的两个或更多个。

11.如权利要求7所述的方法,还包括随时间追踪所述对象的访问信息,其中所追踪的访问信息包括所述对象的访问的日期和时间信息或所述对象的用户访问信息中的一个或多个,并且其中所述多个维度中的至少一个是根据所追踪的访问信息来确定的。

12.如权利要求7所述的方法,其中至少一个分组包括所述存储系统中的新对象,并且其中所述引导将所述对象存储至所述存储系统中的所确定的相应存储解决方案包括引导将所述新对象存储至所述多个存储解决方案中的一个或多个。

13.如权利要求7所述的方法,其中至少一个分组包括所述多个存储解决方案中的现有对象,并且其中所述引导将所述对象存储至所述存储系统中的所确定的相应存储解决方案包括引导将所述现有对象移动至所述多个存储解决方案中的不同的存储解决方案。

14.如权利要求7所述的方法,其中所述存储解决方案中的一个或多个被实现在通电的并且气候受控的设施中,并且其中所述存储解决方案中的一个涉及将对象存储在与所述通电的并且气候受控的设施相比具有更低功率要求和更低水平气候控制的设施中。

说明书 :

使用对象多个维度的信息存储对象

背景技术

[0001] 在数据存储技术中,存在许多种类的存储技术(也可被称作存储解决方案),并且提供各种各样的价格、性能、容量和功能性。通常,提供最快速访问的存储技术如固态驱动器(SSD)技术设备和硬盘驱动器(HDD)技术设备,比提供较慢访问的存储技术如光盘和磁带驱动器更加昂贵(每存储单元)。因此,许多数据存储系统被设计并实现为具有两层或更多层的存储技术,其中较昂贵但较快的存储技术用于一个或多个较高层中并且较便宜但较慢的存储技术用于一个或多个较低层中。已发展出引导将数据存储至这些数据存储系统中的不同层的存储管理方法(例如,分层存储管理(HSM)方法)。
[0002] 然而,常规存储管理方法如HSM,在做出存储决策时通常仅考虑关于数据的信息的一个维度(访问历史),并且通常仅根据这一维度将数据向上或向下迁移数据存储技术的一维度层。例如,HSM方法一般将最近访问(例如,写入或读取)的数据存储至较高层(例如,硬盘驱动器),并且将最近未访问(例如,持续指定时间段)的数据下移至较低层(例如,磁带)。已下移(例如,至磁带)的数据通常仅可在接收对数据的访问请求时被返回至较高层。上移至较高层的数据可在向下移回至较低层(例如,磁带)之前在所述层上保留指定时间段。

附图说明

[0003] 图1是根据至少一些实施方案的可在存储系统中实现为存储管理模块的多维度存储管理方法的高级流程图。
[0004] 图2A图示根据至少一些实施方案的跨多个维度确定数据对象的 分组。
[0005] 图2B图示根据至少一些实施方案的使用群集分析技术跨多个维度确定数据对象的分组。
[0006] 图3是示出其中可实现存储管理方法的实施方案的示例性存储系统的逻辑视图的框图。
[0007] 图4示出其中可实现存储管理方法的实施方案的存储系统的示例性物理实现方式。
[0008] 图5是根据至少一些实施方案的使用群集分析技术来将数据对象的分组匹配至存储解决方案的多维度存储管理方法的高级流程图。
[0009] 图6是示出根据至少一些实施方案的示例性存储系统的逻辑视图的框图,在示例性存储系统中,存储管理方法的实施方案可被用于确定数据对象的群集并且在多个存储解决方案之中分配数据对象。
[0010] 图7是示出根据至少一些实施方案的包括另一个存储应用程序的示例性存储系统的逻辑视图的框图,在示例性存储系统中,存储管理方法的实施方案可被用于引导在多个存储解决方案之中分配数据对象。
[0011] 图8是示出可在一些实施方案中使用的示例性计算机系统的框图。
[0012] 虽然本文通过列举若干实施方案和说明性附图的实例的方式描述了实施方案,但本领域的技术人员应认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而是相反,其意图在于涵盖落入由所附权利要求书所限定的精神和范围内的所有修改、等同物以及替代方案。本文中使用的标题都仅用于组织目的,并且并不意图用于限制说明书或权利要求书的范围。如贯穿本申请所用,词语“可”是以允许 意义(即,意味着有可能)而不是强制意义(即,意味着必须)使用。类似地,词语“包括(include/including/includes)”表示包括但不限于。

具体实施方式

[0013] 描述了用于根据对关于对象的多个维度的信息的分析将对象分组并存储在存储系统中的不同存储解决方案上的方法和装置的各种实施方案。描述了多维度存储管理方法,其可被实现为一个或多个计算设备上的存储管理模块或被实现在存储管理模块中。存储管理模块可根据针对对象所收集的多个维度的信息的分析确定对象的分组并且引导将所确定的对象分组存储在存储系统中的不同存储解决方案上或层中。图8中示出在其上可实现存储管理模块的示例性计算设备。图3、图4、图6和图7中示出其中可实现存储管理模块的示例性存储系统。
[0014] 图1是根据至少一些实施方案的可在存储系统中实现为存储管理模块的多维度存储管理方法的高级流程图。如在100处所示,存储管理方法获取关于存储系统(例如,数据存储系统)中的一个或多个对象(例如,数据对象)的信息。例如,存储管理方法可从存储在由存储应用软件维持的存储系统中的对象的元数据收集信息。对象可为已经存储在存储系统中的对象或有待存储在存储系统中的新对象。如在102处所示,存储管理模块跨多个维度分析所获得的信息以确定对象的分组。如在104处所示,存储管理模块为每个所确定的分组确定存储解决方案。如在106处所示,存储管理模块可根据所确定的存储解决方案引导存储分组中的对象。一旦获取关于存储系统中的一个或多个对象的新信息,存储管理方法就可根据包括新信息的分析引导将对象从一个存储解决方案移动到另一个存储解决方案。
[0015] 多维度存储管理方法的实施方案可例如被应用于存储系统中,在所述存储系统中,在对象访问或提取速率方面存在显著偏差并且在存储解决方案之中在存储成本方面存在显著差异。存储管理方法可跨多 个维度分析存储至存储系统的对象的信息,以确定更有可能被访问的并且可存储在更昂贵(每存储单元)的存储解决方案中的对象分组,更昂贵存储解决方案提供对对象的相对快捷且便宜的访问。其他对象分组可被确定为不太可能被访问且可能存储在较便宜(每存储单元)的存储解决方案中,但对于较便宜存储解决方案来说,访问对象通常花费更长时间并且可能更昂贵。
[0016] 在至少一些实现方式中,各种存储解决方案可在存储系统中实现为存储层,其中根据向存储系统的客户提供对存储在其中的对象的最快速访问的最昂贵(每存储单元单元)的存储解决方案实现第一层或顶层,并根据从其访问对象花费更长时间并且最昂贵的最便宜(每存储单元单元)的存储解决方案实现最近一层或底层。可存在(但非必须存在)位于顶层与底层之间的具有中间水平的存储成本和访问特性的一个或多个中间层。多维度存储管理方法可被用于分析关于存储至存储系统的数据对象的信息,以根据多个维度对对象进行分组并且将数据对象的分组分配到适当层。
[0017] 例如,实现多维度存储管理方法的数据存储系统可包括两个或更多个永久性存储解决方案层。第一层或顶层可包括固态驱动器(SSD)技术设备。第二层或中间层可包括硬盘驱动器(HDD)技术设备。底层可涉及例如将数据对象存储至磁带或其他可移动永久性存储介质,并且将存储介质仓储在具有极低功率和气候控制的存储设施中。存储管理方法可被实现为数据存储系统中的存储管理模块或实现在存储管理模块中,以根据针对数据对象所收集的多个维度的信息的分析引导将数据对象或数据对象的分组存储至所述层中的特定层。存储管理方法可被应用于针对数据对象所收集的信息,以引导将新数据对象存储至特定层,和/或引导向上层(从较低层到较高层)或向下层(从较高层到较低层)移动或复制数据对象。
[0018] 以上描述了存储系统,其中存储管理方法被用于引导跨根据访问特性和/或存储成本分层布置的两个或更多个存储层储存数据对象。 然而,存储管理方法还可被应用在包括多个不同存储解决方案的存储系统中,多个不同存储解决方案不必分层布置以根据对关于对象的多个维度的信息的分析引导将所确定的对象的分组存储至可能最适合所述分组的特定存储解决方案。例如,在一些实施方案中,存储管理方法可针对对象收集包括多个维度的信息,并且根据多个维度执行群集分析技术以确定对象的群集或分组。实例请参见图2B。随后可检查分组的特性并将其与各个存储解决方案的特性进行比较,以将分组匹配至特定存储解决方案。随后可将对象的分组分配至所确定的存储解决方案。
[0019] 本文主要针对数据存储系统描述多维度存储管理方法,在数据存储系统中,所存储的对象为数据对象并且存储解决方案可包括多种数据存储技术和介质,如永久性存储器技术、固态驱动器(SSD)技术、硬盘驱动器(HDD)技术、永久性存储介质如磁带或磁盘和光盘(OD)等,以及多种存储方法或位置如气候受控的、通电的“高架地板”数据中心和低功率、极低气候受控的存储设施或仓库。然而,多维度存储管理方法可被应用于任何存储系统。例如,实施方案可被应用于部件或货物存储或分配系统,在所述系统中所存储的对象为物理对象,并且存储解决方案包括存储或分配设施内和/或跨多个地理上分散的存储或分配设施的不同物理位置。作为另一个示例,存储管理方法的实施方案可被应用在多级缓存存储器系统中,其中可根据数据的多维度分析以及垃圾收集系统中的存储器对象跨存储器的不同层级分配数据。
[0020] 图2A图示根据至少一些实施方案的跨多个维度确定数据对象的分组。在至少一些实施方案中,可执行对关于数据对象的信息的第一维度的分析,以确定数据对象的两个或更多个分组200。还可分析第二维度以将分组200中的至少一个进一步划分成两个或更多个子分组202。在至少一些实施方案中,还可分析一个或多个其他维度以进一步划分子分组202中的至少一个。不同分组可存储至数据存储系统中为分组确定的两个或更多个不同存储解决方案中的特定解决方案 中。
[0021] 图2B图示根据至少一些实施方案的使用群集分析技术跨多个维度确定数据对象的分组。在一些实施方案中,存储管理方法可针对对象收集包括多个维度的信息,并且根据多个维度执行群集分析技术以确定对象的群集或分组。如图2B中的实例所示,在群集分析中使用三个维度A、B和C,以确定数据对象的五个群集或分组。随后可检查分组的特性并将其与各个存储解决方案的特性进行比较,以将分组匹配至特定存储解决方案。随后可将数据对象的分组分配至所确定的存储解决方案。
[0022] 在至少一些实施方案中,可通过存储管理方法分析的关于对象(例如,数据对象)的多个维度的信息可包括至少对象的年限和对象的访问频率。通常,较新的数据对象更可能被访问,但与较老的数据对象相比具有更短的预期未来寿命,并且在过去很少被访问的数据对象非常可能在未来也很少被访问。这些观察结果可由本文所述的存储管理方法的至少一些实施方案利用来根据多个维度对数据对象进行分组和存储。
[0023] 在数据存储系统中,当需要访问存储在介质上的数据对象时,提取存储介质(例如,磁带或磁盘,光盘等)存在成本。因此,更可能被访问的数据对象可被分组并存储在第一存储介质上,而不那么易被访问的数据对象可被分组并存储在第二存储介质上。确定访问的可能性的一个方法是年限;如上面提到的,较新的对象倾向于比较老的对象更频率地被访问。因此,年限可为所考虑的维度,并且较新的对象可存储至第一存储介质,而较老的对象可存储至第二存储介质。第一存储介质可称为新对象介质,而第二存储介质可称为老对象介质。分类成这两个分组的影响是对新对象介质的参考率升高,而对老对象介质的参考率降低。因为老对象介质在许多存储系统如档案存储系统中占主要位置,所以这种方法可显著地减少介质提取请求的数量,因为老对象介质相对很少地被提取并且新对象介质通常已经可用而不需要 提取。应注意,新对象介质存储每单元数据的成本可通常高于老对象介质存储每单元数据的成本,因为较便宜的存储解决方案(例如,商品硬盘驱动器(HDD)技术、磁带、光盘等)可用于老对象介质,而较贵的存储解决方案(例如,固态驱动器(SSD)技术)可用于新对象介质。
[0024] 在存储管理方法的至少一些实施方案中,可将另一个维度、即访问模式或访问频率加入到上述内容中,并且可再次应用将数据对象分组到不同存储介质中的技术。使用这个维度,可基于访问模式在老对象介质分组和新对象介质群组内进一步将数据对象细分成每个分组中的两个子分组:1)最近被访问的数据对象(也可被称为热对象)和2)最近未被访问的数据对象(可也被称为冷对象)。因此,数据对象可被细分成四个分组:热新对象、冷新对象、热老对象和冷老对象。这些分组中的每一个都可存储到不同存储介质或存储解决方案。
[0025] “最近未读取”的可用定义,尤其是在一些数据存储应用程序如档案存储装置中,为“从未读取”。在至少一些实施方案中,使用这种定义和上述感兴趣的两个维度(老对象和新对象),可将数据对象细分成四个类别:1)已被访问的新对象,2)从未被访问的新对象,3)已被访问的老对象,以及4)从未被访问的老对象。这些类别中的每一个可存储到不同的存储介质中,从而产生数据存储解决方案的四个级或层。在至少一些实施方案中,分组4(从未被访问的老数据对象)可远程地并且非常便宜地存储在提取和访问数据对象花费更多时间并且相对昂贵的位置中,但由于低能耗、有限的气候控制和其他因素,对应所述位置来说,存储每单元数据的存储成本非常低。分组3(已被访问的老数据对象)可能需要比分组4更容易访问,但不如分组1和分组2那么容易访问,并且因此可比分组1和分组2更便宜地存储。类似地,分组2可能需要比分组3更容易访问,但不如分组1那么容易访问,并且因此可比分组1更便宜地存储。
[0026] 以上描述两个维度(年限和访问频率),这两个维度可通过存储管理方法分析,以根据所述维度将数据对象分组成各自可存储到不同存储解决方案的两个、三个或更多个分组。可根据访问要求(时间和成本)和每个分组的存储成本来选择每个分组的存储解决方案。然而,可根据多于这两个维度扩展和应用存储管理方法,以根据多个维度将数据对象分组成多个分组,其中所述分组中的至少一些存储到不同存储解决方案。
[0027] 下面描述了一些其他维度,所述维度可替代或除了年限和访问频率被用于存储管理方法的至少一些实施方案中,以对数据对象进行分组或分类。应注意,这些其他维度以实例的方式给出,并非意在进行限制。
[0028] 在至少一些实施方案中,对象类型可为所考虑的另一个维度。不同类型的数据对象(例如,不同类型的文件)可显示出不同的使用模型和因此显示出不同的访问模式。例如,备份数据(例如,数据库备份文件)和审计数据(例如,存储用于档案目的的企业电子邮件)可能很少或从未被访问,并且因此可存储到提供较便宜每单元存储成本但访问较贵的一个或多个存储解决方案或层。作为另一个示例,一些类型的数据对象(例如,数据库记录、在线交易处理数据等)可能需要被维持在更易于访问或最易于访问的存储层处。作为另一个示例,在数据存储系统使用数据的一个或多个冗余模型(例如,擦除编码)的一些实施方案中,冗余数据可能很少被访问,并且因此可能被存储到提供较便宜的每单元存储成本但访问较贵的一个或多个存储解决方案或层。
[0029] 在至少一些实施方案中,存储系统中的数据对象的访问信息可通过存储管理方法来追踪和/或挖掘,并且基于一个或多个访问判据(访问日期/时间、用户标识等)来分析,以基于各种访问模式或其组合确定数据对象的一个或多个分组。下面给出了一些实例。
[0030] 在至少一些实施方案中,可随时间追踪数据对象的访问信息,并且所追踪的访问信息可被用于提供存储决策可基于的一个或多个另外的维度。例如,替代或除了使用数据对象最近一次被访问时(或从未被访问)的日期/时间信息作为做出存储确定所基于的维度,可追踪并分析数据对象过去(例如,回到数据对象的创建日期/时间)的多个访问的日期/时间信息,以确定一个或多个维度,如大体访问模式、随时间的访问频率和/或在某些时间(例如,每周五,在特定日期或围绕特定日期一年一次,在每个月的月末等)的访问模式。
[0031] 除了随时间追踪日期/时间访问信息,至少一些实施方案还可追踪并分析其他访问相关信息,例如哪个用户或应用程序访问了数据对象,以提供存储决策可基于的一个或多个另外维度。作为使用用户相关访问信息的实例,随时间追踪的访问信息的分析可确定定期地或不定期地访问数据对象的特定用户或应用程序在相同时间或大约相同时间还访问一个或多个其他数据对象。因此,可能的是,如果这个用户或应用程序访问数据对象中的一个,那么其他数据对象也将被访问。可因此对数据对象进行分组,并且根据所述分组做出存储决策(例如,将这一分组的数据对象一起存储在相同的存储解决方案上,或当分组中的数据对象中的任何一个被访问时,将分组中的所有数据对象上移至更容易访问的存储解决方案)。
[0032] 在至少一些实施方案中,对象关系或相关性,例如时间关系,可提供可被考虑和使用以确定数据对象的分组的一个或多个其他维度。例如,所追踪的存储系统中数据对象的访问信息的分析可确定很少被访问的一分组的数据对象(可能但不一定为相同类型)在被访问时趋向于被一起访问,并且因此存储决策可针对作为分组的时间相关对象做出并应用于时间相关对象。
[0033] 在至少一些实施方案中,用户访问模式可为存储管理方法在做存储决策时可考虑的另一个维度。例如,访问模式可如上所述随时间被追踪,并且可被用于确定趋向于以某一时间间隔、例如一月一次、一季度一次、或一年一次地被访问的数据对象组,或趋向于由特定用户一起访问的数据对象组。
[0034] 在至少一些实施方案中,对象元数据(例如,所有权,访问权限(例如,授予特定用户的读/写权限)、时间戳(创建、最新写入、最新读取等)以及任何其他与可能被维持在存储系统中的数据对象有关的元数据)可提供存储管理方法在做存储决策时可考虑的一个或多个其他维度。
[0035] 在至少一些实施方案中,可例如在与服务提供者的服务水平协议(SLA)中表达的客户指定的优先级可提供存储管理方法在做存储决策时可考虑的一个或多个维度。例如,服务提供者可向不同客户或向单个客户的不同组数据对象提供或商定不同水平的SLA。客户的SLA中的信息可被用于为客户数据确定存储解决方案或层。作为非限制性实例,与一个客户的SLA可声明所述客户的数据对象将在收到对数据对象的请求的一定时间段内(例如,在两小时、或四小时内)可访问,而与另一个客户的SLA可声明某一其他时间段(例如,六小时或十二小时)。这个信息可被用来将各个客户的数据对象匹配并分配给存储系统中的不同存储解决方案或层,以提供客户的数据对象的适当访问时间。作为另一个实例,与客户的SLA可声明客户的数据对象的一个分组(例如,在线交易记录)将总是尽可能可即时访问的,而客户的数据对象的其他分组(例如,备份、冗余数据等)将是在某一更久时期段(例如,两个小时或四个小时或更久)内可访问的。这个信息可被用来将客户的数据对象的分组匹配并分配给存储系统中的不同存储解决方案或层,以提供客户的数据对象的各个分组的适当访问时间。
[0036] 在至少一些实施方案中,存储管理模块可执行关于数据对象的信息的收集、根据多个维度将数据对象分类成分组以及为分组确定特定存储解决方案。然而,在一些实施方案中,用户输入,例如来自拥有特定数据对象集的客户的输入,可被用于为至少一些数据对象指定存储解决方案或层。
[0037] 图3是示出其中可实现存储管理方法的实施方案的示例性存储系统的逻辑视图的框图。存储系统可以是例如在服务提供者的网络上 实现的通过中间网络如因特网向客户提供虚拟化存储装置的存储服务。存储系统可包括存储应用程序300,存储应用程序300可将存储管理方法的实施方案实现为存储管理模块302或实现在其中。存储应用程序300还可维持存储在存储系统中的数据对象的大量元数据。存储应用程序300可被实现在一个或多个计算设备上。图8中示出其上可实现存储应用程序300的示例性计算设备。
[0038] 存储系统可包括两个或更多个存储层或级。在这个实例中,存储系统包括存储数据对象350A的顶层310、存储数据对象350C的底层314和存储数据对象350B的一个或多个中间层312。顶层310可包括例如固态驱动器(SSD)技术设备。至少一个中间层312可包括例如硬盘驱动器(HDD)技术设备。底层314可涉及例如将数据对象350C存储至磁带、光盘或其他可移动永久性存储介质。在至少一些实施方案中,用作底层314存储装置的介质(例如,磁带介质)可被仓储在具有低功率要求和低或极低水平气候控制的设施中。然而,应注意,可存在两个、三个或更多个层,所述层中的不同层可包括与这个实例中所给出的那些不同类型的存储技术,并且所给出的层可包括一个、两个或更多个类型的存储技术。
[0039] 存储应用程序300可从一个或多个客户360接收有待存储在存储系统中的新数据对象。存储应用程序300还可从客户360接收访问所存储数据对象350的请求。此外,存储应用程序300可在内部产生存储在存储系统中的客户数据的一些数据对象,例如备份、副本或冗余数据对象。
[0040] 存储管理模块302可收集数据对象的信息,包括但不限于对象年限、访问频率、访问模式、对象类型、对象关系和对象元数据,并且基于从所收集的信息所确定的多个维度,为在存储系统中的或正在进入存储系统中的数据对象做出存储决策。在至少一些实施方案中,可收集正由客户360存储至存储系统的新数据对象和已经驻留在存储系统中的数据对象350的信息。由存储管理模块302做出的存储决策 可引导存储应用程序300和/或存储层中的一个层将一个或多个数据对象存储、移动或复制到指定存储层。
[0041] 在一些实施方案中,由客户360存储至存储系统的新数据对象可至少初始地存储至顶层310。可替代地,在一些实施方案中,存储管理模块302可收集关于新数据对象的至少一些信息并且基于信息的一个或多个其他维度(应注意,对象年限、即可能被考虑的一个维度,为“新”)为新数据对象做出存储决策。例如,在一些实施方案中,存储管理模块302可检查客户360正在存储至存储系统的数据对象的类型,并且至少部分地基于对象类型决定应将数据对象存储至哪个存储层。例如,如果确定数据对象为来自客户360的备份数据,那么存储管理模块302可确定数据对象不太可能被访问并且因此将有待存储的数据对象引导至底层314或可替代地至中间层312,而不是至顶层310。作为另一个实例,如果确定数据对象为来自客户360的审计数据(例如,正在归档的电子邮件消息),那么存储管理模块302可确定数据对象不太可能被访问,并且因此将有待存储的数据对象引导至底层314或可替代地至中间层312,而不是至顶层310。在至少一些实施方案中,如果所收集的新数据对象的信息不足以做出存储决策(例如,如果对象类型未知),那么新数据对象可默认为初始地存储至顶层310。
[0042] 在一些实施方案中,客户360可针对正存储至存储系统的特定新数据对象或新数据对象的分组,或可替代地针对预先存至存储系统的数据对象,提供存储指令。存储指令可例如引导存储应用程序300将数据对象存储至特定存储解决方案或存储层。来自客户360的存储指令可因此覆盖来自存储管理模块302的决策,或可替代地,可被输入至存储管理模块302作为在为相应数据对象做出存储决策时可考虑的附加信息。
[0043] 在至少一些实施方案中,存储管理模块302可定期地或不定期地收集存储在一个或多个存储层中的数据对象350的信息,并且基于信 息的一个或多个维度为数据对象350做出存储决策。存储管理模块302还可响应于从客户360接收的访问请求为特定数据对象350做出存储决策。下面给出可为存储在存储系统中的数据对象350做出的存储决策的几个实例。应注意,这些实例并非意在是排他性的或限制性的。
[0044] 在至少一些实施方案中,存储管理模块302可收集顶层310中的数据对象350A的信息,并且基于多个维度的信息,例如数据对象350A的年限和访问频率,决定是否将数据对象350A移动至中间层312或至底层314。例如,在至少一些实施方案中,如果数据对象350A比年限阀值老并且从未被访问,那么存储管理模块302可决定将数据对象350A移动至底层314。
如果数据对象比年限阀值新但从未被访问,那么存储管理模块302可决定将数据对象350A移动至第一中间层312。如果数据对象比年限阀值老但从已被访问,那么存储管理模块302可决定将数据对象350A移动至第二中间层312。仍然新并且已被访问的数据对象350A可留在顶层310上。
[0045] 在至少一些实施方案中,在做这些决策时,存储管理模块302可考虑除了对象年限和访问频率外的信息的其他维度。例如,在一些实施方案中,可考虑一组数据对象350A之间的关系。作为实例,存储管理模块302可确定很少被访问的一组数据对象350A可能趋向于一起被访问,并且因此如果组中的数据对象350A中的一个或多个最近被访问,那么存储管理模块302可决定将组中的所有数据对象350A留在顶层310上。作为另一个实例,存储管理模块302在做出决策时可考虑对象类型。例如,在顶层310上发现的已知为不太可能被访问的某些类型(例如,备份或审计数据)的数据对象350A可不管年限和访问频率被下移至较低层,并且已知为更有可能被访问的其他类型(例如,数据库对象)的数据对象350A可不管年限或访问频率被留在顶层310上。
[0046] 在至少一些实施方案中,存储管理模块302可获取或收集中间层312中的数据对象350B的信息,并且基于多个维度的信息,决定是否将数据对象350B移动至顶层310、至另一个中间层312或至底层314。在至少一些实施方案中,可考虑至少数据对象350B的年限和访问频率。例如,如果确定数据对象350B比年限阀值老(所述阀值可能但并非必须与用于顶层
310的年限阀值不同)并且尚未被访问,那么存储管理模块302可决定将数据对象350B下移至较低的中间层312或至底层314。作为另一个实例,如果存储管理模块302确定数据对象
350B最近被访问,那么存储管理模块302可决定将数据对象350B上移至更高的中间层312或至顶层310。应注意,接收对中间层312上的数据对象350B的访问请求可导致数据对象350B被移动至更高层(例如,至更高的中间层312或至顶层310)。
[0047] 在至少一些实施方案中,存储管理模块302在为中间层上的数据对象350B做出这些决策时可考虑除对象年限和访问频率外的其他维度,例如对象类型和对象关系,例如如以上参考顶层310上的数据对象350A所描述的。作为实例,存储管理模块302可确定很少被访问的一组数据对象350B可能趋向于一起被访问,并且因此如果组中的数据对象350B中的一个或多个最近被访问,那么存储管理模块302可决定将组中的所有数据对象350B移动至顶层310。
[0048] 在至少一些实施方案中,存储管理模块302可追踪和/或挖掘存储系统中的数据对象350的访问信息,并且基于一个或多个访问判据(访问日期/时间、用户标识等)分析访问信息,以基于各种访问模式或其组合确定数据对象的一个或多个分组。在至少一些实施方案中,可随时间追踪数据对象的访问信息,并且所追踪的访问信息可被用于提供存储决策可基于的一个或多个另外的维度。例如,可追踪并分析过去(例如,回到数据对象的创建日期/时间)数据对象的多个访问的日期/时间信息,以确定一个或多个维度,如大体访问模式、随时间的访问频率和/或在某些时间(例如,每周五,在特定日期或围绕特定日期一年一次,在每个月的月末等)的访问模式。
[0049] 在至少一些实施方案中,可考虑的另一个维度是用户访问模式。例如,存储管理模块302可确定一组一个或多个数据对象350(其可能是或可能不是相同类型)趋向于以某一时间间隔、例如一月一次、一季度一次或一年一次地被访问。存储管理模块302可根据时间间隔将这组数据对象350从较低层(例如,中间层312或底层314)上移至较高层(例如,至顶层310),并且一旦数据对象350不再被访问,将这组数据对象350下移至较低层(例如,至中间层312或底层314)。
[0050] 在至少一些实施方案中,例如在与服务提供者的服务水平协议(SLA)中表达的客户指定的优先级可提供存储管理模块302在做出存储决策时可考虑的一个或多个维度。例如,服务提供者可向不同客户或向单个客户的不同组数据对象提供不同水平的SLA。客户的SLA中的信息可被用于为客户数据确定存储解决方案或层。
[0051] 在至少一些实施方案中,底层314上的数据对象350C可趋向于留在底层314上,除非从客户360接收到对数据对象350C的访问请求。然而,底层上的数据对象350C的一个或多个维度可由存储管理模块302考虑并且导致产生将较低层314上的数据对象350C中的一个或多个上移或复制到较高层(例如,至中间层312或至顶层310)的决策。例如,如以上所提及,用户访问模式可使得一组数据对象350C被上移或复制到较高层。作为另一个实例,如果趋向于被一起访问的数据对象350C的时间相关组中的至少一个数据对象350C被访问,那么在所述组中的所有数据对象350C可从底层314被移动或复制到较高层。
[0052] 如先前所指出,在一些实现方式中,存储系统的底层314可涉及将数据对象350C存储至磁带或其他可移动永久性介质。用作底层314存储装置的介质(例如,磁带介质)可被移动至可具有低功率要求和低或极低量的气候控制的单独设施并且仓储在其中。在至少一些实施方案中,底层314可被视为用于数据对象350的冷档案存储装置。将数据对象350移动至底层314和从底层314检索数据对象350的成本可 能因此而非常高,而存储数据对象350的每单元成本可能非常低。
[0053] 在一些实施方案中,替代在需要访问数据对象350时将数据对象350C从底层314移除并且将数据对象350C移动至较高层(例如,顶层310),并且然后在数据对象350不再被访问时将数据对象350移回至底层314,可创建数据对象350C的副本并且将副本移至较高层,而数据对象350C的原件可被留存在底层314中的介质上。当较高层上的数据对象350的副本不再被访问时,可简单地将数据对象350的副本从较高层删除(或标记以用于在较高层中进行垃圾收集)。在一些实现方式中,可使用类似方法来将数据对象350B从中间层312复制到较高层(例如,顶层312)。
[0054] 图4示出其中可实现存储管理方法的实施方案的存储系统的示例性物理实现方式。例如,可根据图4中所示的实例实现图3中所示的示例性存储系统的逻辑视图。
[0055] 图4还将存储系统示出为由服务提供者400实现的存储服务。存储服务可在提供者网络上实现,并且可通过中间网络如因特网向服务提供者400的多个客户460提供远程存储。在一些实现方式中,至少一些客户460可为服务提供者400中的进程,其可通过服务提供者400的网络基础设施访问存储服务。客户460可通过存储服务API 404访问存储服务,以将数据写入由存储服务提供的存储和从所述存储读取数据。在至少一些情况下,由客户460存储的数据可存储在多租户存储硬件上;也就是说,两个或更多个客户460的数据可存储到存储系统内的相同存储设备上,并且可跨存储系统内的两个或更多个存储设备传播任何一个客户460的数据。存储服务软件和/或硬件部件(示出为存储应用程序402)可管理将客户数据存至存储系统内的物理存储设备和从所述物理存储设备检索客户数据。存储服务通过API 404可将存储作为虚拟化存储装置呈现给每一个客户460;也就是说,每一个客户460都可查看它们自己的在存储系统中的数据,例如作为虚拟化硬盘或虚拟卷,并且可访问(从其读取或向其写入)它们自己的数 据,而其他客户的数据是客户460不可查看或不可访问的。
[0056] 服务提供者400可在一个或多个数据中心420内或跨一个或多个数据中心420实现服务提供者网络。每个数据中心420可包括成百或成千的网络化存储设备(例如,机架式存储设备)以及其他硬件如服务器、网络设备(路由器、开关、负载均衡器等)和布线(例如,数据缆线,如光纤电缆以及电力电缆),存储服务在网络化存储设备上实现并维持由所述服务提供的数据存储。除硬件成本外,数据中心420可通常为功率要求和成本高的物理设施,因为功率被提供给网络、服务器、存储装置和数据中心420内的其他硬件设备,并且设施通常是气候受控的,以保护硬件并补偿电力设备的热负载。
[0057] 在至少一些实现方式中,数据中心中的存储服务所使用的物理数据存储设备可包括具有不同成本和特性(包括但不限于访问特性)的两个或更多个不同类型的存储设备。例如,一些存储设备可为具有相对快的访问时间(和可能相对高的功率要求)的相对昂贵的存储设备,如闪存技术或固态驱动器(SSD)技术设备,而其他存储设备可为具有相对慢的访问时间(和可能相对低的功率要求)的较便宜的设备,如商品硬盘驱动器(HDD)技术设备。
[0058] 在至少一些实施方案中,服务提供者可因此在数据中心420内实现具有不同成本和特性的存储设备的两个或更多个层,并且存储服务可利用本文所述的存储管理方法(例如,实现为存储应用程序402内的存储管理模块406)来跨这些层分配客户的数据对象。例如,如图3中所示,存储服务可使用固态驱动器(SSD)技术设备作为顶层存储解决方案410,并使用商品硬盘驱动器(HDD)技术设备作为中间层存储解决方案412。应注意,其他技术设备可被用于实现数据中心420中的一个或多个另外中间层412。
[0059] 服务提供者400还可实现可被用于存储系统中的底层或档案存储装置的一个或多个存储设施430。应注意,存储设施430可邻近或 靠近420设施或甚至在数据中心420设施内,或可在地理上远离任何数据中心420。存储设施430可本质上为用于存储永久性但离线的存储介质如磁带或光盘的仓库,并且可因此具有低功率要求和低或极低量的气候控制。在至少一些实施方案中,一个或多个存储设施430可被视为用于存储至可移除、永久性存介储质如磁带或光盘的数据对象的冷档案存储装置。将数据对象移动至存储设施430和从其检索数据的成本可能因此而非常高,而将数据存储在存储设施430中的每单元成本可能非常低。
[0060] 存储服务可利用本文所述的存储管理方法来检测可归档的数据对象并且引导将所检测的数据对象从数据中心420中的顶层和/或中间层移动至一个或多个存储设施430。例如,存储管理方法可被用于收集并分析关于存储在数据中心420中的顶层410和/或中间层412中的数据对象的信息,并且根据信息的一个或多个维度,如年限、访问频率、类型和对象间关系,确定可归档并且因此可移动至存储设施430中的档案存储装置的数据对象的一个或多个分组。随后可将数据对象的一个或多个分组从层中的存储设备移动或复制到可移动的、永久性存储介质如磁带或光盘,并且存储介质可随后被运送至一个或多个存储设施
430并存储在其中。可替代地,数据对象的一个或多个分组可被电子传输至存储设施430(例如,通过高速网络连接)并且写入存储设施430处的存储介质。
[0061] 存储服务还可利用本文所述的存储管理方法检测有待从一个或多个存储设施430检索的数据对象,并且引导将所检测的数据对象从一个或多个存储设施430移动或复制到数据中心420中的顶层410或中间层412。例如,存储管理方法可被用于收集并分析关于存储在存储设施430中的数据对象的信息,并且根据信息的一个或多个维度,如对象间关系和用户访问模式,确定可从存储设施430中的档案存储装置检索并且移动或复制到数据中心420中的顶层410或中间层412以便更容易访问的数据对象的一个或多个分组。包括数据对象的一个或多个分组的存储介质随后可从存储设施430被检索,并且用于将数 据对象的分组移动或复制到数据中心420中的一个或多个存储层。在一些实施方案中,可将数据对象的分组复制到存储介质,并包括副本的存储介质可被运送至数据中心420,在数据中心420中,存储介质可被用于在数据中心中的一个或多个存储层上创建数据对象的分组的副本。可替代地,数据对象的一个或多个分组可从存储设施430电子传输至数据中心420(例如,通过高速网络连接)。
[0062] 在一些实施方案中,替代将数据对象的分组从存储设施430中的存储介质移动至数据中心420中的存储层(例如,顶层410),并且然后在数据对象不再被访问时将数据对象移回至存储设施430,可创建数据对象的副本并且将其移动至数据中心420,而包括数据对象的原始存储介质可留在存储设施430中。当数据中心420中的数据对象的副本不再被访问时,可简单地将副本从数据中心420中的存储设备删除(或标记以用于进行垃圾收集)。
[0063] 图3和图4示出数据存储系统,其中存储管理方法被用于引导跨根据访问特性和/或存储成本分层布置的两个或更多个存储层储存数据对象。然而,存储管理方法还可被应用在包括具有不同特性的多个不同存储解决方案的存储系统中,以根据对关于数据对象的多个维度的信息的分析、例如根据群集分析技术,引导将所确定的数据对象的分组存储至可能最适合所述分组的特定存储解决方案。参见图2B获得对多个维度进行群集分析以确定数据对象的群集或分组的实例。随后可检查分组的特性并将其与存储系统中的各个存储解决方案的特性进行比较,以将分组匹配至特定存储解决方案。随后可将数据对象的分组存储或移动至所确定的存储解决方案。
[0064] 图5是根据至少一些实施方案的使用群集分析技术来将数据对象的分组匹配至存储解决方案的多维度存储管理方法的高级流程图。如500处所示,可确定数据存储系统中的多个存储解决方案的特性和容量。如502处所示,存储管理方法获取关于数据存储系统中的数据对象的信息。例如,存储管理方法可从存储在由存储应用软件维持的 存储系统中的数据对象的元数据中收集信息。数据对象可为已经存储在存储系统中的数据对象或有待存储在存储系统中的新数据对象。如504处所示,群集分析技术应用于所获取的信息,以根据多个维度的信息确定数据对象的分组。如506处所示,所确定的分组可根据存储解决方案的特性和容量被匹配至特定存储解决方案。如在508处所示,存储管理方法可根据所确定的存储解决方案引导存储分组中的对象。一旦获取关于存储系统中的一个或多个数据对象的新信息,存储管理方法可根据包括新信息的分析引导将数据对象从一个存储解决方案移动到另一个存储解决方案。
[0065] 图6是示出根据至少一些实施方案的示例性存储系统的逻辑视图的框图,在示例性存储系统中,存储管理方法的实施方案可被用于确定数据对象的群集并且在多个存储解决方案之中分配数据对象。存储系统可包括存储应用程序600,存储应用程序600可将存储管理方法的实施方案实现为存储管理模块602或实现在其中。存储应用程序600还可维持存储在存储系统中的数据对象的大量元数据。存储应用程序600可被实现在一个或多个计算设备上。图8中示出在其上可实现存储应用程序600的示例性计算设备。
[0066] 存储系统可包括各自具有不同特性和容量的多个不同存储解决方案。这个实例示出七个不同存储解决方案610、612、614、620、622、624和630,并且不意在进行限制。存储解决方案610、612、614可为具有相对快速的访问时间的相对昂贵的存储解决方案,如闪存技术、固态驱动器(SSD)技术设备和高速磁盘技术设备。存储解决方案620、622、624可为具有较慢的访问时间的较便宜的存储解决方案,如商品硬盘驱动器(HDD)技术设备和光盘技术设备。存储解决方案630可为最便宜的存储解决方案,从其访问数据可能较为昂贵但其可提供最低的每存储单元成本。存储解决方案630可例如涉及将数据对象存储至磁带、光盘或其他可移动永久性存储介质,以及将介质运送至具有低功率要求和低或极低水平气候控制的设施并将介质存储在其中。
[0067] 存储解决方案610、612、614、620、622和624中所使用的各个设备可在一个或多个特性和容量上不同,如成本(例如,每存储单元)、功耗、容量、吞吐量、访问速度和环境要求。设备的其他特性也可不同,如可靠性度量或统计量(例如,故障率或平均故障间隔时间(MTBF))。
[0068] 存储应用程序600可从一个或多个客户660接收有待存储在存储系统中的新数据对象。存储应用程序600还可从客户660接收访问所存储数据对象的请求。此外,存储应用程序600可在内部产生存储在存储系统中的客户数据的一些数据对象,例如备份、副本或冗余数据对象。
[0069] 在一些实施方案中,客户660可针对正存储至存储系统的特定新数据对象或新数据对象的分组,或可替代地针对预先存至存储系统的数据对象,提供存储指令。存储指令可例如引导存储应用程序600将数据对象存储至特定存储解决方案或存储层。来自客户660的存储指令可因此覆盖来自存储管理模块602的决策,或可替代地,可被输入至存储管理模块602作为在为相应数据对象做出存储决策时可考虑的附加信息。
[0070] 存储管理模块602可收集存储系统中的或正在进入存储系统的数据对象的信息,并且基于对从所收集到的信息所确定的多个维度(例如,对象年限、访问频率、对象类型、对象关系、对象元数据、用户访问模式等)的分析确定数据对象的分组。在至少一些实施方案中,可使用群集分析技术来确定数据对象的群集或分组,并且将所述群集匹配至特定存储解决方案。因此可检查数据对象的分组的特性或要求并且将其与各个存储解决方案的特性和容量进行比较,以将所述分组匹配至特定存储解决方案。这通过存储管理模块602产生存储决策,存储决策可引导存储应用程序600和/或存储解决方案中的一个或多个将一个或多个数据对象存储、移动或复制到已被确定用于所述数据对象所属的分组的存储解决方案。
[0071] 在一些实施方案中,由客户660存储至存储系统的新数据对象可至少首先存储至默认存储解决方案,例如至存储解决方案610、612和614中的一个。可替代地,新对象可基于对关于对象的信息的分析而存储至存储解决方案中的任何一个。存储管理模块602可收集关于新数据对象的至少一些信息并且基于对信息的两个或更多个维度(应注意,对象年限、即可能被考虑的一个维度为“新”)的分析(例如,群集分析)为新数据对象确定存储解决方案。
[0072] 在至少一些实施方案中,存储管理模块602可收集预先存储至各个存储解决方案中的一个或多个的数据对象的信息,并且基于对信息的两个或更多个维度的分析(例如,群集分析)决定是否将数据对象移动至另一个存储解决方案。存储管理模块602可产生存储决策,存储决策可引导存储应用程序600和/或存储解决方案中的一个或多个将一个或多个数据对象存储、移动或复制到已根据分析为数据对象所属的分组确定的存储解决方案。
[0073] 在图6中,从存储应用程序600到数个存储解决方案的粗箭头表示在存储管理模块602的引导下将新数据对象存储至存储解决方案的实例。从数个存储解决方案到存储应用程序600的粗箭头表示从存储解决方案中检索数据对象以满足客户访问请求。应注意,在至少一些情况下,数据对象可从一个存储解决方案被提取并且在将数据对象提供给请求客户
660之前放置于另一个存储解决方案上。例如,数据对象可从存储解决方案630被提取,并且在允许客户660访问数据对象之前复制到存储解决方案610、612或614中的一个。各个存储解决方案之间的细箭头表示在存储管理模块602的引导下在存储解决方案之间移动或复制数据对象的实例。
[0074] 在至少一些实施方案中,存储系统可使用的存储解决方案可包括一个或多个其他存储系统或存储应用程序。图7是示出根据至少一些实施方案的包括另一个存储应用程序的示例性存储系统的逻辑视图的框图,在示例性存储系统中,存储管理方法的实施方案可被用于引 导在多个存储解决方案之中分配数据对象。存储系统可包括存储应用程序700,存储应用程序700可将存储管理方法的实施方案实现为存储管理模块702或实现在其中。存储系统可包括各自具有不同特性和容量的一个或多个不同存储解决方案710(例如,固态驱动器(SSD)技术设备、硬盘驱动器(HDD)技术设备、光盘技术设备等)。存储解决方案710中的至少一个可例如涉及将数据对象存储至磁带、光盘或其他可移动永久性存储介质,以及将介质运输至具有低功率要求和低或极低水平气候控制的设施并且将介质存储在其中。
[0075] 存储应用程序700可从一个或多个客户760A接收有待存储的新数据对象,并且将数据对象存储至存储解决方案710。存储应用程序700还可从客户760A接收访问所存储数据对象的请求。此外,存储应用程序700可在内部产生存储在存储系统中的客户数据的一些数据对象,例如备份、副本或者冗余数据对象。
[0076] 然而,在这个实例中,包括存储应用程序770和一个或多个存储解决方案780的第二存储系统可被用作存储应用程序700的另外存储解决方案。存储应用程序770可从一个或多个客户760B接收有待存储的新数据对象,并且将数据对象存储至存储解决方案780。存储应用程序770还可从客户760B接收访问所存储数据对象的请求。此外,存储应用程序770可从存储应用程序700接收有待存储的数据对象,并且将数据对象存储至存储解决方案780。存储应用程序770还可从存储应用程序700接收访问所存储数据对象的请求。在至少一些实施方案中,存储应用程序770可包括或提供API,通过API,存储应用程序700可将数据写入存储应用程序770和从存储应用程序770读取数据。
[0077] 存储应用程序700的存储管理模块702可收集存储系统中的或正在进入存储系统的数据对象的信息,并且基于对从所收集的信息所确定的多个维度(例如,对象年限、访问频率、对象类型、对象关系、对象元数据、用户访问模式等)的分析确定数据对象的分组。在至少 一些实施方案中,群集分析技术可被用于确定数据对象的群集或分组。因此可检查数据对象的分组的特性或要求,并且将其与包括存储解决方案710的各个存储解决方案和存储应用程序770的特性和性能进行比较,以将分组匹配至特定存储解决方案。这通过存储管理模块702产生存储决策,存储决策可引导存储应用程序700将一个或多个数据对象存储、移动或复制到如由存储管理模块702为数据对象所属的分组确定的存储解决方案710或存储应用程序770。
[0078] 在一些实现方式中,存储应用程序770还可将存储管理方法的实施方案实现为存储管理模块,以引导将数据对象存储至存储解决方案780。
[0079] 说明性系统
[0080] 在至少一些实施方案中,实施本文所述的对象存储方法和装置的部分或全部的服务器可包括通用计算机系统,所述通用计算机系统包括一个或多个计算机可访问介质或被配置来访问一个或多个计算机可访问介质,如图8中所示的计算机系统2000。在示出的实施方案中,计算机系统2000包括通过输入/输出(I/O)接口2030耦接至系统储存器2020的一个或多个处理器2010。计算机系统2000还包括耦接到I/O接口2030的网络接口2040。
[0081] 在各种实施方案中,计算机系统2000可为包括一个处理器2010的单处理器系统,或包括若干处理器2010(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器2010可为能够执行指令的任何合适处理器。例如,在各种实施方案中,处理器2010可为实施各种指令集架构(ISA)中任何一种架构的通用或嵌入式处理器,所述架构如x86、PowerPC、SPARC、或MIPS ISA或任何其他合适ISA。在多处理器系统中,每一个处理器2010可通常但不一定实施相同的ISA。
[0082] 系统储存器2020可以被配置来存储可由处理器2010访问的指令 和数据。在各种实施方案中,系统储存器2020可使用任何合适储存器技术来实施,所述储存器技术如静态随机访问储存器(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型储存器或任何其他类型的储存器。在示出的实施方案中,实施一个或多个所需功能的程序指令和数据,如上述用于对象存储方法和装置的那些方法、技术以及数据,被示出作为代码2024和数据2026存储在系统储存器2020内。
[0083] 在一个实施方案中,I/O接口2030可被配置来协调处理器2010、系统储存器2020和设备中的任何外围设备之间的I/O流量,所述外围设备包括网络接口2040或其他外围接口。在一些实施方案中,I/O接口2030可执行任何必需协议、时序或其他数据转换以便将来自一个部件(例如,系统存储器2020)的数据信号转换成适合于由另一个部件(例如,处理器
2010)使用的格式。在一些实施方案中,I/O接口2030可包括对于通过各种类型的外围总线附接的设备的支持,所述外围总线例如像外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变化形式。在一些实施方案中,I/O接口2030的功能可分成两个或更多个单独的部件中,例如北桥和南桥。另外,在一些实施方案中,I/O接口2030的一些或所有功能,例如至系统储存器2020的接口,可直接并入处理器2010中。
[0084] 网络接口2040可以被配置来允许数据在计算机系统2000与附接到一个或多个网络2050的其他装置2060、例如像如图1到图7中所示的其他计算机系统或设备之间进行交换。在各种实施方案中,网络接口2040可以支持通过任何合适的有线或无线通用数据网络、例如像以太网的网络类型进行通信。另外,网络接口2040可以支持通过电信/电话网络如模拟语音网络或数字光纤通信网络、通过存储区域网络如光纤信道SAN或通过任何其他合适类型的网络和/或协议进行通信。
[0085] 在一些实施方案中,系统存储器2020可为计算机可访问介质的一个实施方案,所述计算机可访问介质被配置来如图1至图7所描述 的存储用于实现对象存储系统和存储管理方法的实施方案的程序指令和数据。然而,在其他实施方案中,可以在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问的介质可包括非临时性的储存介质或储存器介质,例如磁性介质或光学介质,例如通过I/O接口2030耦接至计算机系统2000的磁盘或DVD/CD。非暂时性计算机可读存储介质还可包括可作为系统存储器2020或另一类型的存储器被包括在计算机系统2000的一些实施方案中的任何易失性或非易失性介质,如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。另外,计算机可访问介质可以包括传输介质或信号,如通过通信介质(如网络和/或无线链路)传送的电信号、电磁信号或数字信号,如可以通过网络接口2040来实施。
[0086] 本公开的实施方案可基于以下条款来描述:
[0087] 1.一种数据存储系统,其包括:
[0088] 用于将数据对象存储在所述存储系统中的两个或更多个不同存储解决方案,每一个存储解决方案实现具有包括每存储单元成本和可访问性的不同特性的存储技术;
[0089] 实现存储管理模块的一个或多个计算设备,其可操作来;
[0090] 获取关于一个或多个数据对象的信息;
[0091] 根据所获取的信息的两个或更多个维度确定所述数据对象的一个或多个分组;
[0092] 为所确定的数据对象的一个或多个分组中的每一个确定所述两个或更多个存储解决方案中的特定一个;并且
[0093] 引导将所述一个或多个分组中的所述数据对象存储至所确定的相应存储解决方案。
[0094] 2.如条款1所述的数据存储系统,其中,为了引导将所述一个或多个分组中的所述数据对象存储至所确定的相应存储解决方案,所述存储管理模块可操作来:
[0095] 引导将所述数据存储系统中的新数据对象存储至所述两个或更多个存储解决方案中的一个;并且
[0096] 引导将所述数据存储系统中的现有数据对象从所述两个或更多个存储解决方案中的一个或多个移动至所述两个或更多个存储解决方案中的一个不同存储解决方案。
[0097] 3.如条款1所述的数据存储系统,其中所述两个或更多个维度包括所述数据对象的年限、所述数据对象的访问频率、所述数据对象的访问模式、所述数据对象的类型、所述数据对象之间的关系或所述数据对象的元数据中的两个或更多个。
[0098] 4.如条款1所述的数据存储系统,其中由所述存储解决方案所实现的所述存储技术包括闪存技术、固态驱动器(SSD)技术、硬盘驱动器(HDD)技术、光盘(OD)技术或磁带技术中的两个或更多个。
[0099] 5.如条款1所述的数据存储系统,其中所述存储解决方案中的一个或多个被实现在通电的并且气候受控的数据中心中,并且其中所述存储解决方案中的一个涉及存储至与所述数据中心相比具有低功率要求和低水平气候控制的设施的永久性存储介质。
[0100] 6.如条款5所述的数据存储系统,其中,为了引导将所述一个或多个分组中的所述数据对象存储至所确定的相应存储解决方案,所述存储管理模块可操作来:
[0101] 引导将一个或多个数据对象存储至所述存储介质,并且引导将所述存储介质存储在所述设施中;并且
[0102] 引导将至少一个数据对象从所述设施中的所述存储介质复制到 所述数据中心中的所述一个或多个存储解决方案中的一个,其中所述至少一个数据对象的原件被维持在所述设施中的所述存储介质上。
[0103] 7.如条款1所述的数据存储系统,其中所述数据存储系统为实现在服务提供者的网络上的存储服务,其中所述存储服务通过到所述存储服务的API向一个或多个客户提供虚拟化存储装置,并且其中所述数据对象包括由所述一个或多个客户通过到所述存储服务的所述API存储至所述虚拟化存储装置的数据对象。
[0104] 8.一种方法,其包括:
[0105] 通过由一个或多个计算设备实现的存储管理模块执行以下各项:
[0106] 根据关于存储系统中的对象的多个维度的信息分析所述对象,以确定所述对象的分组;
[0107] 根据所述存储解决方案的包括每单元存储成本和可访问性的不同特性为每一个所确定的分组确定多个存储解决方案中的特定一个;以及
[0108] 引导将所述对象存储至所述存储系统中的所确定的相应存储解决方案。
[0109] 9.如条款8所述的方法,其中所述存储系统为数据存储系统,其中所述对象为数据对象,并且其中所述存储解决方案各自实现不同的存储技术。
[0110] 10.如条款9所述的方法,其中由所述存储解决方案实现的所述存储技术包括闪存技术、固态驱动器(SSD)技术、硬盘驱动器(HDD)技术、光盘(OD)技术或磁带技术中的两个或更多个。
[0111] 11.如条款8所述的方法,其中所述多个维度包括所述对象的年限、所述对象的访问频率、所述对象的访问模式、所述对象的类型、 所述对象之间的关系、所述对象的指定优先级或所述对象的对象元数据中的两个或更多个。
[0112] 12.如条款8所述的方法,其还包括随时间追踪所述对象的访问信息,其中所追踪的访问信息包括所述对象的访问的日期和时间信息或所述对象的用户访问信息中的一个或多个,并且其中所述多个维度中的至少一个是根据所追踪的访问信息来确定。
[0113] 13.如条款8所述的方法,其中至少一个分组包括所述存储系统中的新对象,并且其中所述引导将所述对象存储至所述存储系统中的所确定的相应存储解决方案包括引导将所述新对象存储至所述多个存储解决方案中的一个或多个。
[0114] 14.如条款8所述的方法,其中至少一个分组包括所述多个存储解决方案中的现有对象,并且其中所述引导将所述对象存储至所述存储解决方案中的所确定的相应存储解决方案包括引导将所述现有对象移动至所述多个存储解决方案中的一个不同存储解决方案。
[0115] 15.如条款8所述的方法,其中所述存储解决方案中的一个或多个被实现在通电的并且气候受控的设施中,并且其中所述存储解决方案中的一个涉及将对象存储在与所述通电的并且气候受控的设施相比具有更低功率要求和更低水平气候控制的设施中。
[0116] 16.如条款8所述的方法,其中所述分析和所述确定是根据群集分析技术来执行。
[0117] 17.一种存储程序指令的非暂时性计算机可访问存储介质,所述程序指令是计算机可执行的以实现存储管理模块,所述存储管理模块可操作来:
[0118] 根据关于数据存储系统中的数据对象的信息的两个或更多个维度应用群集分析技术以确定所述数据对象的分组;
[0119] 根据所述存储解决方案的一个或多个不同特性为每一个所确定的分组确定多个存储解决方案中的特定一个;并且
[0120] 引导将所述数据对象存储至所述数据存储系统中的所确定的相应存储解决方案。
[0121] 18.如条款17所述的非暂时性计算机可访问存储介质,其中所述存储解决方案的所述特性包括每单元存储成本和访问速度。
[0122] 19.如条款17所述的非暂时性计算机可访问存储介质,其中所述数据存储系统是多级缓存存储器系统,其中所述存储解决方案是所述缓存存储器系统的不同级。
[0123] 20.如条款17所述的数据存储系统,其中每一个存储解决方案实现不同存储技术,其中由所述存储解决方案实现的所述存储技术包括闪存技术、固态驱动器(SSD)技术、硬盘驱动器(HDD)技术、光盘(OD)技术或磁带技术中的两个或更多个。
[0124] 结论
[0125] 各种实施方案还可包括根据前面的描述实施在计算机可访问介质上的接收、发送或存储指令和/或数据。一般来说,计算机可访问介质可以包括存储介质或储存器介质(如磁性介质或光学介质,例如磁盘或DVD/CD-ROM)、易失性或非易失性介质(如RAM(例如,SDRAM、DDR、RDRAM、SRAM等)、ROM等)以及传输介质或信号(如通过通信介质(如网络和/或无线链路)传送的信号(如电信号、电磁信号或数字信号))。
[0126] 如在图中所示和本文所描述的各种方法表示方法的示例性实施方案。所述方法可以在软件、硬件或其组合中实施。方法的顺序可以改变,并且各个元素可以被添加、重新排序、组合、省略、修改等。
[0127] 受益于本公开的本领域技术人员将清楚可进行各种修改和变化。 旨在包含所有这些修改和变化,并且相应地,以上描述应视为具有说明性而非限制性意义。