运行时动态性能偏斜消除的制作方法

xiaoxiao2020-7-22  15

运行时动态性能偏斜消除的制作方法
【专利摘要】提供用于计算机环境中的运行时动态性能偏斜消除的各种示例性方法、系统和计算机程序产品实施例。在一个实施例中,计算机环境被构造用于通过使用以区间粒度收集的多个细粒度统计数据来计算行列热量,包括考虑带宽(BW)和每秒输入/输出(IOPS)度量。产生自适应数据放置计划以重新定位数据。数据被放置在数据存储行列之间。数据存储行列根据自适应数据放置计划而被平衡。
【专利说明】运行时动态性能偏斜消除
【技术领域】
[0001]本发明一般地涉及计算机,更具体地讲,涉及计算存储环境中的运行时动态性能偏斜消除。
【背景技术】
[0002]在现今的社会中,计算机系统很常见。可在工作场所、在家庭或者在学校发现计算机系统。计算机系统可包括数据存储系统或盘存储系统以处理并存储数据。存储系统可包括一个或多个盘驱动器。盘驱动器可被以阵列(诸如,独立盘冗余阵列(RAID))布局构造,以在硬件或软件故障的情况下提供数据安全性。数据存储系统可连接到主机,诸如大型计算机。许多数据存储系统中的盘驱动器通常已知为直接存取存储装置(DASD)。DASD装置通常把数据存储在轨道上,轨道是盘的表面上的圆形路径,在该圆形路径上记录信息并且从该圆形路径读取记录的信息。为了在同时处理多个并发IO请求的系统中实现更高的吞吐量,数据可分布在多个物理装置(诸如,盘驱动器、适配器等)之间,从而可同时处理访问不同数据位置的请求。然而,随着时间过去,工作负荷可使得一些装置可能被过度使用,而一些装置未被充分使用。此外,在数据存储系统中,盘存储子系统的工作负荷可能随时间而波动并且可能产生自然偏斜。该偏斜可能沿带宽(BW)和每秒输入/输出(I/O) (IOPS)维度产生不平衡,因此无法提供可接受的性能。

【发明内容】

[0003]在具有各种存储装置(一些存储装置具有比其它存储装置高的性能)的数据处理系统中,存储系统可能产生自然偏斜并且沿带宽和每秒输入/输出(I/O) (IOPS)维度变得不平衡。计算环境内的偏斜的产生降低性能和系统处理。
[0004]因此,考虑到前述情况,提供用于计算机环境中的运行时动态性能偏斜消除的各种示例性方法、系统和计算机程序产品实施例。在一个实施例中,计算机环境被构造用于通过使用以区间(extent)粒度收集的多个细粒度统计数据来计算行列(rank)热量,包括考虑带宽(BW)和每秒输入/输出(IOPS)度量。自适应数据放置计划被产生以重新定位数据。数据被放置在数据存储行列之间。数据存储行列根据自适应数据放置计划而被平衡。
[0005]除了前述示例性实施例之外,还提供各种其它系统和计算机程序产品实施例并且各种其它系统和计算机程序产品实施例提供相关优点。提供前述“
【发明内容】
”以便以简化形式介绍以下在“【具体实施方式】”中进一步描述的概念的选择。该“
【发明内容】
”并不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用于辅助确定要求保护的主题的范围。要求保护的主题不限于解决在“【背景技术】”中标注的任何或所有缺点的实现方式。
【专利附图】

【附图说明】
[0006]现在将参照附图仅作为例子描述本发明的实施例,其中:
[0007]图1表示具有可实现本发明的各方面的示例性存储装置的计算机存储环境;[0008]图2表示显示可实现本发明的各方面的计算机系统中的数据存储系统的硬件结构的示例性方框图;
[0009]图3是表示用于运行时动态性能偏斜消除的示例性方法的流程图;
[0010]图4是表示可实现本发明的各方面的等待时间曲线的示例性示图;
[0011]图5A是表示可实现本发明的各方面的增加行列使用情况的示例性示图;
[0012]图5B是表示可实现本发明的各方面的增加行列替代流程的示例性示图;
[0013]图5C是表示可实现本发明的各方面的性能偏斜使用情况的示例性示图;
[0014]图是表示可实现本发明的各方面的性能偏斜消除机制的示例性示图;和
[0015]图6是表示用于数据存储行列之间的运行时动态性能偏斜的示例性方法的流程图。
【具体实施方式】
[0016]由于几个因素的组合,存储系统可能产生自然偏斜,并且沿带宽(BW)和每秒输入/输出(I/o) (IOPS)维度变得不平衡,并且无法提供可接受的性能。这些因素可包括:1)数据放置:把“同时访问的热点数据”放置在相同装置(诸如,行列)上,2)使以前最佳的放置提供次最佳并且不可接受的性能的工作负荷变化,3)硬件的增加/删除/劣化以及系统不能适应于结构变化,4)其它迁移活动或结构变化,诸如卷的创建/删除/迁移,和5)系统中的迁移、新硬件的增加和劣化的硬件全都可促成性能偏斜。
[0017]用于解决自然偏斜的已有方案使用诸如条带化或随机放置的技术。然而,这种方案在显露访问模式之前分配放置并且仅减小偏斜的概率。这种方案无法消除偏斜并且无法在最初发生偏斜时校正偏斜。其它技术使用工作负荷再平衡方案,其中如果主位置过载,则工作负荷被重新引导至数据的冗余辅助位置。这种方案也无法在运行时消除存储子系统内的偏斜,也无法在没有辅助位置可用时解决问题。这些方案无法在存储子系统级别有效地解决性能劣化,这是由于系统中的一些行列过载而一些行列未被充分使用所导致。无法解决该问题的主要因素在于:这些方案未以存储子系统所需的细粒度解决问题,或者如果它们以存储子系统所需的细粒度解决问题,则它们仅以静态方式以存储子系统所需的细粒度解决问题。
[0018]在一个实施例中,示出的实施例的机制通过在数据存储行列之间自适应地放置数据来提供运行时动态性能偏斜消除。自适应算法基于工作负荷和结构。
[0019]在一个实施例中,示出的实施例的机制使用以区间粒度收集的细粒度统计数据计算行列热量,同时考虑硬件的带宽和IOPS能力以及工作负荷特性。使用行列的平均行列热量(变型包括使用IOPS等待时间曲线和相关系数),并且产生用于重新定位区间的计划以便减小系统中的长期性能偏斜而没有突然的自动反应。相应地调整迁移。计划过程由性能偏斜的存在和其它事件(诸如,硬件的增加/删除/劣化、卷的创建/删除/重新配置以及其它这种配置事件(诸如,合并池))触发。
[0020]参照图1,描述可实现本发明的各方面的示例性计算机系统10。计算机系统10包括连接到大容量存储装置14和存储装置16的中央处理单元(CPU) 12。大容量存储装置能够包括能够在独立盘冗余阵列(RAID)中配置的硬盘驱动器(HDD)装置、固态装置(SSD)等。能够在位于系统10中或别处的装置14上执行进一步描述的备份操作。存储装置16能够包括诸如电可擦除可编程只读存储器(EEPROM)的存储器或相关装置的主机。存储装置16和大容量存储装置14经信号承载介质连接到CPU12。另外,CPU12通过通信端口 18连接到通信网络20,通信网络20具有连接的多个另外的计算机系统22和24。
[0021]图2是显示根据本发明的计算机系统中的数据存储系统的硬件结构的示例性方框图200。参照图2,示出主机计算机210、220、225,主机计算机210、220、225中的每一个用作用于执行数据处理的中央处理单元,用作数据存储系统200的一部分。主机(物理或虚拟装置)210、220和225可以是数据存储系统200中的用于实现本发明的目的的一个或多个新的物理装置或逻辑装置。在一个实施例中,仅作为例子,数据存储系统200可被实现为IBM ? System Storage? DS8000?。网络连接260可以是光纤通道设备、光纤通道点到点链路、以太网上光纤通道或点到点链路、FICON或ESCON I/O接口、任何其它I/O接口类型、无线网络、有线网络、LAN、WAN、异构、同构、公共(即,互联网)、专用或其任何组合。主机210、220和225可在本地或分布在一个或多个位置之间,并且可装备有通向存储控制器240的任何类型的设备(或设备通道)(图2中未示出)或网络适配器260,诸如光纤通道、FIC0N、ESC0N、以太网、光纤、无线或同轴适配器。数据存储系统200因此装备有合适的设备(图2中未示出)或网络适配器260以进行通信。在图1中描述了数据存储系统200,数据存储系统200包括存储控制器240和存储器230。
[0022]为了方便更清楚地理解这里描述的方法,存储控制器240在图2中被示出为单个处理单元,包括微处理器242、系统存储器243和非易失性存储器(“NVS”)216,以下将对此进行更详细的描述。需要注意的是,在一些实施例中,存储控制器240包括多个处理单元,所述多个处理单元中的每一个具有它们自己的处理器设施和系统存储器,所述多个处理单元由数据存储系统200内的专用网络互连。存储器230可包括通过存储网络连接到存储控制器240的一个或多个存储装置,诸如存储阵列。
[0023]在一些实施例中,存储器230中所包括的装置可按照循环架构连接。存储控制器240管理存储器230,并方便用于存储器230的写和读请求的处理。存储控制器240的系统存储器243存储程序指令和数据,处理器242可访问所述程序指令和数据以在计算机存储环境中执行与管理存储器230关联的功能和方法步骤并且执行用于运行时动态性能偏斜消除的本发明的步骤和方法。在一个实施例中,系统存储器243包括计算机存储环境中的包括这里描述的方法和操作的用于运行时动态性能偏斜消除的操作软件250,与操作软件250关联,或者与操作软件250通信。如图2中所示,系统存储器243可还包括用于缓冲分别称为写/读请求的“写数据”和“读数据”及其关联数据的用于存储器230的高速缓存245 (在这里也称为“高速缓冲存储器”),或者与高速缓存245通信。在一个实施例中,在系统存储器243外部的装置中分配高速缓存245,但保持可由微处理器242访问高速缓存245,并且除了执行如这里所述的操作之外,高速缓存245还可用于提供针对数据损失的另外的安全性。
[0024]在一些实施例中,高速缓存245利用易失性存储器和非易失性存储器而被实现,并且经本地总线(图2中未示出)耦合到微处理器242以实现数据存储系统200的增强的性能。数据存储控制器中所包括的NVS 216可由微处理器242访问,并用于为如其它附图中所述的本发明的操作和执行提供另外的支持。NVS 216也可称为“永久”高速缓存或“高速缓冲存储器”,并利用非易失性存储器来实现,所述非易失性存储器可使用外部电源保留存储在它里面的数据或者可不使用外部电源保留存储在它里面的数据。为了适合实现本发明的目标的任何目的,NVS可被存储在高速缓存245中以及与高速缓存245—起存储。在一些实施例中,备用电源(图2中未示出)(诸如,电池)在数据存储系统200的电源损失的情况下向NVS 216提供足够的电源以保留存储在它里面的数据。在某些实施例中,NVS 216的容量小于或等于高速缓存245的总容量。
[0025]存储器230可在物理上包括一个或多个存储装置,诸如存储阵列。存储阵列是各存储装置的逻辑分组,诸如硬盘。在某些实施例中,存储器230包括JBOD (磁盘簇)阵列或RAID(独立盘冗余阵列)阵列。一批物理存储阵列可进一步组合以形成行列,所述行列使物理存储与逻辑结构分开。行列中的存储空间可被分配到逻辑卷,所述逻辑卷定义在写/读请求中指定的存储位置。在一个实施例中,仅作为例子,如图2中所示的存储系统可包括逻辑卷(或简单称为“卷”),可具有不同种类的分配。存储区230a、230b和230η被显示为数据存储系统200中的行列,并且在这里被称为行列230a、230b和230η。行列可相对于数据存储系统200位于本地,或者可位于物理远程位置。换句话说,本地存储控制器可与远程存储控制器连接并管理在远程位置的存储区。行列230a被显示为利用两个完整卷234和236以及一个部分卷232a来构造。行列230b被显示为具有另一部分卷232b。因此,卷232被在行列230a和230b之间分配。行列230η被显示为完全分配给卷238—也就是说,行列230η指的是卷238的整个物理存储区。从以上例子,将会理解,行列可被构造为包括一个或多个部分和/或完整卷。卷和行列可进一步被划分成所谓的“轨道”,所述轨道代表存储区的固定块。轨道因此与给定卷关联并且可被给予给定行列。
[0026]在计算机存储环境中,存储控制器240可包括性能偏斜消除模块255和行列热量模块247以辅助运行时动态性能偏斜消除。性能偏斜消除模块255和行列热量模块247都可结合存储控制器240、主机210、220、225和存储装置230中的每个部件而工作。性能偏斜消除模块255和行列热量模块247可在结构上是一起联合工作以用于计算机存储环境中的运行时动态性能偏斜消除的一个完整的模块,或者可以是单独模块。性能偏斜消除模块255和行列热量模块247也可位于高速缓存245或存储控制器240的其它部件中以实现本发明的目的。
[0027]存储控制器240可构造为具有:控制开关241,用于控制针对主机计算机210、220、225的光纤通道协议;微处理器242,用于控制所有的存储控制器240 ;非易失性控制存储器243,用于存储用于控制存储控制器240的操作的微程序(操作软件)250、用于控制的数据和稍后描述的每个表;高速缓存245,用于临时存储(缓冲)数据;和缓冲器244,用于辅助高速缓存245读和写数据;控制开关241,用于控制用于控制通向存储器230或来自存储器230的数据传输的协议;性能偏斜消除模块255 ;和行列热量模块247,在行列热量模块247上可设置信息。可利用本发明实现多个缓冲器244以辅助计算机存储环境中的运行时动态性能偏斜消除。
[0028]在一个实施例中,仅作为例子,主机计算机或者一个或多个物理或虚拟装置210、220、225和存储控制器240通过作为接口的网络适配器(这能够是光纤通道)260 (即,经称为“设备”的开关)连接。在一个实施例中,仅作为例子,将描述图2中示出的系统的操作。微处理器242可控制存储器243以存储来自主机装置(物理或虚拟)210的命令信息和用于识别主机装置(物理或虚拟)210的信息。控制开关241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS 216、性能偏斜消除模块255和行列热量模块247彼此通信,并且可以是分开的部件或一个单独部件。此外,几个部件(如果并非所有部件的话)(诸如,操作软件250)可被包括在存储器243中以用于计算机存储环境中的运行时动态性能偏斜消除。在一个实施例中,仅作为例子,为了适合本发明的目的,存储装置内的每个部件可被链接在一起,并且可彼此通信。
[0029]图3是表示用于运行时动态性能偏斜消除的示例性方法300的流程图。示出的实施例的机制用于通过考虑到结构变化而保持工作负荷均匀地分布在系统中的不同行列之间的平衡区间池来提高总体系统性能和并发性。数据被自适应地放置在存储行列(装置)之间。自适应数据算法基于工作负荷和系统结构。此外,示出的实施例的机制使用使用以区间粒度收集的细粒度统计数据计算行列热量。使用行列之间的平均行列热量,产生用于重新定位区间的计划以实现最佳性能。区间可以是数据放置的单位。例如,在DS8000系统中,区间可以是IG的固定大小,这也可以是数据迁移的单位。该算法可被应用于由该系统支持的数据放置/迁移的任何其它单位。
[0030]方法300通过使用以区间粒度收集的细粒度统计数据计算一个或多个行列热量来开始(步骤302),包括考虑带宽(BW)和每秒输入/输出(IOPS)度量(步骤304)。产生自适应数据放置计划以重新定位数据(步骤306)。数据可被反映为区间或数据段。数据被放置在数据存储行列之间(步骤308)。数据存储行列根据自适应数据放置计划而被平衡(步骤310)。例如,自适应数据放置计划可基于再平衡算法(计算)、一个或多个行列热量、决定窗口和/或系统可容忍的偏斜的阈值中的一种或多种。方法300结束(步骤312)。
[0031]如上所述,用于减少盘存储子系统的工作负荷的一种方法在于:当需求增加时,把大量访问的数据移动、放置或“迁移”到更可接受的装置上。自适应数据放置决定自身复杂并且可考虑下面的因素:1)工作负荷和随着时间的变化,包括平均值和峰值行为,(主要问题在于:数据之间的位置和关系由工作负荷行为动态地创建,而非先验地已知或“在先”已知),2)装置特性,诸如BW、IOPS能力(度量),和3)系统结构,诸如行列分配。基于自适应数据放置计划的数据的迁移可能不是即时活动并且可受到可用带宽限制。
[0032]对再平衡的要求应该是可调节的(即,再平衡系统并消除偏斜所需的资源应该与再平衡的数据的量成比例),对工作负荷的短暂变化强壮,是动态的(即,适应于工作负荷或系统中的新事件和变化,诸如结构变化),能够预测未来事件(诸如,工作负荷和数据放置变化)以考虑到可能在分析和执行之间存在显著迟滞的事实,并且是通有的(即,支持来自不同销售商的各种装置类型并且还支持不同的工作负荷行为(随机、顺序和/或混合))。
[0033]运行时动态性能偏斜消除目的之一是通过保持工作负荷均匀地分布在系统中的行列之间的平衡区间池来实现提高的系统性能和并发性。区间池可以是可被用于管理与给定的行列组关联的相同类型的一组区间的逻辑构造。当定义区间池时,它可被分配行列组和区间类型。具有相同区间类型的一个或多个行列可被分配给区间池,但行列可被仅分配给一个区间池。可存在与行列一样多的区间池。关于分配给区间池的行列的数量或大小没有限制。分配给区间池的行列的所有区间对于分配给与该区间池关联的逻辑卷是独立可用的。这些机制应用关键部件以方便通过热量度量计算、决定窗口、计划大小估计和/或运行时动态性能偏斜消除算法消除偏斜。
[0034]热量度量可被用于计算行列热量。从区间热量测量值重建行列热量。定期地从基础系统收集区间热量测量值。区间统计数据的机制使用是双重的:(I)运行时动态性能偏斜消除使用区间热量测量值计算行列热量,和(2)运行时动态性能偏斜消除机制使用区间热量测量值识别源行列中的热点区间,并且在交换操作的情况下,识别和/或交换目标行列上的冷门区间。行列热量可以是基于区间热量的指数移动平均值(EMA)(累加测量值)和瞬时行列结构(即,行列中的当前的一组区间)的瞬时行列热量。在一个实施例中,仅作为例子,可考虑下面的方程以计算行列热量和区间热量:
[0035]Rh = Σ EMA (Hextent) (I)
[0036]其中Rh是行列热量,EMA是指数移动平均值,并且Hextent是区间热量。区间属于瞬时行列结构(行列中的当前的一组区间)。可计算区间热量自身作为随机和顺序IO计数的某一线性组合,诸如:
[0037]FMA(Hextent)=EMA(RIOC)+EMA(SIOC) (2)
[0038]其中RIOC是随机输入输出计数并且SIOC是顺序输入/输出计数。保持区间热量的EMA以便识别行列内的热点区间。用于计算行列热量的其它可能的变型包括根据装置能力、等待时间度量等使用随机和顺序访问的加权度量。
[0039]运行时动态性能偏斜消除机制的目标之一在于:对于选择的度量,使系统保持在平衡状态。通过使用决定窗口计算可实现这一点。决定窗口代表产生自适应数据放置计划的频率。可基于各种因素选择决定窗口的长度,所述各种因素包括但不限于工作负荷特性、可用迁移带宽和其它适用的硬件和工作负荷特性。
[0040]为了表示决定窗口的功能,下面的描述并不意图在所有情况下应用,而是用于提供对代表产生自适应数据计划的频率和应用前述各种因素的工作理解。在一个实施例中,这些机制考虑根据需要选择多个决定窗口,例如,决定窗口可以是6小时的决定窗口。在每个决定窗口,产生迁移意见。意见代表用于迁移的计划并包括需要迁移的一组区间、源行列和目标行列。意见大小表示产生的这种迁移计划的数量。对于意见大小计算,可使用许多因素(诸如,系统中的有效区间的数量、可用迁移带宽的量、系统上的当前负荷和决定窗口的长度)计算迁移意见大小。
[0041]例如,可通过使用包括成本和迁移意见大小的计算的几项计算来表示决定窗口的逻辑操作。这些计算并不意图在所有情况下应用,而是为了表示决定窗口计算中的几项计算而被示出。
[0042]对于成本计算:
[0043]假设Tm=每个决定窗口花费在迁移上的时间 (3)
[0044]在再平衡状态下花费的持续时间可小于Tm以证明花费在迁移上的资源,例如4Tm。这个自变量意味着:再平衡的决定基于长度为4Tm的决定窗口。使用以上例子,假设2天的决定窗口,可在每个窗口执行720分钟的迁移活动。以每5分钟4次迁移的速度,可在每个决定窗口执行576次迁移。每个决定窗口再平衡的行列的数量可如下:假设热点行列的10%需要迁移以便再平衡(对于串行连接小型计算机系统接口(SAS)/固态驱动器(SSD)行列,80个区间;以及对于串行高级技术附件(SATA)行列,200个区间)。仅利用“移动”操作,7.2个SAS/SSD行列和2.88个SATA行列可被再平衡。仅利用“交换”操作,在每个决定窗口,
[0045]3.6个SAS/SSD行列和1.44个SATA行列可被再平衡。[0046]对于迁移意见大小:
[0047]Max Adv Size=Minimum(基于有效区间的上限,基于带宽的上限)(4)其中Max AdvSize是最大意见大小,并且Minimum是基于有效区间的上限和基于带宽的上限。
[0048]Act extentup=#extentstier/2 (5)
[0049]其中Act extentup是基于有效区间的上限,并且#extentstiOT是层中的区间的数量。
[0050]Bffup= (#rankstier/*rankBWthreshold* (%Bffmig/100.0) *DWd) / (extent腿)(6)
[0051]其中BWup是基于带宽的上限,Srankstier是层中的行列的数量,rankBffthreshold是行列带宽阈值,%BWmig是可用于迁移的带宽的百分比,DWd是决定窗口的持续时间,并且extentM是以兆字节(MB)为单位的区间大小。
[0052]因此,可在决定窗口内使用这些计算以通过对于选择的度量使系统保持在平衡状态来完成运行时动态性能偏斜消除机制的目标之一。
[0053]如前所述,这些机制可应用概率算法以识别用于数据放置活动的潜在的目标,同时确保目标在迁移时不过载。同时,自适应数据算法确保装置(行列)不会未被充分使用。在一个实施例中,对于当前区间池中的每个层,计算和自适应数据算法流程可被描述如下。第一,这些机制可对于每个行列计算行列热量,其中投影行列热量(PRH)可等于实际行列热量(ARH)。第二,按照行列热量的降序排序行列热量。应该注意的是,根据计算系统的需要或所希望的偏好,行列热量可以是一个单一行列热量,或者可包括多个行列热量。此外,根据系统,也可按照升序排序行列热量。第三,计算正被再平衡的一组行列之间的行列热量的平均值(AVE)和标准偏差(STDEV)。第四,这些机制可识别PRH大于AVE的一组(多组)热点行列H。第五,在存在热点行列并且存在目标行列时,这些机制可指定热点行列作为源行列并且从源行列指定其区间之一作为源区间。第六,这些机制可识别PRH小于AVE并且PRH小于行列的输入/输出(I/O)阈值的多个目标行列(冷门行列或仅仅“C”)。可基于装置校准静态地确定行列的阈值以观察在等待时间超过可接受的性能之前行列上的最大可接受负荷是多少。如果热量(源区间)加上PRH(目标行列)小于AVE,则确定在目标行列中是否存在备用容量并把源区间移动到目标行列。否则,把目标区间识别为等于目标行列中的最冷门区间,然后交换目标区间与源区间,其后更新源行列和目标行列的PRH。这些机制可按照行列热量的降序/升序重复行列热量的排序。此外,可采用旨在通过试图实现行列热量之间的更小的标准偏差来使系统中的偏斜最小化的自适应算法。该算法的其它变型用于减小偏斜,如以下所述。
[0054]图4是表示可实现本发明的等待时间曲线400的示例性示图。在数据存储系统内的装置中,例如,图1和图2,可先验地已知与图4中的等待时间曲线(曲线)400相似的等待时间IOPS曲线。等待时间曲线400的垂直轴410表示系统的等待时间,并且水平轴412表示IOPS 406(在图4中示出为406A-406B)。该曲线显示热点区域402 (利用栅格状图案表示)和冷门区域404(利用斜纹线表示)以及利用“A”标记的IPOSA 406A和利用“B”标记的IOPSB 406B。一旦已知10PSB,可计算行列阈值。
[0055]在一个实施例中,用于运行时动态性能偏斜消除的算法的可能的变型使用IOPS等待时间曲线400并且与前面描述的原始算法相似,不同之处在于,如果投影行列热量(PRH)大于行列的IOPSB阈值,则行列被归类为“热点”,即源行列。在一个实施例中,如果PRH小于IOPSB,则行列可被归类为“冷门”,即目标行列。可基于装置类型的IOPSB点、行列中的驱动器的数量和RAID方案计算10PSB。
[0056]在一个实施例中,自适应数据算法的第三变型使用相关系数识别紧密相关的热点区间并且重新分配区间以减少使行列变得过载的工作负荷尖峰。在一个实施例中,这些机制识别正被考虑用于偏斜消除的区间池中的最热点区间的前N%。由于池中的区间的总数可能很大,所以为了效率起见,这些机制可使再平衡操作局限于基于EMA(区间热量)确定的最热点区间的前N%。在这些区间之间计算互相关系数。使用简单的相关群集机制,这些机制将会把区间划分成正相关的区间的群集。对于每个群集,可根据区间热量排序区间。在层中可用的行列之间使用条带化来重新分配区间。
[0057]图5A-?是表不用于性能偏斜消除的各种过程和机制的不例性不图。图5A是表示可实现本发明的各方面的增加行列使用情况的示例性示图500。图5A-5D中的每一个表示几个行列502。在每个行列502A内,存在几个区间;热点区间510或冷门区间512。为了表示热点区间510和/或冷门区间512的迁移的目的,行列502被分成热点行列502A和目标行列502B。在图5A中,可利用同一层中的多个行列的存在识别前提。几个另外的前提可包括:1)行列统计数据的可用性和排序行列的能力,和2)行列结构的可用性,诸如行列映射。
[0058]在一个实施例中,通过具有预先存在的行列的层中的新的行列的增加来触发这些机制。在被触发时,这些机制可对于层中的所有行列计算热量。在性能偏斜超过阈值(阈值能够被定义为系统中的偏斜的可接受的量)时,这些机制可识别热点行列(在热点行列中,热量超过阈值)。目标行列502B可等于新增加的行列。如果存在热点行列502A,则这些机制可把热点区间(510)从热点行列502A迁移到目标行列502B。例如,热点行列502A中的热点区间510被迁移到目标行列502B。随后的迁移显示没有迁移的热点区间510的新的热点行列502A。迁移的热点区间510现在出现在目标行列502B中。图5A表示目标行列502B是空的,并且在热点区间510迁移之后,目标行列现在包含一个热点区间510。
[0059]图5B是表示可实现本发明的各方面的增加行列替代流程的示例性示图。在图5B内,三个方案520、522和524表示具有替代流程的增加行列。在第一方案520中,热点区间510之一从热点行列502A迁移到目标行列502B。发生至新增加的行列的迁移。在第二方案522中,没有热点区间(510)存在于热点行列502A中,并且在热点行列502A中仅发现冷门区间512。因为性能偏斜未超过阈值,所以不发生从热点行列502A到目标行列502B的迁移。在第三方案524中,尽管在热点行列502A中存在热点区间(510),但由于源行列不足够热,所以不发生从热点行列502A到目标行列502B的迁移。
[0060]图5C是表示可实现本发明的性能偏斜使用情况的示例性示图。在一个实施例中,可利用同一层中的多个行列的存在识别前提。几个另外的前提可包括:1)行列统计数据的可用性和排序行列的能力,和2)行列结构的可用性,诸如行列映射。
[0061]在一个实施例中,通过位于决定窗口的当前时间周期来触发这些机制。在被触发时,这些机制可对于层中的所有行列计算热量。在行列性能偏斜超过阈值(阈值能够被定义为系统中的偏斜的可接受的量)时,示出的实施例的机制可识别热点行列(在热点行列中,热量超过阈值)。如果存在热点行列502A,则示出的实施例的机制可目标行列502B(其中源和目标之间的偏斜最大)。如果在目标行列502B中存在备用容量,则这些机制可把热点区间510从热点行列502A移动到目标行列502B。否则,这些机制可交换热点行列502A的热点区间510与目标行列502B的冷门区间512。例如,从热点行列502A迁移的热点区间510现在出现在目标行列502B中。图5C表示目标行列502B在迁移之前仅包含冷门区间512,并且在迁移之后,热点区间510被放置在目标行列502B中,目标行列502B现在包含一个热点区间510和一个冷门区间512。
[0062]图是表示可实现本发明的具有替代流程的性能偏斜消除机制的示例性示图。在图内,三个方案530、532和534表示具有替代流程的性能偏斜使用情况。在第一方案530中,仅一个热点区间510存在于热点行列502A中,并且存在几个冷门区间512。因为源行列不足够热,所以不发生从热点行列502A到目标行列502B的迁移。应该注意的是,不使区间从热点行列迁移到冷门行列的另一条件是迁移将会使冷门行列超过正被再平衡的行列之间的AVE或者迁移将会使冷门行列负荷超过装置阈值。在第二方案532中,热点区间510和冷门区间512都存在于目标行列502B中并且仅热点区间510存在于热点行列502A中。由于性能偏斜未超过阈值,所以不发生迁移。在第三方案534中,热点行列502A完全充满热点区间(510)并且目标行列502B完全充满冷门区间512。发生从热点行列502A到目标行列502B的迁移,或者由于在热点行列502A或冷门行列502B中不存在备用容量,所以“交换” 一些热点区间510与一些冷门区间512。
[0063]图6是表示用于数据存储行列之间的运行时动态性能偏斜的示例性方法600的流程图。在一个实施例中,示出的实施例的机制在多个维度/度量(BW和10PS)上识别长期偏斜,并提供稳定、非侵入并且可调节的策略以消除多层系统的单层内的行列之间的偏斜。通过使用IOPS和BW资源的百分比使用因子,可产生算法并且该算法可自动应用于多个销售商装置。另外,通过使用累加测量值(诸如,指数移动平均值(EMA)),算法可解决尖峰而没有自动反应。概率算法可被使用并应用以识别用于数据放置活动的潜在的目标,同时确保目标在迁移时或在执行迁移计划之后不过载,同时该算法确保装置(行列)不会未被充分使用。在一个实施例中,几种反馈机制被用于调整根据系统活动产生的放置意见的量以识别系统中的“热点”和“冷门”之间的切换,并且在识别出不可补救的情况时自动停止意见产生。
[0064]该方法开始(步骤S602)于通过性能偏斜的存在和事件来触发计划过程(步骤S603)。方法600将会使用以区间粒度收集的统计数据计算行列热量(步骤S604)。细粒度统计数据被包括在该统计数据中,并且方法600将会沿多个维度(诸如,带宽和每秒输入/输出操作)和工作负荷特性考虑各种硬件装置的能力(步骤S606)。识别多个维度上的长期偏斜和短期偏斜(步骤S607)。方法600将会应用维度的百分比使用(步骤S608)。行列之间的平均热量被用于产生计划(步骤S609)。定位目标以自适应地放置数据(步骤S610)。在数据迁移时以及在执行迁移指令之后防止目标(目标装置)过载(步骤S611)。产生用于重新定位、迁移和放置区间的计划(步骤S612)。该方法将会在计划中包括稳定、非侵入并且可调节的策略以消除例如多层系统的单个层内的行列之间的偏斜(步骤S613)。迁移一个或多个区间(步骤S614)。方法600将会把迁移的区间放置在目标行列中(步骤S616)。几个测量值被使用并应用以解决尖峰(步骤S618)。该方法将会应用反馈机制以调整数据的放置,同时保持平衡的区间池(步骤S620)。方法600将会在迁移时使数据存储行列适应于最大使用(步骤S622)。方法600结束(步骤S624)。[0065]如前所述,这些机制使用以区间粒度收集的细粒度统计数据计算行列热量,同时考虑硬件的带宽和IOPS能力以及工作负荷特性。使用行列之间的平均行列热量(变型包括使用IOPS等待时间曲线和相关系数),这些机制可产生用于重新定位区间的计划以便减小系统中的长期性能偏斜而没有突然的自动反应。调整数据(区间)的迁移,并且用于自适应数据计划的计划过程由性能偏斜的存在和其它事件(诸如,硬件的增加/删除/劣化、卷的创建/删除/重新配置以及其它这种结构事件(诸如,合并池))触发。
[0066]应该理解,诸如“强制”、“要求”、“需要”和“必须”的术语为了清楚而表示在这里描述的特定实现方式或应用的情况下做出的实现方式选择,而非意图是限制性的,因为在替代的植入、操作、构造或实现方式中,相同的元件可被定义为不是强制的并且不是要求的或者甚至可被完全消除。另外,在单数上下文中在这里提及或描述的部件或结构可为了清楚以及作为例子而仅在特定实现方式或应用中被描述,而非意图是限制性的,因为在这里描述的方法和系统的替代的植入、操作、构造和/或实现方式中可使用多个部件或结构。
[0067]本领域技术人员将会理解,本发明的各方面可以实现为系统、方法或计算机程序产品。因此,本发明的各方面可以采用通常全部可在本文称为“电路”、“模块”或“系统”的完全硬件实施例、完全软件实施例(包括固件、常驻软件、微码等)或组合软件和硬件方面的实施例的形式。另外,本发明的各方面可以采用实现于具有计算机可读程序代码的一个或多个计算机可读介质的计算机程序产品的形式。
[0068]可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、磁、光学、电磁、红外或半导体系统、设备或装置或者前述各项的任何合适的组合。计算机可读存储介质的更具体的例子(非穷举列表)将会包括下述各项:具有一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光学存储装置、磁存储装置或前述各项的任何合适的组合。在这个文件的上下文中,计算机可读存储介质可以是能够包含或存储由指令执行系统、设备或装置使用或结合指令执行系统、设备或装置使用的程序的任何有形介质。
[0069]可以使用任何合适的介质(包括但不限于无线、有线、光纤光缆、RF等或前述各项的任何合适的组合)传输计算机可读介质上包含的程序代码。可以按照一种或多种编程语言的任何组合编写用于执行本发明的各方面的操作的计算机程序代码,所述编程语言包括:面向对象的编程语言,诸如Java、Smalltalk、C++等;和常规程序化编程语言,诸如“C”编程语言或类似编程语言。程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上并且部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后面的方案中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以(例如,使用互联网服务提供商(ISP)通过互联网)连接到外部计算机。
[0070]以上参考根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图描述了本发明的各方面。将会理解,流程图和/或方框图中的每个方框以及流程图和/或方框图中的方框的组合可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机或者其它可编程数据处理设备的处理器,以产生一台机器,从而指令(所述指令经计算机或者其它可编程数据处理设备的处理器执行)产生用于实现流程图和/或方框图的一个或多个方框中规定的功能/动作的装置。
[0071]这些计算机程序指令也可存储在计算机可读介质中,该计算机可读介质可指示计算机、其它可编程数据处理设备或其它装置按照特定的方式发挥作用,从而存储在计算机可读介质中的指令产生一种制造产品,所述制造产品包括实现流程图和/或方框图的一个或多个方框中规定的功能/动作的指令。计算机程序指令也可被加载到计算机、其它可编程数据处理设备或其它装置上,以使得在所述计算机、其它可编程设备或其它装置上执行一系列的操作步骤以产生计算机实现的过程,从而在该计算机或其它可编程设备上执行的指令提供用于实现流程图和/或方框图的一个或多个方框中规定的功能/动作的过程。
[0072]以上附图中的流程图和方框图表示根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这个方面,流程图或方框图中的每个方框可代表包括用于实现规定的逻辑功能的一个或多个可执行指令的代码的模块、段或一部分。还应该注意的是,在一些替代的实现方式中,方框中标注的功能可以不按附图中标注的次序执行。例如,事实上,根据涉及的功能,连续示出的两个方框可以基本上同时执行,或者这些方框有时候可以以相反的次序执行。还应该注意的是,方框图和/或流程图中的每个方框以及方框图和/或流程图中的方框的组合能够由执行规定的功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合实现。
[0073]尽管已详细表示了本发明的一个或多个实施例,但本领域普通技术人员将会理解,在不脱离如下面的权利要求所阐述的本发明的范围的情况下可做出对这些实施例的修改和改变。
【权利要求】
1.一种在计算存储环境中由处理器装置执行的用于运行时动态性能偏斜消除的方法,包括: 通过使用以区间粒度收集的多个细粒度统计数据来计算多个行列热量,包括考虑带宽(Bff)和每秒输入/输出(IOPS)度量; 产生自适应数据放置计划以重新定位数据; 在多个数据存储行列之间放置数据;以及 根据自适应数据放置计划平衡所述多个数据存储行列。
2.如权利要求1所述的方法,还包括:使用所述多个数据存储行列的平均行列热量、IOPS等待时间曲线和多个相关系数中的一种来产生自适应数据放置计划。
3.如权利要求1所述的方法,还包括执行下面的至少一个步骤: 把数据放置在所述多个数据存储行列中的多个目标之一中;以及 通过性能偏斜的存在和多个事件来触发用于自适应数据计划的计划过程。
4.如权利要求1所述的方法,还包括执行下面的至少一个步骤: 识别带宽(BW)和IOPS度量中的至少一个度量的多个维度上的多个偏斜, 应用所述多个维度的百分比使用, 定位多个目标以用于数据的放置, 使用多个累加测量值以解决多个峰值,以及 应用反馈机制以调整数据的放置。
5.如权利要求1所述的方法,还包括执行下面的至少一个步骤: 在所述多个数据存储行列之间放置数据时防止多个目标过载,以及 在迁移时使所述多个数据存储行列适应于最大使用。
6.如权利要求1所述的方法,还包括执行下面的至少一个步骤: 根据升序和降序之一对所述多个行列热量进行排序, 根据所述多个行列热量计算平均行列热量和标准偏差行列热量之一, 识别具有大于实际行列热量(ARH)的投影行列热量(PRH)的多个热点行列⑶, 在存在所述多个热点行列和多个目标行列时,指定作为最热点行列的源行列并且从源行列指定作为最热点区间之一的源区间,以及 识别所述多个目标行列中PRH小于AVE并且PRH小于所述多个数据存储行列的输入/输出(I/O)阈值的目标行列作为冷门行列(C)。
7.如权利要求6所述的方法,其中识别所述多个目标行列中的作为冷门行列的目标行列包括,如果源区间和PRH小于AVE,则: 如果备用容量存在于所述多个目标行列上,则把源区间移动到所述多个目标行列之一,否则: 在所述多个目标行列之一中识别等于最冷门区间的目标区间,以及 交换目标区间与源区间,其中源行列和目标行列的PRH被更新。
8.一种用于计算存储环境中的运行时动态性能偏斜消除的系统,包括: 处理器装置,能在计算存储环境中操作,其中所述处理器装置适应于执行如权利要求1至7中任何一项所述的步骤。
9.一种用于在计算存储环境中由处理器装置执行的运行时动态性能偏斜消除的计算机程序产品,该计算机程序产品包括非暂态计算机可读存储介质,该非暂态计算机可读存储介质具有存储在其中的计算机可读程序代码部分,当由计算机执行所述计算机可读程序代码部分时,所述计算机可读程序代码部分使计算机执行如权利要求1至7中任何一项所述的步骤。`
【文档编号】G06F12/00GK103502956SQ201280020910
【公开日】2014年1月8日 申请日期:2012年4月12日 优先权日:2011年4月29日
【发明者】S·塞沙德里, L·Y·楚, P·H·穆恩齐 申请人:国际商业机器公司

最新回复(0)