数据存储方法及系统、存储介质技术方案

技术编号:24852737 阅读:12 留言:0更新日期:2020-07-10 19:06
本发明专利技术提供一种数据存储方法及系统,其方法包括步骤:将内存合并缓存区域划分为多个由N个数据块和M个校验块构成的纠删码条带;将待存储的数据特征与数据块位置进行匹配;将匹配好的数据存入对应的数据块位置;当N个数据块写满后,计算M个校验块;将N个数据块和M个校验块存储到存储节点中。本发明专利技术无需分析不同编码的格式,能够将不同的数据在相同的编码方式环境下进行存储,大幅度提高了存储数据的读写性能,使得用户能够高效低访问数据和恢复数据。

【技术实现步骤摘要】
数据存储方法及系统、存储介质
本申请涉及数据存储领域,特别涉及一种数据存储方法及系统、存储介质。
技术介绍
网络、宽带、软件、智能设备等的迅速发展,带来了数据的爆炸式增长,如今的智能社会,更是进入了以数据为生产资料的时代。因此,智能时代的人们对存储的数据在可靠性、读写性能、安全等提出了更高的要求。早期的分布式存储系统主要采用副本技术,副本技术可以防止数据的丢失,但由于副本技术需要消耗等倍数的额外存储空间,随着数据存储量越来越大,造成硬件成本急剧上升。为了提高存储系统的可靠性和安全性以及降低成本,人们发展了纠删码技术,相对于副本技术,纠删码能以低得多的存储空间代价获得相似的可靠性。在分布式存储系统中,为实现纠删码存储,需要将每个存储节点中收到的数据进行合并然后通过纠删码分布到不同的存储节点中。当前存储系统中为实现纠删码存储,有两种常见存储方式。方式一:通过先将数据写入到多副本存储或其他持久性存储中,然后异步读出数据,然后将读出的数据通过计算纠删码分散到不同存储节点中。此种方式有以下缺点:1.由于需要先将数据存储下来,为达到和纠删码相似的数据可靠性,需要对数据进行多副本存储,所以在没有转变为纠删码存储之前,数据存储的空间利用率很低(1/副本数);2.用NVDIM,SSD等高性能硬件先将数据存储下来,再转存到纠删码存储中,造成的成本上升;3.由于不能直接在收到数据的时候将数据以纠删码的方式存储下来,同时读出数据再计算纠删码,因此存储系统额外增加了数据的读写,造成需要足够多的硬盘,或者成本很高的高性能SSD存储,才能满足写入性能。方式二:直接将数据进行内存合并,然后写入纠删码存储此种方式在收到大文件情况下,可以很快填充满N+M数据内存(N一般指原始数据块,M是指冗余数据校验块),并计算纠删码分布到其他存储节点中。并可以解决方式一的额外读写开销的问题。但是在海量小文件场景下,如果没有合适的合并策略,只是填充满N+M数据内存就计算纠删码并分布到其他存储节点中,会造成数据在存储节点,以及存储节点内部分布非常离散,导致数据读取时,需要大量的检索和低效的访问命中。同时合并策略要足够快速,才能提升海量小文件的写入性能。针对上述技术存在的技术问题,目前现有的改进方案如专利技术专利一(CN102270161A)提出一种解决方案,根据数据特点制定数据组织策略,通过多等级数据组织方式,能够最大限度地适应数据的特点并满足应用的需求,方便用户以最佳方式访问其数据。此外还有如专利技术专利二(CN110347344A)通过区分数据条带满足情况自动匹配不同的冗余策略存储数据,保证了数据的高可用与IO的高效。上述专利一和专利二虽然对纠删码存储进行改进,需要根据数据特点制定数据组织策略或者对数据条带进行分类,需要对不同的数据进行不同方式的编码,由此在实际大数据存储工程项目实施的时候,情况或者种类复杂,难以有效解决各种复杂情况,反而增加了存储项目实施的复杂性,降低了可靠性。
技术实现思路
本申请提供一种数据存储方法,包括步骤:将内存合并缓存区域划分为多个由N个数据块和M个校验块构成的纠删码条带;将待存储的数据特征与数据块位置进行匹配;将匹配好的数据存入对应的数据块位置;当N个数据块写满后,计算M个校验块;将N个数据块和M个校验块存储到存储节点中。进一步地,将匹配好的数据存入对应的数据块位置时,优先放入已经写入数据的纠删码条带缓存区的数据块中。进一步地,当存入的数据为相同的数据流时,其步骤包括:(1)若数据长度大于N个数据块,则计算纠删码;(2)若数据长度小于N个数据块但大于一个数据块长度,则将每个写满的数据块放入纠删码条带缓冲区的数据块中,其余数据等待此数据流满一个数据块大小:若其纠删码条带的缓存区未满,则等待纠删码条带写满或超时;若若该纠删码条带缓存区已满,则计算纠删码,并将多余数据块放入一个新的纠删码条带缓冲区。(3)若数据小于一个数据块长度,则等待写满一个数据块长度,在超时仍未写满一个数据块,则将其按照数据块的边界放入一个纠删码条带缓存区中,并等待写满。本专利技术还公开一种数据存储装置,包括:功能划分单元:用以将内存合并区域换分为多个由N个数据块和M个校验块构成的纠删码条带;匹配单元:将待存储的数据特征与数据块位置进行匹配;存储单元:用以将匹配好的数据存入对应的数据块位置;校验单元:用以将存储的数据进行纠删码校验。本专利技术还公开一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的数据存储方法。本申请实施例提供的数据存储方法及系统、无需分析不同编码的格式,能够将不同的数据在相同的编码方式环境下进行存储,大幅度提高了存储数据的读写性能,使得用户能够高效低访问数据和恢复数据:1、在海量小文件场景下,系统中所有的多个用户,bucket名称,前缀的数据块同时构建一个纠删码条带(N+M),能够更快的满足满条带,使得数据可以尽快落盘,对硬盘来说连续数据写入性能更高,从而提升可靠性和写入性能。2、不同的用户,bucket名称,前缀的数据块,分别内部是连续的,因此在数据读取时,也可以连续读取,提升访问性能。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的数据存储方法流程示意图;图2为本专利技术实施例中根据存储数据特征进行存储的示意图;图3为本专利技术实施例对数据的存储和校验流程示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。纠删码(erasurecoding,EC)是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置。请参阅图1,图1为本专利技术实施例的数据存储方法流程示意图,其步骤如下:S1:将内存合并缓存区域划分为多个由N个数据块和M个校验块构成的纠删码条带;本专利技术实施例要解决的是面对的是海量存储数据,海量存储数据主要采取分布式的存储系统来进行存储,为了提高系统稳定性和可靠性,通常采用纠删码来进行处理。当冗余级别为N+M时,从N个源数据块中计算出M个的校验块,将这N+M个数据块分别存放在N+M个硬盘上,就能容忍任意M个硬盘故障;硬盘故障时,只需任意选取N个正常的数据块就能计本文档来自技高网
...

【技术保护点】
1.一种数据存储方法,其特征在于,包括步骤:/n将内存合并缓存区域划分为多个由N个数据块和M个校验块构成的纠删码条带;/n将待存储的数据特征与数据块位置进行匹配;/n将匹配好的数据存入对应的数据块位置;/n当N个数据块写满后,计算M个校验块;/n将N个数据块和M个校验块存储到存储节点中。/n

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括步骤:
将内存合并缓存区域划分为多个由N个数据块和M个校验块构成的纠删码条带;
将待存储的数据特征与数据块位置进行匹配;
将匹配好的数据存入对应的数据块位置;
当N个数据块写满后,计算M个校验块;
将N个数据块和M个校验块存储到存储节点中。


2.根据权利要求1所述的数据存储方法,其特征在于,将匹配好的数据存入对应的数据块位置时,优先放入已经写入数据的纠删码条带缓存区的数据块中。


3.根据权利要求1或2所述的数据存储方法,其特征在于,当存入的数据为相同的数据流时,其步骤包括:
(1)若数据长度大于N个数据块,则计算纠删码;
(2)若数据长度小于N个数据块但大于一个数据块长度,则将每个写满的数据块放入纠删码条带缓冲区的数据块中,其余数据等待此数据流满一个数据块大小:
若...

【专利技术属性】
技术研发人员:许式伟谢勇时嘉贇
申请(专利权)人:上海七牛信息技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1