一种数据段迁移方法及系统与流程

文档序号:13760123阅读:270来源:国知局
一种数据段迁移方法及系统与流程

本发明涉及数据存储技术领域,更具体地说,涉及一种数据迁移方法,还涉及一种数据迁移系统。



背景技术:

随着互联网数据量的急剧增长,人们对存储系统的容量和性能提出了越来越高的要求,现代的存储系统不仅需要大容量,还要满足高吞吐率、高IOPS和IO访问低延迟。然而,目前存储系统的性能仍然受限于存储系统使用最多的存储介质传统机械式硬盘(Hard Disk Driver,简称HDD),传统机械式硬盘由于其固有物理特性,其随机访问的性能差。近年出现的固态存储器(Solid Storage Driver,简称SSD),如Flash存储器、固态盘和PCM等,正好弥补了传统HDD随机访问性能差的缺点,基于闪存技术的SSD读写延迟较小,对数据随机访问提供了很好的支持。而由于SSD速度越来越快,容量越来越大,存储系统中开始使用SSD与HDD构成混合存储系统,将存储系统中访问频繁的数据和文件存放到SSD中,以充分发挥SSD的优势,这就形成了分级存储系统。例如一种典型的分级存储系统,从上到下划分为如下3个层级:SSD层、SAS磁盘层,NL-SAS磁盘层,三个层级从上到下容量依次递增,性能依次递减。

传统分级存储系统中,会将系统中所有存储空间划分为相同大小的数据段,并以数据段为基本粒度进行数据访问的热度统计。根据预先定义的一系列规则,将数据访问热度较高的数据段由当前层级向上迁移到性能较高的层级中,将数据访问热度较低的数据段由当前层级向下迁移到性能较低的层级中。

在这种分级存储系统中,数据段的大小成为系统性能和开销两个指标之间平衡的关键因素:数据段较大时,数据访问热度的统计信息等元数据较少,数据分级的管理开销也较少,但对热点数据的识别精度较差,较高性能的层级中会存储一些访问热度较低的数据,且数据段在层级间迁移时获得的性能收益较少,因为数据段迁移时必不可少的迁移了一部分不必要的数据。数据段较小时,情况则刚好相反,对热点数据的识别精度较好,但对数据分级的管理开销较大。因此,现有技术中分级存储方法无法同时兼顾数据段的大小对热点数据的识别精度和数据分级管理的开销。

因此,如何同时兼顾数据段的大小对热点数据的识别精度和数据分级管理的开销是本领域技术人员急需要解决的技术问题。



技术实现要素:

为解决上述技术问题,本发明提供一种,通过在分级存储系统中的不同层级使用与该层级相匹配大小的数据段,能够兼顾数据段的大小对热点数据的识别精度和数据分级管理的开销。

为实现上述目的,本发明提供如下技术方案:

一种数据段迁移方法,包括:

根据每个层级的总存储空间、元数据存储空间以及数据访问热度统计信息计算所述每个层级中的数据段大小;

在目标层级中选取至少一个目标数据段,判断是否需要触发所述目标数据段向上一层级或者向下一层级迁移;

若触发所述目标数据段向所述上一层级迁移,则将所述目标数据段按照所述上一层级中的数据段大小进行拆分,同时在所述目标层级中保留所述目标数据段的副本;

若触发所述目标数据段向所述下一层级迁移,则将所述目标数据段与所述下一层级中的母体数据段进行合并,同时在所述目标层级中删除所述目标数据段。

优选的,在上述数据段迁移方法中,若触发所述目标数据段向上一层级迁移,则将所述目标数据段按照所述上一层级中的数据段大小进行拆分,同时在所述目标层级中保留所述目标数据段的副本,具体包括:

在所述上一层级中查找是否有用于存储所述目标数据段的存储空间;

如果有,则在所述上一层级中分配多个子数据段,所述多个子数据段的大小之和与所述目标数据段大小相同;

将所述目标数据段按照所述子数据段的大小进行拆分,将拆分后的目标数据段依次复制到所述子数据段中,同时在所述目标层级中保留所述目标数据段的副本。

优选的,在上述数据段迁移方法中,将所述目标数据段按照所述子数据段的大小进行拆分,将拆分后的目标数据段依次复制到所述子数据段中,同时在所述目标层级中保留所述目标数据段的副本之后,还包括:

根据所述目标层级中的数据访问热度统计信息更新所述多个子数据段的数据访问热度统计信息。

优选的,在上述数据段迁移方法中,更新所述多个子数据段的数据访问热度统计信息之后,还包括:

记录所述目标数据段的编号以及所述子数据段在所述目标数据段中的索引。

优选的,在上述数据段迁移方法中,若触发所述目标数据段向下一层级迁移,则将所述目标数据段与所述目标数据在所述下一层级中所属的母数据段进行合并,同时在所述目标层级中删除所述目标数据段,具体包括:

在所述下一层级中查找是否有用于存储所述目标数据段的存储空间;

如果有,查找所述目标数据在所述下一层级中所属的母数据段,并将所述目标数据段复制至所述母数据段中,并根据所述目标数据段中的关于与所述母数据段的索引值将所述目标数据段放在对应的位置;

在所述目标层级中删除所述目标数据段。

优选的,在上述数据段迁移方法中,在所述目标层级中删除所述目标数据段之后,还包括:

根据所述目标层级中的数据访问热度统计信息更新所述母数据段的数据访问热度统计信息。

本发明还提供了一种数据段迁移系统,包括:

数据段大小计算模块,用于根据每个层级的总存储空间、元数据存储空间以及数据访问热度统计信息计算所述每个层级中的数据段大小;

迁移判断模块,判断是否需要触发所述目标数据段向上一层级或者向下一层级迁移;

迁移触发模块,用于触发所述目标数据段向所述上一层级或所述下一层级迁移;

迁移执行模块,用于将所述目标数据段按照所述上一层级中的数据段大小进行拆分,同时在所述目标层级中保留所述目标数据段的副本,或,用于将所述目标数据段与所述下一层级中的母体数据段进行合并,同时在所述目标层级中删除所述目标数据段。

优选的,在上述数据段迁移系统中,还包括:

数据段热度统计模块,用于统计每个层级中的所有数据段的数据访问热度统计信息;

存储空间查找模块,用于在所述上一层级中查找是否有用于存储所述目标数据段的存储空间,或,用于在所述下一层级中查找是否有用于存储所述目标数据段的存储空间。

优选的,在上述数据段迁移系统中,还包括:

更新模块,用于根据所述目标层级中的数据访问热度统计信息更新所述多个子数据段的数据访问热度统计信息,或,用于根据所述目标层级中的数据访问热度统计信息更新所述母数据段的数据访问热度统计信息。

优选的,在上述数据段迁移系统中,所述迁移执行模块包括:

拆分单元,用于将所述目标数据段按照所述子数据段的大小进行拆分;

第一复制单元,用于将拆分后的目标数据段依次复制到所述子数据段中;

第二复制单元,用于将所述目标数据段复制至所述母数据段中;

索引单元,用于查找所述目标数据在所述下一层级中所属的母数据段,根据所述目标数据段中的关于与所述母数据段的索引值将所述目标数据段放在对应的位置。

从上述技术方案可以看出,本发明所提供的一种数据段迁移方法,包括:根据每个层级的总存储空间、元数据存储空间以及数据访问热度统计信息计算所述每个层级中的数据段大小;在目标层级中选取至少一个目标数据段,判断是否需要触发所述目标数据段向上一层级或者向下一层级迁移;若触发所述目标数据段向所述上一层级迁移,则将所述目标数据段按照所述上一层级中的数据段大小进行拆分,同时在所述目标层级中保留所述目标数据段的副本;若触发所述目标数据段向所述下一层级迁移,则将所述目标数据段与所述下一层级中的母体数据段进行合并,同时在所述目标层级中删除所述目标数据段。

由于本发明根据每个层级的总存储空间、元数据存储空间以及数据访问热度统计信息计算所述每个层级中的数据段大小,对分级存储系统中多个层级,使用不同大小的数据段。具体的,对容量较大性能较低的层级,使用较大的数据段,对容量较小性能较高的层级,使用较小的数据段,保证了精确识别热点数据。由于若触发所述目标数据段向所述下一层级迁移时,迁移完成之后,在所述目标层级中删除所述目标数据段,使得向下一层级迁移时所需要的数据迁移量有所减少,能够有效地降低数据分级功能的元数据量和管理性能开销。提升整体运行效率和性能。

本发明还提供了一种数据段迁移系统,能够有效地降低数据分级功能的元数据量和管理性能开销。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种数据迁移方法示意图;

图2为本发明实施例提供的分级存储系统示意图;

图3为本发明实施例提供的一种数据迁移系统示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1为本发明实施例提供的一种数据迁移方法示意图。

在一种具体实施方式中,提供了一种数据段迁移方法,包括:

步骤S1:根据每个层级的总存储空间、元数据存储空间以及数据访问热度统计信息计算所述每个层级中的数据段大小;

各层级的数据段大小依据根据每个层级的总存储空间、元数据存储空间以及数据访问热度统计信息,以及所承载的业务系统对数据的访问特性,可用于分级功能的管理元数据资源共同确定。若层级存储空间较大、应用系统提交的IO请求较大、用于存储元数据的内存和磁盘空间较小,则该层级采用较大的数据段,反之若层级存储空间较小、应用系统提交的IO请求较小、用于存储元数据的内存和磁盘空间较大,则该层级采用较小的数据段。

请参考图2,图2为本发明实施例提供的分级存储系统示意图。

计算后的每个层级中的数据段大小之后,相应的在每一个层级中进行相应大小的数据段大小分配。分配后形成的分级存储系统共有三个层级:按照层级存储性能由高到低依次为11、12和13。在本发明的实施例中,分级存储系统可以有不同数量的层级,此处仅举例说明。层级11中有数据段111、112和113,数据段111、112和113分别属于层级12中的数据段121、122和123,即数据段111、112和113为相对的子数据段,而数据段121、122和123为相对的母数据段。数据段121、122和123分别属于层级13中的数据段131、132和133,即数据段121、122和123为相对的子数据段,数据段131、132和133为相对的母数据段。具有从属关系的两个数据段,其大小具有整数倍关系,即数据段111所从属的数据段121的大小,是数据段111大小的整数倍。不同层级之间数据段大小的倍数可以相同也可以不同。

步骤S2:在目标层级中选取至少一个目标数据段,判断是否需要触发所述目标数据段向上一层级或者向下一层级迁移;

结合每个层级中的数据段的访问频率统计信息、系统运行负载信息、分级策略配置信息等进行数据段是否向上迁移或者向下迁移的判断。

步骤S3:若触发所述目标数据段向所述上一层级迁移,则将所述目标数据段按照所述上一层级中的数据段大小进行拆分,同时在所述目标层级中保留所述目标数据段的副本;

步骤S4:若触发所述目标数据段向所述下一层级迁移,则将所述目标数据段与所述下一层级中的母体数据段进行合并,同时在所述目标层级中删除所述目标数据段。

现有技术中,元数据量和元数据的管理性能开销是和分级存储系统中总数据段的数量成正比,数据段数量越多则元数据量越大,相应管理开销也越大。此外,由于现有技术中当前分级存储系统无法兼容层级中的较小粒度的数据段相应的元数据量,通常采用较大的数据段,以降低元数据量和元数据管理的性能开销,然而数据段较大,则对热点数据的识别精度较差。因此,无法同时兼顾数据段的大小对热点数据的识别精度和数据分级管理的开销。

由于本发明根据每个层级的总存储空间、元数据存储空间以及数据访问热度统计信息计算所述每个层级中的数据段大小,对分级存储系统中多个层级,使用不同大小的数据段。具体的,对容量较大性能较低的层级,使用较大的数据段,对容量较小性能较高的层级,使用较小的数据段,保证了精确识别热点数据。由于若触发所述目标数据段向所述下一层级迁移时,迁移完成之后,在所述目标层级中删除所述目标数据段,使得向下一层级迁移时所需要的数据迁移量有所减少,在相应的层级中数据段数量减少,有效地降低数据分级功能的元数据量和管理性能开销,提升整体运行效率和性能。

对分级存储系统中的数据进行访问时,首先根据访问请求中的数据地址和长度,从最高层级的存储池中进行查找,如果找到则进行访问;如果找不到则在下一层级中继续进行查找,以此类推直到找到所要访问的数据为止。如果IO请求是向分级存储系统中写入新的数据,则可根据业务类型不同自动选择层级或由系统管理员指定层级进行存储空间的分配和数据的写入操作。

在上述实施方式的基础上,若触发所述目标数据段向上一层级迁移,则将所述目标数据段按照所述上一层级中的数据段大小进行拆分,同时在所述目标层级中保留所述目标数据段的副本,具体包括:

步骤301,在所述上一层级中查找是否有用于存储所述目标数据段的存储空间;

步骤302,如果有,则在所述上一层级中分配多个子数据段,所述多个子数据段的大小之和与所述目标数据段大小相同;

步骤303,将所述目标数据段按照所述子数据段的大小进行拆分,将拆分后的目标数据段依次复制到所述子数据段中,同时在所述目标层级中保留所述目标数据段的副本。

进一步的,在上述数据段迁移方法中,将所述目标数据段按照所述子数据段的大小进行拆分,将拆分后的目标数据段依次复制到所述子数据段中,同时在所述目标层级中保留所述目标数据段的副本之后,还包括:

步骤304,根据所述目标层级中的数据访问热度统计信息更新所述多个子数据段的数据访问热度统计信息。

进一步的,在上述数据段迁移方法中,更新所述多个子数据段的数据访问热度统计信息之后,还包括:

步骤305,记录所述目标数据段的编号以及所述子数据段在所述目标数据段中的索引。

此外,步骤302之后还包括:

步骤306,即如果所述上一层级中没有足够的空闲空间,判断上一层级中是否有待向下迁移的数据段,若没有待向下迁移的数据段,则表明目标层级没有空间用于存放迁入的数据段,流程结束。

步骤307,如果上一层级中有待向下迁移的数据段,则对这些数据段执行向下迁移流程,之后重复执行步骤302。

在上述实施方式的基础上,若触发所述目标数据段向下一层级迁移,则将所述目标数据段与所述目标数据在所述下一层级中所属的母数据段进行合并,同时在所述目标层级中删除所述目标数据段,具体包括:

步骤401,在所述下一层级中查找是否有用于存储所述目标数据段的存储空间;

步骤402,如果有,查找所述目标数据在所述下一层级中所属的母数据段,并将所述目标数据段复制至所述母数据段中,并根据所述目标数据段中的关于与所述母数据段的索引值将所述目标数据段放在对应的位置;

如果没有,执行步骤405。

步骤403,在所述目标层级中删除所述目标数据段。

进一步的,在上述数据段迁移方法中,在所述目标层级中删除所述目标数据段之后,还包括:

步骤404,根据所述目标层级中的数据访问热度统计信息更新所述母数据段的数据访问热度统计信息。

此外,步骤402之后还包括:

步骤405,如果没有用于存储所述目标数据段的存储空间,则判断下一层级是否有待向下迁移的数据段,如果有待迁移数据段,则重复执行步骤401,如果没有,则流程结束。

请参考图3,图3为本发明实施例提供的一种数据迁移系统示意图。

在另一种具体实施方式中,本发明还提供了一种数据段迁移系统,包括:

数据段大小计算模块10,用于根据每个层级的总存储空间、元数据存储空间以及数据访问热度统计信息计算所述每个层级中的数据段大小;

迁移判断模块20,判断是否需要触发所述目标数据段向上一层级或者向下一层级迁移;

迁移触发模块30,用于触发所述目标数据段向所述上一层级或所述下一层级迁移;

迁移执行模块40,用于将所述目标数据段按照所述上一层级中的数据段大小进行拆分,同时在所述目标层级中保留所述目标数据段的副本,或,用于将所述目标数据段与所述下一层级中的母体数据段进行合并,同时在所述目标层级中删除所述目标数据段。

进一步的,在上述数据段迁移系统中,还包括:

数据段热度统计模块,用于统计每个层级中的所有数据段的数据访问热度统计信息;

进一步的,在上述数据段迁移系统中,还包括:

存储空间查找模块,用于在所述上一层级中查找是否有用于存储所述目标数据段的存储空间,或,用于在所述下一层级中查找是否有用于存储所述目标数据段的存储空间。

进一步的,在上述数据段迁移系统中,还包括:

更新模块,用于根据所述目标层级中的数据访问热度统计信息更新所述多个子数据段的数据访问热度统计信息,或,用于根据所述目标层级中的数据访问热度统计信息更新所述母数据段的数据访问热度统计信息。

进一步的,在上述数据段迁移系统中,所述迁移执行模块包括:

拆分单元,用于将所述目标数据段按照所述子数据段的大小进行拆分;

第一复制单元,用于将拆分后的目标数据段依次复制到所述子数据段中;

第二复制单元,用于将所述目标数据段复制至所述母数据段中;

索引单元,用于查找所述目标数据在所述下一层级中所属的母数据段,根据所述目标数据段中的关于与所述母数据段的索引值将所述目标数据段放在对应的位置。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1