环链式n+1位奇偶校验码的存储方法

文档序号:6602268阅读:334来源:国知局
专利名称:环链式n+1位奇偶校验码的存储方法
技术领域
本发明涉及的是一种信息处理技术领域的方法,具体是一种环链式n+1位奇偶校 验码的存储方法。
背景技术
云存储是服务于云计算的一种存储方式,指通过集群应用、网格技术或分布式文 件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作, 共同对外提供数据存储和业务访问功能的一个系统。随着信息时代的到来,海量信息的存储及对可靠性要求越来越高,存储成本和高 可靠性始终是一对难以解决的矛盾。一方面通过增加备份数可以显著提高可靠性,但是存 储量也随之成倍地增加;另一方面如果想节约成本,限制数据的备份数,一旦其中一份数据 块的备份全部损坏时,整个文件或许都不能使用了,导致不可挽回的损失。奇偶校验,即比特之间的异或0十0=0,0十1=1,1十0=1,1@1=1,是计算机中的一种基 本运算。n+1位奇偶校验编码,即η位逐一异或之后得到的一位为n+1位,当n+1位中任意 一位损坏后都可以通过其他η位来恢复。因此,当η = 2时两个相同的数据块Bl和Β2之 间也可以通过逐位异或得到冗余数据块Bl Β2=Β3,则Β3就是原始数据块Bl和Β2之间的奇 偶校验编码的冗余数据块。此种编码方式可用于通信中用于通信中,用于检验并纠正信息 中出现的一个比特错误,也可用于信息存储中。用于信息存储时使用比较简单,效率也非常 高(所有计算机中都有异或计算操作)。其唯一的不足是只能恢复一个冗余块,即如果有超 过2个数据块都损坏时则无法恢复另外2块数据块了。经过对现有的文献检索发现,目前基本所有的云存储技术都是采用了一种类似 Hadoop 系统中的 HDFS(Hadoop Distributed File System,即 Hadoop 分布式文件系统)。 该技术主要是将一个数据文件按照设定的大小(如64M)分成大小η块,再通过对每一个数 据块的完整备份(例如Hadoop中的HDFS分布式文件系统为3份相同备份同一机架不同 数据节点各一份,另外一机架上的数据节点1份)来带提高可靠性。但该技术最大的缺点 是比较浪费空间一个文件要备份2倍的额外存储空间,从而提高了成本。

发明内容
本发明的目的在于克服现有技术中存在的不足,提供一种环链式n+1位奇偶校验 码的存储方法。本发明通过n+1位奇偶校验码对一个文件的所有数据块进行环链式的奇偶 校验编码存储,实现了节省原存储系统中1/3的存储空间,并且克服了奇偶校验编码在存 储信息中只能恢复一块数据块的不足,达到具有与原系统相同的可靠性。因此,本发明在保 持原有可靠性的基础上,具有极大地节约存储空间以节约成本的优点。本发明是通过以下技术方案实现的,包括以下步骤第一步,对待存储文件进行分块处理,从而得到N个大小相同的原始数据块,并将 这些原始数据块按照其原来的顺序进行排列。
所述的分块处理,是将待存储文件按照固定大小T分为N个原始数据块,当最后 一块原始数据块小于T时,对最后一块原始数据块填充冗余,使其大小正好是T。第二步,采用现有的奇偶校验编码得到相邻的每两个原始数据块的冗余数据块, 将冗余数据块放在对应的两个原始数据块之间,并将第一个原始数据块和第N个原始数据 块的冗余数据块放在第一个原始数据块和第N个原始数据块之间,从而得到原始数据库和 冗余数据块交替排列的数据块环链。第三步,将第i块原始数据块和第i块冗余数据块作为第i组数据块,共得到N组 数据块,将N组数据块放在η个机架上,η ^ N,且每组数据块中的原始数据块和冗余数据块 放在同一机架上的不同数据节点上,相邻的两组数据块位于不同的机架上。第四步,当存储文件中有数据块损坏时,采用现有的奇偶校验编码和解码方法对 损坏的数据块进行恢复,得到恢复后的数据块。所述的恢复,是1)当损坏的是若干个不相邻的原始数据块时,采用现有的奇偶校验解码方法对与 其相邻的前面两个数据块或者与其相邻的后面两个数据块解码得到损坏的原始数据块;2)当损坏的是若干个不相邻的冗余数据块时,采用现有的奇偶校验编码方法对与 其相邻的前面一个原始数据块和与其相邻的后面一个原始数据块编码得到损坏的冗余数 据块;3)当损坏的是两个相邻的原始数据块和冗余数据块时,先采用1)的方法得到损坏的原始数据块,再采用2)的方法得到损坏的冗余数据块;4)当损坏的是三个相邻的数据块且其中有两个原始数据块时,先采用1)的方法 得到损坏的两个原始数据块,再采用2)的方法得到损坏的冗余数据块;5)当损坏的是三个相邻的数据块且其中有两个冗余数据块时,无法得到损坏的数 据块,文件标记为损坏;6)当损坏的是四个以上相邻的数据块时,无法得到损坏的数据块,文件标记为损坏。与现有技术相比,本发明的有益效果是1、节省存储空间,降低了成本现有技术中每一个数据块备份3份,则花费比原始 数据多出了 2倍的存储空间,而本发明比现有技术节省了近1/3空间,从而降低了成本;2、可靠性高,克服了现有技术中只能恢复一块数据块的缺点,对于任意损坏不超 过连续3块数据块的情况下都可以通过解码来恢复,而且即使在连续3块数据块损坏的情 况下,也有1/2的概率可以恢复出所有数据块;3、采用了效率最高的奇偶校验编码和解码方法。


图1是实施例的数据块环链示意图。
具体实施例方式以下结合附图对本发明的方法进一步描述本实施例在以本发明技术方案为前提 下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。实施例本实施例包括以下步骤第一步,对248M大小的待存储文件进行分块处理,从而得到四个大小相同的原始 数据块,并将这些原始数据块按照其原来的顺序进行排列。所述的分块处理,具体是将待存储文件按照固定大小64M分为若干原始数据块, 其中第四个原始数据块为56M时,对最后一个原始数据块填充8M冗余,使其大小正好是 64M。第二步,采用现有的奇偶校验编码得到相邻的每两块原始数据块的冗余数据块, 将冗余数据块放在对应的两个原始数据块之间,并将第一个原始数据块和第四个原始数据 块的冗余数据块放在第一个原始数据块和第四个原始数据块之间,从而得到原始数据库和 冗余数据块交替排列的数据块环链。本实施例得到的数据块环链如图1所示,共有四个原始数据块和四个冗余数据 块。第三步,将第一个原始数据块和第一个冗余数据块作为第一组数据块,第一组数 据块放在第一个机架上,且第一个原始数据块和第一个冗余数据块放在第一个机架的不同 数据节点上,将第二个原始数据块和第二个冗余数据块作为第二组数据块,第二组数据块 放在第二个机架上,且第二个原始数据块和第二个冗余数据块放在第二个机架的不同数据 节点上,将第三个原始数据块和第三个冗余数据块作为第三组数据块,第三组数据块放在 第三个机架上,且第三个原始数据块和第三个冗余数据块放在第三个机架的不同数据节点 上,将第四个原始数据块和第四个冗余数据块作为第四组数据块,第四组数据块放在第四 个机架上,且第四个原始数据块和第四个冗余数据块放在第四个机架的不同数据节点上。第四步,当存储文件中有数据块损坏时,采用现有的奇偶校验编码和解码方法对 损坏的数据块进行恢复,得到恢复后的数据块。本实施例中第二个原始数据块、第二个冗余数据块和第三个原始数据块损坏,则 具体恢复的过程为1)采用现有的奇偶检验解码方法对第一个冗余数据块和第一个原始数据块进行 解码,得到第二个原始数据块;2)采用现有的奇偶检验解码方法对第三个冗余数据块和第四个原始数据块进行 解码,得到第三个原始数据块;3)采用现有的奇偶检验编码方法对第二个原始数据块和第三个原始数据块进行 编码,得到第二个冗余数据块。本实施例成功恢复损坏的连续三块数据块,且节约了 1/3的存储空间,从而节约 了成本,提高了可靠性,方便维护。
权利要求
一种环链式n+1位奇偶校验码的存储方法,其特征在于,包括以下步骤第一步,对待存储文件进行分块处理,从而得到N个大小相同的原始数据块,并将这些原始数据块按照其原来的顺序进行排列;第二步,采用现有的奇偶校验编码得到相邻的每两个原始数据块的冗余数据块,将冗余数据块放在对应的两个原始数据块之间,并将第一个原始数据块和第N个原始数据块的冗余数据块放在第一个原始数据块和第N个原始数据块之间,从而得到原始数据库和冗余数据块交替排列的数据块环链;第三步,将第i块原始数据块和第i块冗余数据块作为第i组数据块,共得到N组数据块,将N组数据块放在n个机架上,n≤N,且每组数据块中的原始数据块和冗余数据块放在同一机架上的不同数据节点上,相邻的两组数据块位于不同的机架上;第四步,当存储文件中有数据块损坏时,采用现有的奇偶校验编码和解码方法对损坏的数据块进行恢复,得到恢复后的数据块。
2.根据权利要求1所述的环链式η+l位奇偶校验码的存储方法,其特征是,第一步中所 述的分块处理,具体是将待存储文件按照固定大小T分为N个原始数据块,当最后一个原 始数据块小于T时,对最后一个原始数据块填充冗余,使其大小正好是Τ。
3.根据权利要求1所述的环链式η+l位奇偶校验码的存储方法,其特征是,第四步中所 述的恢复,是1)当损坏的是若干个不相邻的原始数据块时,采用现有的奇偶校验解码方法对与其相 邻的前面两个数据块或者与其相邻的后面两个数据块解码得到损坏的原始数据块;2)当损坏的是若干个不相邻的冗余数据块时,采用现有的奇偶校验编码方法对与其 相邻的前面一个原始数据块和与其相邻的后面一个原始数据块编码得到损坏的冗余数据 块;3)当损坏的是两个相邻的原始数据块和冗余数据块时,先采用步骤1)得到损坏的原 始数据块,再采用步骤2)得到损坏的冗余数据块;4)当损坏的是三个相邻的数据块且其中有两个原始数据块时,先采用步骤1)得到损 坏的两个原始数据块,再采用步骤2)得到损坏的冗余数据块;5)当损坏的是三个相邻的数据块且其中有两个冗余数据块时,无法得到损坏的数据 块,文件标记为损坏;6)当损坏的是四个以上相邻的数据块时,无法得到损坏的数据块,文件标记为损坏。
全文摘要
一种信息处理技术领域的环链式n+1位奇偶校验码的存储方法,包括以下步骤对待存储文件进行分块处理,得到N个大小相同的原始数据块;采用现有的奇偶校验编码得到相邻的每两个原始数据块的冗余数据块,将冗余数据块放在对应的两个原始数据块之间,得到原始数据库和冗余数据块交替排列的数据块环链;将第i块原始数据块和第i块冗余数据块作为第i组数据块,每组数据块中的原始数据块和冗余数据块放在同一机架上的不同数据节点上,相邻的两组数据块位于不同的机架上;当存储文件中有数据块损坏时,采用现有的奇偶校验编码和解码方法对损坏的数据块进行恢复,得到恢复后的数据块。本发明节省了存储空间,降低了成本,可靠性高,效率高。
文档编号G06F11/10GK101840366SQ20101017126
公开日2010年9月22日 申请日期2010年5月13日 优先权日2010年5月13日
发明者徐文强, 程正杰, 赖龙彬, 郑燕飞, 陈克非 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1