用于降低能量消耗并优化工作负荷和性能的方法与系统的制作方法

文档序号:6430038阅读:181来源:国知局
专利名称:用于降低能量消耗并优化工作负荷和性能的方法与系统的制作方法
技术领域
本发明的实施例涉及数据存储领域,尤其涉及在采用区等级(extent-level)动态分层的多分层(tier)存储系统中降低能量消耗并优化工作负荷和性能。
背景技术
在现代数据中心中,由于数据增长和新技术开发,能量消耗持续增加。能量对于计算技术的操作来说是昂贵品。当设计信息技术(IT)基础设施时,能量管理对企业来说是一个重要的考虑。随着企业存储的数据量急剧增加,数据存储消耗数据中心的能量消耗中越来越多的百分比。在典型的数据中心中,数据存储占数据中心总能量消耗的大约40%。存储分层是一种类型的存储体系结构,它将不同类别的数据分配到不同类型的存储介质。存储分层的目的在于降低IT基础设施的存储成本,同时满足性能需求。分层的类别主要是基于性能需求、使用频率和所需的保护等级。例如,具有提供容错和可靠性的昂贵高质量介质(例如,RAID6、SSD)的第一存储分层可以用于任务关键数据。具有较便宜和更传统存储介质(例如,SATA)的第二存储分层可以用于不频繁访问的非任务关键数据。具有高性能存储设备(例如,光纤通道)的第三存储分层可以用于频繁访问的数据。具有光学存储设备(例如,带式存储设备)的第四存储分层可以用于从另一存储分层备份数据。相应地,存储分层调整数据价值、重要性和性能需求与数据所在的实际存储设备的可靠性和性能一致。存储工作负荷优化是指最大化对可用数据存储资源的利用率,以降低运行成本和复杂性,同时满足数据的性能需求(例如,适合I/O请求)。性能优化是指在资源约束下满足数据性能需求和/或实现最佳可能的数据性能。通过以有效的方式来平衡可用存储设备,工作负荷和性能优化最大化存储设备和盘的利用率,同时满足数据的性能需求。存储设备和盘利用率直接关联到存储设备的运行代价(例如,能量)。例如,在任何给定的时间点, 存储系统中的所有存储设备都可能没有被利用到接近其容量,来满足数据的所需性能。相应地,存储工作负荷和性能优化最大化存储系统的共享资源,同时满足数据的所需性能。

发明内容
本发明的实施例涉及在采用区等级动态分层的多分层存储系统中降低能量消耗并优化工作负荷和性能。本发明的一方面包括一种用于在采用区等级动态分层的多分层存储系统中降低能量消耗并优化工作负荷和性能的方法。示例性的方法包括接收存储在存储系统中的存储区(storage extent)的数据访问信息和存储系统中的存储设备的利用率信息。该存储系统包括多个存储分层,而且所述多个存储分层中的每一个分层都是由多个存储设备构成的。该示例性的方法还包括估计所述多个存储分层中每一个分层满足存储区的性能和容量需求所需的存储资源。对存储资源的估计是基于数据访问信息。该示例形的方法还包括,对于满足存储区的性能和容量需求,确定哪一个存储分层将导致存储系统的最低功耗。这一个存储分层是通过根据所估计的存储资源来计算多个存储分层每一个分层中将由存储区消耗的功率量确定的。该示例性的方法还包括确定在所述一个存储分层中(的多个存储设备中)的具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备。对所述至少一个存储设备的确定是基于数据访问信息和利用率信息。该示例性的方法还包括将存储区分配到所述一个存储分层,并分配到(所述至少一个存储设备中的)具有最少可用存储容量的一个存储设备。本发明的另一方面包括用于在采用区等级动态分层的多分层存储系统中降低能量消耗并优化工作负荷和性能的计算机程序产品。示例性的计算机程序产品包括具有计算机可读存储介质的计算机程序产品,其中该计算机可读存储介质中包含有计算机可读程序代码。该示例性的计算机可读程序代码包括,配置成接收存储在存储系统中的存储区的数据访问信息和存储系统中的存储设备的利用率信息的计算机可读程序代码。该存储系统包括多个存储分层,而且所述多个存储分层中的每一个分层都是由多个存储设备构成的。该示例性的计算机可读程序代码还包括配置成估计每个存储分层满足存储区的性能和容量需求所需的存储资源。对存储资源的估计是基于数据访问信息。该示例性的计算机可读程序代码还包括,配置成对于满足存储区的性能和容量需求确定哪一个存储分层将导致存储系统的最低功耗的计算机可读程序代码。这一个存储分层是通过根据所估计的存储资源计算多个存储分层的每一分层中将由存储区消耗的功率量确定的。该示例性的计算机可读程序代码还包括,配置成确定在所述一个存储分层中 (的多个存储设备中)的具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备的计算机可读程序代码。对所述至少一个存储设备的确定是基于数据访问信息和利用率信息。该示例性的计算机可读程序代码还包括,配置成将存储区分配到所述一个存储分层并分配到(所述至少一个存储设备中的)具有最少可用存储容量的一个存储设备的计算机可读程序代码。本发明的另一方面包括一种用于在采用区等级动态分层的多分层存储系统中降低能量消耗并优化工作负荷和性能的系统。示例性的系统包括接收存储在存储系统中的存储区的数据访问信息和存储系统中存储设备的利用率信息的数据收集器。该存储系统包括多个存储分层,而且每一存储分层都是由多个存储设备构成的。该示例性的系统还包括估计所述多个存储分层中的每一个存储分层满足存储区的性能和容量需求所需的存储资源的资源消耗模块。对存储资源的估计是基于数据访问信息。该示例性的系统还包括放置模块,该放置模块对于满足存储区的性能和容量需求,确定所述多个存储分层中的哪一个存储分层将导致存储系统的最低功耗。这一个存储分层是通过根据所估计的存储资源计算所述多个存储分层的每一个分层中将由存储区消耗的功率量确定的。该放置模块还确定在所述一个存储分层中(的多个存储设备中)的具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备。对所述至少一个存储设备的确定是基于数据访问信息和利用率信息。该示例性的系统还包括将存储区分配到所述一个存储分层并分配到(所述至少一个存储设备中的)具有最少可用存储容量的一个存储设备的迁移器。参考以下具体描述和所附权利要求,本发明的这些和其它特征、方面和优点将是显而易见的。


图1是根据一个实施例的用于在采用区等级分层的多分层存储系统中降低能量消耗并优化工作负荷和性能的示例性系统的图;图2是根据一个实施例的用于在采用区等级分层的多分层存储系统中降低能量消耗并优化工作负荷和性能的方法的流程图;图3是根据一个实施例的示例性多分层存储系统的图;图4是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中降低功耗的方法的流程图;图5是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中优化工作负荷的方法的流程图;图6是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中优化性能的第一种方法的流程图;图7是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中优化性能的第二种方法的流程图;及图8是示出了根据一个实施例的用于实现本发明实施例的信息处理系统的高级框图。
具体实施例方式本发明的实施例涉及在采用区等级动态分层的多分层存储系统中降低能量消耗并优化工作负荷和性能。多分层存储系统(例如,IBM系统存储设备TM Easy Tier)具有在不同存储设备类型的存储分层之间展开的有效卷。每个存储分层和构成它们的存储设备都具有不同的性能/成本/能线图。工作负荷的I/O率在大多数时间一般都低于峰值。静态或者半静态放置不是最佳的,因为那些放置是为峰值时间配置的。为峰值时间配置的静态或者半静态放置需要更多的能量消耗,因为在非峰值时间系统被超载供给(over provision)。为平均I/O率配置的静态或者半静态放置也不是最佳的,因为那些放置在峰值时间具有降低的性能。例如,数据存储利用率是动态的而不是静态的,这使得数据整合是重要的。因此,数据分层优化需要是个动态的过程,以便最大化存储资源,来调整数据存储和性能需求中的变化。图1是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中降低能量消耗并优化工作负荷和性能的示例性系统100的图。多个应用节点10h、102b. . . 102η 向存储系统106发送数据访问请求104(例如,I/O请求)。存储系统106包括由特定类型的几个存储设备组成的多个存储分层108a、108b. . . 108η。存储系统106具有虚拟化层和也称为存储阵列的多个存储设备110、112、114、116、118和120。该虚拟化层允许卷由不同存储分层108a、108b. · · 108η和存储设备110、112、114、116、118和120中的存储区组成。在一个实施例中,存储设备110、112、114、116、118和120包括不同的存储设备类型。例如,存储设备110、112、114、116、118和120可以包括但不限于ATA(高级技术配件) 存储设备110、FC(光纤通道)存储设备112、SSD(固态驱动)存储设备114、SAS(串联附接的SCSI)存储设备116、SATA(串行高级技术配件)存储设备118和带式存储设备120。 在一个实施例中,存储设备110、112、114、116、118和120可以具有相同的可靠性,也称为冗余等级(例如,RAID5),因此跨阵列迁移数据是不受约束的。在另一个实施例中,跨不同可靠性等级的存储区迁移是由策略控制的。例如,策略可以使迁移到更高RAID等级总是可以接受的。在一个示例性实施例中,多个存储分层108a、108b. . . 108η中的每一个分层都包括一组单个特定类型的物理存储设备。例如,存储分层可以定义为高可靠性光纤通道(FC) 分层。FC分层可以包括一组物理存储设备,这组物理存储设备只由具有适当存储冗余性策略(例如,RAID1)的多个FC存储设备112(例如,盘驱动器、存储阵列)构成。在另一个例子中,不同的存储分层可以定义为低成本SATA分层118。SATA分层118可以包括一组物理存储设备110、112、114、116、118和120,这组物理存储设备只由具有适当存储冗余性策略 (例如,RAID5)的多个SATA存储设备118构成。系统100还包括动态分层管理器124。动态分层管理器IM从存储系统106接收存储区数据访问信息122(例如,I/O事件信息)。在另一个例子中,动态分层管理器124 从存储系统106接收存储设备利用率统计信息122。动态分层管理器IM包括数据收集器 126。数据收集器1 耦合到资源消耗模块1 和节流(throttling)模块134。资源消耗模块1 耦合到放置模块130。放置模块130和节流模块134耦合到迁移器132。动态分层管理器IM将迁移请求136发送到存储系统106。图2是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中降低能量消耗并优化工作负荷和性能的方法200的流程图。在步骤202中,数据收集器1 接收存储在存储系统106中的存储区的数据访问信息122和存储系统106中的存储设备110、 112、114、116、118. . . 120的利用率信息122。在一个实施例中,数据访问信息和利用率信息 122是以预定的时间间隔持续接收的。(例如,由系统管理员)所选的预定时间间隔是特定于系统和性能的。例如,在大规模存储体系结构中,接收数据访问信息122和利用率信息 122的预定时间间隔可以从1分钟到M小时变动,优选的范围是5到10分钟。在示例性实施例中,数据访问信息122包括发布到存储区的I/O的性能信息(即, I0PS(每秒钟的输入/输出操作)中的I/O率)、存储区的大小、随机I/O带宽(S卩,每秒钟发送的字节)。在另一个示例实施例中,利用率信息122包括总可用存储空间、总存储容量、I/O率容量、I/O流量(S卩,随机I/O率)、IOPS容量和带宽容量。在另一个示例实施例中,利用率信息包括所消耗的能量、每瓦特完成的I0PS、每瓦特的GB、迁移开销(所传送的数据、I/O的个数)、响应时间、存储配置、向其发布I/O的逻辑块寻址(LBA)、卷ID、读或写指示器。在一个实施例中,存储系统106具有可以收集并报告关于所施加工作负荷的统计数据的固件数据路径。在示例实施例中,数据收集器1 将每个I/O的LBA和卷ID映射到存储系统106 中的唯一存储区。然后,数据收集器126收集用于存储系统106中该存储区的数据访问信息122。例如,I/O的个数、读或写、响应时间和传送大小。数据收集器1 然后周期性地 (例如,每5分钟)总结这些值,来计算每个区的I0PS、平均响应时间、读写比率和平均传送大小。在另一个实施例中,数据收集器1 还组合当前值与前五分钟间隔的值,来获得存储区90个百分点的I0PS、和更长间隔上存储区的平均I0PS。在一个实施例中,存储系统106中到多个存储分层106和存储设备110、112、114、 116,118. . . 120的数据放置是以存储区的粒度执行的。存储区的大小是基于用于存储系统106的性能的偏好可变的。例如,用于存储系统106的性能的偏好可以包括迁移等待时间、 数据访问响应速度、数据放置效率和元数据开销。在示例实施例中,存储区的大小是64MB, 但可以基于性能偏好和所提供的特定存储系统从几十兆字节到几千兆字节变动。在步骤204,资源消耗模块1 估计多个存储分层108a、108b. . . 108η中每一个分层为满足存储区的性能和容量需求所需的存储资源。在一个实施例中,对存储资源的估计是基于由数据收集器126所接收的数据访问信息122,该信息传递到资源消耗模块128。在另一个实施例中,(在数据收集器126传递数据访问信息之后)对存储资源的估计是由资源消耗模块1 在每个预定的时间间隔进行的。例如,存储区具有存储容量需求E。和性能需求4。存储容量需求可以由存储区的大小来确定。在另一个示例实施例中,存储区的性能需求是基于先前的时间间隔由存储区的IOPS和带宽需求来确定的。存储设备中的总空间是基于由数据收集器1 接收到的、存储系统106中存储设备110、112、114、116、118. . . 120的利用率信息122。在一个实施例中, 承接(host)存储区容量所需的资源量(RC(E。,D))计算为(RC(Ec, D))=区所需的容量/设备中的总空间在一个实施例中,采用一种模型来估计支持存储区的随机和顺序工作负荷并由此满足其性能需求所需的资源量(例如,性能利用率)。当放置到存储设备D上时,存储区E 的性能资源消耗(RC P,D))计算为(RC (Ep, D)) = RIOR · Rtime+ 带宽· Xtime例如,RIOR是随机I/O率。Rtime定义为执行单个随机I/O所消耗的时间。如果设备D是硬盘驱动器(HDD)的话,则Rtime估计为设备D的平均寻道时间和平均旋转延迟的和(例如,Rtime =用于SSD的数据访问时间)。Xtime是从设备D传送单个字节所需的时间,假定为设备D的最大带宽的倒数。在一个实施例中,估计由存储区所需的总的资源计算为RC (E,D) = max (RC (Ep,D),RC (Ec,D))相应地,对于要由放置模块130放置或迁移的存储区,资源消耗模块1 便于基于它所估计的存储资源选择(存储系统106中的多个存储分层108a、108b... 108η中的)最有效的存储分层。在步骤206,放置模块130确定(存储系统106中的多个存储分层108a、 108b. . . 108η中)哪一个存储分层为了满足存储区的性能需求将导致最低功耗。对这一个存储分层的确定是基于由资源消耗模块1 估计并传递到放置模块130的存储资源。在一个实施例中,放置模块130使用放置算法来计算从多个存储分层108a、 108b. . . 108η中的每一个分层为满足存储区的性能需求而对存储系统106的功耗。例如,放置算法将每个存储分层108a、108b. . . 108η的存储区估计存储资源转换成对存储系统106 的功耗。在示例实施例中,放置算法通过计算分数幂负担(Fractional Power Burden)(即, 将由存储区消耗的功率)来确定功耗。分数幂负担是针对存储系统106中每个存储分层 108a、108b. . . 108η的每个存储区计算的。当放置到存储分层108a、108b. · · 108η 的存储设备 110、112、114、116、118. · · 120
中时,分层中的分数幂负担是该分层中存储设备的功耗与由资源消耗模块1 计算的存储区的资源消耗(RC)的乘积。
然后,放置模块130选择(存储系统106中的多个存储分层108a、108b. . . 108η中的)最小化分数幂负担的一个存储分层。例如,导致最低分数幂负担的存储分层被选为用于该存储区的存储分层。例如,所有存储区都基于满足性能需求同时导致最低可能功耗而被分配到最适合的存储分层。在示例实施例中,放置模块130每存储分层地开发一个组,而且每个组由用于让迁移器132将存储区迁移到那个存储分层的存储区列表构成。在步骤208,放置模块130在一个选定的存储分层中确定(多个存储设备中的)具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备。对该至少一个存储设备的确定是基于由数据收集器126收集并传递到放置模块130的数据访问信息122和利用率信息122。然后,放置模块130选择(所述至少一个存储设备中的)具有最少可用存储容量的一个存储设备。放置模块130选择特定的存储设备来向其分配存储区,以具有可以满足性能需求的最少可用存储容量(即,空间)的存储设备开始。如果在考虑可用存储约束的情况下前一个存储设备不能容纳存储区,则放置模块130选择具有最少可用存储容量的下一个存储设备。在步骤210,迁移器132将该存储区分配(或者迁移)到由放置模块130选择的用于向其分配存储区的一个存储分层和一个存储设备。在示例实施例中,通过检查用于存储区迁移请求的源存储设备和目标存储设备当前是否正在执行任何迁移,迁移器132首先执行准入控制。如果它们正在执行迁移,则当前的迁移请求被重新排队,而且迁移器132移动到下一个迁移请求。如果它们不正在执行迁移,则迁移器132发布该迁移请求。在另一个实施例中,要迁移的每个存储区都被分成几个读-写移动,例如,每次传送1MB的数据。在每个MB传送的开始,迁移器132采样源存储设备的利用率和目标存储设备的利用率,并将其所消耗的利用率设置为迁移阈值。然后,迁移器132利用该迁移阈值计算迁移I/O率。然后,迁移器132以迁移I/O率确定那个存储区所需的数据传输的步速。在另一个实施例中,所生成的存储区的迁移是以降低I/O率的次序来排优先级的,以减小对存储区的性能影响。图3是根据一个实施例的示例多分层存储系统300的图。多分层存储系统300包括多个存储分层,即,存储分层1 302a、存储分层2 302b...存储分层3 302η。这多个存储分层(即,存储分层1 302a、存储分层2 302b...存储分层3 302η)中的每一个分层都包括存储控制器 304a、304b. . . 30 。多个存储分层(即,存储分层1 302a、存储分层2 302b...存储分层3 302η)中的每一个分层还包括多个存储设备306a、306b. . . 306η。多个存储分层(即,存储分层1 302a、 存储分层2 302b...存储分层3 302η)中的每一个分层都具有单个唯一类型的存储设备 306a、306b. ..306η。多个存储分层(即,存储分层1 302a、存储分层2 302b...存储分层 3)中的每一个分层都具有不同的性能/成本/能线图。例如,多个存储分层(即,存储分层1 302a、存储分层2 302b...存储分层3 302η)中的每一个分层都可以包括ATA存储设备110、FC存储设备112、SSD存储设备114、SAS存储设备116、SATA存储设备118或者带式存储设备120。图4是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中降低功耗的方法400的流程图。在步骤402,放置模块130确定(存储系统106中的多个存储分层108a、108b. . . 108η中)是否有至少一个其它的存储分层为了满足存储区的性能和容量需求将比存储区当前所分配到的存储分层导致存储系统106更低的功耗(见步骤206)。 例如,挑选让存储区分配到的有效存储设备确保数据只消耗与提供所需的性能等级需要的能量相当的能量,使得用于存储区工作负荷的总能量消耗被最小化,同时满足性能需求。该确定是响应数据收集器126以预定间隔持续地接收到存储在存储系统106中的存储区的数据访问信息122和存储系统中的存储设备110、112、114、116、118... 120的利用率信息 122(见步骤20 而进行的。如果(存储系统106中的多个存储分层108a、108b. . . 108η中)没有至少一个其它的存储分层为了满足存储区的性能和容量需求将比存储区当前所分配到的存储分层导致存储系统106更低的功耗,则方法400前进到步骤404。在步骤404,方法400在预定的时间间隔之后重复。该预定的时间间隔(例如,5分钟至M小时)是基于所提供的存储系统和性能偏好。如果(存储系统106中的多个存储分层108a、108b. . . 108η中)有至少一个其它的存储分层为了满足存储区的性能和容量需求将比存储区当前所分配到的存储分层导致存储系统106更低的功耗,则方法400前进到步骤406。在步骤406,放置模块130选择(所述至少一个存储分层中的)为了满足存储区的性能和容量需求将导致存储系统106最低功耗的一个存储分层,以将存储区分配到该存储分层(见步骤206)。在步骤408,放置模块130确定(由放置模块130选择来将存储区迁移到其的)一个选定的存储分层中(多个存储设备中的)具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备(见步骤208)。在步骤410,放置模块130将存储区(从其本被分配到的存储分层)迁移到(由放置模块130选择来将存储区迁移到其的)一个选定的存储分层并迁移到(所述至少一个存储设备中的)具有最少可用存储容量的一个存储设备(见步骤210)。在步骤412,方法400在预定的时间间隔之后重复(见步骤 202)。用于迁移计划的预定时间间隔是可变的而且是基于特定存储系统的性能偏好。例如,用于存储系统106的性能偏好的偏好可以包括用于存储区迁移的存储系统106的开销。 在示例实施例中,预定的时间间隔可以在1分钟到M小时的范围内。在另一个示例实施例中,预定的时间间隔可以在5分钟到1小时的范围内,优选的时间间隔在5分钟到10分钟之间。在另一个实施例中,放置模块130确定用于将存储区迁移到(存储系统106中的多个存储分层108a、108b. . . 108η中的)另一存储分层的存储系统106的开销是否抵消了移动该存储区来实现降低功耗的成本利益。在示例实施例中,开销取决于工作负荷的稳定性,因为与在单个存储分层中停留更长时间的存储区相比,在每个预定时间间隔重新分配的存储区从迁移获得的益处较小。因此,当稳定性的缺乏造成动态迁移低效时,放置模块 130不提供迁移。例如,在考虑迁移的情况下,存储区的工作负荷需要稳定性,使得迁移决定对于某个时段节约能量是有效的,然而具有波动的工作负荷的存储区没有显示出用于迁移的可预测变化。图5是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中优化工作负荷的方法500的流程图。在示例实施例中,放置模块130(在存储区分配到其的存储分层中)选择一个存储设备,以便将存储区迁移到其,这将优化那个存储分层中存储设备的工作负荷。例如,工作负荷优化包括在给定存储分层中在最小数量的存储设备上放置最大数量的存储区,同时满足存储区的性能和容量需求。因此,未充分利用的存储设备将把分配到其的存储区迁移到另一个存储设备,这将更好地最大化其存储资源。在步骤502,节流模块134确定对(存储区所分配到的)存储设备的性能度量 (metric)是否低于预定阈值使得存储设备的存储资源未充分利用,以及对(存储区所分配到的存储分层中的多个存储设备中的)至少一个存储设备的性能度量是否高于预定阈值并具有用来满足存储区的性能和容量需求的可用存储资源。该确定是响应于数据收集器 126以预定间隔持续地接收到存储在存储系统106中的存储区的数据访问信息122和存储系统中存储设备110、112、114、116、118. .. 120的利用率信息122(见步骤202)而进行的。在示例实施例中,性能度量是基于来自(存储系统106中的多个存储分层108a、 108b. . . 108η中的每一个存储分层的)每个有效存储设备的存储区的IOPS的平均响应时间。平均响应时间(即,I0PS)被选为性能度量是因为响应时间的增加是存储资源节流(或者说未充分利用)的潜在指示符,这是由于应用期望比存储设备可以提供的更高的I/O率, 这导致排队延迟。基于应用及其性能偏好,用于那些性能度量的预定阈值是特定于系统的。 在示例实施例中,预定的阈值是50毫秒(msecs)。如果对(分配了存储区的)存储设备的性能度量不低于预定阈值,使得存储设备的存储资源没有未充分利用,和/或对(分配了存储区的存储分层中的多个存储设备中的) 至少一个存储设备的性能度量不高于预定阈值或者不具有满足存储区的性能和容量需求的可用存储资源(见步骤208),则方法500前进到步骤504。如果对(分配了存储区的) 存储设备的性能度量低于预定阈值使得存储设备的存储资源未充分利用,而且对(分配了存储区的存储分层中的多个存储设备中)至少一个存储设备的性能度量高于预定阈值或者具有满足存储区的性能和容量需求的可用存储资源,则方法500前进到步骤506。因此, 在相同的存储分层中存在另一个未节流或者过度利用的存储设备。在步骤504,方法500在预定的时间间隔之后重复。在步骤506,放置模块130选择(所述至少一个存储设备中的)具有最少可用存储容量的特定存储设备,用于让存储区迁移到该存储设备(见步骤208)。在步骤508,迁移器132将存储区从其所分配到的存储设备迁移到该特定存储设备。在步骤510,存储系统 106将存储系统106中(每个存储分层108a、108b. · · 108η中的多个存储设备110、112、114、 116、118...120中)没有分配至少一个存储区的每个存储设备断电。在步骤512,方法500 在预定时间间隔之后重复。图6是根据一个实施例的用于在采用区等级动态分层的多分层存储系统106中优化性能的第一种方法600的流程图。在示例实施例中,放置模块130选择(存储分层中分配了存储区的)存储设备,以便将存储区迁移到该存储设备,这将优化那个存储分层中的性能。因为存储设备的存储资源被节流,所以迁移存储区。例如,如果存储设备的存储资源被节流并由此该存储设备被过度利用,则存储设备可能不能够满足存储区的性能需求。在步骤602,节流模块134确定对(分配了存储区的)存储设备的性能度量是否高于预定阈值使得该存储设备的存储资源被节流,以及对(分配了存储区的)存储分层中 (多个存储设备中的)至少一个存储设备的性能度量是否低于预定阈值并具有满足存储区的性能和容量需求的可用存储资源。该确定是响应于数据收集器126以预定间隔持续地接收到存储在存储系统106中的存储区的数据访问信息122和存储系统中存储设备110、112、114、116、118. . . 120的利用率信息122(见步骤202)而进行的。在示例实施例中,该性能度量是基于来自(存储系统106中多个存储分层108a、108b. . . 108η的每一个分层中)每个有效存储设备的存储区的IOPS的平均响应时间。如果对(分配了存储区的)存储设备的性能度量不高于预定阈值使得该存储设备的存储资源未节流,和/或对(分配了存储区的)存储分层中(多个存储设备中的)至少一个存储设备的性能度量不低于预定阈值或者不具有满足存储区的性能和容量需求的可用存储资源,则方法600前进到步骤604。在步骤604,方法600在预定时间间隔之后重复。如果对(分配了存储区的)存储设备的性能度量高于预定阈值,使得该存储设备的存储资源被节流,而且对(分配了存储区的)存储分层中(多个存储设备中的)至少一个存储设备的性能度量低于预定阈值而且具有满足存储区的性能和容量需求的可用存储资源,则方法600前进到步骤606。在步骤606,放置模块130选择(所述至少一个存储设备中的)具有最少可用存储容量的特定存储设备,用于将存储区迁移到该存储设备。在步骤608,迁移器132将存储区从其所分配到的存储设备迁移到由放置模块130选择的用于将存储区迁移到其的特定存储设备。在步骤610,方法600在预定时间间隔之后重复。在一个实施例中,作为通过基于存储设备的可用性实例化高、相同或者更低成本的分层中的一个存储设备来节流的结果,放置模块执行迁移。一旦新阵列被实例化,则受影响的存储设备上的存储区利用这些受影响的存储设备的I/O率进行排序,并且在两个存储设备(新实例化的存储设备和被节流的存储设备)之间以循环(round-robin)方式放置, 对其空间和I/O率限制有约束。监视这些存储设备用以在下一个时间间隔选择,而且如果存储设备继续被节流,则重复该处理。在另一个实施例中,被节流的存储设备中的所有存储区都是利用其I/O率需求来排序的,并以贪婪(greedy)方式放置到由其I/O率可用性排序的存储设备上。图7是根据一个实施例的用于在采用区等级动态分层的多分层存储系统中优化性能的第二种方法700的流程图。在步骤702,节流模块134确定对(分配了存储区的) 存储分层中多个存储设备中每一个存储设备的性能度量是否高于预定阈值,使得所述多个存储设备中每一个存储设备的存储资源都被节流或者不具有满足存储区的性能和存储容量需求的可用存储资源。该确定是响应于数据收集器126以预定间隔持续地接收到存储在存储系统106中的存储区的数据访问信息122和存储系统中存储设备110、112、114、116、 118. . . 120的利用率信息122(见步骤202)而进行的。在示例实施例中,该性能度量是基于来自(存储系统106中多个存储分层108a、108b. . . 108η中每一个存储分层中的)每个有效存储设备的存储区的IOPS的平均响应时间。如果对(分配了存储区的)存储分层中多个存储设备中每一个存储设备的性能度量都不高于预定阈值,使得这多个存储设备中每一个存储设备的存储资源都未被节流,则该第二种方法700前进到步骤704。在步骤704,第二种方法700在预定时间间隔之后重复。如果对(分配了存储区的)存储分层中多个存储设备中每一个存储设备的性能度量都高于预定阈值,使得这多个存储设备中每一个存储设备的存储资源都被节流或者不具有满足存储区的性能和存储容量需求的可用存储资源,则方法700前进到步骤706。在步骤 706,放置模块130确定(存储系统106中多个存储分层108a、108b. . . 108η中的)哪个存储分层为了满足存储区的性能需求将导致最低功耗(见步骤206)。然后,放置模块130选择该存储分层来将存储区迁移到其。在步骤708,放置模块130确定这一个选定的存储分层中(多个存储设备中的)具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备(见步骤208)。在步骤710,迁移器132将存储区迁移到由放置模块130选择将存储区迁移到的所述一个存储分层和所述一个存储设备。在步骤712,第二种方法700在预定时间间隔之后重复。如本领域技术人员将认识到的,本发明的各方面可以体现为系统、方法或者计算机程序产品。相应地,本发明的各方面可以采取全硬件的实施例、全软件的实施例(包括固件、驻留软件、微代码,等等),或者在此总体上可以称为“电路”、“模块”或“系统”的、结合了软件和硬件方面的实施例。此外,本发明的各方面还可以采取体现在一种或多种计算机可读介质中的计算机程序产品的形式,其中计算机可读介质中包含有计算机可读程序代码。一种或多种计算机可读介质的任何组合都可以使用。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以是例如但不限于,电、 磁、光、电磁、红外线或半导体系统、装置或设备,或者以上所述的任何合适的组合。计算机可读存储介质的更具体例子(非穷尽列表)将包括以下具有一条或多条电线的电连接、 便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器 (EPR0M或闪速存储器)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光学存储设备、磁性存储设备或者以上所述的任何合适组合。在本文档的背景下,计算机可读存储介质可以是可包含或存储由指令执行系统、装置或设备使用或者与其连接的程序的任何有形介质。计算机可读信号介质可以包括传播的数据信号,其中包含了计算机可读程序代码,例如,在基带中或者作为载波的一部分。这种传播的信号可以采取多种形式中的任何一种,其包括但不限于电磁的、光的或者其任何合适的组合。计算机可读信号介质可以是非计算机可读存储介质并且能够传送、传播或者运输由指令执行系统、装置或设备使用或者与其连接的程序的任何计算机可读介质。体现在计算机可读介质上的程序代码可以利用任何适当的介质发送,所述介质包括但不限于,无线、有线线路、光纤线缆、RF等等或者以上所述的任何合适组合。用于执行本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合来书写,包括诸如JaVa、Smalltalk、C++等的面向对象编程语言和诸如“C”编程语言或类似编程语言的传统过程性编程语言。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户计算机上且部分在远程计算机上、或者完全在远程计算机或服务器上执行。在后一种场景下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者该连接可以对外部计算机进行(例如,通过利用互联网服务提供商的互联网)。以下参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图来描述本发明的各方面。应当理解,流程图说明和/或框图的每个块及流程图说明和/或框图中块的组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或者其它可编程数据处理装置的处理器,来产生机器,使得通过计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现在流程图以及/ 或者一个或多个框图块中指定的功能/动作。 这些计算机程序指令还可以存储在计算机可读介质中,这些计算机可读介质可以指示计算机、其它可编程数据处理装置或者其它设备以特定方式起作用,使得存储在该计算机可读介质中的指令产生包括实现流程图以及/或者一个或多个框图块中指定的功能/ 动作的指令的制造品。计算机程序指令还可以加载到计算机、其它可编程数据处理装置或者其它设备上,使一系列操作性步骤在计算机、其它可编程装置或者其它设备上执行,以便产生计算机实现处理,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图以及/或者一个或多个框图块中指定的功能/动作的处理。图8是用于实现本发明实施例的系统的图。该计算机系统包括一个或多个处理器,例如处理器802。处理器802连接到通信基础设施804(例如,通信总线、跨接 (cross-over)条或者网络)。该计算机系统可以包括显示接口 806,该显示接口转发来自通信基础设施804的 (或者来自未示出的帧缓冲器的)图形、文本和其它数据,用于显示到显示单元808上。该计算机系统还包括主存储器810,优选地是随机存取存储器(RAM),而且还可以包括辅助存储器812。辅助存储器812可以包括例如硬盘驱动器814和/或可拆卸存储驱动器816,其中可拆卸存储驱动器816代表例如软盘驱动器、磁带驱动器或者光盘驱动器。可拆卸存储驱动器816以本领域普通技术人员众所周知的方式从可拆卸存储单元818读和/或写。可拆卸存储单元818代表例如由可拆卸存储驱动器816读和写的软盘、紧凑盘、磁带或者光盘,等等。如将认识到的,可拆卸存储单元818包括具有存储到其中的计算机软件和/或数据的计算机可读介质。在可选实施例中,辅助存储器812可以包括用于允许计算机程序或者其它指令加载到计算机系统中的其它类似装置。这种装置可以包括例如可拆卸存储单元820和接口 822。这种装置的例子可以包括程序包和包接口(例如在视频游戏设备中找到的)、可拆卸存储器芯片(例如EPROM或PR0M)和关联的插座,及允许软件和数据从可拆卸存储单元820 传送到计算机系统的其它可拆卸存储单元820和接口 822。该计算机系统还可以包括通信接口 824。通信接口拟4允许软件和数据在计算机系统和外部设备之间传送。通信接口拟4的例子可以包括调制解调器、网络接口(例如以太网卡)、通信端口或者PCMCIA槽和卡,等等。通过通信接口拟4传送的软件和数据是以信号的形式,其中信号可以是例如电、电磁、光或者能够被通信接口拟4接收的其它信号。这些信号经通信路径(即,通道)拟6提供给通信接口 824。这种通信路径拟6载送信号并且可以利用电线或电缆、光纤、电话线、蜂窝电话线、射频(RF)线和/或其它通信通道来实现。在本文档中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”用来总体上指诸如主存储器810和辅助存储器812、可拆卸存储驱动器816和安装在硬盘驱动器814中的硬盘的介质。计算机程序(也称为计算机控制逻辑)存储在主存储器810和/或辅助存储器 812中。计算机程序还可以经通信接口拟4接收。这种计算机程序在运行时使计算机系统执行如在此所讨论的本发明的特征。特别地,该计算机程序在运行时使处理器802执行计算机系统的特征。相应地,这种计算机程序代表计算机系统的控制器。附图中的流程图和框图例示了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系结构、功能性和操作。就此而言,流程图或框图中的每个块都可以代表包括用于实现指定逻辑功能的一个或多个可执行指令的模块、段或者代码部分。应当指出,在有些可选实现中,块中所指出的功能可以不以附图中所指出的次序进行。例如,取决于所涉及的功能性,依次示出的两个块实际上可以基本上同时执行,或者块有时候可以以颠倒的次序执行。还应当指出,框图和/或流程图说明中的每个块及框图和/或流程图说明中块的组合可以由执行指定功能或动作的专用基于硬件的系统或者专用硬件和计算机指令的组合来实现。在此所使用的术语仅仅是为了描述特定实施例,而不是要作为本发明的限制。如在此所使用的,除非上下文明确地另外指出,否则单数形式“一个”和“该”也要包括复数形式。还应当理解,当在本说明书中使用时,术语“包括”指定所述特征、整体、步骤、操作、元素和/或部件的存在,但不排除一个或多个其它特征、整体、步骤、操作、元素、部件和/或其组的存在或添加。以下权利要求中所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与专门请求保护的其它所述元件组合来执行功能的任何结构、材料或动作。给出本发明的描述是为了说明和描述,但不是穷尽的或者要将本发明限制到所公开的形式。 在不背离本发明的范围与主旨的情况下,许多修改和变化对本领域普通技术人员都是显然的。实施例的选择和描述是为了最好地解释本发明的原理和实践应用,并使本领域普通技术人员能够理解本发明具有适于预期特定使用的各种修改的各种实施例。
权利要求
1.一种用于降低存储系统中能量消耗的方法,包括接收存储在所述存储系统中的存储区的数据访问信息和所述存储系统中的存储设备的利用率信息,其中所述存储系统包括多个存储分层而且所述多个存储分层中的每一个存储分层都包括多个存储设备;估计所述多个存储分层中每一个存储分层为满足存储区的性能和容量需求所需的存储资源,其中对所述存储资源的估计是基于所述数据访问信息;确定所述多个存储分层中哪一个存储分层为了满足存储区的性能和容量需求将导致存储系统的最低功耗,其中所述一个存储分层是通过根据所估计的存储资源计算所述多个存储分层的每一个存储分层中将由存储区消耗的功率量来确定的;确定所述一个存储分层中的多个存储设备中的具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备,其中对所述至少一个存储设备的所述确定是基于所述数据访问信息和利用率信息;及将存储区分配到所述一个存储分层并分配到所述至少一个存储设备中的具有最少可用存储容量的一个存储设备。
2.如权利要求1所述的方法,其中,所述数据访问信息和利用率信息是以预定时间间隔持续接收的。
3.如权利要求2所述的方法,包括在预定时间间隔之后,如果所述存储系统的所述多个存储分层中的至少一个存储分层为了满足存储区的性能和容量需求将比所述一个存储分层导致存储系统的更低功耗,则将存储区从所述一个存储分层迁移到所述至少一个存储分层中的为了满足存储区的性能和容量需求将导致存储系统的最低功耗的另一个存储分层。
4.如权利要求2所述的方法,包括在预定时间间隔之后,如果对所述一个存储设备的性能度量高于预定阈值使得所述一个存储设备的存储资源被节流,而且对所述一个存储分层的多个存储设备中的至少一个存储设备的性能度量低于所述预定阈值并且具有满足存储区的性能和容量需求的可用存储资源,则将存储区从所述一个存储设备迁移到所述至少一个存储设备中的具有最少可用存储容量的另一个存储设备。
5.如权利要求2所述的方法,包括在预定时间间隔之后,如果对所述一个存储设备的性能度量高于预定阈值使得所述一个存储设备的存储资源被节流,而且对所述一个存储分层的多个存储设备中每一个存储设备的性能度量都高于所述预定阈值,或者所述一个存储分层的多个存储设备中每一个存储设备都不具有满足存储区的性能和容量需求的可用存储资源,则将存储区从所述一个存储设备迁移到所述多个存储分层中将导致最低功耗的另一个存储分层。
6.如权利要求2所述的方法,包括在预定时间间隔之后,如果对所述一个存储设备的性能度量低于预定阈值使得所述一个存储设备的存储资源未充分利用,而且对所述一个存储分层的多个存储设备中的至少一个存储设备的性能度量高于所述预定阈值并具有满足存储区的性能和容量需求的可用存储资源,则将存储区从所述一个存储设备迁移到所述至少一个存储设备中具有最少可用存储容量的另一个存储设备。
7.如权利要求6所述的方法,包括如果所述多个存储分层的每一个存储分层中的多个存储设备中的存储设备不具有至少一个分配到其的存储区,则将该存储设备断电。
8.一种用于降低存储系统中能量消耗的系统,包括数据收集器,该数据收集器接收存储在所述存储系统中的存储区的数据访问信息和所述存储系统中的存储设备的利用率信息,其中所述存储系统包括多个存储分层,而且所述多个存储分层中的每一个存储分层都包括多个存储设备;资源消耗模块,该资源消耗模块估计所述多个存储分层中的每一个存储分层为满足存储区的性能和容量需求所需的存储资源,其中对所述存储资源的估计是基于所述数据访问 fn息;放置模块,该放置模块确定所述多个存储分层中哪一个存储分层为了满足存储区的性能和容量需求将导致存储系统的最低功耗,其中所述一个存储分层是通过根据所估计的存储资源计算所述多个存储分层的每一个存储分层中将由存储区消耗的功率量来确定的,及确定所述一个存储分层的多个存储设备中的具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备,其中对所述至少一个存储设备的所述确定是基于所述数据访问信息和利用率信息;及迁移器,该迁移器将存储区分配到所述一个存储分层并分配到所述至少一个存储设备中的具有最少可用存储容量的一个存储设备。
9.如权利要求8所述的系统,其中,所述数据收集器还配置成以预定时间间隔持续地接收所述数据访问信息和利用率信息。
10.如权利要求9所述的系统,其中所述放置模块还配置成,在预定时间间隔之后,确定所述存储系统的所述多个存储分层中是否有至少一个存储分层为了满足存储区的性能和容量需求将比所述一个存储分层导致存储系统的更低功耗;及如果所述存储系统的所述多个存储分层中的至少一个存储分层为了满足存储区的性能和容量需求将比所述一个存储分层导致存储系统的更低功耗,则所述放置模块选择所述至少一个存储分层中为了满足存储区的性能和容量需求将导致存储系统的最低功耗的特定存储分层,用以将存储区迁移到该特定存储分层,及所述迁移器将存储区从所述一个存储分层迁移到所述特定存储分层。
11.如权利要求9所述的系统,该系统还包括节流模块,该节流模块被配置成,在预定时间间隔之后,确定对所述一个存储设备的性能度量是否高于预定阈值使得所述一个存储设备的存储资源被过度利用,以及对所述一个存储分层的多个存储设备中的至少一个存储设备的性能度量是否低于所述预定阈值并具有满足存储区的性能和容量需求的可用存储资源;及如果对所述一个存储设备的性能度量高于所述预定阈值,而且对所述一个存储分层的多个存储设备中的至少一个存储设备的性能度量低于所述预定阈值并具有满足存储区的性能和容量需求的可用存储资源,则所述放置模块选择所述至少一个存储设备中的具有最少可用存储容量的特定存储设备,用以将存储区迁移到该特定存储设备,及所述迁移器将存储区从所述一个存储设备迁移到所述特定存储设备。
12.如权利要求9所述的系统,该系统还包括节流模块,该节流模块被配置成,在预定时间间隔之后,确定对所述一个存储设备的性能度量是否高于预定阈值使得所述一个存储设备的存储资源被过度利用,以及对所述一个存储分层的多个存储设备中每一个存储设备的性能度量是否都高于所述预定阈值,或者所述一个存储分层的多个存储设备中每一个存储设备是否都不具有满足存储区的性能和容量需求的可用存储资源;及如果对所述一个存储设备的性能度量高于所述预定阈值,而且对所述一个存储分层的多个存储设备中每一个存储设备的性能度量都高于所述预定阈值,或者所述一个存储分层的多个存储设备中每一个存储设备都不具有满足存储区的性能和容量需求的可用存储资源,则所述放置模块选择所述存储系统的所述多个存储分层中为了满足存储区的性能和容量需求将导致存储系统的最低功耗的特定存储分层,用以将存储区迁移到该特定存储分层,及所述迁移器将存储区从所述一个存储分层迁移到所述特定的存储分层。
13.如权利要求9所述的系统,该系统还包括节流模块,该节流模块被配置成,在预定时间间隔之后,确定对所述一个存储设备的性能度量是否低于预定阈值使得所述一个存储设备的存储资源未充分利用,以及对所述一个存储分层的多个存储设备中的至少一个存储设备的性能度量是否高于所述预定阈值并且具有满足存储区的性能和容量需求的可用存储资源;及如果对所述一个存储设备的性能度量低于所述预定阈值,而且对所述一个存储分层的多个存储设备中的至少一个存储设备的性能度量高于所述预定阈值并且具有满足存储区的性能和容量需求的可用存储资源,则所述放置模块选择所述至少一个存储设备中的具有最少可用存储容量的特定存储设备,用以将存储区迁移到该特定存储设备,及所述迁移器将存储区从所述一个存储设备迁移到所述特定的存储设备。
14.如权利要求13所述的系统,其中如果所述多个存储分层的每一个存储分层中的多个存储设备中的存储设备不具有至少一个分配到其的存储区,则所述存储系统将该存储设备断电。
全文摘要
本发明涉及降低能量消耗并优化工作负荷和性能的方法和系统。该方法包括接收存储在存储系统中的存储区的数据访问信息和存储系统中的存储设备的利用率信息。存储系统包括多个存储分层且多个存储分层中每一个都由多个存储设备构成。基于数据访问信息来估计多个存储分层中每一个为满足存储区的性能和容量需求所需的存储资源。确定为了满足存储区的性能和容量需求将导致最低功耗的一个存储分层。基于数据访问信息和利用率信息确定这一个存储分层中具有将满足存储区的性能和容量需求的可用存储资源的至少一个存储设备。将存储区分配到这一个存储分层并分配到至少一个存储设备中的具有最少可用存储容量的一个存储设备。
文档编号G06F12/08GK102455776SQ20111022203
公开日2012年5月16日 申请日期2011年7月29日 优先权日2010年10月22日
发明者H·普查, J·G·德尔加多, J·S·格莱德, W·A·贝尔洛米尼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1