一种分级存储中基于块级数据的定向分配方法

文档序号:6519931阅读:124来源:国知局
一种分级存储中基于块级数据的定向分配方法
【专利摘要】本发明提供一种分级存储中基于块级数据的定向分配方法,建立数据定向分配构架,该构架包括数据块热度判定模块、数据块定向分配与迁移模块以及分级存储组织模块,数据块热度判定模块实现对于卷中一部分固定大小的块数据进行监控以及数据热度的统计分析,继而完成对于块数据的分级管理操作;数据块定向分配与迁移模块将根据数据的热度状态,以及设备特性进行数据定向分配;分级存储组织模块负责将存储资源进行整合,形成具备分级存储能力的存储资源池。该一种分级存储中基于块级数据的定向分配方法和现有技术相比,能够提升分级存储的管理效率,实用性强,易于推广。
【专利说明】一种分级存储中基于块级数据的定向分配方法
【技术领域】
[0001]本发明涉及智能数据管理领域,具体的说是一种分级存储中基于块级数据的定向分配方法。
【背景技术】
[0002]数据分级存储主要是根据存储设备访问性能的特征差异,将不同热度的数据放置到与之匹配的存储设备中,例如将热点数据放置到I/o性能更好的存储设备上,从而提高存储系统的整体访问性能。现有的分级存储设备构成主要是将固态盘与磁盘进行组合存储,在存储虚拟层对具备性能差异的存储设备进行合理组织,构成统一的存储资源池。然而,由于固态盘自身存在I/o性能不对称的特点,并且固态盘当中闪存颗粒的擦除次数也有一定限制,因此如果在分级存储系统中简单粗放地将数据分配到固态盘与磁盘之中,很可能会增加系统的访问延迟,不仅难以发挥固态盘的性能优势,同时也降低了固态盘的使用寿命,从而在一定程度上增加了分级存储系统可靠性方面存在的风险。

【发明内容】

[0003]本发明的技术任务是解决现有技术的不足,提供一种分级存储中基于块级数据的定向分配方法。
[0004]本发明的技术方案是按以下方式实现的,该一种分级存储中基于块级数据的定向分配方法,建立数据定向分配构架,该构架包括数据块热度判定模块、数据块定向分配与迁移模块以及分级存储组织模块,各个模块对块级数据进行定向分配的过程为:
一、数据块热度判定模块实现对于卷中一部分固定大小的块数据进行监控以及数据热度的统计分析,继而完成对于块数据的分级管理操作;
二、数据块定向分配与迁移模块将根据数据的热度状态,以及设备特性进行数据定向分配;
三、分级存储组织模块负责将存储资源进行整合,形成具备分级存储能力的存储资源池。
[0005]所述步骤一的详细过程为:数据的读取与写入过程都会被热度判定模块进行监控,从而对数据特征进行分析,进而判定数据的冷/热程度,并且根据数据的热度在内存中的缓冲区中建立热度队列,当缓冲区空间已满后,从热度队列中被替换出的数据块将会提交给数据分配与迁移模块进行定向分配。
[0006]所述步骤二的详细过程为:数据块定向分配与迁移模块通过对数据块读、写特征进行计算,得出其读/写趋势,根据趋势将数据写入到固态盘或者磁盘当中,即将被经常读取的数据放置到固态盘中,而将经常被写入的数据放入到硬盘中;除了负责定向分配,该模块还要负责数据的迁移操作管理,将热点数据迁移到固态盘中,完成升级操作;将固态盘中的冷数据迁移到磁盘中,完成降级操作。
[0007]数据块定向分配与迁移模块所实施的算法为: 1)数据块定向分配与迁移模块开始计算数据块的放置倾向,如果数据的原有存储位置与定向分配倾向不一致,将进行迁移操作,根据数据块中Iasttime计算访问热度间隔时间:如果该时间大于interval,那么数据块处于热度降低状态statecool ;如果小于interval,那么数据块处于热度升高状态statehot ;
2)计算数据块的读写倾向值p=readcount/writecount,如果p值大于或者等于1,并且处于statehot状态时,那么将放置到固态盘上;如果处于satecool,那么数据放置到磁盘上;
3)如果P值小于1,如果数据块处于statehot状态时,那么将放置到磁盘上;如果处于satecool,那么数据放置到固态盘上;
4)循环执行步骤I)到步骤3)直到分级存储系统结束运行
所述步骤三的详细过程为:分级存储组织模块按照性能由高到低的顺序组织磁盘,并且构建多级设备链表,将不同性能的存储设备进行统一管理,得到分级存储资源池。
[0008]本发明与现有技术相比所产生的有益效果是:
本发明的一种分级存储中基于块级数据的定向分配方法充分发挥固态盘的性能优势,同时提升固态盘使用寿命,保障分级存储系统的可靠性,该方法根据固态盘读/写性能的差异特征,利用数据定向分配算法,将具备“读倾向”的数据块放置到固态盘中,而将具备“写倾向”的数据块放置到磁盘上,这样既保证了发挥固态盘读取方面的优势,也减少了对于固态盘的写入次数,从而提高了分级存储的可靠性与访问性能。另外,本发明中基于块级数据进行分级存储管理,所管理的数据粒度更细,热点数据的定位也更加准确,因此,基于块级的数据定向分配方法同时能够提升分级存储的管理效率,实用性强,易于推广。
【专利附图】

【附图说明】
[0009]附图1是本发明的数据定向分配构架示意图。
[0010]附图2是本发明的数据定向分配算法流程示意图。
[0011]附图3是本发明的磁盘组织结构示意图。
【具体实施方式】
[0012]下面结合附图对本发明的一种分级存储中基于块级数据的定向分配方法作详细说明。
[0013]该一种分级存储中基于块级数据的定向分配方法,首先建立如附图1所示的数据定向分配构架,该构架包括数据块热度判定模块、数据块定向分配与迁移模块以及分级存储组织模块,各个模块对块级数据进行定向分配的过程为:
(I)数据块热度判定模块能够实现对于卷中一部分固定大小的块数据进行监控以及数据热度的统计分析,继而完成对于块数据的分级管理操作。由于所管理的块数据粒度更细,并且在卷中需要管理的数据量值相对较少,因此,能够获得更高的数据分配效率,在进行迁移等操作时损耗较少,有利于提高存储资源的利用率与管理效率。数据的读取与写入过程都会被热度判定模块进行监控,从而对数据特征进行分析,进而判定数据的冷/热程度,并且根据数据的热度在内存中的缓冲区中建立热度队列。当缓冲区空间已满后,从热度队列中被替换出的数据块将会提交给数据分配与迁移模块进行定向分配。[0014]数据块热度判定模块负责监控数据块的特征信息,并且对块数据的特征信息按照热度特征值进行统计分析。在获取数据特征时监控块数据的访问时间信息,引用频率信息等。块数据信息的结构定义如下:
struct blockinfo {
unsigned int device; //块数据所在设备
u64 offset;//块地址偏移量
time_t lasttime;//块数据最后访问时间
unsigned int readcount; // 块数据的读计数
unsigned int writecount; // 块数据的写计数
};
数据块热度判定模块在对读、写I/O进行处理时,该模块所使用的请求队列接收来自通用块设备模块的I/o请求,当I/O入队列后,数据块热度判定模块的线程根据I/O的不同类型划分不同的设备块给I/o请求以便存储写数据,数据写入分配的块设备之后I/O结束。在处理写请求时,记录数据块的写信息,包括设备的写请求数量、块的写请求数量;对于读I/o请求统计设备以及块的访问引用计数和访问时间信息,之后将I/O进行转发。然后,可以将整个I/O队列的引用频率信息进行统计,并且根据给定的阀值进行度量。
[0015]在具体实现过程中,数据块热度判定模块执行的过程包括:
I)利用DataTempDecide函数对通用层传输的数据块访问I/O进行监控,将每个块的I/O请求都加入到I/O队列当中。
`[0016]2)利用bio_for_each_segment函数遍历1/0队列,分别判断1/0操作类型,如果是write操作,那么就将该数据块的写操作引用数writecount进行累加,同样处理该数据块的读操作引用数readcount。
[0017]3)数据块热度判定模块将对数据块Si的readcount与writecount进行统计,计算出总引用数totalcount。然后,计算该块所在设备TierDevice的平均引用数averagecountο
[0018]当该块Si的totalcount大于averagecount时,那么将数据块定义为热点数据,并且加入到热点数据队列HotArray中,将数据块Si插入到HotArray的队首。
[0019]另外,热度值的计算还要统计数据块Si的访问时间lasttime,如果时刻tl与时刻t2的访问间隔Iasttimetl-1asttimet2大于定义的访问热度窗口 interval,那么将降低数据块的热度,否则,数据块的热度升高。
[0020](2)数据块定向分配与迁移模块将根据数据的热度状态,以及设备特性进行数据定向分配。通过对数据块读、写特征进行计算,然后得出其读/写趋势,根据趋势将数据写入到固态盘或者磁盘当中,即将被经常读取的数据放置到固态盘中,而将经常被写入的数据放入到硬盘中。除了负责定向分配,该模块还要负责数据的迁移操作管理,将热点数据迁移到固态盘中,完成升级操作;将固态盘中的冷数据迁移到磁盘中,完成降级操作。
[0021]数据块定向分配与迁移模块主要负责完成对于数据块的定向分配与数据块在不同等级设备之间进行迁移的工作、数据块的定向分配。当缓冲区空间不足时,需要将HotArray队尾中的数据块替换出缓存空间,被替换出的数据块将会根据其自身热度与读写倾向进行定向分配操作,定向分配算法执行过程如图2所示。定向分配算法执行过程如下:
a)数据块定向分配与迁移模块开始计算数据块的放置倾向,如果数据的原有存储位置与定向分配倾向不一致,将进行迁移操作。根据数据块中Iasttime计算访问热度间隔时间,如果该时间大于interval,那么数据块处于热度降低状态statecool。如果小于interval,那么数据块处于热度升高状态statehot ;
b)计算数据块的读写倾向值p=readcount/writecount,如果p值大于或者等于1,并且处于statehot状态时,那么将放置到固态盘上;如果处于satecool,那么数据放置到磁盘上;
c)如果P值小于1,如果数据块处于statehot状态时,那么将放置到磁盘上;如果处于satecool,那么数据放置到固态盘上; d)循环执行步骤a)到步骤c)直到分级存储系统结束运行。
[0022]数据迁移:在进行迁移时,数据块定向分配与迁移模块需要对被迁移的设备进行加锁处理,为的是能够确保数据的一致性。然后,开始对块列表开始遍历walk_blocklist,确定是升级操作还是降级操作:当块Si的totalcount大于averagecount时,那么将数据块定义为热点数据,进行升级操作,否则进行降级操作。利用f_op->read操作函数将从设备文件中读取数据,并且利用f_op->write操作函数将数据写入到新的设备当中,并且要完成对于块列表的更新操作,包括该块最近访问的时间,以及该块最新的存储设备等信息。
[0023](3)分级存储组织模块负责将存储资源进行整合,形成具备分级存储能力的存储资源池。利用分级存储组织模块按照性能由高到低的顺序组织磁盘,并且构建多级设备链表,将不同性能的存储设备进行统一管理,得到分级存储资源池。
[0024]该分级存储组织模块在进行磁盘的元数据组织时,磁盘数据块组织利用线性链表。分级设备的结构信息定义如下:
struct Tierdevice {
u64 devicesize; //设备大小
u64 startofdata;
u64 startofbitlist; //数据起始位置
u64 startofblocklist;
};
在分级存储系统中,分级存储组织模块负责将具备不同访问性能的存储进行组织,构成统一的存储资源池。分级存储组织模块利用Set_Tierdevice函数中lseek64函数计算设备的大小devicesize,并且将不同设备的Tierdevice连接到设备链表当中。将数据块的元数据以及数据块的位图信息存储在每块磁盘的末尾,并且将所有磁盘的元数据信息在第一块磁盘上进行统一组织,这样以便能够合理地使用存储空间。磁盘组织方式如图3所示。
[0025]除说明书所述的技术特征外,均为本专业技术人员的公知技术。
【权利要求】
1.一种分级存储中基于块级数据的定向分配方法,其特征在于,建立数据定向分配构架,该构架包括数据块热度判定模块、数据块定向分配与迁移模块以及分级存储组织模块,各个模块对块级数据进行定向分配的过程为: 一、数据块热度判定模块实现对于卷中一部分固定大小的块数据进行监控以及数据热度的统计分析,继而完成对于块数据的分级管理操作; 二、数据块定向分配与迁移模块将根据数据的热度状态,以及设备特性进行数据定向分配; 三、分级存储组织模块负责将存储资源进行整合,形成具备分级存储能力的存储资源池。
2.根据权利要求1所述的一种分级存储中基于块级数据的定向分配方法,其特征在于,所述步骤一的详细过程为:数据的读取与写入过程都会被热度判定模块进行监控,从而对数据特征进行分析,进而判定数据的冷/热程度,并且根据数据的热度在内存中的缓冲区中建立热度队列,当缓冲区空间已满后,从热度队列中被替换出的数据块将会提交给数据分配与迁移模块进行定向分配。
3.根据权利要求1所述的一种分级存储中基于块级数据的定向分配方法,其特征在于,所述步骤二的详细过程为:数据块定向分配与迁移模块通过对数据块读、写特征进行计算,得出其读/写趋势,根据趋势将数据写入到固态盘或者磁盘当中,即将被经常读取的数据放置到固态盘中,而将经常被写入的数据放入到硬盘中;除了负责定向分配,该模块还要负责数据的迁移操作管理,将热点数据迁移到固态盘中,完成升级操作;将固态盘中的冷数据迁移到磁盘中,完成降级操作。
4.根据权利要求3所述的一种分级存储中基于块级数据的定向分配方法,其特征在于,数据块定向分配与迁移模块所实施的算法为: 1)数据块定向分配与迁移模块开始计算数据块的放置倾向,如果数据的原有存储位置与定向分配倾向不一致,将进行迁移操作,根据数据块中Iasttime计算访问热度间隔时间:如果该时间大于interval,那么数据块处于热度降低状态statecool ;如果小于interval,那么数据块处于热度升高状态statehot ; 2)计算数据块的读写倾向值p=readcount/writecount,如果p值大于或者等于1,并且处于statehot状态时,那么将放置到固态盘上;如果处于satecool,那么数据放置到磁盘上; 3)如果P值小于1,如果数据块处于statehot状态时,那么将放置到磁盘上;如果处于satecool,那么数据放置到固态盘上; 4)循环执行步骤I)到步骤3)直到分级存储系统结束运行 根据权利要求1所述的一种分级存储中基于块级数据的定向分配方法,其特征在于,所述步骤三的详细过程为:分级存储组织模块按照性能由高到低的顺序组织磁盘,并且构建多级设备链表,将不同性能的存储设备进行统一管理,得到分级存储资源池。
【文档编号】G06F12/06GK103605615SQ201310587516
【公开日】2014年2月26日 申请日期:2013年11月21日 优先权日:2013年11月21日
【发明者】施光源, 张宇 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1