通过分层存储系统内的数据迁移减少功耗的制作方法

文档序号:6533659阅读:260来源:国知局
通过分层存储系统内的数据迁移减少功耗的制作方法
【专利摘要】本发明提供了数据处理系统内的用于管理分层存储系统中的数据分段的机制。所述机制识别所述分层存储系统的第一层中的可被置于最低功耗状态的一个或多个第一存储设备,并且识别存储在所述一个或多个第一存储设备上的在所述一个或多个第一存储设备处于最低功耗状态的时间段期间最可能被访问的一个或多个数据分段。所述机制将所述一个或多个数据分段迁移到所述存储系统的第一层或者第二层中的一个内的一个或多个第二存储设备,并且将所述一个或多个第一存储设备置于最低功耗状态。在所述一个或多个第一存储设备处于最小功率消耗状态时,由所述一个或多个第二存储设备为针对所述一个或多个数据分段的访问请求提供服务。
【专利说明】通过分层存储系统内的数据迁移减少功耗

【背景技术】
[0001] 本申请一般地涉及一种改进的数据处理装置和方法,并且更具体地,涉及用于通 过在分层存储系统的层(tie)之间迁移数据减小功耗的机制。
[0002] 传统的存储模型识别两种不同类型的存储设备:在线存储设备和离线存储设备。 在线存储设备一般存储需要高可用性、实时获取和不变的可靠性的事务处理数据。离线存 储设备一般存储不经常被访问并且被长期存储的归档数据。然而,在现代环境中,数据使用 已经超出了简单的事务处理和归档使用。因此,已经引入了分层存储系统的概念。
[0003] 分层存储的概念基于存储设备的变化的性能,以及所遇到的各种工作负载对这些 存储设备的性能的变化的需要。分层存储涉及基于存储设备的性能能力和成本,具有存储 设备的多个逻辑和物理级别,并且然后基于对数据的预期需要以及分层存储系统的该级别 的存储设备的对应性能,在存储设备的这些各种级别内存储数据。
[0004] 因此,例如,在分层存储系统的最高级别,提供具有非常高的性能能力的多个存储 设备。在分层存储系统中,以预期被频繁地需要并且具有最小访问延迟的数据利用这些存 储设备。分层存储系统的该层有时被称为"在线(online)"层或者T0。该层通常由其制造 和购买最为昂贵的存储设备组成。
[0005] 分层存储系统的中间层,有时被称为"近线(nearline)"层或者T1,具有这样的存 储设备,这些存储设备具有比分层存储系统的最高级别低的性能能力,但是仍然具有足够 的性能,以便处理对被定期但是不像被存储在最高层内的数据那样经常地访问,或者其访 问可以容忍由于分层存储系统的中间层的存储设备的较低性能度量而产生的较大访问延 迟的数据的访问。基于分层存储系统的复杂性和所采用的存储设备的不同的性能能力,分 层存储系统中可以存在多个中间层。
[0006] 分层存储系统的底层,有时被称为"离线(Offline) "层,可以由相对低性能的存储 设备组成。该层通常被用于归档数据或者存储很少被访问的数据,并且因此,不关心与这些 存储设备相关联的访问延迟。
[0007] 实现这样的分层存储系统的原因不仅基于当今的计算环境的工作负载对存储设 备性能的各种需要,而且基于这样的存储设备的成本。存储设备的成本与存储设备的性能 成正比。即,更高性能的存储设备的成本显著地多于较低性能的存储设备。结果,拥有大量 较低性能的存储设备比拥有大量高性能的存储设备的成本较低。结果,在分层存储系统中, 一个高性能存储设备的相对较小的组可被用于处理需要高可用性和实时访问的数据。同 时,一个较低性能的存储设备的相对较大的组可被用于存储用于归档目的的数据或者很少 被访问的数据。一个中等大小的具有中等性能的存储设备的集合可被用于处理需要定期访 问的数据。结果,使用分层方法,可以最小化存储系统的成本,同时仍然适合于工作负载的 需要。


【发明内容】

[0008]在一个说明性实施例中,在一个分层存储系统中,提供了一种用于管理分层存储 系统中的数据片段的方法。该方法包括识别所述分层存储系统中的第一层内的可以被置于 最小功耗状态的一个或多个第一存储设备。所述方法还包括识别存储在所述一个或多个第 一存储设备上的在所述一个或多个第一存储设备处于最小功耗状态的时间段期间最可能 被访问的一个或多个数据片段。另外,所述方法包括将一个或多个数据分段迁移到所述存 储系统的第一层或者第二层中的一个或多个第二存储设备。另外,所述方法包括将所述一 个或多个第一存储设备置于最小功耗状态。在所述一个或多个第一存储设备处于最小功耗 状态时,由所述一个或多个第二存储设备为针对所述一个或多个数据分段的访问请求提供 服务。
[0009] 在其它的说明性实施例中,提供了一种包括计算机可用或者可读介质的计算机程 序产品,所述计算机可用或者可读介质具有计算机可读的程序。当被在计算设备上执行时, 所述计算机可读程序使得所述计算设备执行上面根据说明性方法实施例概述的各种操作 和操作组合。
[0010] 在另一个说明性实施例中,提供了一种系统/装置。所述系统/装置可以包括一 个或多个处理器和耦连到所述一个或多个处理器的存储器。所述存储器可以包括指令,当 被以所述一个或多个处理器执行时,所述指令使得所述一个或多个处理器执行上面根据说 明性方法实施例概述的各种操作和操作组合。
[0011] 将在本发明的示例实施例的下列详细说明中描述本发明的这些及其它特征和优 点,或者根据本发明的示例实施例的下列详细说明,本领域技术人员将明了本发明的这些 及其它特征和优点。

【专利附图】

【附图说明】
[0012] 当结合附图阅读时,通过参考说明性实施例的以下详细说明,将最好地理解本发 明以及其优选的使用模式,以及其另外的目的和优点,其中:
[0013] 图1是可以实现说明性实施例的方面的分布式数据处理系统的示例图示;
[0014] 图2是可以实现说明性实施例的方面的数据处理装置的示例方框图;
[0015] 图3是根据一个说明性实施例的分层存储系统的示例逻辑图;
[0016] 图4A是根据一个替换实施例的分层存储系统的示例逻辑图,在该替换实施例中 使用与存储设备和存储控制器相关联的每秒操作的测量;
[0017] 图4B是示出了根据一个说明性实施例的功耗管理引擎的示例操作的示例图;
[0018] 图5是概述了用于基于数据分段的访问密度,提升/降级分层存储系统内的数据 分段的操作的流程图;
[0019] 图6是概述了根据一个说明性实施例,用于利用推测的工作负载确定用于分层存 储系统内的一个数据分段的适当位置的操作的流程图;
[0020] 图7是概述了根据一个说明性实施例,用于利用可搜索的数据结构执行后台分析 操作的操作的流程图;
[0021] 图8是概述了根据一个说明性实施例,用于执行功耗管理的示例操作的流程图; [0022] 图9示出了根据一个说明性实施例的云计算节点;
[0023] 图10示出了根据一个说明性实施例的云计算环境;和 [0024] 图11示出了根据一个说明性实施例的抽象模型层。

【具体实施方式】
[0025]在大规模数据中心中,减小功耗就数据中心的成本以及使得数据中心符合环境规 范或甚至可能是政府法规而言具有重大的意义。由于数据中心内的数据的人增加和存储 的激增,数据中心内的总功耗的绝大部分由存储设备的功率使用组成。因此,减小存储设备 的功率使用可以对数据中心内的总功率利用具有重大影响。
[0026]对于数据中心内的各个存储设备,当不存在进行中的输入/输出(I/O)活动时,保 持硬盘驱动器的盘轴旋转,即,保持硬盘驱动器如果接收到I/O请求则可用于访问,将消耗 大量功率。这是因为"减慢旋转"驱动器,即,减慢或者停止硬盘驱动器的主轴的旋转,与显 著的性能惩罚相关联,如果每次硬盘驱动器必须访问数据时,硬盘驱动器必须"加速旋转", 艮P,将主轴的旋转提高到使得可以从硬盘访问数据的速度。需要加速旋转硬盘驱动器的1/ 0请求经历比已经处于访问数据的正常转速的硬盘驱动器的正常寻道时间高得多的延迟。 因此,面对的挑战是能够减慢HDD的转速以便减少功耗,而且是以不会显著地负面影响VO 性能的方式进行。
[0027] 减慢HDD的转速的一个选择是使用大规模非活动磁盘阵列(MAID)系统,其一般用 于取代磁带存储系统。采用MAID系统,在任意给定的时间,仅有被活性使用的驱动器在旋 转,而其余驱动器不旋转。虽然这减小了功耗并且延长了 MAID系统中的驱动器的寿命,但 是MAID系统受上面讨论的性能缺陷的困扰,S卩,对当前空闲的的驱动器的访问将引起在能 够被访问之前必需进行加速的性能惩罚。这种性能惩罚对于许多应用是不可行的。
[0028] 说明性实施例提供了一种调整分层存储系统内的数据的位置,以便在非高峰操作 时间期间,减小分层存储系统的功耗的机制。通过从消耗相对较大数量的功率的较低分层 存储设备,诸如硬盘驱动器等等,迁移数据以便保持可访问状态,实现减小功耗。例如,在硬 盘驱动器(HDD)的情况下,可以识别其数据不太可能被在非高峰时间访问的HDD。可以识 另IJ,如果有的话,这些识别出的HDD上的在非高峰操作时间期间最可能被访问的数据,并且 将其迁移到分层存储系统的更高层,诸如到固态驱动器(SSD),其它更高性能的HDD等等。 然后可以减慢从其迁移数据的HDD的转速,从而它们在非高峰操作时间期间处于最小功耗 状态。
[0029] 在非高峰操作时间期间,SSD可以通过以被请求的数据做出响应(读)或者更新所 述数据的状态(写),为对迁移的数据的访问请求提供服务。以这种方式,所述数据仍然可 被访问,而不招致加速旋转HDD的延迟,同时实现将HDD保持在最小功耗状态的功耗节省。 在重新开始高峰操作时间之前,HDD可以再次被加速旋转,并且可以使用SSD中的数据的拷 贝更新迁移的数据的当前状态,从而将所述数据迁移回到HDD。
[0030] 在一个说明性实施例中,数据被在非高峰时间期间迁移到其上的上层存储设备可 以作为针对迁移数据的读/写的队列操作。当该队列变满时,即,对迁移的数据的读/写的 数目达到或者超过一个或多个预定阈值时,数据可被迁移回到减慢旋转的HDD。这将涉及加 速旋转HDD,然后将迁移的数据的状态拷贝回现在加速旋转的HDD上的适当位置。
[0031] 说明性实施例可以收集指定的时间周期上的使用模式统计,以便识别,诸如,可被 实现在数据中心等等内的分层存储系统中的"热点"和"冷点"。对"冷点"的检测可被用于 识别,例如,在指定的时间期间相对不经常被访问的存储设备。对"热点"的检测可被用于 识别这些"冷"存储设备上的应当被在指定的时间段期间,g卩,在非高峰时间期间,迁移到其 它存储级的数据部分,从而虽然〃冷〃存储设备的旋转被减慢到低的或者最小功耗状态,例 如,被置于空闲状态,仍然可以进行对这种"热点"数据的访问。
[0032] 可以通过记录在一段时间上观察到的使用模式,和/或借助于应用的集成,其中 分析所述应用的操作以便预测在不同的指定时间段,分层存储系统的哪些部分最可能被访 问,便于实现对分层存储系统内的"热点"和"冷点"的标识。这些机制可被用于存在根据 数据被访问或者被利用的相对频率,在分层存储系统的各个级别之间迁移数据的机制的分 层存储系统的背景中。因此,以下将在这种分层存储系统的背景中描述本发明的说明性实 施例。
[0033] 所述说明性实施例的机制可以获得和记录关于各个存储设备和所述存储设备上 的数据部分的使用模式信息的一种方法是利用计数器。例如,在一个说明性实施例中,分层 存储系统中的所有数据被划分为被称为分段的相对小但是可管理的块。为这些分段中的每 一个维护计数器。当一个分段的访问密度超过一个阈值T+时,如果可以获得一个较高层, 该分段被从一个较低层动态地移动到所述存储系统内的一个较高层。如果所述访问密度降 低到另一个阈值τ-之下,该分段被降级或者动态地移动到该存储系统内的一个较低层。使 用偏置最近活动的计数器,并且所述阈值被动态地调整,以便试图并且保持存储系统的最 高层尽可能地满。另外,这些计数器被用于将最高层的访问密度保持为尽可能地高,其中访 问密度是每单位存储数量的平均访问,例如,每GB的访问。理想地,驻留在最高层T0中的 N个数据分段应当是分层存储系统中的N个被最多访问的分段。
[0034] 除了用于每一个分段的计数器之外,可以为存储系统的一个或多个层,例如,仅 仅存储系统的顶层,存储系统的所有层等等内的每一个存储设备利用计数器,以便保持对 每一个存储设备的每秒操作数目,所述一个或多个层内的每一个存储设备的最多操作的测 量。存储级控制器还可以利用其它计数器,用于识别由这些控制器处理的最多和实际操作 数目。可以根据这种信息计算推测的每秒操作,并且可将其用于关于将数据定位在存储系 统的层中的什么位置的判断。基于将被移动的数据的分段的推测的每秒操作以及所述数据 分段将被移动到其上的控制器和存储设备的推测的每秒操作,可以动态地并且自动地做出 关于分层存储系统内用于所述数据分段的最佳位置的确定。
[0035] 根据所述说明性实施例,除了识别数据在分层存储系统内的最高效的位置之外, 出于减小功耗的目的,这些计数器可被用于识别分层存储系统内的"热点"和"冷点"。即, 所述计数器可以具有双重目的,即,被用于在正常的高峰操作时间期间在存储系统的层之 间移动数据,并且还可被用于识别可以在非高峰操作时间期间减慢旋转的较低层的存储设 备,以及这些减慢旋转的存储设备上的什么数据应当被在非高峰时间期间迁移到较高层, 以便确保这些"冷"存储设备上的"热点"数据的可用性。
[0036] 在某些说明性实施例中,所述计数器的值可被与表示所述分层存储系统的BTree 或者其它可搜索的数据结构相关联地保持。可以在大于在存储系统的层之间移动数据所用 时间的时间增量内保持所述计数器的值。可以使用这种可搜索的数据结构执行各种后台分 析操作,以便创建将被应用于存储在所述分层存储系统内的数据分段的策略。例如,这些策 略可以启动在特定时间,或者当其它分段被提升或者降级时,提升和降级数据分段的任务。 另外,采用所述说明性的实施例,可以产生用于根据对〃热点〃,〃冷点〃的检测等等,减慢 和加快存储设备中的某些存储设备的旋转的策略。以下将阐述所述说明性实施例的这些机 制中的每一个的附加细节。
[0037]如本领域技术人员所理解的,本发明的一个或多个方面可被具体化为系统、方法 或计算机程序产品。因此,本公开可以具体实现为以下形式,g卩:可以是完全的硬件、也可以 是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一 般称为"电路"、"模块"或"系统"。此外,在一些实施例中,本发明还可以实现为在一个或多 个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程 序代码。
[0038]可以利用一个或多个计算机可用或者计算机可读介质(多个)的任意组合。所述 计算机可用或计算机可读存储介质例如可以是--但不限于--电、磁、光、电磁、红外线、 或半导体的系统、装置、器件或者传播介质。所述计算机可读介质的更特定的例子(非无遗 漏的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机访问存储器 (RAM)、只读存储器(ROM)可擦可编程只读存储器(EPROM或闪速存储器)、光纤、便携式压缩 只读光盘只读存储器(CDR0M)、光存储设备、诸如支持互联网或者内联网的传输介质,或者 磁存储设备。注意,所述计算机可用或者计算机可读介质甚至可以是在其上印刷了程序的 纸或者另一种适合的介质,通过例如对纸或者其它介质进行光学扫描,所述程序可被电子 地捕捉,然后被编译、解释或如果必要被以适合的方式进行其它处理,并且被存储在计算机 存储器内。在本文档的上下文中,计算机可用或者计算机可读介质可以是任何包含、存储、 传递、传播或者传输所述程序的介质,该程序可以被指令执行系统、装置或者器件使用或者 与其结合使用。所述计算机可用介质可以包括在基带中或者作为载波一部分传播的数据信 号,其中承载了计算机可读的程序代码。所述计算机可用程序代码可被使用任意适当的介 质传输,包括--但不限于--无线、电线、光缆、射频(RF)等等。
[0039]可以用一种或多种编程语言的任意组合编写用于执行本发明的操作的计算机程 序编码,包括面向对象编程语言,诸如Java?、Smalltalk?、C++等等,以及常规的过程程序 设计语言,诸如"C"程序设计语言或类似的编程语言。所述程序代码可以完全在用户的计 算机上,部分地在用户的的计算机上,作为独立软件程序包执行,部分地在用户的计算机上 并且部分地在远程计算机,或完全在远程计算机或服务器上执行。在后者情况下,远程计算 机可以通过任意类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(MN),存储 区域网(SAN),或可以形成到外部计算机的所述连接(例如,使用互联网服务提供商通过互 联网)。另外,可以在包含计算机诸如服务器或者定制或者专用的硬件的外部存储系统内运 行所述程序代码。
[0040] 下面将参照根据本发明的说明性实施例的方法、装置(系统)和计算机程序产品 的流程图和/或框图描述说明性的实施例。应当理解,所述流程图图示和/或方框图的每 个方框和所述流程图图示和/或方框图的方框的组合可被以计算机程序指令实现。计算机 程序指令可被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,以便 产生一种机器,从而所述指令,其通过计算机或其它可编程数据处理装置的处理器执行,创 建用于实现所述流程图和/或方框图方框或多个方框内指定的功能/动作的装置。
[0041] 这些计算机程序指令还可被存储在计算机可读介质内,所述计算机可读介质可以 指挥计算机或其它可编程的数据处理装置,以便以特定方式发挥作用,从而存储在所述计 算机可读介质内的指令产生包括指令装置的制品,所述指令装置实现所述流程图和/或方 框图方框或多个方框内指定的功能/动作。
[0042]所述计算机程序指令还可被装载到计算机其它可编程的数据处理装置上,以便使 得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以便产生以计算机实现 的处理,从而在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或方框图 方框或多个方框中指定的功能/动作的处理。
[0043] 所述图中的流程图和方框图示出了根据本发明的各种实施例的系统、方法和计算 机程序产品的可能实现的体系结构、功能和操作。在这方面,流程图或方框图中的每个方框 可以表示代码模块、段或部分,所述代码包括用于实现指定的(一个或多个)逻辑功能的一 个或多个可执行指令。应当注意,在某些替换实现中,方框内标注的功能可以不以图中所述 顺序发生。例如,连续示出的两个方框事实上可以基本上并发执行,或根据涉及的功能,这 些方框有时可以按相反顺序执行。还应当注意,方框图和/或流程图图示中的每个方框,以 及方框图和/或流程图图示中的方框的组合可被以执行指定的功能或动作的基于专用硬 件的系统,或专用硬件和计算机指令的组合实现。
[0044] 可以在许多不同类型的数据处理环境中利用所述说明性实施例,包括分布式数据 处理环境,单个数据处理设备,云计算系统等等。为了提供用于所述说明性实施例的特定元 件和功能的描述的上下文,以下提供图1和2作为示例的环境,可以在该环境中实现所述说 明性实施例的方面。虽然根据图1和图2的描述将主要关注分布式数据处理系统实现中的 分层存储系统,这仅是示例,并且不旨在说明或暗示对于本发明的特征的任何限制。相反 地,所述说明性实施例旨在包括单个数据处理设备环境和可以利用分层存储系统的任意其 它实施例。另外,可以在具有访问存储系统的单个服务器或者计算机的系统内实现所述说 明性实施例。所述计算机可以或者可以不具有在其上运行的多个虚拟分区,诸如逻辑分区 (LPAR)。
[0045]现在参考附图,并且特别是参考图1-2,提供可以在其中实现本发明的说明性实施 例的数据处理环境的示例图。应当理解,图1-2仅是示例,并且不旨在声明或者暗示对于可 以在其中实现本发明的方面或者实施例的环境的任意限制。可以对示出的环境做出许多修 改而不脱离本发明的精神和范围。
[0046] 现在参考附图,图1示出了可以在其中实现所述说明性实施例的方面的示例分布 式数据处理系统的图示。分布式数据处理系统100可以包括可以在其中实现所述说明性实 施例的方面的计算机网络。分布式数据处理系统100包含至少一个网络 1〇2,网络102是用 于提供分布式数据处理系统100内的连接在一起的各种装置和计算机之间的通信链接的 介质。网络102可以包含连接,诸如有线、无线通信链接,或光纤缆线。
[0047] 在示出的示例中,服务器104和服务器106与存储单元108 -同连接到网络102。 存储单元108可以是任意类型的存储单元或者存储系统。存储单元108的例子可以包括高 级存储设备,诸如DSS000双节点控制器,或者文件服务器,诸如网络附接存储 (NAS)设备。 [0048] 另外,客户机110,112和114也连接到网络1〇2。这些客户机110,112和114可以 是,例如,个人计算机,网络计算机等等。在示出的例子中,服务器1〇4可以向客户机11〇、 112和114提供数据,诸如引导文件、操作系统映像和应用。在所示的例子中,客户机 110、 112和114是服务器104的客户机。分布式数据处理系统1〇〇可以包括附加的服务器、客户 机以及未示出的其它装置。
[0049] 在所示的例子中,分布式数据处理系统100是具有网络102的互联网,网络102表 示使用传输控制协议/网际协议(TCP/IP)协议组彼此通信的网络和网关的全世界的集合。 互联网的中心是主结点或主计算机之间的高速数据通信线的主干,所述主干由路由数据和 消息的成千上万商用、政府、教育及其它计算机系统组成。当然,所述分布式数据处理系统 100还可以可被实现为包括若干不同类型的网络,诸如,例如,内联网、局域网(LAN)或广域 网(WAN)等等。所述说明性实施例还特别地非常适合于采用诸如SAN的网络的实现,其中 导线和交换利用光纤通道、iSCSI、FCOCEE等等技术。如上所述,图1旨在作为例子,而不是 对本发明的不同实施例的体系结构的限制,并且因此,图1中所示的具体元件不应被认为 是对可以在其中实现本发明的说明性实施例的环境的限制。
[0050] 现在参考图2,图2示出了可以在其中实现所述说明性实施例的方面的示例分布 式数据处理系统的方框图。数据处理系统200是计算机,诸如图1中的客户机110的例子, 实现本发明的说明性实施例的处理的计算机可用代码或者指令可被定位在其中。
[0051]在所示的例子中,数据处理系统200采用包括北桥和存储器控制器集线器(NB/ MCH)2〇2以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)2〇4的集线器体系结构。处 理单元206,主存储器208和图形处理器210连接到NB/MCH 202。图形处理器210可以通 过加速图形端口(AGP)连接到NB/MCH 202。
[0052] 在所示的例子中,局域网(LAN)适配器212连接SB/ICH 204。音频适配器216,键 盘和鼠标适配器220,调制解调器222,只读存储器(ROM) 224,硬盘驱动器(HDD) 226, CD-ROM 驱动器230,通用串行总线(USB)端口以及其它通信端口 232,和PCI/PCIe设备234通过总 线238和总线240连接SB/ICH 204。PCI/PCIe设备可以包括,例如,以太网适配器、插卡和 用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM 224可以是,例 如,闪速基本输入/输出系统(BIOS)。
[0053] HDD 2? 和 CD-ROM 驱动器 230 通过总线 240 连接 SB/ICH204。HDD 226 和 CD-ROM 驱动器230可以使用,例如,集成驱动器电子电路(IDE)或者串行高级技术附件(SATA)接 口。超级I/O (SI0)设备236可以连接到SB/ICH 204。
[0054] 操作系统运行在处理单元206上。该操作系统协调图2内的数据处理系统200内 的各种组件并且为其提供控制。作为客户机,该操作系统可以是商业可获得的操作系统诸 如:纖icr〇S〇ft?\Ylttd〇fW§# XP (Microsoft和Windows是微软公司在美国、其它国家或 者这两者内的商标)。面向对象编程系统,诸如Java?编程系统,可以结合该操作系统运 行,并且从Java?程序或者运行在数据处理系统200上的应用提供对所述操作系统的调用 (Java是Sun Microsystems公司在美国、其它国家或者内的商标)。
[0055] 作为服务器,数据处理系统200可以是,例如,运行髙级交互执行体(▲_丨)操 作系统或者UHXJX?操作系统的IBM? 计算机系统(eserver, System p,和AIX是国际商业机器公司在美国、其它国家或者两者内的商标,而LINUX是 Linus Torvalds在美国、其它国家或者两者内的商标)。数据处理系统200可以是包括处理 单元206内的多个处理器的对称多处理机(SMP)系统,可以采用单处理机系统。另外,在一 个说明性实施例中,数据处理系统200可以由一个或多个System p服务器组成,所述一个 或多个System p服务器具有主机适配器的网络以便在图1中的网络102上通信,以及RAID 适配器的网络以便与多个存储设备通信。
[0056] 用于所述操作系统、面向对象编程系统和应用或者程序的指令被定位在诸如HDD 226的存储设备上,并且可被装入主存储器208,以便由处理单元206执行。可以由处理单 元206使用计算机可用程序代码执行本发明的说明性实施例的处理,所述计算机可用程序 代码可以位于存储器内,诸如,例如,主存储器208、ROM 224,或者,例如,一个或多个外围设 备 226 和 230。
[0057] 图2所示的总线系统,诸如总线238或者总线240,可以由一个或多个总线组成。 当然,所述总线系统可被使用任意类型的通信结构或者体系结构实现,为附接到所述结构 或体系结构的不同组件或设备之间的数据传输提供所述任意类型的通信结构或体系结构。 图2的通信单元,诸如调制解调器222或者网络适配器212,可以包括用于传输和接收数据 的一个或多个设备。存储器可以是,例如,主存储器208, ROM M4,或者高速缓存,诸如图2 中的NB/MCH 202内的高速缓存。
[0058] 本领域的技术人员可以理解,图1-2中的硬件可以根据实现而改变。除了或者取 代图1-2所示的硬件,可以使用其它的内部硬件或者外围设备,诸如闪速存储器,等效的非 易失存储器,或者光盘驱动器等等。另外,所述说明性实施例的处理可以应用于前面提及的 SMP系统之外的多处理器数据处理系统,而不脱离本发明的精神和范围。
[0059] 另外,数据处理系统200可以采取若干不同数据处理系统中的任意一种的形式, 包括客户机计算设备,服务器计算设备,平板计算机,膝上型计算机,电话或者其它通信设 备,个人数字助理(PDA)等等。在某些说明性示例中,数据处理系统200可以是便携式计算 设备,其一般地配置有闪速存储器,以便提供用于存储操作系统文件和/或用户产生的数 据的非易失存储器。基本上,数据处理系统200可以是任何已知的或者以后开发的数据处 理系统,而没有体系结构的限制。
[0060] 对于所述说明性实施例,所述数据处理系统和/或存储系统中的一个或多个可以 包括分层存储系统,可以在该分层存储系统上实现所述说明性实施例的机制。所述说明性 实施例操作,以便优化分层存储系统内的数据分段的位置,以便高效地使用所述分层存储 系统内的各层存储设备的不同性能特性。另外,通过提供用于迁移较低层存储设备中的〃 热点〃数据的功能,从而这些较低层存储设备可被在非高峰操作时间期间置于最小功耗状 态,所述说明性实施例提供用于减小分层存储系统的功耗的机制。所述说明性实施例还提 供了用于确定何时使得这些较低层存储设备退出最小功耗状态,并且将迁移的数据的当前 状态拷贝回现在完全操作的较低层存储设备的机制。
[0061] 图3是根据一个说明性实施例的分层存储系统的示例逻辑图。图3中的分层存储 系统可被实现在,例如,分布式数据处理系统或者单个数据处理设备内。所述分层存储系统 的存储设备可以是网络附接存储单元108的一部分,例如,可以与一个或多个服务器计算 设备诸如图1中的服务器104和106相关联,或与客户机计算设备诸如客户计算机110-114 相关联。因此,该分层存储系统可以是独立计算机的一部分,可以与客户计算机相关联,与 服务器相关联,或者可以是网络附接存储系统的一部分。在一个说明性实施例中,网络 102 可以是以外部的面向块的设备作为存储单元1〇8的SAN,或者由虚拟SAN控制器控制的面向 块的存储设备的网络,所述虚拟SAN控制器诸如是可从纽约阿蒙克的国际商业机器公司获 得的 SAN Volume ControllerTM(SVC)。
[0062] 分层存储系统内的各个层的存储设备可以与分层存储系统内的其它层的存储设 备中的不同计算设备相关联。因此,例如,第一层的存储设备可以与第一存储系统或者服务 器相关联,并且第二层的存储设备可以与第二存储系统或者服务器相关联。另外,这些层的 存储设备可以只是由外部存储控制器设备控制的不同类型的存储设备。例如,某些存储设 备可以包括第一套固态盘(SSD),第二套15K硬盘(HDD),和第三套 7. 2K HDD,以及一组磁带 驱动器,所有这些被以一个或多个外部存储控制器设备控制。分层存储系统的计算设备和 层的任意组合旨在落在所述说明性实施例的精神和范围内。
[0063] 如图3所示,分层存储系统300由存储设备的多个层302-306组成,每一个层拥 有具有类似的性能特性的存储设备。在层之间,所述存储设备具有不同的性能特性。对于 说明性实施例,具有相对较高的性能特性,例如,每秒操作的数目,访问延迟等等的存储设 备位于较高层,而具有相对较低的性能特性的存储设备位于分层存储系统300的较低层。 与较低层上的存储设备相比,较高层中的存储设备每秒能够执行相对更大数目的读和写操 作。例如,最高层T0中的SSD每秒可能能够执行50, 000次读操作和15, 000次写操作,而 中间层T1中的存储设备可能每秒仅仅能够执行300次读或者写操作。最低层T2中的存储 设备每秒可能仅仅能够执行100次读或者写操作。对于延迟度量,即,从存储设备取回数据 或者将数据存储到存储设备所用的时间,T0存储设备可能用250 μ s,而T1存储设备可能用 5ms,并且Τ2存储设备可能用10ms。另外,可以断电的附加层,诸如磁带存储设备,可能花费 许多秒以便从存储设备获得数据或者将数据存储到存储设备。
[0064] 在所示的例子中,分层存储系统300具有三个层302-306,最高层302具有最高的 相对性能特性,最低层306具有最低的相对性能特性,并且中间层304具有中等级别的性能 特性。作为一个例子,最低层306的最低性能特性存储设备可以包括相对慢的访问时间的 硬盘,磁带存储设备等等。最高层302可以由相对高速的硬盘组成,并且中间层304可以由 中等级别速度的硬盘组成。在一个说明性实施例中,最高层302实际上由一个或多个固态 盘(SSD)组成。SSD是使用固态存储器存储持久数据的数据存储设备。SSD模仿硬盘驱动 器接口,从而在大多数应用中容易取代硬盘驱动器。使用SRAM或者DRAM (而不是闪速存储 器)的SSD通常被称为RAM驱动器。
[0065] 在一个说明性实施例中,分层存储系统中的数据被划分为被称为数据分段310的 相对小但是可管理的块。在分层存储系统300的小型计算机系统接口(SCSI)实现中,分层 存储系统300的层302-306中的存储设备的逻辑单元号(LUN)320可以由多个这些数据分 段310组成。因此,在分层存储系统中,LUN320可以散布在多个存储设备上。例如,LUN 320 可以是许多存储设备上的数据条,并且还可被分解为分段。LUN 320的分段可以基于访问使 用模式移动到不同的层。LUN的大小可以是许多Terra字节(TB),而数据分段可以相对小, 诸如10MB。在其它实现中,不是使用LUN,可以利用存储设备的部分的其它逻辑表示法,诸 如卷(由大型计算机使用)等等。
[0066] 数据分段可以具有任意适合的大小,例如,通过权衡性能因子,诸如将特定大小的 数据分段从一个层移动到另一个层所需的时间(对于分段的大小越大,该时间更多),管理 分段所需的数据结构的大小(分段的大小越小,所述数据结构的大小越大),作为不经常被 访问的数据分段的一部分,将数据移动到高性能存储系统内的可能性(越大的分段大小, 可能性越大),分层存储系统内的一个层的总容量等等,确定该大小。在一个说明性实施例 中,考虑这些以及其它因素,数据分段的大小可以近似为10MB。当然,可以使用其它大小,包 括1MB,100MB等等,而不脱离说明性实施例的精神和范围。
[0067] 为这些数据分段310中的每一个维护计数器330,以便监视每一个层中的这些数 据分段的有效访问密度。有效访问密度是在某个给定的时间期间,数据分段在其所属的层 内的访问速率。所述计数器在预定时间间隔内操作,以便计数在该预定时间间隔内访问对 应的数据分段的操作的数目。在一个说明性实施例中,计数器330可以在该预定时间间隔 上计数总操作的数目,而不管该操作是读还是写操作。然而,在某些说明性实施例中,可以 有用于读操作和写操作的不同的计数器,诸如在对这两种类型的操作存在非对称的访问参 数的实施例中。
[0068] 可以在监视周期结束时重新初始化计数器330,监视周期可以比计数器执行其计 数操作的时间间隔长,以便为下一个监视周期内的时间间隔继续它们的计数操作。例如,一 个时间间隔可以是30分钟的时间间隔,然而监视周期可以是1小时,1天,1星期,1个月,1 年等等。因此,在一个说明性实施例中,计数器提供与对应的数据分段相关联的每秒操作的 测量,即,以计数器的值除以该时间间隔标识的操作数目。这种指定的时间间隔的每秒操作 的测量可被写到一个单独的数据结构以便后续使用,或者被保持为在其中实现计数器330 的数据结构中的计数器值。
[0069] 例如,计数器330的值可被保持在与数据分段相关联的可搜索的数据结构内。出 于以下描述的目的,描述使用Btree数据结构340保持用于分层存储系统300的数据分段 310的计数器330的说明性实施例。Btree数据结构是一种树数据结构,其保持排序的数 据,并且允许对数分摊时间的搜索、插入和删除。不同于自平衡二叉搜索树,Btree对于读 和写大块(或者分段)数据的系统是最优的。在Btree中,内部(非叶子)节点可以具有 预定范围内的可变数目的子节点。当数据被插入节点或被从节点中去除时,其子节点的数 目改变。为了保持预定的范围,内部节点可被加入或者分裂。因为允许一个范围的子节点, Btrees不需要如其它自平衡搜索树那样频繁的再平衡。对于特定的实现,子节点数目的下 界和上界一般地是固定的。例如,在2-3Btree (通常被简单地称为2-3树),每一个内部节 点可以仅仅具有2或者3个子节点。Btree通过要求所有外部节点处于相同深度来保持平 衡。该深度将随着元素被添加到该树慢慢地增加,但是总深度的增加很少发生,并且导致所 有叶节点成为远离根的又一个节点。
[0070] 应当理解,虽然说明性实施例利用Btree数据结构,以便提供用于各个数据分段 的访问性能信息的可搜索的数据结构,说明性实施例不限于利用Btree数据结构。而是,可 以利用任意可搜索的数据结构保持计数器信息,以及根据实现,其它性能信息,用于确定是 否以及如何调整分层存储系统内的数据分段的位置。
[0071] 数据分段位置管理引擎350利用存储在可搜索的数据结构340内的信息执行后台 分析操作,以便进行驻留确定,并且自动产生将被在分层存储系统300内自动实现的数据 分段存储策略。数据分段位置管理引擎350包括逻辑352,逻辑352被作为软件指令、硬件 逻辑或者软件和基于硬件的逻辑的任意组合提供,以便执行各种分析操作,并且响应于这 些分析操作的结果,控制数据分段在分层存储系统300的层302-306之间的移动。因此,基 于这些分析操作和确定,基于指示使用模式的有效访问密度和/或其它因素是否指示应当 提升或者降级分层存储系统内的特定数据分段,数据分段可被从一个层302-306移动到分 层存储系统300内的另一个层。
[0072] 假设使用Btree可搜索的数据结构,现在将描述在该Btree中创建条目,以及使用 Btree获得关于数据分段的信息。如上所述,分层存储系统300中的数据被划分为块或者分 段310,在一个说明性实施例,一个块或者分段310具有近似10MB的大小。每当10MB分段 310被创建或者被第一访问时,数据分段位置管理引擎350执行Btree插入。创建的元素, 例如,图3中的元素 342在Btree中的索引是数据分段310的起始地址。该索引被与该元 素的创建的第一时间戳一起存储在元素 342内。Btree中的元素 342的大小使得可以为预 定的时间段存储计数器的值。例如,在一个说明性实施例中,计数器计数在15或者30分钟 的时间间隔内对数据分段的访问操作。元素 342具有足够的大小,以便存储这些计数器一 个历年期间的值。
[0073] 例如,3字节计数器允许30分钟间隔内的近似16M计数,g卩,3字节是24位,导致 存储在3字节中的最大值2**24-1 = 16, 777, 215。对于30分钟的间隔,该最大值将表示近 似9, 000操作/秒,目卩,16, 777, 215八30*60秒)=9, 320. 675操作每秒钟。因此,为了允许 一个历年的计数器值存储,采用具有3字节的计数器值,并且针对30分钟的时间间隔计数, 将需要52, 560字节来保持计数器值。在该历年之后这些计数器可以回绕,以便允许一年接 一年的附加监视。添加用于初始时间戳的附加的4字节和用于索引指针的另外4字节导致 Btree中的元素的52, 568字节的大小。这可被取整为64K,以便允许根据实现可被用于分 析操作的趋势信息以及其它数据分段使用信息、元数据等等的存储。这近似为0.7%的开销 (计数器数据的数量除以数据分段的大小)。如果用户需要更小的开销,可以增加数据分段 的大小,或者可以增加预定的时间间隔时间段。
[0074] 在对应于计数器330的时间间隔中,每次具有对对应的数据分段的访问操作,计 数器33〇可被增加。可以通过当前时间戳和初始时间戳的简单的比较,确定元素342内要 增加的特定计数器值 33〇。例如,所述时间戳之间的差除以每一个计数器330在其上计数的 时间间隔指示当前时间应当增加该元素内的哪个3字节值。存储这些计数器的可搜索的数 据结构340优选地可被分页并且可被缓存在磁盘高速缓存中。
[0075] 数据分段位置管理引擎350可以基于存储在可搜索的数据结构340内的信息执行 许多不同类型的分析操作。这些各种分析操作可被作为后台操作执行,并且可被用于自动 进行数据分段的驻留判断,基于这些驻留判断自动移动数据分段,以及自动产生处理分层 存储系统 3〇〇内的层302-306内的数据分段的将来存储的策略。另外,这些分析操作可被用 于预测何时可能访问数据分段,并且在预测较高访问时间之前,将数据分段移动到较高层。 可以基于连续的时间,在周期时间(诸如在每一个时间间隔的结尾),或者在计数器回绕到 下一个监视周期之前在监视周期的结尾,例如,在所述历年的结尾,执行这些分析操作。可 以通过,例如,前面所述的分析操作逻辑352执行这些分析操作。
[0076] 例如,数据分段位置管理引擎350可以执行分析操作,以便确定一个数据分段在 多个时间间隔上的每秒操作的分布是否基本上是均匀的,g卩,该数据分段具有随时间相对 不变的访问密度模式。g卩,一个时间间隔的每秒操作与其它时间间隔之间不存在显著的差 异。具有高度均匀的访问密度的数据分段可被置于高速层,例如,层 T0,并且被保留在那里, 直到该数据分段的访问模式发生改变。
[0077] 在这种情况下,数据分段位置管理引擎350可以对每秒操作(例如,最近的时间 间隔,或者相对于当前时间的一个特定时间段),或者所考虑的时间间隔之上的每秒操作的 平均与指示是否将分层存储系统300的当前层302_ 3〇6中的数据分段提升或者降级到层 302-306中的另一个层的一个或多个预定阈值进行比较。每层302-306可以有一个或多个 预定阈值,从而例如可以为从中间层304到最高层302的提升使用与用于从最低层306到 中间层304的提升的阈值不同的阈值。
[0078] 如果每秒操作或者平均每秒操作满足或者超过一个提升阈值,为提升到下一个较 高层302-306标记该数据分段。如果每秒操作或者平均每秒操作满足或者低于一个降级阈 值,可以为降级到下一个较低层304-306标记该数据分段。如果每秒操作或者平均每秒操 作未满足、超过或者低于这些阈值,但是在所述阈值的容限范围内,它们可被放置在观察列 表内,并且为可能的降级或者提升进行监视。可以使用这些分析操作以更频繁的基础检查 观察列表上的数据分段,以便确定它们是否应当被提升或者降级。在这些更加频繁的检查 期间,如果每秒操作,g卩,访问密度,满足、超过或者低于这些阈值中的一个,该数据分段可 被从观察列表中去除,并且根据满足、超过或者低于的阈值,被提升或者降级。
[0079] 数据分段位置管理引擎350还可以执行分析操作,以便确定在考虑的时间间隔 (多个)内,是否存在具有零访问的任意数据分段。另外,数据分段位置管理引擎350还 可以识别是否存在无访问的有规则的发生期间,例如,在该月的前N天,该数据分段不被访 问,因此在这种时间段之前可以自动产生降级该数据分段的对应策略。
[0080] 对于所述时间间隔(多个)内具有零访问的那些数据分段,这些数据分段可被置 于被称为零访问观察列表的另一个观察列表,以便可能移动到可被关闭电源的存储设备, 或者移动用于较长时间段的磁带,例如,归档存储设备。对于零访问观察列表上的数据分 段,可以检查这些数据分段,以便确定它们是否在附加的预定时间间隔内不接收任意访问 操作。如果所述数据分段在该附加的预定时间间隔内再次未接收任意访问操作,则所述数 据分段可被移动到归档存储设备。可替换地,所述数据分段可被放置在将被在将来的特定 时间执行的活动的队列中,例如,在时间X,将数据分段Y移动到层3。
[0081 ] 此外,根据说明性实施例的附加方面,可以使用各种时间间隔内的零访问的这种 识别作为识别各个存储层或者各个存储设备的非高峰操作时间的基础。根据说明性实施 例,对这种非高峰操作时间的识别可被用于设置执行用于减小功耗的附加功能的时间界 线。对于这些存储层或者各个存储设备的在其它时间段,S卩,非非高峰操作时间的数据访问 可被用于识别存储设备上的可能需要在非高峰操作时间期间被迁移的数据部分,以便确保 在存储系统的另一个层上可以获得这些存储设备中的最可能被访问的数据。然后,在非高 峰操作时间期间,该存储层或者各个存储设备可被置于最小功耗状态,直到预定的时间,或 者发生需要将该存储层或者存储设备返回到较高功耗操作状态的事件。以下将参考功耗管 理引擎3 6〇更详细地描述这些操作。
[0082] 数据分段位置管理引擎350可以为具有不均匀分布的访问操作的数据分段执行 其它分析操作。对于其每秒操作表示具有预定阈值之上的尖峰,并且这些尖峰的数目等于 或者大于一个预定的尖峰数目的不均匀分布的那些数据分段,这些数据分段可被数据分段 位置管理引擎 35〇标记为提升到分层存储系统300中的下一个较高层3〇2_3〇6。类似地,对 于其每秒操作表示不均勻分布,并且没有预定阈值之上的足够的尖峰,即,尖峰的数目小于 所述预定的尖峰数目的那些数据分段,这些数据分段被数据分段位置管理引擎350标记为 降级到分层存储系统300的下一个较低层302-306。
[0083] 数据分段位置管理引擎350还可以执行分析操作,以便确定多个时间段的的每 秒操作是否具有显著的线性增加或者减少的趋势,指数增加或者减少的趋势,或者可被以 公式表示的其它非线性的趋势,从而可以为将来的时间间隔进行每秒操作的预测或者外 推。可以使用所述增加或减少的公式作为预测数据分段的每秒操作将满足或者超过用于 提升所述数据分段的阈值,或者满足或者低于用于降级所述数据分段的阈值的时间点的基 础。例如,对于线性增加或者减少的趋势,可以使用接近所述趋势的直线斜率预测或者外 推将来时间间隔的每秒操作。结果,如果预料到每秒操作处于批准该数据分段的移动的级 另IJ,可以使用所述预测或者外推安排将数据分段移动到分层存储系统300内的另一个层 302-306。
[0084] 可以由数据分段位置管理引擎350执行的附加分析操作包括分析由计数器存储 的每秒操作的值,以便识别关于每天时间的趋势、每周时间的趋势、每季度的趋势、每月的 趋势、每年的趋势等等。例如,所述分析操作可以确定这些各种时间间隔内的每秒操作的上 行或者下行尖峰的再发生。基于这些尖峰的检测到的再发生,可以自动产生在预期的尖峰 之前,在分层存储系统300的层302-306中向上或向下移动数据分段的策略。例如,如果一 个尖峰每天在午夜和凌晨4点之间发生,可以自动产生在晚上11:45将该数据分段移动到 较高层302-304,并且在凌晨4:15将该数据分段移动回较低层304-306的策略。可以为其 它时间间隔和趋势或者检测的再发生自动建立类似的数据分段移动策略。
[0085]另外,数据分段位置管理引擎35〇可以执行确定跨分段尖峰分析操作,以便确定 跨分段使用模式。例如,可以估计不同数据分段的每秒操作测量之间的关系,以便识别是 否存在指示数据分段之间的相连使用模式的关系的任意再发生。例如,当第一数据分段A 具有微小的尖峰时,第二数据分段B可能在再发生的基础上具有每秒操作的大尖峰。结 果,数据分段位置管理引擎350可以自动产生寻找第一数据分段A具有满足或者超过某个 阈值,例如,指示微小尖峰的值的每秒操作测量的情况,然后响应于第一数据分段A的每秒 操作满足或者超过该阈值,自动提升第二数据分段B的策略。以这种方式,在与数据分段 B相关联的每秒操作的预期的大尖峰之前,分段B被提升到分层存储系统300中的较高层 302-304。
[0086] 这种跨分段尖峰关系的确定可以采取许多不同的形式。一般地,跨分段尖峰分析 操作寻找数据分段的使用模式中的尖峰,其中这些尖峰是关于一个正常范围的预先确定的 或者动态确定的阈值数量,并且反复发生,并且在它们之间具有相关性。因此,例如,跨分段 尖峰分析可以识别特定数据分段的使用模式中的尖峰,该尖峰具有通过比较该尖峰的大小 和所述阈值而确定的足够的大小,然后可以寻找检测到的尖峰的预定时间范围内的其它数 据分段的使用模式中的尖峰,这些尖峰具有通过比较这些尖峰的大小和正常范围之上的相 同或者不同的阈值数量而确定的足够的大小。然后可以使用这种相关的尖峰作为跨分段尖 峰分析的候选,以便确定是否应当产生用于跨分段尖峰关系的策略规则。
[0087]具有另一个数据分段的使用模式中的对应尖峰的一个数据分段的使用模式中的 尖峰的单个情况一般不足以使得说明性实施例的跨分段尖峰分析确定应当产生一个策略。 相反地,计数器可以与每一个识别出的跨分段尖峰关系相关联,并且可被在每次分析操作 观察到该关系时增加。一旦该计数器具有满足或者超过一个阈值的值,可以为策略的产生 考虑对应的跨分段尖峰关系。
[0088] 可替换地,可以使用计数器值或者其它机制产生用于识别出的跨分段尖峰关系的 相关因子。例如,基于所述计数器值,可以做出第一数据分段的使用模式的第一尖峰和第二 数据分段的使用模式的第二尖峰之间存在 9〇%相关性的确定,S卩,第一尖峰的10情况中的 9个跟随有指定时间段内的第二尖峰。如果该相关性在一个阈值相关性之上,指示应当产生 用于跨分段尖峰关系的策略的时刻,则产生用于跨分段尖峰关系的策略。
[0089] 产生策略的特定阈值,以及用于确定尖峰具有在跨分段尖峰分析中被加以考虑的 有效的大小的正常使用之上的阈值,可以是预先确定的,或者被基于所述多层存储系统的 当前操作状态动态地确定。例如,随着多层存储系统的顶层或者中间层的可用存储空间减 少,所述阈值可被调整为更高,从而对于在策略规则的产生时将被考虑的这种跨分段尖峰 关系,或者对于应用存在的调整多层存储系统的层中的数据分段的移动和布置的策略规 贝IJ,需要大小更大的尖峰和/或尖峰之间更大的相关性。当可用空间变得更少时,这有效地 使得数据分段更难以被提升到存储系统的较高层。另外,这减少了已经在较高层中的数据 分段被降级,以便为需要提升的其它数据分段让出空间的可能性。当然可以使用其它因素 确定何时以及如何动态地调整阈值,而不脱离说明性实施例的精神和范围。
[0090] 作为这种跨分段尖峰分析的结果而产生的策略规则可以是与时间相关的或者是 与时间无关的。例如,如果跨分段尖峰分析确定每天早晨7:45数据分段A中存在一个尖 峰,随后在数据分段B中有的相关使用尖峰,根据预料到预期尖峰,结果策略规则可以在每 天早晨7:45自动提升分段A和分段B两者。这种时间相关性可以基于日期,一天中的时间, 一周中的天,或者任意其它时间基础。采用这种与时间相关的策略规则,响应于当前时间在 与该策略规则相关联的时间的预定容限内,启动修改多层存储系统内的数据分段的位置的 规则的应用。
[0091] 可替换地,该策略规则可以说明,例如,在任何时候,如果检测到数据分段A的使 用模式中的尖峰,因为数据分段A的使用中的尖峰以及随后的数据分段B的使用中的尖峰 之间存在相关性,将提升数据分段B。采用这种与时间无关的策略规则,响应于关于一个数 据分段的使用模式的特定状态,例如,超过某个阈值的尖峰的出现,启动修改多层存储系统 内的数据分段的位置的规则的应用。
[0092]应当注意,虽然以尖峰满足或者超过预先确定或者动态确定的阈值描述了上面的 跨分段尖峰分析,这些尖峰不必处于正方向。即,尖峰不是必须与数据分段的使用模式的使 用增加有关,而是可以是使用可以急剧减小的负尖峰。正负尖峰两者可被认为是具有数据 分段在多层存储系统中从较低到较高层,或者从较高到较低层的对应移动的跨分段尖峰分 析的一部分。
[0093]另外,虽然根据两个数据分段,例如,分段A与分段B的关系描述了上面的跨分段 尖峰分析和结果策略规则,说明性实施例不限于这种情况。而是,所述分析和结果策略规则 可以考虑任意数目的数据分段,它们的对应使用模式,以及可以出现在它们的使用模式中 的任意尖峰。因此,例如,数据分段A的使用模式中的正尖峰和数据分段B的使用模式中的 正尖峰之间的相关性进一步与数据分段 C的使用模式中的负尖峰相关。结果,策略规则可 以是的〃如果存在数据分段A中的正尖峰和数据分段B中的正尖峰,则降级数据分段C〃的 类型。可以使用数据分段的使用模式的尖峰行为中的任何相关性产生策略规则,而不脱离 说明性实施例的精神和范围。
[0094] 作为说明性实施例的进一步的益处,可以检测可能应该提升数据分段,但是由于 多层存储系统的较高层的当前状态,不能执行这种提升的情况。例如,在某些情况下,如果 存在较高层中已经存在具有类似优先级的数据分段,可能希望阻止一个数据分段的提升。 另外,由于较高层中的可用空间,并且希望不降级其它数据分段,可能有不能完成数据分段 的提升的情况。结果,尽管可以正常执行提升,可能不执行一个提升操作。
[0095] 可以通过说明性实施例的机制检测这种情况,并且可以向系统管理员输出适当的 消息。所述消息可以指出不完成这种提升的理由,并且可以提供关于如何避免将来阻止这 种提升的建议。例如,说明性实施例的机制可以提议给多层存储系统的一个或多个层添加 存储设备,以便允许提升附加的数据分段。
[0096] 除了或者取代上述分析操作中的一个或多个操作,可以执行其它类型的分析操 作。上面所述的分析操作仅仅旨在出于说明可以执行的分析操作的类型的例子的目的,并 且不旨在说明或者暗示对可以由数据分段位置管理引擎350执行的分析操作的类型的任 意限制。
[0097] 上面的说明性实施例利用用于每一个数据分段的计数器作为测量预定时间间隔 内的每秒操作,并且然后使用这些测量识别指示需要在分层存储系统内提升或者降级数据 分段的数据分段访问趋势或者使用模式的机制。该方法被用作在对需要高可用性的数据分 段的访问被预计足够高的时间段期间,在分层存储系统的由成本相对更高的存储设备组成 的最高层保持这些数据分段的方法。预想被保持在分层存储系统的较高层的数据分段的数 目显著地少于不需要高可用性的数据分段。另外,该方法被用作在分层数据存储系统的较 低层保持不需要高可用性的数据分段的方法,在所述较低层,数据可以被存储在成本相对 较低的存储设备上。
[0098] 在另一个说明性实施例中,如图4A所示,其中除非此处另外指出,元件400-450以 与图3中的对应元件300-350类似的方式操作,不是仅仅依赖计数器430测量对数据分段 410的访问操作,可以为分层存储系统的一个或多个层,例如,仅仅存储系统的顶层,分层存 储系统的一个或多个最高层,或者分层存储系统的所有层中的每一个存储设备提供附加计 数器460,以及用于层402-406中的各个存储设备的存储控制器480的计数器470。这些 计数器460-470可按与上面关于用于数据分段的计数器430所述类似的方式测量每秒操 作。另外,可以保持用于每一个存储设备和控制器的对应于最多每秒操作的值。这些计数 器460-470可被按与用于数据分段410的计数器430类似的方式存储在可搜索的数据结构 480 内。
[0099] 数据分段位置管理引擎450可以执行类似于上面关于数据分段位置管理引擎350 所述的分析操作。然而,数据分段位置管理引擎450的这种分析操作还可以基于从计数器 460和470确定的用于存储设备和控制器的每秒操作的测量。例如,可以在将来时间段的预 期每秒操作的推测中使用针对存储设备和控制器的每秒操作测量,以及针对存储在这些存 储设备上的,或者响应于提升或者降级操作,数据分段可被存储在其上的存储设备上的数 据分段的每秒操作测量,以便确定在将来的时间段将出现何种预期的每秒操作。可以使用 这些推测确定当其它策略指示将执行提升或者降级操作时,是否或哪些存储设备和存储控 制器能够处理预期的每秒操作。
[0100]例如,如果由于一个提升策略的应用,一个数据分段将被提升到分层存储系统的 特定层,可以使用所述推测确定是否以及该数据分段将被提升到的层中的哪些存储设备和 存储控制器具有处理预期针对正被提升的数据分段的每秒操作的能力。如果没有存储设备 /控制器能够处理针对该数据分段的附加的每秒操作,则数据分段位置管理引擎450考虑 将该数据分段,或者目标层中具有相对较低的访问使用的其它数据分段降级到较低层是否 将导致总性能的增强。
[0101]应当注意,虽然数据分段将被移动到其上的层可能具有可用的存储能力,这不必 然指该存储设备/控制器可以用高效的方式处理所述的每秒操作,以便批准或者允许数据 分段到该层的提升。因此,采用该说明性实施例,层的存储设备的存储容量不是确定数据分 段是否可被移动到该层的唯一因素,而是还考虑存储设备/控制器处理该附加的每秒操作 和提供所希望的性能级别或者数据可用性的能力。以这种方式,数据分段位置管理引擎450 还可以,诸如,通过显示的消息,活动报告等等通知用户,提供特定层的附加存储设备可以 在所有时间或者在由数据分段位置管理引擎450确定的特定时间段提供性能益处。另外, 数据分段位置管理引擎450还可以确定最终用户可以运行某些应用,以便使得该层的分布 更加均匀的每天、每星期、每月等中的时期。
[0102] 在一个说明性实施例中,可以基于对推测的每秒操作(基于针对该数据分段和该 存储设备/控制器的值)和与存储设备/控制器相关联的最大值的比较,确定层的存储设 备/控制器是否可以处理该数据分段的附加的每秒操作。如果添加该数据分段的每秒操作 将超过最大值,数据分段位置管理引擎450可以确定该数据分段的替换提升/降级。
[0103] 还可以使用所述推测和最大值确定应当何时将数据分段从较低层提升到分层存 储系统的较高层。例如,当底层的每秒操作达到该层的最大值时,可以进行具有最高每秒操 作的数据分段的提升。可以基于使得层均匀到何种程度,较高层中的某些数据分段是否具 有比被提升的数据分段低的每秒操作测量等等,确定数据分段被移动到其上的层。
[0104] 另外,数据分段位置管理引擎450还可以监视用于存储设备和控制器的计数器 值,以便确定批准数据分段的再平衡的分层存储系统的层之间是否存在显著的不对称性。 例如,如果数据分段位置管理引擎450检测到不对称性,并且任意层的某些存储设备/控制 器处于最大值或者明显失去平衡,数据分段位置管理引擎450可以根据需要启动数据分段 移动操作,以便使得该层的存储设备/控制器上的数据分段负载再平衡,并且减轻可能存 在的任意瓶颈。
[0105] 以执行针对阈值的比较以便确定数据分段应当被提升还是降级描述了上面的说 明性实施例。虽然这些阈值在某些说明性实施例中本质上可以是静态的,说明性实施例不 限于此。而是,阈值最初可被设置为低值,并且然后在层的可用存储能力达到预定级别时被 调整。例如,当可用存储能力,即,层的存储设备内的可用空闲空间的数量达到第一预定级 别时,可以调整所述阈值,以便增加在数据分段可被提升到该层之前所需的每秒操作,并且 增加比其低就可以执行降级的每秒操作。这实质上使得数据分段更加难以被移动到该层, 并且使得数据分段更易于从该层移动到较低层。可以当层的存储容量随着时间的改变而增 加/减少时动态地进行这种调整,从而使得当层的可用存储能力减少时,越来越难以将数 据分段移动到该层内。使用这种动态方法,可以调整阈值以便促使保持层尽可能地平衡。
[0106] 再次参考图4A,作为该说明性实施例的另一个功能,提供了功耗管理引擎490,功 耗管理引擎490用于执行操作以便最小化分层存储系统400的功耗,同时保持存储在分层 存储系统400内的数据的高可访问性。功耗管理引擎490利用这样的观察结果,即,在非 高峰操作时间期间,实际上使用分层存储系统诸如数据中心等等中的可用存储的非常小的 百分比。因为该百分比是小的,可以将该小百分比的数据移动/迁移到分层存储系统中的 较高级别的层,例如,最高级层诸如SSD层的小存储池,所述较高级别的层比较低层存储设 备,例如HDD,消耗少得多的功率。一旦实现小百分比访问数据的这种移动/迁移,可以从该 较高级别层存储设备,例如,SSD为应用访问提供服务,并且对应的较低层存储设备,例如, HDD,可以减慢旋转,或者被置于最小功耗状态,从而总体上减少分层存储系统的功耗。
[0107] 具体地,功耗管理引擎490可以操作,以便从分层存储系统400的较低层上的〃冷 〃存储设备,即,具有被访问的相对低的可能性的存储设备迁移"热点"数据,即,最可能被访 问的数据部分,因此这些较低层存储设备可被在特定的时间段期间置于最小功耗状态。此 后,在计划安排的时间点,或者响应于发生特定事件或者状态,被置于最小功耗状态的存储 设备的状态可被改变为较高功耗状态,并且被迁移的数据的当前状态可被拷贝回现在的较 高功耗状态存储设备。
[0108] 在存储设备处于最小功耗状态时,对从最小功耗状态的存储设备迁移到存储系统 的较高级别的层的数据的访问请求被重定向到这些较高级别层的存储设备。例如,以从最 小功率状态的存储设备迁移出的数据为目标的任意读/写访问请求可被收集到一个较高 层存储设备的池中,例如,可以由所述数据被迁移到其上的SSD为读/写访问请求提供服 务,因此这些SSD存储被迁移的数据的当前状态。
[0109] 可以诸如借助于计数器等等,监视这些访问,以便确定是否发生足够数目的访问, 以便批准将最小功耗状态的存储设备中的一个或多个恢复到较高功耗状态,并且将数据迁 移回较高功耗状态的存储设备。如果是这样,则可以启动这种操作。可替换地,可以响应于 计划安排、一段经过的时间等等,执行退出这些存储设备的最小功耗状态。例如,一旦被置 于最小功耗状态,存储设备可被在一个预定数量的时间,例如,30分钟等等内保持在该最小 功耗状态。在另一个实施例中,基于前面所述的对计数器的分析,该说明性实施例的机制可 以识别高峰、正常和非高峰时间段的计划安排。基于这种计划安排,存储设备可被诸如在非 高峰时间段置于最小功耗状态,并且在正常或者尖峰时间段期间返回正常功耗状态。在再 一个说明性实施例中,可以使用一种组合方法,其中利用计划安排,但是当在正常操作时间 段内操作时,如果存储设备处于最小功耗状态,该存储设备可被保持在最小功耗状态,直到 以从这些存储设备迁移出的数据部分为目标的访问请求的数目达到或者超过一个预定阈 值时为止,此时,该存储设备可被转换回正常的较高功耗状态,并且数据可被迁移回现在恢 复的存储设备。
[0110] 作为该说明性实施例的机制的操作的结果,在识别出的时间段期间,在将非常可 能被访问的数据从较低层存储设备迁移到另一个存储设备层,以便在较低层存储设备处于 最小功耗状态时进行处理之后,可以降低较低层存储设备的功率,进入最小功耗状态。这允 许高的数据可访问性,同时使得功耗最小化。
[0111] 应当理解,如果根据与存储设备相关联的计数器可以确定,很可能在给定的时间 段内大量地访问一组较低层存储设备,例如,等于或高于预定的访问数目,则即使在非高峰 操作时间期间,那些存储设备也不被置于最小功耗状态,并且不参与节能操作。
[0112] 还可以使用应用集成独立地或与上面所述的计数器机制相结合地确定存储设备 是否应当被置于最小功耗状态。例如,如果存在可能被在特定夜晚或者在特定时间备份的 一组硬盘驱动器(HDD),可以通过查看备份计划安排,查看将被执行的备份的类型(完整 或者递增的),并且分析数据以便确定在备份操作期间将被大量访问的那些HDD,获得该信 息。可以从存储系统、备份应用等等的配置设置获得该信息。另一个例子是在非高峰操作 时间期间可能被数据挖掘应用、网格计算应用等等访问的一组HDD。在这些情况下,被识别 为在非高峰操作时间期间,或者HDD将被置于最小功耗状态的其它时间,很可能被大量访 问的HDD不被置于最小功耗状态。
[0113] 参考图4B所示的例子,可以更好地理解功耗管理引擎360的操作。如图4B所示, 除了数据分段位置管理引擎450之外,分层存储系统400可以具有相关联的功耗管理引擎 490,用于在分层存储系统400的减少的使用期间,例如,在非高峰操作时间期间,最小化分 层存储系统400的存储设备402-406的功耗。可以通过对指示,例如,存储设备的访问的速 率等等的计数器值的各种分析,诸如上面以前所述的分析,识别对应于非高峰操作时间的 时间段。在指定的时间段上观察这些计数器值提供了存储设备的访问模式的指示,其可被 用于识别特定的存储设备被更多或更少使用的时间段。结果,可以识别出非高峰操作时间。 在这些非高峰操作时间期间,功耗管理引擎490操作,以便在将最可能被访问的数据从这 些存储设备中迁移出之后,将存储设备置于最小功耗状态。
[0114] 功耗管理引擎490可以分析用于各个存储设备和/或数据分段的计数器数据结构 440和/或可搜索的数据结构480内的计数器值。基于这种分析,可以做出关于分层存储 系统400的非高峰使用时间段被安排在何时的确定。这些非高峰使用时段实质上是时间冷 点,其中存储设备的利用率是零或者与其它时间段(例如,每天下午1点到下午5点之间) 相比相对小,利用率是时间冷点的最低指示。功耗管理引擎490然后可以调度操作,以便 将较低分层存储设备诸如存储设备417置于最小功耗状态。另外,操作的调度还可以包括 用于在接近非高峰使用时间段的结尾时,将较低分层存储设备返回正常功率消耗状态的操 作。
[0115] 例如,功耗管理引擎490可以分析计数器值,以便确定对分层存储系统400的存储 设备的访问的测量,并且确定该访问测量是否低于和/或超过一个或多个阈值。例如,功耗 管理引擎490可以确定每一个存储设备或者存储系统400的全部层的利用率达到或者低于 访问测量的第一预定阈值的时间点。这些时间点标志着非高峰使用时间的时间段的开始。 类似地,功耗管理引擎490可以确定每一个存储设备或者存储系统400的全部层的利用率 达到或者超过访问测量的第二预定阈值的时间点。这些时间点标志着非高峰使用时间的结 束。根据这些与阈值的比较,可以识别出非高峰使用时间的计划安排,并且可以为执行说明 性实施例的节能操作安排对应的操作。
[0116] 可替换地,或者与上面所述的计数器值分析相结合,功耗管理引擎490可被与一 个或多个数据管理应用492集成在一起,或以其它方式与一个或多个数据管理应用492连 接,以便确定即使在非高峰使用时间期间,这些数据管理应用492何时使用分层存储系统 400的存储设备,例如,作为数据备份操作的一部分等等。如上面讨论的,将受到一个或多个 数据管理应用492影响的特定存储设备,以及将被执行的数据管理操作的类型和其它有关 的信息,可被用于确定哪些存储设备将受影响,以及这些操作是否需要该存储设备即使在 非高峰使用时间期间也处于操作状态。
[0117] 例如,功耗管理引擎490可以连接数据备份应用492,数据备份应用492操作,以便 备份存储层402-406的一个或多个存储设备上的数据。功耗管理引擎490可以分析由数据 备份应用492保持的备份安排,以及用于识别将执行的备份操作的类型的配置数据,受影 响的特定存储设备等等,以便确定哪些存储设备或者分层存储系统400中的存储设备的哪 些层可能被备份应用492访问,并且因此,即使在非高峰操作时间期间,也需要处于操作状 态。基于该信息,虽然上面所述的计数器值分析可能将一个存储设备置于将被置于最低功 耗状态的分类中,可以使用从应用462获得的信息否决该分类,并且取而代之,该(一个或 多个)存储设备可被保持在正常功耗状态。
[0118] 在与非高峰使用时间的开始相关联的安排的时间点,诸如在非高峰使用时间的开 始之前的预定时间点,或者响应于一个事件,诸如针对存储设备或者存储设备的层的利用 率测量满足与一个或多个阈值相关联的状态,功耗管理引擎490可以启动操作,以便将分 层存储系统400的一个或多个层402-406中的一个或多个存储设备置于最小功耗状态。例 如,功耗管理引擎490可以确定,在非高峰使用时间期间,一个或多个选择的存储设备,诸 如分层存储系统400的较低层406内的存储设备417具有使得可以将其置于最小功耗状态 的利用率。这些确定还可以考虑从与一个或多个应用492的应用集成获得的计划安排、配 置信息以及其它信息,以便确定哪些存储设备,如果有的话,可被置于最小功耗状态。
[0119] 另外,功耗管理引擎490可以基于对计数器值的分析和/或从应用集成获得的信 息,识别存储在这些一个或多个选择的存储设备上的在非高峰使用时间期间最可能被访问 的数据分段。即,基于以前的非高峰使用时间期间的在非高峰使用时间期间对数据的读/ 写访问,功耗管理引擎490可以确定存储在存储设备417内的哪些分段在非高峰操作时间 期间被最多地访问,总体上在所有时间段上被最多地访问,或者对数据分段的访问的频率 或者数量的任意其它适合的测量。以这种方式,可以预测最可能被访问的数据分段,并且将 其用作确定在将存储设备417置于最小功耗状态之前,存储在存储设备417内的哪些数据 分段(如果有的话)应当被迁移到分层存储系统400的另一个层的基础。该迁移确保最可 能被访问的数据分段的可访问性,同时仍然允许存储设备417被置于最小功耗状态。
[0120] 基于对将被置于最小功耗状态的存储设备,例如,在这个例子中,存储设备417的 识别,以及对存储在选择的存储设备,以下为了解释的简便,存储设备417上的应当被迁移 到分层存储系统400的另一个层的一个或多个数据分段419的识别,存储系统控制器415 可以单独地或者结合数据分段位置管理引擎450启动操作,以便将识别出的在非高峰操作 时间期间最可能被访问的一个或多个数据分段419迁移到一个较高层存储设备或者多个 设备。例如,一个或多个数据分段419可被迁移到分层存储系统400的最高层402中的一 个或多个存储设备418。
[0121] 从较低分层存储设备,例如,存储设备417迁移到较高层存储设备,例如,最高层 402中的存储设备419的一个或多个数据分段419的大小优选地显著地小于存储在将被置 于最低功耗状态的一个或多个较低层存储设备内的数据分段419的总数。另外,用于存储 一个或多个数据分段,例如,数据分段419的较高层存储设备,例如,存储设备418中所需的 存储空间的数量显著地小于较高层存储设备的总存储容量。例如,较高层存储设备的存储 容量的一小部分,例如5%,可被用于存储出于功耗减少的目的从较低层存储设备迁移的数 据。被迁移到较高层存储设备的这个部分的实际数据的数量最大可被设置为符合较高层存 储设备的摊派数量的数据数量。因此,例如,如果较高层存储设备可以存储 1TB数据,可以 留出500GB用于由于说明性实施例的功耗减少操作而被迁移的数据。因此,最多500GB的 数据可被从将被置于最低功耗状态的较低层存储设备,例如,存储设备 417,迁移到较高层 存储设备,例如,存储设备418。
[0122] 采用数据迁移,存储系统控制器415可以更新其路由表,以便重定向以存储在将 被位于最低功耗状态的所选择的较低层存储设备417上的数据地址为目标的访问请求。因 此,当存储系统控制器41 5接收到以对应于处于或将处于最低功耗状态的所选择的较低层 存储设备417的地址为目标的读/写访问请求时,存储系统控制器41 5将该读/写访问请 求重定向到(一个或多个)较高层存储设备,例如,存储设备418内的迁移数据。因此,由 (一个或多个)较高层存储设备418使用存储在(一个或多个)较高层存储设备418内的 迁移数据419为对该数据的读/写访问提供服务。
[0123] 在将所选择的数据分段419迁移到(一个或多个)较高层存储设备418之后,所 选择的(一个或多个)较低层存储设备417可被转换到最低功耗状态。例如,如果(一个 或多个)较低层存储设备417是硬盘驱动器(HDD)存储设备,则这些HDD可以减慢到硬盘 不再旋转或者以慢得多的速率旋转的状态,从而通过减少存储设备(多个) 417的功耗节省 电能。(一个或多个)较高层存储设备41S可以是,例如,存储从现在减慢旋转的HDD迁移 的数据的固态驱动器(SSD)。读/写请求被在非高峰使用期间定向到SSD 418内的迁移数 据,同时HDD处于减慢旋转的最低功耗状态。
[0124] 在读/写请求被路由到(一个或多个)较高层存储设备418中的迁移数据时,诸如 可以在计数器数据结构440中提供计数器,可用于确定多少读/写请求已被重定向到(一 个或多个)较高层存储设备418内的迁移数据。诸如功耗管理引擎490可以对(一个或多 个)计数器值与一个或多个阈值进行比较,以便确定是否应当退出较低层存储设备417的 最低功耗状态。如果被重定向到(一个或多个)较高层存储设备418内的迁移数据的读/ 写请求的数目达到或者超过这些一个或多个阈值,存储系统控制器415,诸如,在功耗管理 引擎490的指示下,执行加快处于最低功耗状态的存储设备417的旋转,或以其它方式将处 于最低功耗状态的存储设备417返回正常功率消耗状态的操作。一旦完成该操作,并且较 低层存储设备417再次准备好处理读/写请求,(一个或多个)较高层存储设备418内的 迁移数据419的当前状态被迁移回较低层存储设备417。
[0125] 另外,或可替换地,功耗管理引擎490可以查看根据对计数器值的分析、应用集成 或者其它信息来源确定的非高峰、正常和尖峰使用的己建立的计划安排,以便确定何时将 较低层存储设备417返回正常功率消耗状态。例如,如果功耗管理引擎490确定非高峰使 用周期的结束是突出的,功耗管理引擎490可以指示存储系统控制器415开始执行将较低 层存储设备417返回正常功率消耗状态的操作。因此,在一个说明性实施例中,基于非高峰 的、正常和尖峰使用的计划安排,功耗管理引擎490启动在存储系统400的层之间迁移数据 的操作,以及减慢或者加快较低层存储设备417的旋转,以便将它们置于最低功耗状态或 者从最低功耗状态返回的操作。通过在较低层存储设备417处于最低功耗状态时,在接收 到较高层存储设备418内的迁移数据的足够数目的读/写访问请求的情况下,退出以前的 最低功耗状态,可以使用对较高层存储设备418内的迁移数据的读/写访问的数目替代这 种计划安排。
[0126] 因此,说明性实施例提供了一种机制,通过该机制,可以自动确定和动态修改分层 存储系统内的数据分段的驻留处,以便实现分层存储系统的最佳性能。说明性实施例的机 制监视与数据分段、存储设备和存储控制器相关联的访问密度,例如每秒操作,以便识别哪 些数据分段需要被从一个层移动到分层存储系统内的另一个层,并且预测何时进行这种移 动。另外,说明性实施例的机制允许基于检测到的使用模式和跨分段关系,自动产生用于数 据分段的未来移动的策略。结果,提供极大地减少了对系统管理员的人工干预的需要的用 于管理分层存储系统的自动机制。
[0127] 另外,说明性实施例提供了用于通过将存储设备置于最低功耗状态,同时通过将 数据迁移到较高层存储设备,允许这些存储设备中的最可能被访问的数据分段的可访问性 的在非高峰操作时间期间执行功耗减少操作的机制。结果,处理被定向到最可能被访问的 数据分段的读/写访问请求,而不会引起执行最低功耗状态中的存储设备的加快旋转操作 的性能代价。同时,通过将识别出的存储设备置于最低功耗状态,节省了大量功耗。
[0128] 应当理解,虽然根据在分层存储系统的层之间迁移数据描述了上面的说明性实施 例,说明性实施例不限于此。而是,在另一个说明性实施例中,可以在相同层上的存储设备 之间迁移数据。例如,在非高峰时段期间可能被访问的数据可被从诸如分层存储系统的硬 盘存储设备层中的大量存储设备迁移到相同层中的相对小数目的存储设备,以便将数据合 并到这些很少的存储设备内。在这种实施例中,本发明的机制将保持具有访问数据的合并 的高可能性的很少存储设备完全通电,同时该层内的其余存储设备可被置于最小功耗状 〇
[0129] 图5是概述了用于基于数据分段的访问密度,提升/降级分层存储系统内的数据 分段的操作的流程图。可以由例如与分层存储系统相关联的数据分段位置管理引擎执行图 5中概述的操作。该操作可被作为后台操作执行,从而在数据分段位置管理引擎确定是否提 升/降级数据分段,并且启动数据分段在分层存储系统的层之间的移动时,可以继续访问 分层存储系统的数据分段。因而,可以用连续的方式、以周期的间隔、在监视周期的结尾等 等执行后台操作。图5所示的操作假设,例如,通过一个事件的出现,诸如在后台操作连续 监视的情况下,分层存储系统的初始化,经过周期的间隔,或者在监视周期的结尾,启动该 操作。
[0130] 如图5所示,该操作通过选择分层存储系统中用于分析的下一个数据分段开始 (步骤510)。从一个计数器值存储数据结构检索用于该数据分段的一个或多个计数器值 (步骤 515)。检索用于该数据分段当前驻留在其中的层的一个或多个阈值(步骤52〇)。对 所述一个或多个计数器值与所述一个或多个阈值进行比较(步骤525)。基于比较的结果, 进行关于该数据分段是否应当被提升到分层存储系统内的较高层的确定(步骤 530)。如果 是,可以诸如通过设置与该数据分段相关联的兀数据中的标志似,为提升到较高层标记该 数据分段(步骤535)。
[0131] 如果基于步骤525的比较结果不提升该数据分段,基于该比较结果做出关于该数 据分段是否应当被降级的确定(步骤 54〇)。如果比较的结果指示该数据分段应当被降级, 为到较低层的降级标记该数据分段(步骤54 5)。如果比较结果不指示该数据分段应当被降 级,做出关于该数据分段是否应当被放置观察列表的确定(步骤550)。例如,该确定可以涉 及确定计数器值是否在阈值的预定容限内,该容限指示需要为了可能的提升/降级更加紧 密地查看该数据分段。
[0132] 如果数据分段被置于观察列表,该数据分段的标识符被添加到观察列表(步骤 555),并且执行数据分段560的观察列表监视(步骤560)。数据分段的观察列表监视可以 涉及以更加频繁的基础对后续时间间隔的计数器值和该阈值进行类似的比较,以便确定例 如提升/降级是否就绪。因此,操作返回步骤530,其中基于作为观察列表监视的一部分执 行的比较,做出这种提升/降级确定。
[0133] 如果为提升(步骤535)或者降级(步骤545)标记了该数据分段,在随后的时间, 该数据分段可被移动到分层存储系统的适当层。例如,该数据分段可被移动到分层存储系 统中的下一个较高层或者下一个较低层。可替换地,所述标记可以标识该数据分段将被移 动到其上的层,从而数据分段可被跨越多个层移动,例如,从最低层到最高层。数据分段 的实际移动可被安排在接收到针对分层存储系统中的数据的相对少的访问请求的时间,例 如,午夜,或者确定该特定数据分段不会具有任何待完成的访问请求的时间,从而其可被移 动,而不会干扰该数据分段的可用性。一旦该数据分段被移动,或者在确定该数据分段不被 提升、降级或者被放置在观察列表上之后,操作终止。可以为被监视的每一个数据分段重复 图5所示的操作。
[0134] 图6是概述了根据一个说明性实施例,利用推测的工作负载确定用于分层存储系 统内的一个数据分段的适当位置的操作的流程图。如图6所示,该操作通过选择分层存储 系统中用于分析的下一个数据分段开始(步骤610)。从一个计数器值存储数据结构中检索 用于该数据分段的一个或多个计数器值(步骤615)。检索用于该数据分段当前驻留在其中 的层的一个或多个阈值(步骤620)。对所述一个或多个计数器值与所述一个或多个阈值进 行比较(步骤625)。基于比较的结果,进行关于该数据分段是否应当被移动到分层存储系 统内的另一个层的确定(步骤630)。如果不是,操作终止。
[0135] 如果是,检索用于该目标层,S卩,该数据分段被移动到其上的层的存储设备和存储 控制器的计数器值(步骤640)。基于与该数据分段、存储设备和存储控制器相关联的计数 器值,产生对目标层的活动要求的预测(步骤645)。进行关于该预测是否接近用于该层的 最大值,即,在用于该层的最大活动要求值的给定容限内的确定(步骤650)。如果不是,该 数据分段被移动到目标层中的适当存储设备,即,具有足够的可用容量以及对存储设备和 其相关联的存储控制器两者的活动要求的存储设备(步骤655)。如果该预测接近最大值, 对分层存储系统内的多个层进行再平衡操作,以便再平衡层的活动要求,从而该数据分段 可被移动到一个适当层(步骤660)。然后,操作终止。同样,可以为被监视的每一个数据分 段重复地执行该操作。
[0136] 图7是概述了根据一个说明性实施例,用于利用可搜寻的数据结构执行后台分析 操作的操作的流程图。如图7所示,该操作通过从可搜索的数据结构,诸如,上面讨论的 Btree中检索针对当前所选择的数据分段的多个时间间隔的计数器值而开始(步骤710)。 做出关于计数器值的分布是否均匀的确定(步骤715)。如果分布是均匀的,将所述计数器 值的一种表示,例如,所述计数器值的平均值,与用于当前层的检索到的阈值进行比较,以 便确定数据分段是否应当被移动到另一个层(步骤720)。如果该数据分段将被移动到另 一个层,则为提升/降级适当地标记该数据分段(步骤?25)。如果不移动该数据分段,则 做出关于该数据分段是否应当被放置在用于可能的提升/降级的观察列表中的确定(步 骤730)。如果该数据分段被置在观察列表中,该数据分段的标识符被添加到观察列表(步 骤735),并且以类似于上面关于图5所讨论的方式执行该数据分段的观察列表监视(步骤 740)。
[0137]如果计数器值的分布不均匀,做出关于在所述多个时间间隔期间的访问操作的数 目是否是零的确定(步骤745)。如果是,为到在长的时间段内可被关闭电源的存储设备的 移动标记该数据分段(步骤750)。如果访问数目不是零,做出关于该分布是否具有高于或 低于用于该层的提升/降级该数据分段的阈值的足够尖峰的确定(步骤760)。如果是,根 据所述尖峰在所述阈值之上或是之下,为到分层存储系统内的适当层的提升/降级和以后 的提升/降级标记该数据分段(步骤770)。
[0138] 如果该数据分段不具有用于提升/降级的足够的尖峰,做出关于该分布是否可被 以函数形式,例如,借助于线性增加/减小的斜率,指数增加/减小的曲线等等估算的确定 (步骤775)。如果是,使用函数表示预测该计数值将达到/超过/低于该阈值的时间间隔, 并且基于该预测的时间间隔,安排该数据分段的提升/降级(步骤780)。
[0139] 此后,做出关于该分布是否具有指示应当提升/降级该数据分段的可预测的时间 段的使用模式的确定(步骤785)。如果是,基于可预测的时间段的使用模式,安排该数据分 段的提升/降级(步骤790)。还做出关于该数据分段和一个或多个其它数据分段之间是否 存在可预测的跨分段关系的确定(步骤795)。如果是,基于这些识别出的跨分段关系安排 该数据分段的提升/降级(步骤800)。然后,操作终止。
[0140]图8是概述了根据一个说明性实施例,用于执行功率消耗管理的示例操作的流程 图。如图8所示,该操作通过确定是否存在用于将一个或多个较低层存储设备置于最低功 耗状态的状态而开始(步骤810)。例如,如上面讨论的,该状态可以是高峰、正常、和非高峰 时间段的确定的安排,则该状态是进入或者明显进入非高峰时间段。这可以还考虑从应用 集成获得的应用信息,以便确定应用操作和配置是否可以撤销进入最低功耗状态。
[0141] 如果不存在这种状态,通过循环回到步骤810,操作继续以便监视这种状态。如果 存在将一个或多个较低层存储设备置于最低功耗状态的状态,执行最可能被访问的数据分 段的确定(步骤820)。识别出的最可能被访问的数据分段被迁移到较高层存储设备(步 骤830),并且更新路由数据结构,以便将对访问请求路由到较高层存储设备中的迁移数据 (步骤840)。
[0142] 访问请求被重定向到较高层存储设备内的迁移数据(步骤S50),并且响应于这种 请求的重定向,增加用于计数被重定向到该迁移数据的访问请求的数目的一个或多个计数 器值(步骤 86〇)。
[0143] 做出关于是否存在退出最低功耗状态的状态的确定(步骤87〇)。该状态可以包 括,例如,高峰、正常和非高峰时间段的计划安排,其中该状态是计划中的非高峰时间段的 退出或者显著退出。此外,该状态可以包括确定用于计数被重定向的访问请求的数目的一 个或多个计数器值是否达到或者超过一个或多个阈值。
[0144] 如果未发生退出最低功耗状态的状态,操作返回步骤850,并且继续处于最低功耗 状态。如果发生了退出最低功耗状态的状态,则最低功耗状态中的较低层存储设备返回正 常功耗状态(步骤880)。然后,较高层存储设备中的迁移数据的当前状态被迁移到较低层 存储设备(步骤890),并且更新路由数据结构以便将访问请求重定向回较低层存储设备 (步骤895)。然后,操作终止。
[0145]虽然上面的说明性实施例利用与每一个数据分段相关联的多个计数器,例如,每 个时间间隔一个计数器,说明性实施例不限于此。而是,使用多个计数器便于使用趋势、预 测等等的范围更宽并且更加复杂的分析。在其它说明性实施例中,每一个分段可以使用单 个计数器,该计数器被以类似于如上所述的方式存储在一个数据结构内。可以使用该单个 计数器产生向数据分段上的最近活动偏置的加权访问速率。另外,可以在与该数据分段相 关联的数据结构中保持前一个时间间隔的加权访问速率,以便用于确定当前时间间隔的加 权访问速率。
[0146] 例如,数据分段可以具有提供指示当前时间间隔,例如,最近30分钟的访问速率 的计数的单个计数器。通过预定函数或操作,可以将该计数器值与用于前一个时间间隔的 加权访问速率组合在一起,以便确定用于当前时间间隔的当前加权访问速率。然后该当前 加权访问速率可被与一个或多个预先建立的阈值进行比较,以便确定该数据分段是否被提 升、降级、或者保留在存储系统的当前层内。
[0147] 作为一个例子,可以通过函数,诸如Anew = W*I+(1-W)*A确定加权访问速率,其中 Anew是当前时间间隔的当前加权访问速率,I是用于当前时间间隔的计数器值,W是预定 加权因子(例如,0.75等等),A是前一个时间间隔的加权访问速率。因此,例如,如果W是 0· 75,则Anew = 〇· 751+0. 25A。当然可以使用用于确定当前时间间隔的加权访问速率的其 它函数或操作,而不脱离说明性实施例的精神和范围。例如,取代使用前一个时间间隔的加 权访问速率(A),可以使用预定数目的以前的时间间隔的加权访问速率,可以使用预定数目 的以前的时间间隔中的最大加权访问速率,或者可以使用该数据分段的访问速率的任意其 它量度,而不是以前时间间隔的加权访问速率(A)。另外,可以使用计数器值、访问速率值和 加权函数的其它组合,而不脱离说明性实施例的精神和范围。
[0148] 在其它说明性实施例中,存储用于数据分段的(一个或多个)计数器值的数据结 构可以存储附加信息,以便帮助执行更加复杂的分析。例如,该数据结构可以在适当的字段 中存储信息,以便标识特定数据分段是否被锁定到给定层,是否存在相关联数据分段需要 遵守的手动移动策略,该数据分段在预定时间段内己经被移动了多少次,当其最后在存储 系统的最高层时该数据分段的访问速率,用于该数据分段何时被第一次访问的第一时间戳 参考,自从该第一时间戳以来该数据分段已被访问的次数等等。这种信息允许更加复杂的 分析,诸如确定因为数据分段己经被锁定到该层,数据分段具有与其相关联的手动移动策 略,或数据分段在当前时间的一个预定时间段内已经被移动了多于一个预定的数目,基于 上面所述的操作将被移动的一个数据分段是否应该留在存储系统的当前层内。另外,这种 分析可以涉及查看数据分段最后在最高层中时的访问速率,并且确定该访问速率是否不满 足预定标准。在这种情况下,该数据分段被移动到下一个较低层或者根本不被移动。可以 使用存储在与数据分段相关联的数据结构内的这种信息执行其它更加详细和复杂的分析, 而不脱离说明性实施例的精神和范围。
[0149] 关于说明性实施例的功耗管理操作,可以对上面阐述的示例说明性实施例进行各 种修改,而不脱离说明性实施例的精神和范围。例如,如上所述,不是在分层存储设备的层 之间迁移数据,数据可被从较大组的存储设备迁移到相同层内的较小组的存储设备。这允 许,例如,减慢较大数目的硬盘存储设备的旋转,同时仅仅将少量存储设备保持在供电状 态,这些少量的存储设备保持有可能在非高峰时间期间被访问的合并的数据。
[0150]在另一个说明性实施例中,用于识别可能被访问的数据分段的方法可以基于如上 所述的试探法,或者其可以基于管理员定义的规则。例如,管理员定义的规则可以指出企业 的不同地理位置访问哪些数据分段,以及基于他们的工作时间,访问数据分段的不同时间。 其它管理员定义的规则可以指出备份和归档应用何时运行,以及这些备份和归档应用访问 哪些数据分段。以这种方式,可以确定可能访问哪些数据分段以及在什么时间段访问,因此 可以执行根据说明性实施例的存储设备的数据迁移和断电。
[0151 ]另外,可以在云计算系统中实现说明性实施例,其中可以在通过一个或多个网络 彼此耦连的各种计算设备上提供说明性实施例的元件,并且可被在按照以下所述的云服务 提供。
[0152]云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的 网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能 快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟 机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0153] 特征包括:
[0154] 按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单 方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0155] 广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进 了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字 助理PDA)对云的使用。
[0156] 资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服 务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况 下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上 指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0157] 迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展, 并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的, 并能在任意时候都能获取任意数量的计算能力。
[0158] 可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户 帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资 源使用情况,为服务提供者和消费者双方提供透明度。
[0159] 服务模型如下:
[0160] 软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的 应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户 机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包 括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0161] 平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或 获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不 控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制 权,对应用托管环境配置可能也具有控制权。
[0162]基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行 包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理 也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的 网络组件(例如主机防火墙)可能具有有限的控制权。
[0163] 部署模型如下:
[0164]私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管 理并且可以存在于该组织内部或外部。
[0165]共同体云:云基础架构被若千组织共享并支持有共同利害关系(例如任务使命、 安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三 方管理并且可以存在于该共同体内部或外部。
[0166]公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
[0167]混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组 成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术 (例如用于z?之间的负载平衡的云突发流量分担技术)绑定在一起。
[0168]云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操 作性。云计算的核心是包含互连节点网络的基础架构。
[0169]现在参考图9,其中显示了云计算节点的一个例子。图9显示的云计算节点910 仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限 制。总之,云计算节点910能够被用来实现和/或执行以上所述的任何功能。
[0170]云计算节点910具有计算机系统/服务器912,其可与众多其它通用或专用计算 系统环境或配置一起操作。众所周知,适于与计算机系统/服务器912 -起操作的计算系 统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、 厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人 电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境, 等等。
[0171] 计算机系统/服务器則2可以在由计算机系统执行的计算机系统可执行指令(诸 如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定 的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器912 可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式 云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0172] 如图9所示,云计算节点91〇中的计算机系统/服务器912以通用计算设备的形 式表现。计算机系统/服务器912的组件可以包括但不限于:一个或者多个处理器或者处 理单元916,系统存储器928,连接不同系统组件(包括系统存储器928和处理单元916)的 总线918。
[0173] 总线918表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制 器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总 线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构 (MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI) 总线。
[0174] 计算机系统/服务器912典型地包括多种计算机系统可读介质。这些介质可以是 能够被计算机系统/服务器91 2访问的任意可获得的介质,包括易失性和非易失性介质,可 移动的和不可移动的介质。
[0175] 系统存储器似8可以包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM) 93〇和/或高速缓存存储器932。计算机系统/服务器912可以进一步包括 其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统 9:M可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。 尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动 器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动 器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线 918相连。存 储器928可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这 些程序模块被配置以执行本发明各实施例的功能。
[0176]具有一组(至少一个)程序模块942的程序/实用工具940,可以存储在存储器 9%中,这样的程序模块942包括但不限于操作系统、一个或者多个应用程序、其它程序模 块以及程序数据,这些操作系统、一个或者多个应用程序、其它程序模块以及程序数据中的 每一个或某种组合中可能包括网络环境的实现。程序模块 942通常执行本发明所描述的实 施例中的功能和/或方法。
[0177]计算机系统/服务器912也可以与一个或多个外部设备914(例如键盘、指向设 备、显示器924等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器912交 互的设备通信,和/或与使得该计算机系统/服务器912能与一个或多个其它计算设备进 行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入y输出(工y 0)接口 922进行。并且,计算机系统/服务器912还可以通过网络适配器920与一个或者 多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所 示,网络适配器920通过总线918与计算机系统/服务器 912的其它模块通信。应当明白, 尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器912一起操作,包括 但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、 MID系统、磁带驱动器 以及数据备份存储系统等。
[0178^现在参考图10,其中显示了示例性的云计算环境950。如图所示,云计算环境 950 包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点910, 本地计算设备例如可以是个人数字助理(PDA)或移动电话 954A,台式电脑954B、笔记本电 脑%4C和/或汽车计算机系统邪必。云计算节点 910之间可以相互通信。可以在包括但 不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网 络中将云计算节点 910进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地 计算设备上维护资源就能请求云计算环境9 50提供的基础架构即服务(IaaS)、平台即服务 =aaS) fP /或软件即服务(saas)。应当理解,图10显示的各类计算设备954A_N仅仅是示 思性的' z?计算点910以及石计算环境950可以与任意类型网络上和y或网络可寻址连 接的任意类型的计算设备(例如使用网络浏览器)通信。
[0179]现在参考图11,其中显示了云计算环境950(图10)提供的一组功能抽象层。首先 应当理解,图11所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如 图11所示,提供下列层和对应功能:
[0180]硬件和软件层960包括硬件和软件组件。硬件组件的例子包括:主机,例如 IBM? zSeries?系统;基于Rise(精简指令集计算机)体系结构的服务器,例如 IBM pSeries?系统;IBM xSeifes?系统;IBM 翻Centert)系统;存储设备;网络 和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM WebSphere?应用 服务器软件;数据库软件,例如IBM DB2?.数据库软件。(IBM, zSeries,pSeries,xSeries ,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
[0181]虚拟层962提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚 拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
[0182]在一个示例中,管理层%4可以提供下述功能:资源供应功能:提供用于在云计算 环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对 资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软 件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户 门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云 计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为 根据SLA预测的对云计算资源未来需求提供预先安排和供应。
[0183]工作负载层966提供云计算环境可能实现的功能的示例。在该层中,可提供的工 作负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学 提供;数据分析处理;交易处理;以及利用上面所述的一个或多个说明性实施例的数据迁 移以及断电和减慢旋转机制的具有功率控制的分层存储。
[0184]已经出于示例和描述的目的给出了本发明的描述,并且不旨在是无遗漏的或将本 发明限制于公开的形式。对于本领域的技术人员来说,许多修改和变化将是明了的。选择 和描述这些实施例以便最好地解释本发明的原理,实际应用,并且使得其它本领域的技术 人员能够理解本发明的适合构想的特定使用的具有各种修改的各种实施例。
【权利要求】
1. 一种数据处理系统中的用于管理分层存储系统内的数据分段的方法,包括: 识别所述分层存储系统的第一层中的可被置于最低功耗状态的一个或多个第一存储 设备; 识别存储在所述一个或多个第一存储设备上的在所述一个或多个第一存储设备处于 最低功耗状态的时间段期间最可能被访问的一个或多个数据分段; 将所述一个或多个数据分段迁移到所述存储系统的所述第一层或者第二层中的一个 内的一个或多个第二存储设备;和 将所述一个或多个第一存储设备置于最低功耗状态,其中在所述一个或多个第一存储 设备处于最低功耗状态时,由所述一个或多个第二存储设备为对所述一个或多个数据分段 的访问请求提供服务。
2. 如权利要求1所述的方法,其中所述一个或多个第一存储设备是基于旋转盘的存储 设备,并且其中所述一个或多个第二存储设备是基于非旋转盘的存储设备。
3. 如权利要求2所述的方法,其中所述一个或多个第二存储设备是固态驱动器。
4. 如权利要求1所述的方法,其中所述第一层是所述存储系统中比所述第二层低的 层,并且其中将所述一个或多个数据分段迁移到所述一个或多个第二存储设备包括将所述 一个或多个数据分段从所述第一层中的所述一个或多个第一存储设备迁移到所述第二层 中的所述一个或多个第二存储设备。
5. 如权利要求1所述的方法,其中所述一个或多个第二存储设备内的存储设备的总数 少于所述一个或多个第一存储设备内的存储设备的总数。
6. 如权利要求1所述的方法,其中识别所述分层存储系统的第一层中的可被置于最低 功耗状态的一个或多个第一存储设备包括: 记录所述分层存储系统内的存储设备的使用模式信息; 分析预定时间段的记录的使用模式信息;和 基于预定时间段的记录的使用模式信息的分析结果,确定所述一个或多个第一存储设 备是在所述预定时间段期间被以低于预定阈值的速率访问的存储设备。
7. 如权利要求1所述的方法,其中识别所述分层存储系统的第一层中的可被置于最低 功耗状态的一个或多个第一存储设备包括: 提供应用集成,用于分析至少一个应用的操作,以便确定哪些存储设备以及存储设备 内的数据分段是所述至少一个应用的操作的目标;和 基于所述应用集成识别出的关于哪些存储设备是所述至少一个应用的操作的目标的 确定,识别所述一个或多个第一存储设备。
8. 如权利要求7所述的方法,其中所述至少一个应用是数据备份应用。
9. 如权利要求1所述的方法,其中识别存储在所述一个或多个第一存储设备上的在所 述一个或多个第一存储设备处于最低功耗状态的时间段期间最可能被访问的一个或多个 数据分段包括: 将计数器与所述一个或多个第一存储设备内的每一个数据分段相关联; 在预定时间段上,响应于对对应于所述计数器的数据分段的访问,增加与所述数据分 段相关联的计数器; 将与所述数据分段相关联的计数器的值和预定的阈值进行比较;和 将所述一个或多个数据分段识别为具有达到或者超过所述预定阈值的对应计数器值 的数据分段。
10. 如权利要求6所述的方法,其中所述预定时间段是所述分层存储系统的非高峰使 用时间段。
11. 如权利要求1所述的方法,还包括: 确定在所述一个或多个第一存储设备处于最低功耗状态的时间段期间,对已经被迁移 到所述一个或多个第二存储设备的所述一个或多个数据分段的访问的数目是否达到或者 超过阈值;和 响应于对所述一个或多个数据分段的访问的数目达到或者超过所述阈值,将所述一个 或多个第一存储设备返回正常功率消耗状态,并且将所述一个或多个数据分段从所述一个 或多个第二存储设备迁移回所述一个或多个第一存储设备。
12. 如权利要求1所述的方法,其中所述数据处理系统是云计算系统,其中所述方法被 实现为由所述云计算系统提供的服务。
13. -种包括计算机可记录的存储介质的计算机程序产品,所述计算机可记录的存储 介质其上记录有计算机可读的程序,其中当被在数据处理系统上执行时,所述计算机可读 程序使得所述数据处理系统: 识别所述分层存储系统的第一层中的可被置于最低功耗状态的一个或多个第一存储 设备; 识别存储在所述一个或多个第一存储设备上的在所述一个或多个第一存储设备处于 最低功耗状态的时间段期间最可能被访问的一个或多个数据分段; 将所述一个或多个数据分段迁移到所述存储系统的所述第一层或者第二层中的一个 内的一个或多个第二存储设备;和 将所述一个或多个第一存储设备置于最低功耗状态,其中在所述一个或多个第一存储 设备处于最低功耗状态时,由所述一个或多个第二存储设备为对所述一个或多个数据分段 的访问请求提供服务。
14. 如权利要求13所述的计算机程序产品,其中所述一个或多个第一存储设备是基于 旋转盘的存储设备,并且其中所述一个或多个第二存储设备是基于非旋转盘的存储设备。
15. 如权利要求14所述的计算机程序产品,其中所述一个或多个第二存储设备是固态 驱动器。
16. 如权利要求13所述的计算机程序产品,其中所述第一层是所述存储系统中比所述 第二层低的层,并且其中将所述一个或多个数据分段迁移到所述一个或多个第二存储设备 包括将所述一个或多个数据分段从所述第一层中的所述一个或多个第一存储设备迁移到 所述第二层中的所述一个或多个第二存储设备。
17. 如权利要求13所述的计算机程序产品,其中所述一个或多个第二存储设备内的存 储设备的总数少于所述一个或多个第一存储设备内的存储设备的总数。
18. 如权利要求13所述的计算机程序产品,其中所述计算机可读程序使得所述数据处 理系统通过下列操作识别所述分层存储系统的第一层中的可被置于最低功耗状态的一个 或多个第一存储设备: 记录所述分层存储系统内的存储设备的使用模式信息; 分析预定时间段的记录的使用模式信息;和 基于预定时间段的记录的使用模式信息的分析结果,确定一个或多个第一存储设备是 在所述预定时间段期间被以低于预定阈值的速率访问的存储设备。
19. 如权利要求13所述的计算机程序产品,其中所述计算机可读程序使得所述数据处 理系统通过下列操作识别所述分层存储系统的第一层中的可被置于最低功耗状态的一个 或多个第一存储设备: 提供应用集成,用于分析至少一个应用的操作,以便确定哪些存储设备以及存储设备 内的数据分段是所述至少一个应用的操作的目标;和 基于所述应用集成识别出的关于哪些存储设备是所述至少一个应用的操作的目标的 确定,识别所述一个或多个第一存储设备。
20. 如权利要求19所述的计算机程序产品,其中所述至少一个应用是数据备份应用。
21. 如权利要求13所述的计算机程序产品,其中所述计算机可读程序使得所述数据处 理系统通过下列操作识别存储在所述一个或多个第一存储设备上的在所述一个或多个第 一存储设备处于最低功耗状态的时间段期间最可能被访问的一个或多个数据分段: 将计数器与所述一个或多个第一存储设备内的每一个数据分段相关联; 在预定时间段上,响应于对对应于所述计数器的数据分段的访问,增加与所述数据分 段相关联的计数器; 将与所述数据分段相关联的计数器的值和预定的阈值进行比较;和 将所述一个或多个数据分段识别为具有达到或者超过所述预定阈值的对应计数器值 的数据分段。
22. 如权利要求18所述的计算机程序产品,其中所述预定时间段是所述分层存储系统 的非高峰使用时间段。
23. 如权利要求13所述的计算机程序产品,其中所述计算机可读程序还使得所述数据 处理系统: 确定在所述一个或多个第一存储设备处于最低功耗状态的时间段期间,对已经被迁移 到所述一个或多个第二存储设备的所述一个或多个数据分段的访问的数目是否达到或者 超过阈值;和 响应于对所述一个或多个数据分段的访问的数目达到或者超过所述阈值,将所述一个 或多个第一存储设备返回正常功率消耗状态,并且将所述一个或多个数据分段从所述一个 或多个第二存储设备迁移回所述一个或多个第一存储设备。
24. 如权利要求13所述的计算机程序产品,其中所述数据处理系统是云计算系统,其 中所述计算机可读程序被实现为由所述云计算系统提供的服务。
25. -种分层存储系统,包括: 多个存储设备;和 耦连到所述多个存储设备的数据处理系统,其中所述数据处理系统配置为: 识别所述分层存储系统的第一层中的多个存储设备中的可被置于最低功耗状态的一 个或多个第一存储设备; 识别存储在所述一个或多个第一存储设备上的在所述一个或多个第一存储设备处于 最低功耗状态的时间段期间最可能被访问的一个或多个数据分段; 将所述一个或多个数据分段迁移到所述存储系统的所述第一层或者第二层中的一个 内的所述多个存储设备中的一个或多个第二存储设备;和 将所述一个或多个第一存储设备置于最低功耗状态,其中在所述一个或多个第一存储 设备处于最低功耗状态时,由所述一个或多个第二存储设备为对所述一个或多个数据分段 的访问请求提供服务。
【文档编号】G06F12/08GK104272386SQ201380021659
【公开日】2015年1月7日 申请日期:2013年3月25日 优先权日:2012年4月25日
【发明者】R·M·菲斯科, 卡尔.E.琼斯, S·罗伊, 安德鲁·戴尔·沃尔斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1