冷热数据识别门限值计算方法、装置和系统的制作方法

文档序号:6522448阅读:301来源:国知局
冷热数据识别门限值计算方法、装置和系统的制作方法
【专利摘要】本发明涉及一种冷热数据识别门限值计算方法、装置和系统。该方法包括:向每个存储节点发送数据块的IO统计信息查询命令;接收每个存储节点发送的IO统计信息;对接收到的每个存储节点的IO统计信息中计数范围相同的IO计数字段值进行加运算,生成与各个计数范围对应的IO计数统计值;根据各个存储节点中热数据存储介质的总容量、数据块的大小、IO计数统计值,得到将高IO计数统计值对应的数据块存满热数据存储介质时,高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值。本发明实现了存储系统中各个存储节点独立但协调地完成整个存储系统的数据分层存储。
【专利说明】冷热数据识别门限值计算方法、装置和系统
【技术领域】
[0001]本发明涉及数据存储【技术领域】,尤其涉及一种冷热数据识别门限值计算方法、装置和系统。
【背景技术】
[0002]随着存储技术的发展,人们对存储系统的容量和性能的要求也越来越高,但是容量大、性能高的存储系统价格也高。以低价格满足存储系统的性能和容量的需求催生了分层存储技术。
[0003]数据分层存储技术是应对数据生命周期管理需求的主流技术,通过监控业务数据,可以记录数据的访问频率、IO计数等参数值。依据监控到的IO等参数值可以决定业务数据应该存储在存储系统的哪一层,热点数据可迁往存储系统的高性能层级,冷点数据可迁往存储系统中的低性能层级,由此可实现以较低的价格满足存储系统的性能和容量需求。
[0004]分层存储技术主要包括数据监控、数据冷热识别和数据迁移三部分。在现有技术下,数据监控功能模块、数据冷热识别功能模块和数据迁移功能模块分布在存储系统各个存储节点中,但是整个存储系统没有统一的冷热识别标准,因此分层存储功能只能在存储系统中单个存储节点内完成,不能跨存储节点进行数据迁移,导致了存储系统的分层存储功能的实用性和可用性大大降低。

【发明内容】

[0005]本发明实施例提供了一种冷热数据识别门限值计算方法、装置和系统,以实现存储系统中各个存储节点具有统一的冷热识别标准,能独立但是协调地完成整个存储系统的数据分层存储,增加了存储系统分层存储功能的实用性和可用性。
[0006]第一方面,本发明实施例提供了一种冷热数据识别门限值计算方法,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,所述存储控制服务器执行以下步骤:
[0007]向每个所述存储节点发送所述数据块的IO统计信息查询命令;
[0008]接收每个所述存储节点发送的IO统计信息,所述IO统计信息包括有至少一个IO计数字段值,每个所述IO计数字段值记录有发送所述IO统计信息的存储节点中,IO计数值在各个计数范围内的数据块的个数;
[0009]对接收到的所述每个存储节点的IO统计信息中计数范围相同的IO计数字段值进行加运算,生成与各个计数范围对应的IO计数统计值;
[0010]根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值,其中,所述高IO计数统计值中的每一个IO计数统计值,不小于非高IO计数统计值中的IO计数统计值。
[0011]在第一种可能的实现方式中,所述IO统计信息还包括有至少一个顺序度字段值,每个所述顺序度字段值记录有发送所述IO统计信息的存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
[0012]根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:对接收到的所述每个存储节点的IO统计信息中顺序度范围相同的顺序度字段值进行加运算,生成与各个顺序度范围对应的顺序度统计值;所述根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值之前还包括具体为:根据所述存储系统的热数据存储介质的总容量,所述数据块的大小、所述IO计数统计值以及所述顺序度统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值。
[0013]第二方面,本发明实施例还提供了一种冷热数据识别门限值计算方法,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,每个存储节点执行以下步骤:
[0014]接收所述存储控制服务器发送的IO统计信息查询命令;
[0015]根据所述IO统计信息查询命令,对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值;
[0016]向所述存储控制服务器发送所述IO统计信息,所述IO统计信息中包括有至少一个IO计数字段值;
[0017]接收所述存储控制服务器发送的存储系统的冷热数据识别门限值,根据所述冷热数据识别门限值,识别出热点数据和冷点数据并实现所述热点数据和所述冷点数据的分层存储。
[0018]在第一种可能的实现方式中,所述监控信息还包括数据块的IO顺序度、或者数据块的IO读写比例,其中,所述顺序度为每个数据块的顺序IO计数占总的IO计数的比例,所述IO读写比例为每个数据块的IO读操作的次数与IO写操作的次数的比例;所述IO统计信息还包括有至少一个顺序度字段值,其中每个所述顺序读字段值记录有本地存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
[0019]根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值具体包括:对本地存储节点中数据块的IO计数按照IO读写比例进行统计,得到IO统计信息中的IO计数字段的各个值。
[0020]根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述对本地存储节点中数据块的IO计数按照IO读写比例进行统计,得到IO统计信息中的IO计数字段的各个值具体包括:根据数据块被访问的IO次数,以及IO读写比例,计算数据块的IO计数值;获取本地存储节点中数据块的最高IO计数M ;确定IO计数字段值的个数N ;对所述最高IO计数M与IO计数字段值的个数N进行除运算,得到所述计数范围;统计每个计数范围内数据块的个数,得到N个IO计数字段值。
[0021]第三方面,本发明实施例提供了一种存储控制服务器,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,所述存储控制服务器包括:
[0022]发送单元,用于向每个所述存储节点发送所述数据块的IO统计信息查询命令;
[0023]接收单元,用于接收每个所述存储节点发送的IO统计信息,所述IO统计信息包括有至少一个IO计数字段值,每个所述IO计数字段值记录有发送所述IO统计信息的存储节点中,IO计数值在各个计数范围内的数据块的个数;
[0024]生成单元,用于对接收到的所述每个存储节点的IO统计信息中计数范围相同的IO计数字段值进行加运算,生成与各个计数范围对应的IO计数统计值;
[0025]确定单元,用于根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值,其中,所述高IO计数统计值中的每一个IO计数统计值,不小于非高IO计数统计值中的IO计数统计值。
[0026]在第一种可能的实现方式中,所述IO统计信息还包括有至少一个顺序度字段值,每个所述顺序度字段值记录有发送所述IO统计信息的存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
[0027]根据第三方面的第一种可能的实现方式中,在第二种可能的实现方式中,所述生成单元还用于:对接收到的所述每个存储节点的IO统计信息中顺序度范围相同的顺序度字段值进行加运算,生成与各个顺序度范围对应的顺序度统计值;所述确定单元具体用于:根据所述存储系统的热数据存储介质的总容量,所述数据块的大小、所述IO计数统计值以及所述顺序度统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值。
[0028]第四方面,本发明实施例提供了一种存储节点,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,每个存储节点包括:
[0029]接收单元,用于接收所述存储控制服务器发送的IO统计信息查询命令;
[0030]统计单元,用于根据所述IO统计信息查询命令,对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值;
[0031]发送单元,用于向所述存储控制服务器发送所述IO统计信息,所述IO统计信息中包括有至少一个IO计数字段值;
[0032]所述接收单元,还用于接收所述存储控制服务器发送的存储系统的冷热数据识别门限值;
[0033]实现单元,用于接收所述存储控制服务器发送的存储系统的冷热数据识别门限值,根据所述冷热数据识别门限值,识别出热点数据和冷点数据并实现所述热点数据和所述冷点数据的分层存储。[0034]在第一种可能的实现方式中,所述监控信息还包括数据块的IO顺序度、或者数据块的IO读写比例,其中,所述顺序度为每个数据块的顺序IO计数占总的IO计数的比例,所述IO读写比例为每个数据块的IO读操作的次数与IO写操作的次数的比例;所述IO统计信息还包括有至少一个顺序度字段值,其中每个所述顺序读字段值记录有本地存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
[0035]根据第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述统计单元具体用于:对本地存储节点中数据块的IO计数按照IO读写比例进行统计,得到IO统计信息中的IO计数字段的各个值。
[0036]根据第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述统计单元统计得到IO统计信息中的IO计数字段的各个值的过程具体包括:根据数据块被访问的IO次数,以及IO读写比例,计算数据块的IO计数值;获取本地存储节点中数据块的最高IO计数M ;确定IO计数字段值的个数N ;对所述最高IO计数M与IO计数字段值的个数N进行除运算,得到所述计数范围;统计每个计数范围内数据块的个数,得到N个IO计数字段值。
[0037]第五方面,本发明实施例提供了一种存储系统,所述系统包括上述存储控制服务器,以及多个如上所述的存储节点
[0038]本发明实施例提供的冷热数据识别门限值计算方法、装置和系统中,通过对存储系统中的某个时间段内的各个存储节点的监控信息进行统计、计算,可以得出整个存储系统的冷热数据识别门限值,从而实现存储系统中各个存储节点具有统一的冷热识别标准,能独立但是协调地完成整个存储系统的数据分层存储,可以实现存储系统中跨存储节点进行数据迁移,充分发挥整个存储系统的所有高性能存储介质的性能优势,以较低的价格满足存储系统的性能和容量需求。
【专利附图】

【附图说明】
[0039]图1为本发明实施例提供的一种存储系统的示意图;
[0040]图2为本发明实施例提供的一种冷热数据识别门限值计算方法流程图;
[0041]图3为本发明实施例提供的另一冷热数据识别门限值计算方法流程图;
[0042]图4为本发明实施例提供的一种存储节点的数据统计结果示意图;
[0043]图5为本发明实施例提供的一种存储控制服务器示意图;
[0044]图6为本发明实施例提供的一种存储节点不意图;
[0045]图7为本发明实施例提供的另一存储控制服务器示意图;
[0046]图8为本发明实施例提供的另一存储节点示意图。
【具体实施方式】
[0047]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0048]本发明实施例提供的冷热数据识别门限值计算方法可以应用于如图1所示的存储系统中,如图1所示,本发明实施例提供的存储系统中,包括存储控制服务器和多个存储节点,其中存储控制服务器与存储系统组网,组网后,存储控制服务器可以与其中的各个存储节点进行通信。存储控制服务器可向每个存储节点中的数据监控程序发送IO统计信息查询命令,数据监控程序对本存储节点的主机IO信息进行分段统计后得到数据量较小的IO统计信息,然后将该信息反馈给存储控制服务器,用于存储控制服务器确定整个存储系统的冷热数据识别门限值,然后将该门限值反馈给存储节点,由每个存储节点根据该冷热数据识别门限值识别出冷热数据,进而实现数据的分层存储。由此实现存储系统中各个存储节点独立但是协调地完成整个存储系统的数据分层存储,增加了存储系统分层存储功能的实用性和可用性。需要说明的是,本存储系统中,存储控制服务器可以位于某个存储节点中,也可以单独位于一个功能实体中,而每个存储节点中也可以单独设置一个执行器程序,用来与存储控制服务器进行信息交互,当然也可以不设置该执行器程序,而使存储控制服务器与存储节点中的数据监控程序、数据冷热识别程序、数据迁移程序等进行信息交互。
[0049]图2为本发明实施例提供的一种冷热数据识别门限值计算方法流程图,该实施例的执行主体是存储控制服务器,存储控制服务器和多个存储节点连接,至少一个存储节点中包括热数据存储介质和冷数据存储介质,每个存储节点中存储有数据块,该实施例详细描述了存储控制服务器确定整个存储系统的冷热数据识别门限值的方法,如图所示,存储控制服务器可执行以下步骤:
[0050]步骤201,向所述多个存储节点中的每个存储节点发送IO统计信息查询命令。
[0051]本发明实施例提供的存储系统中,存储控制服务器可以位于某个存储节点中,也可以单独位于一个功能实体中,而每个存储节点中也可以单独设置一个分层存储执行器程序,用来与存储控制服务器进行通信,当然也可以不设置该执行器程序,而使存储控制服务器与存储节点中的数据监控程序、数据冷热识别程序、数据迁移程序等进行通信。
[0052]本发明实施例以每个存储节点中没有设置分层存储执行器的存储系统为例,来描述本发明的技术方案,但是本发明实施例提供的技术方案同样适用于上述设置有分层存储执行器的存储系统。
[0053]存储控制服务器与存储系统组网后,存储控制服务器可以与存储系统中各个存储节点上的分级存储执行器进行通信。存储控制服务器自行确定时机向分级存储执行器发送IO统计信息查询命令,进而根据各个存储节点反馈的IO统计信息确定整个存储系统的冷热数据识别标准。
[0054]分级存储执行器程序、数据监控程序、数据冷热识别程序、数据迁移程序都在一个存储节点内工作,与其他存储节点没有联系。某个存储节点收到主机10,不需要转发到其他存储节点,直接会被本存储节点上的数据监控程序拦截并生成相应的监控信息,因此数据的分层存储效率提高了很多。
[0055]步骤202,接收每个所述存储节点发送的IO统计信息,所述IO统计信息包括有至少一个IO计数字段值,每个所述IO计数字段值记录有发送所述IO统计信息的存储节点中,IO计数值在各个计数范围内的数据块的个数。
[0056]其中,IO统计信息包括多个字段,每个字段包括有至少一个字段值,其中每个字段可以以一个数组的形式实现,每个字段值即为该数据组中的每个数组元素;每个字段还可以以表格的形式实现,每个字段值即为表格每个单元格的内容,图4为本发明实施例提供的一种存储节点的数据统计结果示意图,图4给出的是表格形式的统计结果。
[0057]各个存储节点中的存储控制服务器接收到IO统计信息查询命令后,可以通知数据监控程序对监控到的主机IO信息进行分段统计,从而生成一个数据量较小的统计结果,即IO统计信息,这个信息可以反应出本存储节点大致的冷热数据分布情况。
[0058]具体地,存储节点可以根据监控信息中的IO计数、顺序度分别进行统计,得到本存储节点大致的冷热数据分布情况,下面以字段以数组的形式实现为例,描述由监控信息中数据块的IO计数来得到统计信息中的IO计数字段值的过程:
[0059]存储节点中每个数据块的最大IO计数值为M,在分段统计时可以创建一个元素个数为M的数组Array (具体实现方式不限),遍历存储节点的监控信息,例如存储节点中IO计数为I的数据块的个数为NI,则把Array [O]赋值为NI,存储节点中IO计数为2的数据块
的个数为N2,则把Array [2-1]赋值为N2,......存储节点中IO计数为η的数据块的个数
为Νη,则把Array [η-1]赋值为Νη,......存储节点中IO计数为M的数据块的个数为Nm,
则把Array[M-l]赋值为Nm。这样遍历完一遍之后,数组Array中记录的每个值就可以反映存储节点中数据冷热分布情况。
[0060]其中,存储系统中某些数据块可能非常热,IO计数值很大,即M是一个很大的值,由于资源的限制和计算的性能限制,创建一个元素个数为M的数组Array不太合适。可以将上面的算法改进一下,具体如下:
[0061]存储节点在获取统计信息数组Array时,数组的每个元素可以对应一个IO计数区间,即IO计数值在某个范围的IO计数值对应一个数组元素,这个范围的大小可以依据存储系统中最大IO计数值M和数组Array的元素个数N确定,IO计数区间大小为M/N,记为T (英文interval的缩写)。数组每个元素对应大小为T的IO计数区间,即元素Array[0]记录IO计数在[1,T)之间的数据块的个数,元素Array[l]记录IO计数在[T,2T)之间的
数据块的个数,......,元素Array [Ν-1]记录IO计数在[(N_l) *T,N*T)之间的数据块的个
数。这样遍历完一遍监控信息后,就可以用数组Array反映出存储节点中数据冷热分布情况。
[0062]上述为IO计数字段每个值的计算方法,其中,顺序度字段、IO读写比例也可以使用上述方法来统计并得到对应的各个值。
[0063]在计算IO计数字段的各个值时,可以结合IO读写比例进行计算,例如,如果某个数据块的写数据消耗是读数据消耗是P倍,则可以将IO访问次数按照读写比例算出等价的读IO次数,并且在后面计算门限值时使用这个等价的IO次数进行计算。当然,也可以不考虑读写比例因素,而只是单纯的按照IO访问次数来计算IO计数字段的各个值。
[0064]由此得到IO统计信息之后,可将IO统计信息以图4所述的形式发送到存储控制服务器。
[0065]步骤203,对接收到的所述每个存储节点的IO统计信息中计数范围相同的IO计数字段值进行加运算,生成与各个计数范围对应的IO计数统计值。
[0066]存储控制服务器接收到各个存储节点的IO统计信息之后,即可对各个节点的统计信息进行合并,并计算出整个存储系统的冷热数据识别门限值。
[0067]具体地,合并各个存储节点的统计信息得到整个存储系统的IO统计信息的方法为:存储控制服务器可以把所有存储节点返回的数组Array进行合并,合并过程为创建一个总的元素个数为M的数组CArray。CArray每个元素的值为各个存储节点返回的Array的对应元素的值的和。需要说明的是,这里只是以IO计数统计的一个简单示例进行描述,CArray元素的值的如何由多个Array生成,由实现者依据具体需要来定。
[0068]步骤204,根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值,其中,所述高IO计数统计值中的每一个IO计数统计值,不小于非高IO计数统计值中的IO计数统计值。
[0069]识别数据冷热的目的,就是把热数据迁到高性能层级,把冷数据放到低性能层级,如果高性能层级的容量可以存放X个数据块,那么通过门限值识别出最热的X个数据块放入热数据存储介质,其他的数据块放入冷数据存储介质。因此可以查询高性能层级的容量和可以容纳的数据块的大小,计算出高性能层级可以存放多个数据块。
[0070]其中,数据的冷热主要可以通过IO计数值的大小来衡量,高IO计数统计值对应的数据块为热数据块,非高IO计数统计值对应的数据块为冷数据快。
[0071]但是在实际实现中,存储系统中数据的冷热不局限于通过IO计数值来衡量,可以是多项IO参数值的复合体。例如IO计数门限值可以和上文中的顺序度值合在一起做为一个确定数据冷热的标准。
[0072]在上文中总的统计信息CArray中按下标从大到小的顺序遍历数组,就能找到一
个下标 Index,使得 CArray [Index] +CArray [Index+1] +......+CArray [Μ-1]的和等于 X,那
么下标Index对应的IO计数值就可以作为高IO计数统计值中的最小IO计数统计值,即作为冷热数据识别门限值。如果·一个数组元素对应一个IO计数区间,那么按照上面最小IO计数统计值的确定方法确定最小IO计数值,只能确定最小IO计数统计值对应的IO计数区间,而不能确定到一个具体值,例如只能确定IO计数门限值在IO计数区间[T,2T),而不能确定具体值。为了确定最小IO计数统计值,需要再创建一个数组Array2 (Array2的一个元素对应区间[T,2T)的一个子区间),把监控计数在区间[Τ,2Τ)中数据块的个数统计到Array2中。如果结合Array和Array2依然不能精确确定门限值,贝U可以继续创建新的数组做更细的分段统计,直到可以精确确定最小IO计数统计值。
[0073]对应的,分层存储控制中心进行分段统计合并时,只合并存储节点返回的数组
Array不够,需要合并数组序列Array、Array2、Array3.......最终用合并后的数组序列确
定整个存储系统的冷热识别门限值。
[0074]本发明实施例提供的方法还包括::对接收到的所述每个存储节点的IO统计信息中顺序度范围相同的顺序度字段值进行加运算,生成与各个顺序度范围对应的顺序度统计值。
[0075]由于不同属性的存储介质对IO顺序度值有不同的要求,因此可以首先根据存储系统的存储介质的属性信息来确定顺序度门限值,即根据存储系统中各种类型的存储介质的大小来确定顺序度值高于哪个值时可以将数据放入热数据存储介质。如果本存储系统的固态硬盘比较大,则可以将顺序度门限值设置的低一些。
[0076]使用IO计数值来衡量数据的冷热是非常直接的衡量标准,IO计数门限值是判断数据冷热的标准。如果IO计数门限值是IO计数值T,则某一个IO计数值大于T的数据块为热数据,应该放到热数据存储介质中,如果某个数据块的IO计数值小于T,则认为该数据块为冷数据,应该放到冷数据存储介质。
[0077]存储控制服务器把计算得出的冷热数据识别门限值发送至各个存储节点的分层存储执行器,并向分层存储执行器下发冷热数据识别和数据迁移的命令。分层存储执行器把接收到的门限值传输至本存储节点的数据冷热识别程序,数据冷热识别程序依据门限值分析本地主机的监控信息,进而识别出热点数据和冷点数据。然后分层存储执行器通知数据迁移程序把热数据迁往热数据存储介质,把冷数据迁往冷数据存储介质。
[0078]其中,数据迁移可以在本存储节点内进行,也可以在整个存储系统内进行。
[0079]由此,本发明实施例通过对存储系统中的某个时间段内的各个存储节点的监控信息进行统计、计算,可以得出整个存储系统的冷热数据识别门限值,从而实现存储系统中各个存储节点具有统一的冷热识别标准,能独立但是协调地完成整个存储系统的数据分层存储,可以实现存储系统中跨存储节点进行数据迁移,充分发挥整个存储系统的所有高性能存储介质的性能优势,以较低的价格满足存储系统的性能和容量需求。
[0080]图3为本发明实施例提供的另一冷热数据识别门限值计算方法流程图,本发明实施例的执行主体是存储节点,存储节点和存储控制服务器连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,每个存储节点执行以下步骤:,如图所示,存储节点执行以下步骤:
[0081]步骤301,接收所述存储控制服务器发送的IO统计信息查询命令。
[0082]本发明实施例提供的存储系统中,存储控制服务器可以位于某个存储节点中,也可以单独位于一个功能实体中,而每个存储节点中也可以单独设置一个分层存储执行器程序,用来与存储控制服务器进行通信,当然也可以不设置该执行器程序,而使存储控制服务器与存储节点中的数据监控程序、数据冷热识别程序、数据迁移程序等进行通信。
[0083]本发明实施例以每个存储节点中没有设置分层存储执行器的存储系统为例,来描述本发明的技术方案,但是本发明实施例提供的技术方案同样适用于设置了分层存储执行器的存储系统。
[0084]为了实现整个存储系统具有统一的冷热识别标准,存储控制服务器与存储系统组网后,存储控制服务器可以与存储系统中各个存储节点上的分级存储执行器进行通信,并自行确定时机向分级存储执行器发送IO统计信息查询命令,以获取各个存储节点的主机IO统计信息,由此存储节点可以接收到IO统计信息查询命令。
[0085]步骤302,根据所述IO统计信息查询命令,对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数
字段值。
[0086]各个存储节点中的存储控制服务器接收到IO统计信息查询命令后,可以通知数据监控程序对监控到的主机IO信息进行分段统计,从而生成一个数据量较小的统计结果,即IO统计信息,IO统计信息包括多个字段,每个字段包括有至少一个字段值,其中每个字段可以以一个数组的形式实现,每个字段值即为该数据组中的每个数组元素;每个字段还可以以表格的形式实现,每个字段值即为表格每个单元格的内容,图4为本发明实施例提供的一种存储节点的数据统计结果示意图,图4给出的是表格形式的统计结果,这个信息可以反应出本存储节点大致的冷热数据分布情况。具体地,存储节点可以根据监控信息中的IO计数、顺序度分别进行统计,得到本存储节点大致的冷热数据分布情况,下面以字段以数组的形式实现为例,描述由监控信息中数据块的IO计数来得到统计信息中的IO计数字段值的过程:
[0087]存储节点中每个数据块的最大IO计数值为M,在分段统计时可以创建一个元素个数为M的数组Array (具体实现方式不限),遍历存储节点的监控信息,例如存储节点中IO计数为I的数据块的个数为NI,则把Array [O]赋值为NI,存储节点中IO计数为2的数据块
的个数为N2,则把Array [2-1]赋值为N2,......存储节点中IO计数为η的数据块的个数
为Νη,则把Array [η-1]赋值为Νη,......存储节点中IO计数为M的数据块的个数为Nm,
则把Array[M-l]赋值为Nm。这样遍历完一遍之后,数组Array中记录的每个值就可以反映存储节点中数据冷热分布情况。
[0088]其中,存储系统中某些数据块可能非常热,IO计数值很大,即M是一个很大的值,由于资源的限制和计算的性能限制,创建一个元素个数为M的数组Array不太合适。可以将上面的算法改进一下,具体如下:
[0089]存储节点在获取统计信息数组Array时,数组的每个元素可以对应一个IO计数区间,即IO计数值在某个范围的IO计数值对应一个数组元素,这个范围的大小可以依据存储系统中最大IO计数值M和数组Array的元素个数N确定,IO计数区间大小为M/N,记为T(英文interval的缩写)。数组每个元素对应大小为T的IO计数区间,即元素Array[0]记录IO计数在[1,T)之间的数据块的个数,元素Array[l]记录IO计数在[T,2T)之间的
数据块的个数,......,元素Array[N-l]记录IO计数在[(N_l) *T,N*T)之间的数据块的个
数。这样遍历完一遍监控信息后,就可以用数组Array反映出存储节点中数据冷热分布情况。
[0090]其中,顺序度也可以使用上述方法进行统计,并得到顺序度的一个统计数组。
[0091]其中,在统计IO计数值时,还可以结合IO读写比例进行计算,例如,如果某个数据块的写数据消耗是读数据消耗是P倍,则可以将IO访问次数按照读写比例算出等价的读IO次数,并且在后面计算门限值时使用这个等价的IO次数进行计算。当然,也可以不考虑读写比例因素,而只是单纯的按照IO访问次数来计算IO计数字段的各个值,即得到数据块的等价IO计数。
[0092]步骤303,向所述存储控制服务器发送所述IO统计信息,所述IO统计信息中包括有至少一个IO计数字段值。
[0093]得到IO统计信息,存储节点可以通过所包括的分层存储执行器将IO统计信息发送至存储控制服务器。
[0094]步骤304,接收所述存储控制服务器发送的存储系统的冷热数据识别门限值,根据所述冷热数据识别门限值,识别出热点数据和冷点数据并实现所述热点数据和所述冷点数据的分层存储。
[0095]存储节点将接收到的门限值传输至本存储节点的数据冷热识别程序,数据冷热识别程序依据门限值分析本地主机的监控信息,进而识别出热点数据和冷点数据。然后分层存储执行器通知数据迁移程序把热点数据迁往高性能层级,把冷点数据迁往低性能层级。
[0096]由此,本发明实施例可以实现存储系统中跨存储节点进行数据迁移,充分发挥整个存储系统的所有高性能存储介质的性能优势,以较低的价格满足存储系统的性能和容量需求。
[0097]相应地,本发明实施例还提供了一种存储控制服务器,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,图5为本发明实施例提供的一种存储控制服务器示意图,如图所示,该实施例包括以下功能单元:
[0098]发送单元501,用于向所述多个存储节点中的每个存储节点发送IO统计信息查询命令。
[0099]本发明实施例提供的存储系统中,存储控制服务器可以位于某个存储节点中,也可以单独位于一个功能实体中,而每个存储节点中也可以单独设置一个分层存储执行器程序,用来与存储控制服务器进行通信,当然也可以不设置该执行器程序,而使存储控制服务器与存储节点中的数据监控程序、数据冷热识别程序、数据迁移程序等进行通信。
[0100]本发明实施例以每个存储节点中没有设置分层存储执行器的存储系统为例,来描述本发明的技术方案,但是本发明实施例提供的技术方案同样适用于上述设置有分层存储执行器的存储系统。
[0101]存储控制服务器与存储系统组网后,存储控制服务器可以与存储系统中各个存储节点上的分级存储执行器进行通信。存储控制服务器自行确定时机向分级存储执行器发送IO统计信息查询命令,进而根据各个存储节点反馈的IO统计信息确定整个存储系统的冷热数据识别标准。
[0102]分级存储执行器程序、数据监控程序、数据冷热识别程序、数据迁移程序都在一个存储节点内工作,与其他存储节点没有联系。某个存储节点收到主机10,不需要转发到其他存储节点,直接会被本存储节点上的数据监控程序拦截并生成相应的监控信息,因此数据的分层存储效率提高了很多。
[0103]接收单元502,用于接收每个所述存储节点发送的IO统计信息,所述IO统计信息包括有至少一个IO计数字段值,每个所述IO计数字段值记录有发送所述IO统计信息的存储节点中,IO计数值在各个计数范围内的数据块的个数。
[0104]其中,IO统计信息包括多个字段,每个字段包括有至少一个字段值,其中每个字段可以以一个数组的形式实现,每个字段值即为该数据组中的每个数组元素;每个字段还可以以表格的形式实现,每个字段值即为表格每个单元格的内容,图4为本发明实施例提供的一种存储节点的数据统计结果示意图,图4给出的是表格形式的统计结果。
[0105]各个存储节点中的存储控制服务器接收到IO统计信息查询命令后,可以通知数据监控程序对监控到的主机IO信息进行分段统计,从而生成一个数据量较小的统计结果,即IO统计信息,这个信息可以反应出本存储节点大致的冷热数据分布情况。
[0106]具体地,存储节点可以根据监控信息中的IO计数、顺序度分别进行统计,得到本存储节点大致的冷热数据分布情况,下面以字段以数组的形式实现为例,描述由监控信息中数据块的IO计数来得到统计信息中的IO计数字段值的过程:
[0107]存储节点中每个数据块的最大IO计数值为M,在分段统计时可以创建一个元素个数为M的数组Array (具体实现方式不限),遍历存储节点的监控信息,例如存储节点中IO计数为I的数据块的个数为NI,则把Array [O]赋值为NI,存储节点中IO计数为2的数据块的个数为N2,则把Array [2-1]赋值为N2,......存储节点中IO计数为η的数据块的个数为Nn,则把Array [n-1]赋值为Nn,......存储节点中IO计数为M的数据块的个数为Nm,
则把Array[M-l]赋值为Nm。这样遍历完一遍之后,数组Array中记录的每个值就可以反映存储节点中数据冷热分布情况。
[0108]其中,存储系统中某些数据块可能非常热,IO计数值很大,即M是一个很大的值,由于资源的限制和计算的性能限制,创建一个元素个数为M的数组Array不太合适。可以将上面的算法改进一下,具体如下:
[0109]存储节点在获取统计信息数组Array时,数组的每个元素可以对应一个IO计数区间,即IO计数值在某个范围的IO计数值对应一个数组元素,这个范围的大小可以依据存储系统中最大IO计数值M和数组Array的元素个数N确定,IO计数区间大小为M/N,记为T(英文interval的缩写)。数组每个元素对应大小为T的IO计数区间,即元素Array[0]记录IO计数在[1,T)之间的数据块的个数,元素Array[l]记录IO计数在[T,2T)之间的
数据块的个数,......,元素Array [Ν-1]记录IO计数在[(N_l) *T,N*T)之间的数据块的个
数。这样遍历完一遍监控信息后,就可以用数组Array反映出存储节点中数据冷热分布情况。
[0110]上述为IO计数字段每个值的计算方法,其中,顺序度字段、IO读写比例也可以使用上述方法来统计并得到对应的各个值。
[0111]在计算IO计数字段的各个值时,可以结合IO读写比例进行计算,例如,如果某个数据块的写数据消耗是读数据消耗是P倍,则可以将IO访问次数按照读写比例算出等价的读IO次数,并且在后面计算门限值时使用这个等价的IO次数进行计算。当然,也可以不考虑读写比例因素,而只是单纯的按照IO访问次数来计算IO计数字段的各个值。
[0112]由此得到IO统计信息之后,可将IO统计信息以图4所述的形式发送到存储控制服务器。
[0113]生成单元503,用于对接收到的所述每个存储节点的IO统计信息中IO计数值相同或者IO计数值在一个计数范围内的IO字段值进行加运算,生成所述存储系统的IO统计信息中的IO计数值统计信息。
[0114]存储控制服务器接收到各个存储节点的IO统计信息之后,即可对各个节点的统计信息进行合并,并计算出整个存储系统的冷热数据识别门限值。
[0115]具体地,合并各个存储节点的统计信息得到整个存储系统的IO统计信息的方法为:存储控制服务器可以把所有存储节点返回的数组Array进行合并,合并过程为创建一个总的元素个数为M的数组CArray。CArray每个元素的值为各个存储节点返回的Array的对应元素的值的和。需要说明的是,这里只是以IO计数统计的一个简单示例进行描述,CArray元素的值的如何由多个Array生成,由实现者依据具体需要来定。
[0116]确定单元504,用于根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值,其中,所述高IO计数统计值中的每一个IO计数统计值,不小于非高IO计数统计值中的IO计数统计值。
[0117]识别数据冷热的目的,就是把热数据迁到高性能层级,把冷数据放到低性能层级,如果高性能层级的容量可以存放X个数据块,那么通过门限值识别出最热的X个数据块放入热数据存储介质,其他的数据块放入冷数据存储介质。因此可以查询高性能层级的容量和可以容纳的数据块的大小,计算出高性能层级可以存放多个数据块。
[0118]其中,数据的冷热主要可以通过IO计数值的大小来衡量,高IO计数统计值对应的数据块为热数据块,非高IO计数统计值对应的数据块为冷数据快。
[0119]但是在实际实现中,存储系统中数据的冷热不局限于通过IO计数值来衡量,可以是多项IO参数值的复合体。例如IO计数门限值可以和上文中的顺序度值合在一起做为一个确定数据冷热的标准。
[0120]在上文中总的统计信息CArray中按下标从大到小的顺序遍历数组,就能找到一
个下标 Index,使得 CArray [Index] +CArray [Index+1] +......+CArray [Μ-1]的和等于 X,那
么下标Index对应的IO计数值就可以作为高IO计数统计值中的最小IO计数统计值,即作为冷热数据识别门限值。如果一个数组元素对应一个IO计数区间,那么按照上面最小IO计数统计值的确定方法确定最小IO计数值,只能确定最小IO计数统计值对应的IO计数区间,而不能确定到一个具体值,例如只能确定IO计数门限值在IO计数区间[T,2T),而不能确定具体值。为了确定最小IO计数统计值,需要再创建一个数组Array2 (Array2的一个元素对应区间[T,2T)的一个子区间),把监控计数在区间[Τ,2Τ)中数据块的个数统计到Array2中。如果结合Array和Array2依然不能精确确定门限值,贝U可以继续创建新的数组做更细的分段统计,直到可以精确确定最小IO计数统计值。
[0121]对应的,分层存储控制中心进行分段统计合并时,只合并存储节点返回的数组
Array不够,需要合并数组序列Array、Array2、Array3.......最终用合并后的数组序列确
定整个存储系统的冷热识别门限值。
[0122]本发明实施例提供的方法还包括::对接收到的所述每个存储节点的IO统计信息中顺序度范围相同的顺序度字段值进行加运算,生成与各个顺序度范围对应的顺序度统计值。
[0123]由于不同属性的存储介质对IO顺序度值有不同的要求,因此可以首先根据存储系统的存储介质的属性信息来确定顺序度门限值,即根据存储系统中各种类型的存储介质的大小来确定顺序度值高于哪个值时可以将数据放入热数据存储介质。如果本存储系统的固态硬盘比较大,则可以将顺序度门限值设置的低一些。
[0124]使用IO计数值来衡量数据的冷热是非常直接的衡量标准,IO计数门限值是判断数据冷热的标准。如果IO计数门限值是IO计数值T,则某一个IO计数值大于T的数据块为热数据,应该放到热数据存储介质中,如果某个数据块的IO计数值小于T,则认为该数据块为冷数据,应该放到冷数据存储介质。
[0125]存储控制服务器把计算得出的冷热数据识别门限值发送至各个存储节点的分层存储执行器,并向分层存储执行器下发冷热数据识别和数据迁移的命令。分层存储执行器把接收到的门限值传输至本存储节点的数据冷热识别程序,数据冷热识别程序依据门限值分析本地主机的监控信息,进而识别出热点数据和冷点数据。然后分层存储执行器通知数据迁移程序把热数据迁往热数据存储介质,把冷数据迁往冷数据存储介质。
[0126]其中,数据迁移可以在本存储节点内进行,也可以在整个存储系统内进行。
[0127]优选地,所述生成单元50 3还用于:对接收到的所述每个存储节点的IO统计信息中顺序度范围相同的顺序度字段值进行加运算,生成与各个顺序度范围对应的顺序度统计值。
[0128]所述确定单元504具体用于:根据所述存储系统的热数据存储介质的总容量,所述数据块的大小、所述IO计数统计值以及所述顺序度统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值。
[0129]由此,本发明实施例通过对存储系统中的某个时间段内的各个存储节点的监控信息进行统计、计算,可以得出整个存储系统的冷热数据识别门限值,从而实现存储系统中各个存储节点具有统一的冷热识别标准,能独立但是协调地完成整个存储系统的数据分层存储,可以实现存储系统中跨存储节点进行数据迁移,充分发挥整个存储系统的所有高性能存储介质的性能优势,以较低的价格满足存储系统的性能和容量需求。
[0130]图6为本发明实施例提供的一种存储节点示意图,多个存储节点和存储控制服务器连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,如图所示,本发明实施例提供的存储节点包括以下功能单元:
[0131]接收单元601,用于接收所述存储控制服务器发送的IO统计信息查询命令。
[0132]为了实现整个存储系统具有统一的冷热识别标准,存储控制服务器与存储系统组网后,存储控制服务器可以与存储系统中各个存储节点上的分级存储执行器进行通信,并自行确定时机向分级存储执行器发送IO统计信息查询命令,以获取各个存储节点的主机IO统计信息,由此存储节点中的接收单元601可以接收到IO统计信息查询命令。
[0133]统计单元602,用于根据所述IO统计信息查询命令,对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值。
[0134]所述统计单元602具体用于:对本地存储节点中数据块的IO计数按照IO读写比例进行统计,得到IO统计信息中的IO计数字段的各个值。
[0135]统计单元602统计得到IO统计信息中的IO计数字段的各个值的过程具体包括:根据数据块被访问的IO次数,以及IO读写比例,计算数据块的IO计数值;获取本地存储节点中数据块的最高IO计数M ;确定IO计数字段值的个数N ;对所述最高IO计数M与IO计数字段值的个数N进行除运算,得到所述计数范围;统计每个计数范围内数据块的个数,得到N个IO计数字段值。
[0136]各个存储节点中的存储控制服务器接收到IO统计信息查询命令后,可以通知数据监控程序对监控到的主机IO信息进行分段统计,从而生成一个数据量较小的统计结果,即IO统计信息,IO统计信息包括多个字段,每个字段包括有至少一个字段值,其中每个字段可以以一个数组的形式实现,每个字段值即为该数据组中的每个数组元素;每个字段还可以以表格的形式实现,每个字段值即为表格每个单元格的内容,图4为本发明实施例提供的一种存储节点的数据统计结果示意图,图4给出的是表格形式的统计结果,这个信息可以反应出本存储节点大致的冷热数据分布情况。具体地,存储节点可以根据监控信息中的IO计数、顺序度分别进行统计,得到本存储节点大致的冷热数据分布情况,下面以字段以数组的形式实现为例,描述由监控信息中数据块的IO计数来得到统计信息中的IO计数字段值的过程:
[0137]存储节点中每个数据块的最大IO计数值为M,在分段统计时可以创建一个元素个数为M的数组Array (具体实现方式不限),遍历存储节点的监控信息,例如存储节点中IO计数为I的数据块的个数为NI,则把Array [O]赋值为NI,存储节点中IO计数为2的数据块
的个数为N2,则把Array [2-1]赋值为N2,......存储节点中IO计数为η的数据块的个数
为Νη,则把Array [η-1]赋值为Nn,......存储节点中IO计数为M的数据块的个数为Nm,
则把Array[M-l]赋值为Nm。这样遍历完一遍之后,数组Array中记录的每个值就可以反映存储节点中数据冷热分布情况。
[0138]其中,存储系统中某些数据块可能非常热,IO计数值很大,即M是一个很大的值,由于资源的限制和计算的性能限制,创建一个元素个数为M的数组Array不太合适。可以将上面的算法改进一下,具体如下:
[0139]存储节点在获取统计信息数组Array时,数组的每个元素可以对应一个IO计数区间,即IO计数值在某个范围的IO计数值对应一个数组元素,这个范围的大小可以依据存储系统中最大IO计数值M和数组Array的元素个数N确定,IO计数区间大小为M/N,记为T(英文interval的缩写)。数组每个元素对应大小为T的IO计数区间,即元素Array[0]记录IO计数在[1,T)之间的数据块的个数,元素Array[l]记录IO计数在[T,2T)之间的
数据块的个数,......,元素Array[N-l]记录IO计数在[(N_l) *T,N*T)之间的数据块的个
数。这样遍历完一遍监控信息后,就可以用数组Array反映出存储节点中数据冷热分布情况。
[0140]其中,顺序度也可以使用上述方法进行统计,并得到顺序度的一个统计数组。
[0141]其中,在统计IO计数值时,还可以结合IO读写比例进行计算,例如,如果某个数据块的写数据消耗是读数据消耗是P倍,则可以将IO访问次数按照读写比例算出等价的读IO次数,并且在后面计算门限值时使用这个等价的IO次数进行计算。当然,也可以不考虑读写比例因素,而只是单纯的按照IO访问次数来计算IO计数字段的各个值,即得到数据块的等价IO计数。
[0142]发送单元603,用于向所述存储控制服务器发送所述IO统计信息,所述IO统计信息中包括有至少一个IO计数字段值。
[0143]所述接收单元601,还用于接收所述存储控制服务器发送的存储系统的冷热数据识别门限值
[0144]实现单元604,用于根据所述冷热数据识别门限值,识别出热点数据和冷点数据并实现所述热点数据和所述冷点数据的分层存储。
[0145]存储节点把接收到的门限值传输至本存储节点的数据冷热识别程序,数据冷热识别程序依据门限值分析本地主机的监控信息,进而识别出热点数据和冷点数据。然后分层存储执行器通知数据迁移程序把热点数据迁往高性能层级,把冷点数据迁往低性能层级。
[0146]由此,本发明实施例可以实现存储系统中跨存储节点进行数据迁移,充分发挥整个存储系统的所有高性能存储介质的性能优势,以较低的价格满足存储系统的性能和容量需求。
[0147]相应地,本发明实施例还提供了一种存储控制服务器,图7为本发明实施例提供的另一存储控制服务器示意图,如图所示,本实施例包括网络接口 701、处理器702和存储器703。系统总线704用于连接网络接口 701、处理器702和存储器703。
[0148]网络接口 701用于与存储节点通信。[0149]存储器703可以是永久存储器,例如硬盘驱动器和闪存,存储器703中具有应用程序和设备驱动程序。应用程序用来执行本发明上述技术方案;设备驱动程序可以是网络和接口驱动程序。
[0150]在启动时,应用程序被加载到存储器703中,然后被处理器702访问并执行如下指令:
[0151]向每个所述存储节点发送所述数据块的IO统计信息查询命令;
[0152]接收每个所述存储节点发送的IO统计信息,所述IO统计信息包括有至少一个IO计数字段值,每个所述IO计数字段值记录有发送所述IO统计信息的存储节点中,IO计数值在各个计数范围内的数据块的个数;
[0153]对接收到的所述每个存储节点的IO统计信息中计数范围相同的IO计数字段值进行加运算,生成与各个计数范围对应的IO计数统计值;
[0154]根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值,其中,所述高IO计数统计值中的每一个IO计数统计值,不小于非高IO计数统计值中的IO计数统计值。
[0155]其中,IO统计信息还包括有至少一个顺序度字段值,每个所述顺序度字段值记录有发送所述IO统计信息的存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
[0156]进一步的,处理器702还可执行指令:对接收到的所述每个存储节点的IO统计信息中顺序度范围相同的顺序度字段值进行加运算,生成与各个顺序度范围对应的顺序度统计值;
[0157]处理器702根据所述存储系统的热数据存储介质的总容量,所述数据块的大小、所述IO计数统计值以及所述顺序度统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值。
[0158]由此,可以实现存储系统中跨存储节点进行数据迁移,充分发挥整个存储系统的所有高性能存储介质的性能优势,以较低的价格满足存储系统的性能和容量需求。
[0159]相应地,本发明实施例还提供了一种存储节点,图8为本发明实施例提供的另一存储节点示意图,如图所示,本实施例包括网络接口 801、处理器802和存储器803。系统总线804用于连接网络接口 801、处理器802和存储器803。
[0160]网络接口 801用于与存储节点通信。
[0161]存储器803可以是永久存储器,例如硬盘驱动器和闪存,存储器803中具有应用程序和设备驱动程序。应用程序可包括分层存储执行器程序、数据监控程序、数据冷热识别程序、数据迁移程序等,用来执行本发明上述技术方案;设备驱动程序可以是网络和接口驱动程序。
[0162]在启动时,应用程序被加载到存储器803中,然后被处理器802访问并执行如下指令:
[0163]接收所述存储控制服务器发送的IO统计信息查询命令;
[0164]根据所述IO统计信息查询命令,对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值;
[0165]向所述存储控制服务器发送所述IO统计信息,所述IO统计信息中包括有至少一个IO计数字段值;
[0166]接收所述存储控制服务器发送的存储系统的冷热数据识别门限值,根据所述冷热数据识别门限值,识别出热点数据和冷点数据并实现所述热点数据和所述冷点数据的分层存储。
[0167]其中,监控信息还包括数据块的IO顺序度、或者数据块的IO读写比例,其中,所述顺序度为每个数据块的顺序IO计数占总的IO计数的比例,所述IO读写比例为每个数据块的IO读操作的次数与IO写操作的次数的比例;所述IO统计信息还包括有至少一个顺序度字段值,其中每个所述顺序读字段值记录有本地存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
[0168]进一步的,处理器802执行对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值的过程具体包括:对本地存储节点中数据块的IO计数按照IO读写比例进行统计,得到IO统计信息中的IO计数字段的各个值。
[0169]进一步的,处理器802执行对本地存储节点中数据块的IO计数按照IO读写比例进行统计得到IO统计信息中的IO计数字段的各个值的过程具体为:
[0170]根据数据块被访问的IO次数,以及IO读写比例,计算数据块的IO计数值;
[0171]获取本地存储节点中数据块的最高IO计数M ;
[0172]确定IO计数字段值的个数N ;
[0173]对所述最高IO计数M与IO计数字段值的个数N进行除运算,得到所述计数范围;
[0174]统计每个计数范围内数据块的个数,得到N个IO计数字段值。
[0175]由此,本发明实施例可以实现存储系统中跨存储节点进行数据迁移,充分发挥整个存储系统的所有高性能存储介质的性能优势,以较低的价格满足存储系统的性能和容量需求。
[0176]相应地,本发明实施例还提供了一种存储系统,该系统植入了本发明实施例的冷热数据识别门限值计算方法,包括上述存储控制服务器和多个存储节点,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块。存储控制服务器向每个所述存储节点发送所述数据块的IO统计信息查询命令;接收每个所述存储节点发送的IO统计信息,所述IO统计信息包括有至少一个IO计数字段值,每个所述IO计数字段值记录有发送所述IO统计信息的存储节点中,IO计数值在各个计数范围内的数据块的个数;对接收到的所述每个存储节点的IO统计信息中计数范围相同的IO计数字段值进行加运算,生成与各个计数范围对应的IO计数统计值;根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值,其中,所述高IO计数统计值中的每一个IO计数统计值,不小于非高IO计数统计值中的IO计数统计值。由此,本发明实施例提供的存储系统实现了存储系统中各个存储节点具有统一的冷热识别标准,能独立但是协调地完成整个存储系统的数据分层存储,可以实现存储系统中跨存储节点进行数据迁移,充分发挥整个存储系统的所有高性能存储介质的性能优势,以较低的价格满足存储系统的性能和容量需求。因此,本发明实施例提供的存储系统也在本发明实施例的保护范围内。
[0177]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0178]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动存储介质、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0179]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种冷热数据识别门限值计算方法,其特征在于,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,所述存储控制服务器执行以下步骤: 向每个所述存储节点发送所述数据块的IO统计信息查询命令; 接收每个所述存储节点发送的IO统计信息,所述IO统计信息包括有至少一个IO计数字段值,每个所述IO计数字段值记录有发送所述IO统计信息的存储节点中,IO计数值在各个计数范围内的数据块的个数; 对接收到的所述每个存储节点的IO统计信息中计数范围相同的IO计数字段值进行加运算,生成与各个计数范围对应的IO计数统计值; 根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值,其中,所述高IO计数统计值中的每一个IO计数统计值,不小于非高IO计数统计值中的IO计数统计值。
2.根据权利要求1所述的冷热数据识别门限值计算方法,其特征在于,所述IO统计信息还包括有至少一个顺序度字段值,每个所述顺序度字段值记录有发送所述IO统计信息的存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
3.根据权利要求2所述的冷热数据识别门限值计算方法,其特征在于,所述方法还包括:对接收到的所述每个存储节点的IO统计信息中顺序度范围相同的顺序度字段值进行加运算,生成与各个顺序度范围对应的顺序度统计值; 所述根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值之前还包括具体为:根据所述存储系统的热数据存储介质的总容量,所述数据块的大小、所述IO计数统计值以及所述顺序度统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值。
4.一种冷热数据识别门限值计算方法,其特征在于,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,每个存储节点执行以下步骤: 接收所述存储控制服务器发送的IO统计信息查询命令; 根据所述IO统计信息查询命令,对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值; 向所述存储控制服务器发送所述IO统计信息,所述IO统计信息中包括有至少一个IO计数字段值; 接收所述存储控制服务器发送的存储系统的冷热数据识别门限值,根据所述冷热数据识别门限值,识别出热点数据和冷点数据并实现所述热点数据和所述冷点数据的分层存储。
5.根据权利要求4所述的冷热数据识别门限值计算方法,其特征在于,所述监控信息还包括数据块的IO顺序度、或者数据块的IO读写比例,其中,所述顺序度为每个数据块的顺序IO计数占总的IO计数的比例,所述IO读写比例为每个数据块的IO读操作的次数与IO写操作的次数的比例;所述IO统计信息还包括有至少一个顺序度字段值,其中每个所述顺序读字段值记录有本地存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
6.根据权利要求5所述的冷热数据识别门限值计算方法,其特征在于,所述对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值具体包括:对本地存储节点中数据块的IO计数按照IO读写比例进行统计,得到IO统计信息中的IO计数字段的各个值。
7.根据权利要求6所述的冷热数据识别门限值计算方法,其特征在于,所述对本地存储节点中数据块的IO计数按照IO读写比例进行统计,得到IO统计信息中的IO计数字段的各个值具体包括: 根据数据块被访问的IO次数,以及IO读写比例,计算数据块的IO计数值; 获取本地存储节点中数据块的最高IO计数M ; 确定IO计数字段值的个数N ; 对所述最高IO计数M与IO计数字段值的个数N进行除运算,得到所述计数范围; 统计每个计数范围内数据块的个数,得到N个IO计数字段值。
8.一种存储控制服务器,其特征在于,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,所述存储控制服务器包括: 发送单元,用于向每个所 述存储节点发送所述数据块的IO统计信息查询命令; 接收单元,用于接收每个所述存储节点发送的IO统计信息,所述IO统计信息包括有至少一个IO计数字段值,每个所述IO计数字段值记录有发送所述IO统计信息的存储节点中,IO计数值在各个计数范围内的数据块的个数; 生成单元,用于对接收到的所述每个存储节点的IO统计信息中计数范围相同的IO计数字段值进行加运算,生成与各个计数范围对应的IO计数统计值; 确定单元,用于根据各个所述存储节点中热数据存储介质的总容量、所述数据块的大小、所述IO计数统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值,其中,所述高IO计数统计值中的每一个IO计数统计值,不小于非高IO计数统计值中的IO计数统计值。
9.根据权利要求8所述的存储控制服务器,其特征在于,所述IO统计信息还包括有至少一个顺序度字段值,每个所述顺序度字段值记录有发送所述IO统计信息的存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
10.根据权利要求9所述的存储控制服务器,其特征在于,所述生成单元还用于:对接收到的所述每个存储节点的IO统计信息中顺序度范围相同的顺序度字段值进行加运算,生成与各个顺序度范围对应的顺序度统计值; 所述确定单元具体用于:根据所述存储系统的热数据存储介质的总容量,所述数据块的大小、所述IO计数统计值以及所述顺序度统计值,得到将高IO计数统计值对应的数据块存满所述热数据存储介质时,所述高IO计数统计值中最小IO计数统计值对应的计数范围中的最小IO计数值作为冷热数据识别门限值。
11.一种存储节点,其特征在于,存储控制服务器和多个存储节点连接,至少一个所述存储节点中包括热数据存储介质以及冷数据存储介质,所述存储节点存储有数据块,每个存储节点包括: 接收单元,用于接收所述存储控制服务器发送的IO统计信息查询命令; 统计单元,用于根据所述IO统计信息查询命令,对本地存储节点中数据块的监控信息中的IO计数进行分段统计,得到IO计数值在各个计数范围内的数据块的个数作为IO计数字段值; 发送单元,用于向所述存储控制服务器发送所述IO统计信息,所述IO统计信息中包括有至少一个IO计数字段值; 所述接收单元,还用于接收所述存储控制服务器发送的存储系统的冷热数据识别门限值; 实现单元,用于接收所述存储控制服务器发送的存储系统的冷热数据识别门限值,根据所述冷热数据识别门限值,识别出热点数据和冷点数据并实现所述热点数据和所述冷点数据的分层存储。
12.根据权利要求11所述的存储节点,其特征在于,所述监控信息还包括数据块的IO顺序度、或者数据块的IO读写比例,其中,所述顺序度为每个数据块的顺序IO计数占总的IO计数的比例,所述IO读写比例为每个数据块的IO读操作的次数与IO写操作的次数的比例;所述IO统计信息还包括有至少一个顺序度字段值,其中每个所述顺序读字段值记录有本地存储节点中,顺序度值在各个顺序度范围内的数据块的个数。
13.根据权利要求12所述的存储节点,其特征在于,所述统计单元具体用于:对本地存储节点中数据块的IO计数按照IO读写比例进行统计,得到IO统计信息中的IO计数字段的各个值。
14.根据权利要求13所述的存储节点,其特征在于,所述统计单元统计得到IO统计信息中的IO计数字段的各个值的过程具体包括:根据数据块被访问的IO次数,以及IO读写比例,计算数据块的IO计数值;获取本地存储节点中数据块的最高IO计数M ;确定IO计数字段值的个数N ;对所述最高IO计数M与IO计数字段值的个数N进行除运算,得到所述计数范围;统计每个计数范围内数据块的个数,得到N个IO计数字段值。
15.一种存储系统,所述系统包括如权利要求8-10任一项所述的存储控制服务器,以及多个如权利要求11-14任一项所述的存储节点。
【文档编号】G06F3/06GK103631538SQ201310652334
【公开日】2014年3月12日 申请日期:2013年12月5日 优先权日:2013年12月5日
【发明者】王辰, 林宇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1