数据冗余处理方法、装置和分布式存储系统的制作方法

文档序号:6516234阅读:165来源:国知局
数据冗余处理方法、装置和分布式存储系统的制作方法
【专利摘要】本发明提供了一种数据冗余处理方法、装置和分布式存储系统。所述装置包括数据分段模块、冗余数据生成模块和存储模块。所述方法为将写入数据进行等长切分,不足长度用二进制0填充,对切分的每个片段再等长切分为4个数据块,通过冗余算法计算出4个冗余数据块,将每个片段的8个数据块存储到至少4个存储节点上。所述分布式存储系统利用所述装置或方法存储数据,并包括4个以上的存储节点。当一个片段的8个数据块中部分数据出现损坏时,可利用剩余数据块对损坏的数据进行恢复。本发明提高了存储空间的利用率,降低了存储节点的负载,节省了数据访问时间,且支持多种类型的冗余备份方式,灵活性较高。
【专利说明】数据冗余处理方法、装置和分布式存储系统
【技术领域】:
[0001]本发明涉及存储技术,尤其涉及一种数据冗余处理方法、装置和分布式存储系统。【背景技术】:
[0002]分布式存储系统包括通过网络互联的多个存储节点,数据可以被分散地存储到不同的存储节点上,以实现大容量、高可靠性且易扩展的存储应用。
[0003]现有的分布式存储系统可以采用基于对象的存储方式。对于这种存储方式来说,现有技术采用存储节点间的多份机制以保证数据存储的可靠性。具体来说,该多份机制即为将该分布式存储系统中的某一个或者某几个存储节点作为主存储节点的备份节点。在写数据时,需要将数据在这些存储节点上写入多份相同的数据,从而实现数据的冗余备份,在一个存储节点发生故障时,其它存储节点上的数据是可用的。
[0004]但是,上述现有的多份机制只是筒单地向多个存储节点中写入相同的数据,如果要保证损坏N个存储节点后数据仍可用,则数据至少需要重复写N+1份,则存储节点的空间利用率最多为1/(N+1),因此,存储空间的利用率较低,存储节点的负载增高;而且,这种多份机制不能支持多种类型的冗余备份方式,灵活性较低。

【发明内容】
:
[0005]本发明针对现有多份机制所需的存储空间利用率低且不支持多种类型的冗余备份方式的缺点,提供了一种数据冗余处理方法、装置和分布式存储系统。
[0006]本发明提供的一种数据冗余处理方法,具体是:首先,将写入数据以固定长度L进行切分,得到K个片段数据,当最后一个片段的长度小于L时,以二进制值00000000进行填充,L为4N个字节,K为不小于I的自然数,N为正整数;然后,将每个片段数据等分成4个数据块,由4个数据块计算出4个冗余数据块;最后,对每个片段数据,将对应的4个数据块和4个冗余数据块存储到至少4个存储节点上,每个存储节点包含每个片段数据的至多2个数据块。所述的4个冗余数据块通过对4个数据块进行逻辑异或操作(XOR)计算得到。
[0007]本发明提供的一种数据冗余处理装置,包括:数据分段模块、冗余数据生成模块以及存储模块。数据分段模块用于将写入数据以固定长度L进行切分,设共得到K个片段数据,当最后一个片段的长度小于L时,以二进制值00000000进行填充,L为4N个字节,K为不小于I的自然数,N为正整数。冗余数据生成模块,将每个片段数据等分成4个数据块,并由4个数据块计算出4个冗余数据块。所述的4个冗余数据块通过对4个数据块进行逻辑异或操作计算得到。存储模块将每个片段数据所对应的4个数据块和4个冗余数据块存储到至少4个存储节点上,每个存储节点包含每个片段数据的至多2个数据块。
[0008]本发明还提供了一种分布式存储系统,使用所述的数据冗余处理方法和装置,该系统中最少包含4个存储节点,每个存储节点包含每个片段数据的至多2个数据块。
[0009]所述的片段的长度L为固定值,且对于同一个系统中的数据,片段长度是唯一的。
[0010]本发明的数据冗余处理方法、装置和分布式存储系统,提高了存储空间的利用率,降低了存储节点的负载,且支持多种类型的冗余备份方式,灵活性较高。对于大容量数据,本发明的分块存储可以提高数据的访问速度,例如在进行数据迁移和校验时,对散布在不同节点的数据可以进行并行的操作,相比对一个大文件的线性处理,节省时间。本发明的备份方式按照实际占用的容量,需要两倍于原数据的存储容量,并且通过逻辑异或操作产生的存储块,可在分块不完整的情况下恢复丢失的数据。而典型的分布式数据存储系统(如Apache的HDFS)中不使用数据恢复编码,而是直接使用三个一致的副本和简单的检错码。相比之下,本发明的数据冗余处理方法、装置和分布式存储系统占用更少的存储空间。
【专利附图】

【附图说明】:
[0011]图1为本发明的数据冗余处理装置的结构示意图;
[0012]图2为本发明的数据冗余处理方法中对数据处理的示意图。
【具体实施方式】:
[0013]下面将结合附图和实施例对本发明的技术方案进行详细说明。
[0014]如图1所示,本发明提供了一种数据冗余处理装置,包括数据分段模块1、冗余数据生成模块2以及存储模块3。
[0015]所述的数据分段模块I将写入数据切分为等长的K个片段数据,K为不小于I的自然数,每个片段的长度为L。最后的第K个片段有可能小于所设定的长度L,则使用二进制值00000000来进行填充,使第K个片段的长度为L。片段的长度L在具体实施时采用固定值,对于一个系统中的数据,片段长度L是唯一的。设置片段长度L为4N个字节,N为正整数。
[0016]所述的冗余数据生成模块2将每个片段数据进一步均等地切分成4个数据块,通过逻辑异或操作(XOR)对4个数据块进行计算,得到4个冗余数据块。所述的4个块数据和4个冗余数据块中,当任意损坏至多4个数据时,都能够利用未损坏的数据块恢复损坏的数据。
[0017]所述的存储模块3对于每一个片段数据的4个数据块和4个冗余数据块都存储到位于至少4个存储节点的对象中。对于一个片段数据,共存储8个数据块,并且每个存储节点包含每个片段数据的至多2个数据块。本发明提供的数据冗余处理方法,包括如下三个步骤:
[0018]步骤1:将写入数据以固定长度L进行切分,得到K个片段数据。当最后一个片段的长度小于L时,以二进制值00000000进行填充,L为4N个字节,K为不小于I的自然数,N为正整数。如图2所示。
[0019]步骤2:将每个片段数据等分成4个数据块,并对得到的4个数据块通过冗余数据算法计算出4个冗余数据块。如图2所示。所述的冗余数据算法可为逻辑异或操作算法。
[0020]步骤3:对每个片段数据,将对应的4个数据块和4个冗余数据块存储到至少4个存储节点上,每个存储节点包含每个片段数据的至多2个数据块。
[0021]本发明将所述的数据冗余处理装置或方法应用到分布式存储系统中,得到一种分布式存储系统,该分布式存储系统最少包含4个存储节点,每个存储节点存储每个片段数据中的至多2个数据块。[0022]实施例:
[0023]写入数据被切分为等长的K个片段数据,K为不小于I的自然数。每个片段数据的长度为64MB。K个片段中的最后一个数据块有可能小于固定的长度,使用二进制值00000000来进行填充。
[0024]每个数据片段被进一步等分成4个数据块,每个数据块长度为16MB。通过逻辑异或操作,由4个数据块计算出4个冗余数据块,每个冗余数据块的长度为16MB。所述4个数据块和4个冗余数据块中任意损坏至多4个时,能够利用未损坏的数据块来恢复损坏的数据。
[0025]对于每一个数据片段,将该数据片段的4个数据块和4个冗余数据块分别存储到位于至少4个存储节点上的对象中,共存储8个数据块,每个存储节点包含每个片段数据的至多2个数据块。
[0026]冗余数据块是采用冗余算法对片段数据的4个数据块进行冗余运算获取得到,冗余数据块是保证在数据块和冗余数据块中任意几个数据出错时,采用剩余的数据块均能够恢复出原始数据,而具体可以允许几个数据块出错,则由冗余算法确定。
[0027]本发明的技术方案并非在各个存储节点上进行多份存储,而是通过将块数据和冗余块数据分别存储在位于至少4个存储节点上,从而可以实现存储节点之间的冗余处理,可以提高存储空间地利用率且降低了存储节点的负载,另外,本发明实施例可以支持不同的冗余算法,从而满足客户不同的可靠性需求,灵活性较高。
【权利要求】
1.一种数据冗余处理方法,其特征在于,具体实现方案为:首先,将写入数据以固定长度L进行切分,得到K个片段数据,当最后一个片段的长度小于L时,以二进制值00000000进行填充,L为4N个字节,K为不小于I的自然数,N为正整数;然后,将每个片段数据等分成4个数据块,由4个数据块计算出4个冗余数据块;最后,对每个片段数据,将对应的4个数据块和4个冗余数据块存储到至少4个存储节点上,每个存储节点包含每个片段数据的至多2个数据块。
2.根据权利要求1所述的数据冗余处理方法,其特征在于,所述的4个冗余数据块,通过对4个数据块进行逻辑异或操作计算得到。
3.一种数据冗余处理装置,其特征在于,包括:数据分段模块、冗余数据生成模块以及存储模块;数据分段模块用于将写入数据以固定长度L进行切分,设共得到K个片段数据,当最后一个片段的长度小于L时,以二进制值00000000进行填充,L为4N个字节,K为不小于I的自然数,N为正整数;冗余数据生成模块,将每个片段数据等分成4个数据块,并根据所述的4个数据块计算出4个冗余数据块;存储模块将每个片段数据所对应的4个数据块和4个冗余数据块存储到至少4个存储节点上,每个存储节点包含每个片段数据的至多2个数据块。
4.根据权利要求3所述的数据冗余处理装置,其特征在于,所述的4个冗余数据块,通过对4个数据块进行逻辑异或操作计算得到。
5.一种分布式存储系统,其特征在于,利用权利要求1所述的数据冗余处理方法或者利用权利要求2所述的数据冗余处理装置,将写入数据进行存储,所述分布式存储系统最少包含4个存储节点,每个存储节点包含每个片段数据的至多2个数据块。
【文档编号】G06F3/06GK103559102SQ201310499656
【公开日】2014年2月5日 申请日期:2013年10月22日 优先权日:2013年10月22日
【发明者】王雷, 吴兴博, 龙翔 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1