技术简介:
本专利针对传统分层存储中数据分类不精准、高性能存储利用率低的问题,提出基于数据活跃度预测的优化方法。通过监控多周期数据读写行为,构建包含读写次数、操作间隔等多维度的活跃度评分模型,结合最小二乘法预测未来活跃度,动态划分热/冷数据并迁移存储,显著提升高性能存储介质的使用效率。
关键词:分层存储优化,数据活跃度预测
1.本发明属于数据存储领域,具体涉及一种以预测优化数据分类的分层存储方法。
背景技术:2.企业在高速发展时所需要保存的数据愈来愈多,然而所储存的一切数据并非都具备非常高的使用价值,事实上存储系统资源会被大量低使用价值的数据所占据,导致影响存储系统性能,浪费高成本的存储空间。针对数据爆炸式增长所带来的大量低访问数据的保存问题,分层存储是一种良好的解决方案,其思想是在同一存储设备中混合使用ssd和hdd,并按照数据的使用价值划分数据,然后将其存储到访问速度级别不同的存储设备中。实现常用数据即热数据的读写更能被高效快速地访问,冷数据能够不占用高性能磁盘的空间。
3.现有技术中一般根据过去一段访问时间的次数将数据划分成冷数据或热数据,没有考虑数据在历史访问的信息有效性逐渐降低,即两份数据,在很久之前读写访问了其中一份数据,在最新一次访问了另一份数据时,在划分冷热数据时,若两次数据的读写点击次数相同,两份数据都会被统一划分为热数据,这显然不够准确。
技术实现要素:4.本发明的目的在于针对解决背景技术中提出的问题,提出一种以预测优化数据分类的分层存储方法。
5.为实现上述目的,本发明所采取的技术方案为:
6.本发明提出的一种以预测优化数据分类的分层存储方法,应用于以预测优化数据分类的分层存储系统,以预测优化数据分类的分层存储系统包括热度监控模块、单周期数据排布模块、未来周期活跃度预测模块和数据迁徙模块,以预测优化数据分类的分层存储方法,包括:
7.热度监控模块,在单个监控周期内收集分层卷中各数据块的活跃度信息,统计成数据读写记录文件,并将数据读写记录文件发送至单周期数据排布模块。
8.单周期数据排布模块,接收热度监控模块发送的读写记录文件,通过活跃度分数公式计算各数据块的活跃度分数,统计成活跃度分数文件,且活跃度分数公式如下:
9.score
sum
=a0×
(rs0+ws0)+a1×
(rs1+ws1)+...+an×
(rsn+wsn);
10.其中:
11.ai=e-(βδt)
;
12.rsi=readhit
×
hitscore
×
readmultiplier;
13.wsi=writehit
×
hitscore
×
writemultiplier;
14.其中:score
sum
表示单个数据块的活跃度分数,ai×
(rsi+wsi)表示单个监控周期内数据块每次发生读写访问操作时,单次读写访问操作计算得出的活跃度信息分数,ai表示衰减因子,β表示衰减因子常量,δt表示衰减持续时间,rsi表示读数据块的分数,wsi表示写
数据块的分数,readmultiplier和writemultiplier分别表示读操作权重和写操作权重,readhit和writehit分别表示读的次数和写的次数,hitscore表示点击次数的得分。
15.未来周期活跃度预测模块,根据活跃度分数文件,通过预测算法预测存储级中各数据块的未来周期活跃度分数,根据策略对各数据块属的存储级进行划分,且发送至数据迁徙模块。
16.数据迁徙模块,根据未来周期活跃度预测模块发送的数据块属存储级划分结果,将各数据块迁徙至相应的存储级。
17.优选地,活跃度信息包括数据块的读点击次数、写点击次数、操作间隔时间和读写操作权重。
18.优选地,以预测优化数据分类的分层存储系统还包括判断模块,判断模块接收单周期数据排布模块发送的活跃度分数文件,且根据文件的数量进如下判断:
19.当活跃度分数文件的数量大于或等于预设值时,判断模块将活跃度分数文件发送至未来周期活跃度预测模块,未来周期活跃度预测模块预测各数据块的未来周期活跃度分数;
20.当活跃度分数文件的数量小于预设值时,判断模块不发送活跃度分数文件,且热度监控模块继续收集下个周期内的各数据块的活跃度信息。
21.优选地,存储级包括高性能层、性能层和容量层。
22.优选地,以预测优化数据分类的分层存储系统还包括检查配置模块,检查模块检查系统环境是否正常、热度监控模块是否正常、分层卷是否存在以及存储级是否有足够的存储空间。
23.优选地,未来周期活跃度预测模块根据未来周期活跃度分数将存储级中各层的数据块划分为热数据、较热数据和冷数据。
24.优选地,预测算法为最小二乘法。
25.与现有技术相比,本发明的有益效果为:
26.本分层存储方法采用热度监控模块对多个周期内的数据块活跃度信息收集,且活跃度信息包含多个因素,这样各数据块的冷热度评估的准确性更高,通过判断模块保证活跃度分数文件的数量,这样减小对各数据冷热度评估的误差,通过未来周期活跃度模块预测各数据未来周期活跃度分数,提高各数据分类的准确性,然后再通过数据迁徙模块进行数据迁徙,实现各数据块按冷热度进行分类存储,进而提高了分层存储系统中高性能层的利用率。
附图说明
27.图1为本发明以预测优化数据分类的分层存储方法的模块框图;
28.图2为本发明以预测优化数据分类的分层存储方法的流程图。
具体实施方式
29.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实
施例,都属于本技术保护的范围。
30.需要说明的是,当组件被称为与另一个组件“连接”时,它可以直接与另一个组件连接或者也可以存在居中的组件。除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本技术。
31.在一个实施例中,如图1-2示,一种以预测优化数据分类的分层存储方法,应用于以预测优化数据分类的分层存储系统,以预测优化数据分类的分层存储系统包括热度监控模块、单周期数据排布模块、未来周期活跃度预测模块和数据迁徙模块,以预测优化数据分类的分层存储方法,包括:
32.步骤s1:以预测优化数据分类的分层存储系统包括检查配置模块,检查模块检查系统环境是否正常、热度监控模块是否正常、分层卷是否存在以及存储级是否有足够的存储空间。
33.需要说明的是,如图1,本实施例基于lvm(logical volume manager)架构实现,该软件架构是当下一种在linux系统下的非常成熟稳定的用于管理磁盘分区的成熟架构,它的外部表现是将磁盘抽象成卷提供给使用者,将文件系统创建在卷上,便可以在该卷上正常的创建文件、保存文件、删除文件等。本实施例中,检查配置模块首先检查分层存储系统环境,下发配置参数是否正确,以保证分层存储功能的正常运行。还包括检查热度监控模块的监控功能是否可用,要监控的分层卷是否存在,是否存在足够空间的存储级。
34.步骤s2:热度监控模块,在单个监控周期内收集分层卷中各数据块的活跃度信息,统计成数据读写记录文件,并将数据读写记录文件发送至单周期数据排布模块。
35.本实施例中,分层卷是逻辑卷(lv,logical volume)的一种,指的是占用不同层级硬盘的空间所组成的逻辑卷,分层卷根据存储的介质不同将数据块存储至存储级中,存储级包括高性能层、性能层和容量层。热度监控模块在一个周期内是对各层中的每个数据块的活跃度信息收集(即热度监控模块收集分别收集高性能层、性能层和容量层中的数据块),统计并输出一个数据读写记录文件,通过数据读写记录文件实时掌握上层应用对分层卷的读写访问情况,从而判断各层中各数据块的冷热度,热度监控模块并将数据读写记录文件发送至单周期数据排布模块,用于对各层中各数据块的活跃度信息量化为一个综合评估的活跃度分数。需要说明的是,活跃度分数是一个加权累计值,即是一个考虑了多种有意义的可测量因素且实时更新的值,这些因素包括数据块的读点击次数、写点击次数、操作间隔时间和读写操作权重。对影响数据块冷热度的多种因素进行量化,形成综合评估的活跃度分数,提高冷热数据分类的准确性。
36.步骤s3:单周期数据排布模块,接收热度监控模块发送的读写记录文件,通过活跃度分数公式计算存储级中各数据块的活跃度分数,统计成活跃度分数文件。
37.本实施例中,单周期数据排布模块是将一个周期内热度监控模块监控的数据块活跃度信息转化成各数据块的活跃度分数,即每个周期结束后,通过活跃度分数公式计算出各个数据块的活跃度分数,统计并输出一个活跃度分数文件,将活跃度分数文件发送至判断模块。
38.活跃度分数公式如下:
39.score
sum
=a0×
(rs0+ws0)+a1×
(rs1+ws1)+...+an×
(rsn+wsn);
40.其中:
41.ai=e-(βδt)
;
42.rsi=readhit
×
hitscore
×
readmultiplier;
43.wsi=writehit
×
hitscore
×
writemultiplier;
44.其中:score
sum
表示单个数据块的活跃度分数;ai×
(rsi+wsi)表示单个监控周期内数据块每次发生读或写点击的活跃度信息的分数;ai表示衰减因子,表示数据块在监控的某一时刻会因为读写而记录下一条历史活跃度信息,而这一条活跃度信息对应得到的活跃度score(i),会随着监控累积时间的增加,score(i)的值会逐渐降低或者说是数据块的历史访问的信息有效性逐渐减低;β表示衰减因子常量,它是配置文件的设置数据值,默认值为1/(3
×
24
×
60
×
60)=0.00000385802,表示3天的衰减量(也可以设置成一天的衰减量:1/(1
×
24
×
60
×
60));δt表示衰减持续时间、操作间隔时间,即表示由活跃度分数文件中所记录的产生此读写访问操作的时间与当前时间的差值,单位为秒;rsi表示读数据块的分数,wsi表示写数据块的分数;readmultiplier和writemultiplier分别表示读操作权重和写操作权重,即读写的放大倍数,可以根据实际情况设置读或写的权重,权重越高,优先级越高,优先将读或写频繁的数据块存入到更高存储层级中,使这些数据在产生访问需求时,能够被更高效地访问,在不同场景中,可以设置更合适的读写放大倍数,例如,当分层存储应用于存取在电影视频网站的数据,或其他优先考虑读访问的应用场景,就可以适当调高读权重;当分层存储应用于存取档案、日志系统数据等优先考虑写频繁数据的应用场景时,可以适当调高写权重;readhit和writehit分别表示读的次数和写的次数,hitscore表示点击次数的得分,点击次数表示一次读写操作发生了多少位运算,就是多少次点击次数,hitscore值的大小可以根据实际需要设置。
45.步骤s4:以预测优化数据分类的分层存储系统还包括判断模块,判断模块接收单周期数据排布模块发送的活跃度分数文件,且根据文件的数量进如下判断:
46.当活跃度分数文件的数量大于或等于预设值时,判断模块将活跃度分数文件发送至未来周期活跃度预测模块,未来周期活跃度预测模块预测各数据块的未来周期活跃度分数;
47.当活跃度分数文件的数量小于预设值时,判断模块不发送活跃度分数文件,且热度监控模块继续收集下个周期内的各数据块的活跃度信息。
48.本实施例中,给本分层存储系统设置一个预设值,用于将预设值与判断模块接收到的文件数量进行比较,判断模块保证活跃度分数文件的数量,进而保证对各数据块冷热度评估的准确性。
49.步骤s5:未来周期活跃度预测模块,根据活跃度分数文件,通过预测算法预测存储级中各数据块的未来周期活跃度分数,根据策略对各数据块所属的存储级进行划分,且发送至数据迁徙模块。
50.本实施例中,预测算法为最小二乘法,但不局限于最小二乘法,还可以使用其他预测算法。未来周期活跃度预测模块利用最小二乘法生成预测后的各数据块的未来周期活跃度分数,再根据策略将各层的数据块划分为热数据、较热数据和冷数据,即高性能层中的数据块划分为热数据、较热数据和冷数据,性能层中的数据块划分为热数据、较热数据和冷数据,容量层中的数据块划分为划分为热数据、较热数据和冷数据,本实施例中的策略为按照
未来周期活跃度分数的高低,按照百分比对各层数据块进行划分,如根据未来周期活跃度分数由高到低将数据块排列,前百分之二十为热数据,后百分之三十为冷数据,中间百分之五十为较热数据。各层数据块的划分策略不限于百分比法,还可以使用其他策略划分。
51.步骤s6:数据迁徙模块,根据未来周期活跃度预测模块发送的数据块所属存储级划分结果,将各数据块迁徙至相应的存储级。
52.本实施例中:数据迁徙模块在进行迁徙时,对于性能层:热数据迁徙至相对较高层(即高性能层)、较热数据保留在当前层(即性能层),冷数据迁徙至相对较低层(即容量层);对于高性能层:由于没有更高层,热数据保留在当前层(即高性能层)、较热数据保留在当前层(即高性能层)、冷数据迁徙至相对较低层(即性能层);对于容量层:由于没有更低层,冷数据保留在当前层(即容量层)、较热数据保留在当前层(即容量层)、热数据迁徙至相对较高层(即性能层)。
53.分层卷中存储级的划分如下表格所示:
[0054][0055]
在另一个实施例中,仿真实验采用层级总数为二层的分层存储系统。
[0056]
首先通过备份不同周期内的活跃度分数记录文件,随后在预处理完成的各个周期的数据块集合中抽取n个周期内数据块,n大于等于最小二乘法中的权值向量w的维度。以数
据窗口中n个周期的数据块活跃度分数为已知信息,以已经记录下来的第n+1个周期的数据块活跃度分数作为实际活跃度分数,将其作为参考数据。然后分别以直接使用第n个周期的活跃度分数作为冷热数据分类方法的朴素法记录的结果,作为第一组数据;再以使用经过最小二乘法运算得到的第n+1个周期的活跃度分数结果,作为第二组数据。通过分析两种预测方法得到的热数据与参数数据中的热数据的对比,来评价这两种预测方法。
[0057]
为了评价两种预测方法的分类结果与参照组的相似度,这里采用了两个量化指标。第一个量化指标是热数据块选取准确率pb,其计算公式如下:
[0058][0059]
其中,n
real
代表第n+1个周期测到的实际热数据块的个数,而n
same
代表的是使用某一种预测方法(朴素法或最小二乘法)得到的热数据块集合与实际热数据块集合的交集的元素个数,即某一种预测方法与实际热数据重合的热数据个数。因此,n
same
与n
real
的比值pb即为某一种预测方法的热数据块选择正确率。
[0060]
第二个量化指标为热数据块访问次数总量准确率pc,计算公式如下:
[0061][0062]
其中,s
real
代表的是第n+1个周期是热数据块逻辑号对应的的访问次数总和,而s
predict
代表的是某一种预测方法的所选择的热数据块的序号对应的访问次数总和。因此,s
predict
与s
real
的比值pc即为某一种预测方法的热数据块访问次数总量准确率。
[0063]
通过测试6次仿真实验,每次更换新的多个周期的备份数据,分别选定w维度3、5、7、8、9、10的情况,两种方法的热数据块选取准确率pb和热数据块访问次数总量准确率pc。的平均值如下表格所示:
[0064][0065][0066]
上表格中,通过比对朴素法得到的第n+1个周期的热数据块与实际n+1个周期的热数据块,可以证实,热数据其实是有时间相关性的,即便之前的活跃度信息被清理,但是由用户或系统经常访问的文件或者系统中的数据仍会被多次考虑变为热数据,因此对数据的预测或者或从另一方面来讲分层是完全有必要的。值得注意的是,已被迁移至上层的数据对应的数据块即便又得到了很高的活跃度分数,但不会被作为代迁移数据块。此外,当向量
维度w=8时,最小二乘方法对热数据块的序号选取准确率pb比朴素方法高6.7%,但pc为0.3%,说明针对于分类的热数据总访问量,两种方法性能相近。当向量维度w=9时,最小二乘方法分类的热数据块序号准确率pb为91.1%,热数据访问量准确率pc达到理论最优值的99.1%。此时最小二乘方法选取的热数据集合总访问量准确率pc比朴素方法选取的集合高4.4%,更接近分层存储系统的理论最优分层结果,提高了分层存储系统中高性能存储介质的利用率。向量维度w=10时,准确率进一步提高,但提升较小,而使用较高的向量维度w会占用更大的计算资源。
[0067]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0068]
以上所述实施例仅表达了本技术描述较为具体和详细的实施例,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。