一种监控记录管理方法与装置制造方法

文档序号:6494533阅读:204来源:国知局
一种监控记录管理方法与装置制造方法
【专利摘要】本发明提供了一种监控记录管理技术,用于对内存中存储的监控记录进行管理,监控记录用于监控存储器中的数据块,通过从内存的每条监控记录中读取至少一项监控参数,对监控参数符合阈值监控记录进行或者合并或者拆分。应用本发明提供的监控记录管理技术后,可以减少内存占用或者提高监控记录的精确度。
【专利说明】一种监控记录管理方法与装置
【技术领域】
[0001]本发明涉及存储领域,特别有关于一种监控记录的管理技术。
【背景技术】
[0002]存储系统中的数据存在生命周期特征。例如一部近期制作的网络视频,很多人看,访问量很高,那么在视频服务器上,这个视频是热点数据;随着时间的推移,几个月后,这个视频已经不太受人关注了,视频的访问量剧减,在视频服务器上,这个视频属于热度一般的数据;几年后,这个视频几乎没有人再看了,也几乎没有人访问,那么在视频服务器上,这个视频属于冷点数据。
[0003]对处于生命周期不同阶段的数据可以进行不同的管理。例如可以对数据进行分层存储,把热点数据迁移到存储系统中读取速度快的高性能层级,提高这些数据的读取速度;把冷点数据迁移到存储系统中分层存储系统中的读取速度较慢的低性能层级,以较低的价格满足存储系统的性能和容量需求。
[0004]数据块是存储系统中的基本存储单元,数据被存储在数据块中。通过监控每个数据块的监控参数,例如访问频率、IO大小等,然后把监控到的数据存储到存储介质(例如内存)中,通过分析监控数据可以实现对数据块中数据的生命周期的监控。但是监控记录的数量由数据块总量决定,往往难以满足用户的实际需求,例如当存储系统中存储了海量数据块后,大量的监控记录会对存储介质的容量提出了巨大的挑战。

【发明内容】

[0005]本发明提供一种监控记录管理方法和装置,可以对监控记录的监控粒度进行更改。
[0006]第一方面,本发明实施例提供一种监控记录管理方法,内存中存储有多条监控记录,每条监控记录监控存储器中的一个数据块,一条监控记录是一个数据块的各项监控参数的集合,所述监控参数例如包括所监控数据块的每秒读写次数10PS,该方法包括:从内存的每条监控记录中读取至少一项监控参数;从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,将读取到的监控记录进行合并生成合并监控记录,所述合并监控记录中记录有所监控的数据块的标识,从内存中删除被读取的监控记录,其中,所述合并监控记录中各项监控参数的值,等于将所监控的数据块视为一个数据块时各项监控参数的值;把所述合并监控记录写入内存,所述合并监控记录用于监控合并前各条监控记录所监控的数据块。
[0007]在第一方面的第一种可能的实现方式中,把所述合并监控记录写入内存之后,进一步包括:监控对存储器中数据块的I/o请求;将合并监控记录所监控的数据块的I/O请求记录,用于更新内存中的所述合并监控记录的各项监控参数。
[0008]结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,具体为:读取IOPS符合预设的IOPS阈值且IO次数符合预设的IO次数阈值的监控记录。
[0009]结合第一方面、第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,把合并监控记录写入内存之后,进一步包括:从内存中读取所述合并监控记录,将所述合并监控记录拆分成至少一个拆分监控记录,每个所述拆分监控记录用于监控至少一个数据块,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值;从内存中删除被读取的合并监控记录,并把各所述拆分监控记录写入内存。
[0010]第二方面,本发明实施例提供一种监控记录拆分方法,内存中存储有多条监控记录,每条监控记录监控存储器中的至少一个数据块,每条监控记录是所监控数据块的各项监控参数的集合,所述监控参数例如包括被监控数据块的每秒读写次数10PS,该方法包括:从内存的每条监控记录中读取至少一项监控参数;
[0011]把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值;把拆分后监控记录写入内存,所述拆分后监控记录用于监控所携带偏移地址和数据长度的数据。
[0012]在第二方面的第一种可能的实现方式中,拆分后各监控记录中各项监控参数的值具体为:拆分前监控记录中各项监控参数的值,按照拆分后各监控记录中携带的数据长度,分摊到拆分后各监控记录中。
[0013]第三方面,本发明实施例提供一种监控记录管理装置,内存中存储有多条监控记录,每条监控记录监控存储器中的一个数据块,一条监控记录是一个数据块的各项监控参数的集合,所述监控参数例如包括所监控数据块的每秒读写次数10PS,该装置包括:第一读取模块,用于从内存的每条监控记录中读取至少一项监控参数;合并模块,用于从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,将读取到的监控记录进行合并生成合并监控记录,所述合并监控记录中记录有所监控的数据块的标识,从内存中删除被读取的监控记录,其中,所述合并监控记录中各项监控参数的值,等于将所监控的数据块视为一个数据块时各项监控参数的值;第一写入模块,用于把所述合并监控记录写入内存,所述合并监控记录用于监控合并前各条监控记录所监控的数据块。
[0014]在第三方面的第一种可能的实现方式中,所述第一写入模块还用于监控对存储器中数据块的I/o请求,将合并监控记录所监控的数据块的I/O请求记录,用于更新内存中的所述合并监控记录的各项监控参数。
[0015]结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,第一拆分模块:用于从内存中读取所述合并监控记录,将所述合并监控记录拆分成至少一个拆分监控记录,每个所述拆分监控记录用于监控至少一个数据块,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值;从内存中删除被读取的合并监控记录,并把各所述拆分监控记录写入内存。
[0016]第四方面,本发明实施例提供一种监控记录拆分装置,内存中存储有多条监控记录,每条监控记录监控存储器中的至少一个数据块,每条监控记录是所监控数据块的各项监控参数的集合,所述监控参数例如包括被监控数据块的每秒读写次数IOPS,该装置包括:第二读取模块,用于从内存的每条监控记录中读取至少一项监控参数;第二拆分模块,用于把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值;第二写入模块,用于把拆分后监控记录写入内存,所述拆分后监控记录用于监控所携带偏移地址和数据长度的数据。
[0017]在第四方面的第一种可能的实现方式中,把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值,拆分前监控记录中各项监控参数的值,按照拆分后各监控记录中携带的数据长度,分摊到拆分后各监控记录中。
[0018]结合第四方面、第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式,第二读取模块具体用于:从内存的每条监控记录中读取随机IO数量和总IO数量,所述阈值是随机IO数量占总IO数量的比例。
[0019]第五方面,本发明实施例提供一种存储控制器,存储控制器包括CPU,与CPU通信的通信接口以及与CPU通信的内存:所述通信接口,用于和存储器通信;所述内存,用于存储有多条监控记录,每条监控记录监控存储器中的一个数据块,一条监控记录是一个数据块的各项监控参数的集合,所述监控参数包括所监控数据块的每秒读写次数IOPS ;以及所述处理器,用于执行程序,其中程序用于执行:从内存的每条监控记录中读取至少一项监控参数;从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,将读取到的监控记录进行合并生成合并监控记录,所述合并监控记录中记录有所监控的数据块的标识,从内存中删除被读取的监控记录,其中,所述合并监控记录中各项监控参数的值,等于将所监控的数据块视为一个数据块时各项监控参数的值;把所述合并监控记录写入内存,所述合并监控记录用于监控合并前各条监控记录所监控的数据块。
[0020]第六方面,本发明实施例提供一种存储控制器,所述存储控制器包括CPU,与CPU通信的通信接口以及与CPU通信的内存:所述通信接口,用于和存储器通信;
[0021]所述内存,用于存储多条监控记录,每条监控记录监控存储器中的至少一个数据块,每条监控记录是所监控数据块的各项监控参数的集合,所述监控参数包括被监控数据块的每秒读写次数IOPS ;以及所述处理器,用于执行程序,其中程序用于:从内存的每条监控记录中读取至少一项监控参数;把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值;把拆分后监控记录写入内存,所述拆分后监控记录用于监控所携带偏移地址和数据长度的数据。
[0022]应用本发明实施例后,可以拆分或者合并监控记录,也就是说可以更改监控记录的监控粒度。
【专利附图】

【附图说明】[0023]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0024]图1是应用本发明实施例一的拓扑图;
[0025]图2是本发明实施例结构图;
[0026]图3是本发明实施例结构图;
[0027]图4是本发明实施例监控记录管理方法流程图;
[0028]图5是本发明实施例监控记录拆分方法实施例流程图;
[0029]图6是本发明实施例监控记录管理装置结构图;以及
[0030]图7是本发明实施例监控记录拆分装置结构图。
【具体实施方式】
[0031]下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032]存储系统是用于提供数据存储服务的系统,可以是由物理上相对独立的存储控制器和存储器组成,也可以是具有存储功能的服务器。数据块(Chunk)是存储器中基本的逻辑存储单元,用于存储数据,数据块是存储器中逻辑上连续的一段存储空间,每个数据块映射有物理存储介质,这些物理存储介质可以是不连续的。数据块的可以是定长也可以是变长,其容量大小可以是只有几K字节,也可以是几G字节。
[0033]为了识别存储数据冷热程度等信息,需要对存储数据进行监控,以数据块为基本监控单位生成监控记录,监控记录由至少一项监控参数组成。每项所述监控参数用于监控数据块的读写状况的一个维度。
[0034]可以为每个数据块设置一条监控记录,这些监控记录需要使用存储介质来存放,监控记录可以与业务数据存储在一起。为了提高监控效率,尽量减少对业务数据读/写(Input/Output, I/O)的影响,1/0也写作10,这些监控记录也可以和业务数据分开存储,例如存储在存储系统的内存中。内存可以采用随机存储器(Random Access Memory, RAM)固态硬盘(Solid State Disk, SSD)或者闪存(Flash),如果对读写速度要求不高,也可以使用磁盘、磁带等存储介质。
[0035]在处理IO请求时,如果IO请求的长度超过了数据块的大小,那么这个IO请求会根据数据块的大小被拆分,然后存到不同的数据块中,相应的,本发明实施例中,在通过IO请求统计各数据块的监控记录时,也就是以拆分后的IO请求为统计依据。例如,写IO请求的长度是100K,而单个的数据块只有30K,那么可以把这个IO请求拆分成4个子IO请求,数据被分别写到4个数据块中,各数据块的监控记录仅监控这个数据块所对应的那个IO子请求。也就是说,本发明实施例中,在IO请求有拆分的情况下,“10请求”一词指的是拆分后的IO请求。
[0036]如图1所示,是应用本发明实施例一的拓扑图。主机对存储系统中的存储器进行读写访问时,可以由监控程序对业务下发的IO请求进行监控;通过监控获得数据块的IOPS、IO下发频度等各项监控参数,然后把监控参数组成的监控记录存储到内存中;数据生命周期管理程序对监控记录进行分析,然后通过下发数据管理指令给存储器,对存储器中的数据块进行管理,例如把IO下发频繁的数据块迁移到存储器中读写速度更快的区域,图中的内存设置于存储系统的控制器中,监控程序、数据生命周期管理程序在存储控制器中的CPU中运行。
[0037]每条监控记录包括若干项监控参数,监控参数记录数据块的读/写情况,监控参数可以包括:每秒读操作次数(Input Operations Per Second);数据块每秒写操作次数(Output Operations Per Second)或者每秒读写操作次数(IOPS, Input/OutputOperations Per Second)中的一个或多个。监控参数还可以包括读10计数(read 10count)、写10 (write 10 count)计数或者读写10总数(10 count)中的一个或多个。此夕卜,监控参数还可以包括:读10大小(read 10 size),读10的大小是指一个读10所请求读出数据的大小,10请求所希望读出的数据可以小于数据块的大小,即只读出一个数据块中的一部分数据;写10大小(write 10 size),写10的大小是指一个读10所请求写入数据的大小,10请求所希望写入的数据可以小于数据块的大小,即只占用一个数据块的一部分;读操作次数;写操作次数;随机度,随机度是指随机10占总共10的比例;1/0的频度,1/0的频度是单位时间内10请求数量;1/0时延(10 Iantency)大小(存储服务器对主机请求的响应时间)。
[0038]当存储器中存在海量的数据块时,监控记录需要占用的内存也非常大,本发明实施例可以用一条监控记录监控多个数据块,避免发生由于内存空间不够,导致无法为新增的数据块创建监控记录的情况。另外一方面,本发明实施例也可以由多条监控记录监控同一个数据块的不同范围,增强监控结果的精细度。
[0039]实施例一:
[0040]本发明的一个实施例提供一种监控记录管理方法,可以应用于存储控制器中。
[0041]存储控制器的内存中存储有多条监控记录,每条监控记录监控存储器中的一个数据块,一条监控记录是一个数据块的各项监控参数的集合,所述监控参数例如包括所监控数据块的每秒读写次数10PS、数据块的读写频度以及数据块的读写随机度。监控程序对数据块的读写请求进行监控,并用监控结果实时更新内存中的监控记录。在网络存储技术(Network Storage Technologies,NAS)或者存储区域网(Storage Area Network, SAN)中,存储控制器相对于存储器是物理上独立的,在存储服务器中,存储服务器自身具有存储控制器的,相当于存储控制器集成在存储服务器中,因此执行这个方法的是存储服务器本身,在其他形态的存储系统中,可以由具有与存储控制器相似计算能力的装置来执行这个方法。在本发明实施例中,不论是否是物理上独立的存储控制器,只有具有与其相似的功能,我们都统称为存储控制器。
[0042]参见图2或者图3,存储系统4由存储控制器41、存储器42组成,其中存储控制器41包括CPU411、与CPU411通信的通信接口 412以及与CPU411通信的内存413。存储控制器通过通信接口 412与存储器42进行通信。CPU411运行计算机程序,计算机程序可以包括程序代码,运行程序代码可以执行如图4所示的步骤。
[0043]步骤11、从内存的每条监控记录中读取至少一项监控参数。[0044]在本步骤中,每条监控记录用于监控存储器中的一个数据块,每条监控记录是由至少一项监控参数组成的,每一项监控参数是通过监控对IO请求对数据块的读写情况获得的。请参见附图2的示例,内存413中一共有5条监控记录,分别是监控记录A、监控记录B、监控记录C、监控记录D以及监控记录E。各条监控记录监控一个数据块,一共监控5个数据块,每条监控记录内包括了三项监控参数,例如监控记录A包括了监控参数Al、监控参数A2以及监控参数A3,这三项监控参数例如可以分别是10PS、读写频度、IO计数。
[0045]步骤11可以由用户主动触发,也可以由存储系统根据预设的阈值条件自行触发。例如在已有的监控参数已经占满了内存,也就是说内存已经没有多余空间存放更多的监控记录时,执行步骤11。这时,如果需要再对新的数据块进行监控时,将出现新数据块的监控参数没有内存可以使用的情况。或者被监控的数据块普遍很小,例如都是只有几K的大小,没必要每个数据块单独设置监控参数,也可以执行11步骤。
[0046]步骤12、从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,将读取到的监控记录进行合并生成合并监控记录,所述合并监控记录中记录有所监控的数据块的标识,从内存中删除被读取的监控记录,其中,所述合并监控记录中各项监控参数的值,等于将所监控的多个数据块视为一个数据块时各项监控参数的值。
[0047]本发明各实施例中,将读取到的监控记录进行合并生成合并监控记录,是指将读取到的监控记录中,有一项或多项监控参数差值符合预设阈值的监控记录进行合并。根据应用目的的不同,各项监控参数差值的阈值,可以由用户指定。合并监控记录中携带有所监控数据块的标识,不同数据块的标识不同。
[0048]合并前,各监控记录也记录有各自监控的数据块的标识。所述合并监控记录监控了多个数据块,所以合并监控记录中记录这多个数据块的标识,不同数据块的标识不同,通过标识,用户可以获知这条监控参数所监控的具体是哪些数据块。
[0049]本步骤中,对步骤11读取到的内容进行差值的阈值检测。检测的监控参数的数量可以是一项或者多项,也就是说可以仅判断一项监控参数,如果不同的监控记录中,这一项监控参数的差值符合阈值,阈值的一种符合方式是小于或者不大于一个特定的值,则将这些监控记录整体读出,假设步骤101中读取出的监控参数包括10PS,监控记录A、监控记录B、监控记录C、监控记录D、监控记录E中记录的IOPS分别是50、52、60、61、70,而IOPS的阈值为3,也就是说IOPS的差值小于3的监控记录都符合合并的条件。则监控记录A与监控记录B的IOPS差值52-50=2符合阈值,监控记录C与监控记录D的IOPS差值61-60=1也符合阈值。那么监控记录A和监控记录B的各项监控参数会被读出内存并分别进行合并,合并后的监控记录同时记录有数据块A与数据块B的监控记录;监控记录C和监控记录D也会被读出内存并进行合并,合并后的监控记录同时记录有数据块C与数据块D的监控记录。
[0050]为了方便理解对不同种类监控参数的差值进行阈值检测的情况,下面在前面例子的基础上进一步举例,假设除了 10PS,还对监控参数IO计数(10 count)进行差值比较,监控参数A、监控记录B、监控记录C、监控记录D、监控记录E中,IO计数分别是10、11、20、30、40,IO计数的阈值是5,也就是说只有监控参数A与监控参数B的IO计数的差值11-10=1符合小于阈值的要求。这样的话,监控记录A与监控记录B同时满足IOPS与IO计数的阈值要求,监控记录C与监控记录D虽然满足IOPS的阈值要求,但是不满足IO计数的阈值要求。因此仅监控记录A和监控B会被读出内存并进行合并以生成合并监控记录,监控记录C与监控记录D均不会被从内存中读出。
[0051]合并监控参数的值,等于将所监控的数据块视为一个数据块时各项监控参数的值,或者说是对所监控的数据块集合进行监控时获得的监控参数值,对数据块集合中任意数据块的一次IO请求都会被记为对整个数据块集合的一次IO请求。合并监控参数的值由所有所监控数据块的监控参数合并生成,合并监控参数所监控的数据块,是被合并的监控参数所监控的数据块组成的集合。合并前的监控记录记录了各自监控的数据块的I/o请求记录,合并监控记录记录了所监控的数据块集合的I/O请求记录。
[0052]这样相当于扩大了监控粒度,由原来记录单个数据块的监控参数变为记录多个数据块的监控参数。也就是被合并的监控记录原本各自监控有数据块,合并监控参数中各项监控记录的值等于对这些数据块一起进行监控所得到的值,合并监控参数中各项监控记录也可以称为合并监控参数。
[0053]举例来说,图2中监控参数A、监控参数B都由三项监控参数组成,这三项监控参数分别是10PS、10计数,IO频度,其中监控记录A中IOPS的值是50、IO计数的值是10,IO频度是10 ;监控记录B中IOPS的值是52、10计数的值是11,IO频度是20。本发明实施例中,监控参数的值是直接相加,因为如果将数据块A和数据块B组成的集合视为一个新的数据块AB的话,以IOPS为例,对数据块A或者数据块B的IO都属于对数据块AB的10,因此都应该被计入合并后的IOPS中。那么合并监控记录中各项监控参数的值是:10PS=50+52=102,IO计数=10+11=21,IO频度=10+20=30。由于合并生成的合并监控参数已经整合了被合并监控参数的内容,被合并监控参数所监控的数据块的IO情况已经记录在合并监控记录中,因此被合并的监控记录可以删除,由合并监控记录替代。需要特别说明的是,删除被合并监控记录的操作可以在这些参数被读出以后、合并操作完成之前执行,也可以在合并操作完成以后再执行,前一种做法可以尽早释放内存空间,后一种做法可以提高安全性,例如可以避免合并监控记录还没有计算出来时发生断电导致的数据丢失。
[0054]本发明实施例中,可以通过IOPS和IO计数这两项监控参数来判断数据块的冷热程度。如果两个监控记录中的IOPS和IO计数相近,则认为这两个监控记录对应的数据块冷热程度相近。如果都是热数据块,可以一起迁移到读取速度较快的存储介质中去,如果都是冷数据,可以一起迁移到读取速度较慢的存储介质中去。
[0055]本发明实施例中,可以通过冷热变化时间点、冷热变化时间间隔以及突发性IO访问的频率这三项监控参数来判断数据块冷热变化规律。如果两个监控记录中,这三项监控参数的差值都符合各自的预设阈值,也就是说冷热变化时间点相近,冷热变化时间间隔相近,且突发性IO的次数相近。则认为这两个监控记录所监控的数据块具有相近的冷热变化规律,可以把这些数据块的监控记录合并存储。
[0056]步骤13、把所述合并监控记录写入内存,所述合并监控记录用于监控合并前各条监控记录所监控的数据块。
[0057]合并监控参数写入内存后,可以像余下的没有合并的监控参数一样供用户使用。继续本实施例中的举例,参见图3,监控记录AB是由图2中监控记录A与监控记录B合并生成,图2和图3中的虚线是表示监控记录与被数据块之间的对应关系。内存中监控记录的数量由图2的5条减少到图3的4条,减少了内存空间的占用。[0058]监控记录AB中各项监控参数的值和监控记录A与监控记录B中的监控记录合并生成,监控记录AB可以同时监控对数据块A和数据块B的IO请求。
[0059]实施例二
[0060]如图4,在实施例一的基础上,还可以进一步包括步骤S14。
[0061 ] 步骤S14、监控主机对存储器中数据块的I/O请求,将合并监控记录所监控的数据块的I/o请求记录,用于更新内存中的所述合并监控记录的各项监控参数,也就是说每个新增的IO请求,只要是对合并监控记录所监控的数据块的IO请求,都会被计入合并监控记录的监控参数中。以实施例一中的具体示例为例,如果合并监控记录写入内存后,又有了新的IO请求访问数据块A或者访问数据块B,那么把这个新的IO请求统计到监控记录AB中去。
[0062]实施例三
[0063]此外,在实施例一或二的基础之上,还可以包括监控记录的拆分方法。拆分方法一,参见参见图4的步骤S15。在监控记录合并完成后,如果有需要还可以将合并后的监控记录重新拆开并存入内存,本实施例中把拆开生成的监控记录称为拆分监控记录。例如当内存空间有大量空闲,或者用户希望减小监控粒度的时候。拆开的方法是,从内存中读取所述合并监控记录,将所述合并监控记录拆分成至少一个拆分监控记录,每个所述拆分监控记录用于监控至少一个数据块,所述拆分监控记录中各项监控记录的值,等于将所监控的数据块视为一个数据块时各项监控记录的值。
[0064]合并监控记录中携带有所监控数据块的标识。当一个合并监控记录监控三个或者三个以上监控记录时,其拆分方法不再唯一。例如合并监控记录监控了 3个数据块,可以这个合并监控记录拆分成3个监控记录;每个监控记录监控一个数据块;也可以拆分成2个监控记录,其中一个监控记录监控2个数据块,另外一个监控记录监控I个数据块。
[0065]监控记录的拆分是合并监控记录的逆过程,在理解实施例一、二的基础上,拆分方法可以有多种,例如拆分后每项监控参数可以按照监控的数据块数量来分摊。一个简单的示例是:一个监控了 3个数据块的监控记录中,监控参数10PS=60,如果将这个监控记录拆分成2份,其中一份监控2个数据块,另外一份监控I个数据块,那么拆分后的监控记录中,前者的10PS=40,后者的10PS=20。
[0066]本实施例还提供另外一种拆分方法,参见图5,拆分过程可以不依赖监控数据所监控的数据块的数量或数据块大小,对合并监控记录或者单个数据块的监控记录进行拆分,拆开生成的监控记录称为拆分监控记录,也就是说图5中的方法可以与实施例一、二一起执行,也可以单独执行。拆分后的监控记录可以携带所监控数据的偏移地址和长度,也可以进一步携带这段监控数据所属的数据块。拆分后的监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值。在一种实施方式中,每项监控参数的值,可以按照所监控的数据量占被拆分监控记录所监控数据量的百分比大小来分摊,也就是说,按照拆分后各监控记录中携带的数据长度,把监控参数分摊到拆分后的各个监控记录中。
[0067]如图5所示的拆分方法,包括以下步骤。
[0068]步骤,21、从内存的每条监控记录中读取至少一项监控参数。
[0069]步骤22、把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值。其中,拆分监控记录中各项监控参数的值与被拆分监控记录中对应监控参数的比值,可以是这个拆分监控记录所监控数据占被拆分监控记录所监控数据量的比值。
[0070]步骤23、把拆分后监控记录写入内存,所述拆分后监控记录用于监控所携带偏移地址和数据长度的数据。
[0071]—个简单的示例是:一个监控记录中监控参数10PS=60,这个监控记录监控了任意数量的数据块。如果将这个监控记录拆分成2份监控记录,如果按照数据量长度来分摊监控记录中的各项监控参数,其中第一份监控记录所监控的数据量大小是第二份的2倍,那么拆分后的监控记录中,前者的10PS=40,后者的10PS=20。每份监控记录还携带有所监控数据的偏移地址和长度,偏移地址是数据的起始地址,通过偏移地址和长度可以找到被监控的数据。
[0072]随机度可以作为是否拆分监控记录的依据:分析内存中的监控记录,找到随机IO数量和总IO数量这两项监控参数,把随机IO数量占总IO数量的比例作为随机度。对于随机度高的数据块中的数据,不同的部分的访问频率可能相差比较大,对于这样的监控记录,在内存充足的情况下,进行拆分可以提高监控精度。随机IO数量和总IO数量都属于监控参数。随机IO是相对于连续IO而言,指两次不同的读/写10,前一次的结束地址与后一次的起始地址相差很大,可以由用户指定一个阈值,前一次的结束地址与后一次的起始地址相差超过这个阈值就被认为随机IO;连续IO指两次不同的读/写10,前一次的结束地址与后一次的起始地址相差不大。在其他实施例中,可以使用随机度以外的其他参数,例如将IOPS大于预设阈值的监控记录进行拆分,或者是将写IO大小、IO时延均符合各自阈值的监控记录进行拆分。
[0073]实施例四:
[0074]本发明的实施例还提供一种监控记录管理装置,该装置例如是存储控制器或运行在存储控制器中的程序,并且这个装置可以应用上述方法。存储系统由存储控制器、内存、存储器组成,内存中存储有多条监控记录,每条监控记录监控存储器中的一个数据块,一条监控记录是一个数据块的各项监控参数的集合,所述监控参数例如包括所监控数据块的每秒读写次数10PS、数据块的读写频度以及数据块的读写随机度。监控程序对数据块的读写请求进行监控,并用监控结果实时更新内存中的监控记录。在网络存储技术(NetworkStorage Technologies, NAS)或者存储区域网(Storage Area Network, SAN)中,存储控制器相对于存储器是物理上独立的,在存储服务器中,存储服务器自身具有存储控制器的,相当于存储控制器集成在存储服务器中,因此执行这个方法的是存储服务器本身,在其他形态的存储系统中,可以由具有与存储控制器相似计算能力的装置来执行这个方法。在本发明实施例中,不论是否是物理上独立的存储控制器,只有具有与其相似的功能,我们都统称为存储控制器。
[0075]参考图6,监控记录管理装置5包括第一读取模块51、与第一读取模块51连接的合并模块52以及与合并模块52连接的第一写入模块53,下面对各功能模块的功能继续逐
一介绍。
[0076]第一读取模块51,用于从内存的每条监控记录中读取至少一项监控参数。
[0077]在本步骤中,每条监控记录用于监控存储器中的一个数据块,每条监控记录是由至少一项监控参数组成的,每一项监控参数是通过监控对IO请求对数据块的读写情况获得的。请参见附图2的示例,内存中一共有5条监控记录,分别是监控记录A、监控记录B、监控记录C、监控记录D以及监控记录E。各条监控记录监控一个数据块,一共监控5个数据块,每条监控记录内包括了三项监控参数,例如监控记录A包括了监控参数Al、监控参数A2以及监控参数A3,这三项监控参数例如可以分别是10PS、读写频度、IO计数。
[0078]第一读取模块的动作是否执行可以由用户主动触发,也可以由存储系统根据预设的阈值条件自行触发。例如在已有的监控参数已经占满了内存,也就是说内存已经没有多余空间存放更多的监控记录时,执行第一读取模块的动作。这时,如果需要再对新的数据块进行监控时,将出现新数据块的监控参数没有内存可以使用的情况。或者被监控的数据块普遍很小,例如都是只有几K的大小,没必要每个数据块单独设置监控参数,也可以执行第一读取模块的动作。
[0079]合并模块52、用于从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,将读取到的监控记录进行合并生成合并监控记录,所述合并监控记录中记录有所监控的数据块的标识,从内存中删除被读取的监控记录,其中,所述合并监控记录中各项监控参数的值,等于将所监控的多个数据块视为一个数据块时各项监控参数的值。
[0080]本发明各实施例中,将读取到的监控记录进行合并生成合并监控记录,是指将读取到的监控记录中,有一项或多项监控参数差值符合预设阈值的监控记录进行合并。根据应用目的的不同,各项监控参数差值的阈值,可以由用户指定。合并监控记录中携带有所监控数据块的标识,不同数据块的标识不同。
[0081]合并前,各监控记录也记录有各自监控的数据块的标识。所述合并监控记录监控了多个数据块,所以合并监控记录中记录这多个数据块的标识,不同数据块的标识不同,通过标识,用户可以获知这条监控参数所监控的具体是哪些数据块。
[0082]合并模块52对读取模块51读取到的内容进行差值的阈值检测。检测的监控参数的数量可以是一项或者多项,也就是说可以仅判断一项监控参数,如果不同的监控记录中,这一项监控参数的差值符合阈值,阈值的一种符合方式是小于或者不大于一个特定的值,则将这些监控记录整体读出,假设步骤101中读取出的监控参数包括10PS,监控记录A、监控记录B、监控记录C、监控记录D、监控记录E中记录的IOPS分别是50、52、60、61、70,而IOPS的阈值为3,也就是说IOPS的差值小于3的监控记录都符合合并的条件。则监控记录A与监控记录B的IOPS差值52-50=2符合阈值,监控记录C与监控记录D的IOPS差值61-60=1也符合阈值。那么监控记录A和监控记录B的各项监控参数会被读出内存并分别进行合并,合并后的监控记录同时记录有数据块A与数据块B的监控记录;监控记录C和监控记录D也会被读出内存并进行合并,合并后的监控记录同时记录有数据块C与数据块D的监控记录。
[0083]为了方便理解对不同种类监控参数的差值进行阈值检测的情况,下面在前面例子的基础上进一步举例,假设除了 10PS,还对监控参数IO计数(10 count)进行差值比较,监控参数A、监控记录B、监控记录C、监控记录D、监控记录E中,IO计数分别是10、11、20、30、40,IO计数的阈值是5,也就是说只有监控参数A与监控参数B的IO计数的差值11-10=1符合小于阈值的要求。这样的话,监控记录A与监控记录B同时满足IOPS与IO计数的阈值要求,监控记录C与监控记录D虽然满足IOPS的阈值要求,但是不满足IO计数的阈值要求。因此仅监控记录A和监控B会被读出内存并进行合并以生成合并监控记录,监控记录C与监控记录D均不会被从内存中读出。
[0084]合并监控参数的值,等于将所监控的数据块视为一个数据块时各项监控参数的值,或者说是对所监控的数据块集合进行监控时获得的监控参数值,对数据块集合中任意数据块的一次IO请求都会被记为对整个数据块集合的一次IO请求。合并监控参数的值由所有所监控数据块的监控参数合并生成,合并监控参数所监控的数据块,是被合并的监控参数所监控的数据块组成的集合。合并前的监控记录记录了各自监控的数据块的I/o请求记录,合并监控记录记录了所监控的数据块集合的I/O请求记录。
[0085]这样相当于扩大了监控粒度,由原来记录单个数据块的监控参数变为记录多个数据块的监控参数。也就是被合并的监控记录原本各自监控有数据块,合并监控参数中各项监控记录的值等于对这些数据块一起进行监控所得到的值,合并监控参数中各项监控记录也可以称为合并监控参数。
[0086]举例来说,图2中监控参数A、监控参数B都由三项监控参数组成,这三项监控参数分别是10PS、10计数,IO频度,其中监控记录A中IOPS的值是50、IO计数的值是10,IO频度是10 ;监控记录B中IOPS的值是52、10计数的值是11,IO频度是20。本发明实施例中,监控参数的值是直接相加,因为如果将数据块A和数据块B组成的集合视为一个新的数据块AB的话,以IOPS为例,对数据块A或者数据块B的IO都属于对数据块AB的10,因此都应该被计入合并后的IOPS中。那么合并监控记录中各项监控参数的值是:10PS=50+52=102,IO计数=10+11=21,IO频度=10+20=30。由于合并生成的合并监控参数已经整合了被合并监控参数的内容,被合并监控参数所监控的数据块的IO情况已经记录在合并监控记录中,因此被合并的监控记录可以删除,由合并监控记录替代。需要特别说明的是,删除被合并监控记录的操作可以在这些参数被读出以后、合并操作完成之前执行,也可以在合并操作完成以后再执行,前一种做法可以尽早释放内存空间,后一种做法可以提高安全性,例如可以避免合并监控记录还没有计算出来时发生断电导致的数据丢失。
[0087]本发明实施例中,可以通过IOPS和IO计数这两项监控参数来判断数据块的冷热程度。如果两个监控记录中的IOPS和IO计数相近,则认为这两个监控记录对应的数据块冷热程度相近。如果都是热数据块,可以一起迁移到读取速度较快的存储介质中去,如果都是冷数据,可以一起迁移到读取速度较慢的存储介质中去。
[0088]本发明实施例中,可以通过冷热变化时间点、冷热变化时间间隔以及突发性IO访问的频率这三项监控参数来判断数据块冷热变化规律。如果两个监控记录中,这三项监控参数的差值都符合各自的预设阈值,也就是说冷热变化时间点相近,冷热变化时间间隔相近,且突发性IO的次数相近。则认为这两个监控记录所监控的数据块具有相近的冷热变化规律,可以把这些数据块的监控记录合并存储。
[0089]第一写入模块53、用于把所述合并监控记录写入内存,所述合并监控记录用于监控合并前各条监控记录所监控的数据块。
[0090]合并监控参数写入内存后,可以像余下的没有合并的监控参数一样供用户使用。继续本实施例中的举例,参见图3,监控记录AB是由图2中监控记录A与监控记录B合并生成。内存中监控记录的数量由图2的5条减少到图3的4条,减少了内存空间的占用。
[0091]监控记录AB中各项监控参数的值和监控记录A与监控记录B中的监控记录合并生成,监控记录AB可以同时监控对数据块A和数据块B的IO请求。
[0092]实施例五
[0093]如图6,在实施例四的基础上,写入模块还可以用于监控主机对存储器中数据块的I/o请求,将合并监控记录所监控的数据块的I/O请求记录,用于更新内存中的所述合并监控记录的各项监控参数。也就是说每个新增的IO请求,只要是对合并监控记录所监控的数据块的IO请求,都会被计入合并监控记录的监控参数中。以实施例四中的具体示例为例,如果合并监控记录写入内存后,又有了新的IO请求访问数据块A或者访问数据块B,那么把这个新的IO请求统计到监控记录AB中去。
[0094]实施例六
[0095]此外,在实施例四或五的基础之上,还可以包括和第一写入模块53连接的拆分模块54。参见6图。在监控记录合并完成后,如果有需要,拆分模块54可以将合并后的监控记录重新拆开并存入内存,本实施例中把拆开生成的监控记录称为拆分监控记录。例如当内存空间有大量空闲,或者用户希望减小监控粒度的时候。拆分模块54的功能是用于从内存中读取所述合并监控记录,将所述合并监控记录拆分成至少一个拆分监控记录,每个所述拆分监控记录用于监控至少一个数据块,所述拆分监控记录中各项监控记录的值,等于将所监控的数据块视为一个数据块时各项监控记录的值。
[0096]合并监控记录中携带有所监控数据块的标识。当一个合并监控记录监控三个或者三个以上监控记录时,其拆分方法不再唯一。例如合并监控记录监控了 3个数据块,可以这个合并监控记录拆分成3个监控记录;每个监控记录监控一个数据块;也可以拆分成2个监控记录,其中一个监控记录监控2个数据块,另外一个监控记录监控I个数据块。
[0097]监控记录的拆分是合并监控记录的逆过程,在理解实施例一、二、四、五的基础上,拆分方法可以有多种,例如拆分后每项监控参数可以按照监控的数据块数量来分摊。一个简单的示例是:一个监控了 3个数据块的监控记录中,监控参数10PS=60,如果将这个监控记录拆分成2份,其中一份监控2个数据块,另外一份监控I个数据块,那么拆分后的监控记录中,前者的10PS=40,后者的10PS=20。
[0098]实施例七
[0099]本实施例提供另外一种拆分技术,参见图7,拆分过程可以不依赖监控数据所监控的数据块的数量或数据块大小,对合并监控记录或者单个数据块的监控记录进行拆分,拆开生成的监控记录称为拆分监控记录。拆分后的监控记录可以携带所监控数据的偏移地址和长度,也可以进一步携带这段监控数据所属的数据块。拆分后的监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值。在一种实施方式中,每项监控参数的值,可以按照所监控的数据量占被拆分监控记录所监控数据量的百分比大小来分摊,也就是说,按照拆分后各监控记录中携带的数据长度,把监控参数分摊到拆分后的各个监控记录中。
[0100]如图7所示的数据块拆分装置,包括第二读取模块61,与第二读取模块连接的第二拆分模块62以及与第二拆分模块连接的第二写入模块63。
[0101]第二读取模块61、用于从内存的每条监控记录中读取至少一项监控参数,这些监控记录可以是合并监控记录也可以是没有合并过的监控记录。
[0102]第二拆分模块62,用于把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值。其中,拆分监控记录中各项监控参数的值与被拆分监控记录中对应监控参数的比值,可以是这个拆分监控记录所监控数据占被拆分监控记录所监控数据量的比值。
[0103]第二写入模块、把拆分后监控记录写入内存,所述拆分后监控记录用于监控所携带偏移地址和数据长度的数据。
[0104]一个简单的示例是:一个监控记录中监控参数10PS=60,这个监控记录监控了任意数量的数据块。如果将这个监控记录拆分成2份监控记录,如果按照数据量长度来分摊监控记录中的各项监控参数,其中第一份监控记录所监控的数据量大小是第二份的2倍,那么拆分后的监控记录中,前者的10PS=40,后者的10PS=20。每份监控记录还携带有所监控数据的偏移地址和长度,偏移地址是数据的起始地址,通过偏移地址和长度可以找到被监控的数据。
[0105]随机度可以作为是否拆分监控记录的依据:分析内存中的监控记录,找到随机IO数量和总IO数量这两项监控参数,把随机IO数量占总IO数量的比例作为随机度。对于随机度高的数据块中的数据,不同的部分的访问频率可能相差比较大,对于这样的监控记录,在内存充足的情况下,进行拆分可以提高监控精度。随机IO数量和总IO数量都属于监控参数。随机IO是相对于连续IO而言,指两次不同的读/写10,前一次的结束地址与后一次的起始地址相差很大,可以由用户指定一个阈值,前一次的结束地址与后一次的起始地址相差超过这个阈值就被认为随机IO;连续IO指两次不同的读/写10,前一次的结束地址与后一次的起始地址相差不大。在其他实施例中,可以使用随机度以外的其他参数,例如将IOPS大于预设阈值的监控记录进行拆分,或者是将写IO大小、IO时延均符合各自阈值的监控记录进行拆分。
[0106]本发明实施例中,每项监控参数都符合预设阈值,可以是监控参数本身符合阈值,也可以是监控参数经过预设的算法计算后符合阈值,例如两项监控参数的差值符合阈值,或者两项监控参数的比值符合阈值。
[0107]需要特别说明的是,前述实施例中,为了方便举例,被合并的监控参数仅监控了一个数据块。实际上,合并监控记录还可以再次被合并,本领域技术人员明白,由于再次合并只是对本发明前述实施例的重复应用,因此也不再详细说明。同样的道理,拆分后的监控就也可以再次被拆分。
[0108]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0109]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种监控记录管理方法,其特征在于,内存中存储有多条监控记录,每条监控记录监控存储器中的一个或多个数据块,所述监控记录是至少一项监控参数的集合: 从内存的每条监控记录中读取至少一项监控参数; 从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,将读取到的监控记录进行合并生成合并监控记录,所述合并监控记录中记录有所监控的数据块的标识,从内存中删除被读取的监控记录,其中,所述合并监控记录中各项监控参数的值,等于将所监控的数据块视为一个数据块时各项监控参数的值; 把所述合并监控记录写入内存,所述合并监控记录用于监控合并前各条监控记录所监控的数据块。
2.如权I所述监控记录管理方法,其特征在于,把所述合并监控记录写入内存之后,进一步包括: 监控对存储器中数据块的I/o请求; 将合并监控记录所监控的数据块的I/o请求记录,用于更新内存中的所述合并监控记录的各项监控参数。
3.如权利要求1或2所述的监控记录管理方法,其特征在于,从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,具体为: 读取IOPS符合预设的IOPS阈值且IO次数符合预设的IO次数阈值的监控记录。
4.如权利要求1、2或 3所述的监控记录管理方法,其特征在于,把所述合并监控记录写入内存之后,进一步包括: 从内存中读取所述合并监控记录,将所述合并监控记录拆分成至少一个拆分监控记录,每个所述拆分监控记录用于监控至少一个数据块,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值; 从内存中删除被读取的合并监控记录,并把各所述拆分监控记录写入内存。
5.一种监控记录拆分方法,其特征在于,内存中存储有多条监控记录,每条监控记录监控存储器中的至少一个数据块,每条监控记录是所监控数据块的各项监控参数的集合,该方法包括: 从内存的每条监控记录中读取至少一项监控参数; 把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值; 把拆分后监控记录写入内存,所述拆分后监控记录用于监控所携带偏移地址和数据长度的数据。
6.如权利要求5所述的监控记录拆分方法,其特征在于,拆分后各监控记录中各项监控参数的值具体为: 拆分前监控记录中各项监控参数的值,按照拆分后各监控记录中携带的数据长度,分摊到拆分后各监控记录中。
7.如权利要求5或6所述的监控记录拆分方法,其特征在于, 所述监控参数是随机IO数量占总IO数量的比例。
8.一种监控记录管理装置,其特征在于,内存中存储有多条监控记录,每条监控记录监控存储器中的一个或多个数据块,所述监控记录是至少一项监控参数的集合,该装置包括: 第一读取模块,用于从内存的每条监控记录中读取至少一项监控参数; 合并模块,用于从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,将读取到的监控记录进行合并生成合并监控记录,所述合并监控记录中记录有所监控的数据块的标识,从内存中删除被读取的监控记录,其中,所述合并监控记录中各项监控参数的值,等于将所监控的数据块视为一个数据块时各项监控参数的值; 第一写入模块,用于把所述合并监控记录写入内存,所述合并监控记录用于监控合并前各条监控记录所监控的数据块。
9.如权8所述监控记录管理装置,其特征在于: 所述第一写入模块还用于监控对存储器中数据块的I/O请求,将合并监控记录所监控的数据块的I/o请求记录,用于更新内存中的所述合并监控记录的各项监控参数。
10.如权利要求8或9所述的监控记录管理装置,其特征在于,所述第一读取模块具体用于: 从内存的每条监控记录中,读取IOPS符合预设的每秒读写次数IOPS阈值且IO次数符合预设的IO次数阈值的监控记录。
11.如权利要求8、9或10所述的监控记录管理装置,其特征在于,所述装置还包括: 第一拆分模块:用于从内存中读取所述合并监控记录,将所述合并监控记录拆分成至少一个拆分监控记录,每个 所述拆分监控记录用于监控至少一个数据块,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值;从内存中删除被读取的合并监控记录,并把各所述拆分监控记录写入内存。
12.—种监控记录拆分装置,其特征在于,内存中存储有多条监控记录,每条监控记录监控存储器中的至少一个数据块,每条监控记录是所监控数据块的各项监控参数的集合,该装置包括: 第二读取模块,用于从内存的每条监控记录中读取至少一项监控参数; 第二拆分模块,用于把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值; 第二写入模块,用于把拆分后监控记录写入内存,所述拆分后监控记录用于监控所携带偏移地址和数据长度的数据。
13.如权利要求12所述的监控记录拆分装置,其特征在于,所述第二拆分模块,具体用于: 把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值,拆分前监控记录中各项监控参数的值,按照拆分后各监控记录中携带的数据长度,分摊到拆分后各监控记录中。
14.如权利要求11或12所述的监控记录拆分装置,其特征在于,所述第二读取模块具体用于: 从内存的每条监控记录中读取随机IO数量和总IO数量,所述阈值是随机IO数量占总IO数量的比例。
15.一种存储控制器,其特征在于,所述存储控制器包括CPU,与CPU通信的通信接口以及与CPU通信的内存: 所述通信接口,用于和存储器通信; 所述内存,用于存储有多条监控记录,每条监控记录监控存储器中的一个数据块,一条监控记录是一个数据块的各项监控参数的集合;以及 所述处理器,用于执行程序,其中程序用于: 从内存的每条监控记录中读取至少一项监控参数; 从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,将读取到的监控记录进行合并生成合并监控记录,所述合并监控记录中记录有所监控的数据块的标识,从内存中删除被读取的监控记录,其中,所述合并监控记录中各项监控参数的值,等于将所监控的数据块视为一个数据块时各项监控参数的值; 把所述合并监控记录写入内存,所述合并监控记录用于监控合并前各条监控记录所监控的数据块。
16.如权15所述存储控制器,其特征在于,把所述合并监控记录写入内存之后,进一步包括: 监控对存储器中数据块的I/o请求; 将合并监控记录所监控的数据块的I/o请求记录,用于更新内存中的所述合并监控记录的各项监控参数。
17.如权利要求16或17所述存储控制器,其特征在于,从内存中读取有一项或多项监控参数差值符合预设阈值的监控记录,具体为: 读取IOPS符合预设的IOPS阈值且IO次数符合预设的IO次数阈值的监控记录。
18.如权利要求15、16或17所述存储控制器,其特征在于,把所述合并监控记录写入内存之后,进一步包括: 从内存中读取所述合并监控记录,将所述合并监控记录拆分成至少一个拆分监控记录,每个所述拆分监控记录用于监控至少一个数据块,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值; 从内存中删除被读取的合并监控记录,并把各所述拆分监控记录写入内存。
19.一种存储控制器,其特征在于,所述存储控制器包括CPU,与CPU通信的通信接口以及与CPU通信的内存: 所述通信接口,用于和存储器通信; 所述内存,用于存储多条监控记录,每条监控记录监控存储器中的至少一个数据块,每条监控记录是所监控数据块的各项监控参数的集合;以及 所述处理器,用于执行程序,其中程序用于: 从内存的每条监控记录中读取至少一项监控参数; 把读取到的监控参数中,每项监控参数都符合预设阈值的监控记录进行拆分,拆分后生成至少2个监控记录,每个拆分后的监控记录中携带有数据的偏移地址和数据长度,所述拆分监控记录中,各项监控参数值相加等于所述合并监控记录中监控参数的值; 把拆分后监控记录写入内存,所述拆分后监控记录用于监控所携带偏移地址和数据长度的数据。
20.如权利要求19所述的存储控制器,其特征在于,拆分后各监控记录中各项监控参数的值具体为: 拆分前监控记录中各项监控参数的值,按照拆分后各监控记录中携带的数据长度,分摊到拆分后各监控记录中。
21.如权利要求19或20所述的存储控制器,其特征在于, 所述监控参数是随机IO数 量占总IO数量的比例。
【文档编号】G06F12/02GK103502925SQ201280006844
【公开日】2014年1月8日 申请日期:2012年12月21日 优先权日:2012年12月21日
【发明者】王辰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1