CN101840366A - 环链式n+1位奇偶校验码的存储方法 - Google Patents
环链式n+1位奇偶校验码的存储方法 Download PDFInfo
- Publication number
- CN101840366A CN101840366A CN201010171265A CN201010171265A CN101840366A CN 101840366 A CN101840366 A CN 101840366A CN 201010171265 A CN201010171265 A CN 201010171265A CN 201010171265 A CN201010171265 A CN 201010171265A CN 101840366 A CN101840366 A CN 101840366A
- Authority
- CN
- China
- Prior art keywords
- data block
- original data
- data blocks
- original
- redundant
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种信息处理技术领域的环链式n+1位奇偶校验码的存储方法,包括以下步骤:对待存储文件进行分块处理,得到N个大小相同的原始数据块;采用现有的奇偶校验编码得到相邻的每两个原始数据块的冗余数据块,将冗余数据块放在对应的两个原始数据块之间,得到原始数据库和冗余数据块交替排列的数据块环链;将第i块原始数据块和第i块冗余数据块作为第i组数据块,每组数据块中的原始数据块和冗余数据块放在同一机架上的不同数据节点上,相邻的两组数据块位于不同的机架上;当存储文件中有数据块损坏时,采用现有的奇偶校验编码和解码方法对损坏的数据块进行恢复,得到恢复后的数据块。本发明节省了存储空间,降低了成本,可靠性高,效率高。
Description
技术领域
本发明涉及的是一种信息处理技术领域的方法,具体是一种环链式n+1位奇偶校验码的存储方法。
背景技术
云存储是服务于云计算的一种存储方式,指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。
随着信息时代的到来,海量信息的存储及对可靠性要求越来越高,存储成本和高可靠性始终是一对难以解决的矛盾。一方面通过增加备份数可以显著提高可靠性,但是存储量也随之成倍地增加;另一方面如果想节约成本,限制数据的备份数,一旦其中一份数据块的备份全部损坏时,整个文件或许都不能使用了,导致不可挽回的损失。
奇偶校验,即比特之间的异或 是计算机中的一种基本运算。n+1位奇偶校验编码,即n位逐一异或之后得到的一位为n+1位,当n+1位中任意一位损坏后都可以通过其他n位来恢复。因此,当n=2时两个相同的数据块B1和B2之间也可以通过逐位异或得到冗余数据块则B3就是原始数据块B1和B2之间的奇偶校验编码的冗余数据块。此种编码方式可用于通信中用于通信中,用于检验并纠正信息中出现的一个比特错误,也可用于信息存储中。用于信息存储时使用比较简单,效率也非常高(所有计算机中都有异或计算操作)。其唯一的不足是只能恢复一个冗余块,即如果有超过2个数据块都损坏时则无法恢复另外2块数据块了。
经过对现有的文献检索发现,目前基本所有的云存储技术都是采用了一种类似Hadoop系统中的HDFS(Hadoop Distributed File System,即Hadoop分布式文件系统)。该技术主要是将一个数据文件按照设定的大小(如64M)分成大小n块,再通过对每一个数据块的完整备份(例如Hadoop中的HDFS分布式文件系统为3份相同备份:同一机架不同数据节点各一份,另外一机架上的数据节点1份)来带提高可靠性。但该技术最大的缺点是比较浪费空间:一个文件要备份2倍的额外存储空间,从而提高了成本。
发明内容
本发明的目的在于克服现有技术中存在的不足,提供一种环链式n+1位奇偶校验码的存储方法。本发明通过n+1位奇偶校验码对一个文件的所有数据块进行环链式的奇偶校验编码存储,实现了节省原存储系统中1/3的存储空间,并且克服了奇偶校验编码在存储信息中只能恢复一块数据块的不足,达到具有与原系统相同的可靠性。因此,本发明在保持原有可靠性的基础上,具有极大地节约存储空间以节约成本的优点。
本发明是通过以下技术方案实现的,包括以下步骤:
第一步,对待存储文件进行分块处理,从而得到N个大小相同的原始数据块,并将这些原始数据块按照其原来的顺序进行排列。
所述的分块处理,是:将待存储文件按照固定大小T分为N个原始数据块,当最后一块原始数据块小于T时,对最后一块原始数据块填充冗余,使其大小正好是T。
第二步,采用现有的奇偶校验编码得到相邻的每两个原始数据块的冗余数据块,将冗余数据块放在对应的两个原始数据块之间,并将第一个原始数据块和第N个原始数据块的冗余数据块放在第一个原始数据块和第N个原始数据块之间,从而得到原始数据库和冗余数据块交替排列的数据块环链。
第三步,将第i块原始数据块和第i块冗余数据块作为第i组数据块,共得到N组数据块,将N组数据块放在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的存储空间,从而节约了成本,提高了可靠性,方便维护。
Claims (3)
1.一种环链式n+1位奇偶校验码的存储方法,其特征在于,包括以下步骤:
第一步,对待存储文件进行分块处理,从而得到N个大小相同的原始数据块,并将这些原始数据块按照其原来的顺序进行排列;
第二步,采用现有的奇偶校验编码得到相邻的每两个原始数据块的冗余数据块,将冗余数据块放在对应的两个原始数据块之间,并将第一个原始数据块和第N个原始数据块的冗余数据块放在第一个原始数据块和第N个原始数据块之间,从而得到原始数据库和冗余数据块交替排列的数据块环链;
第三步,将第i块原始数据块和第i块冗余数据块作为第i组数据块,共得到N组数据块,将N组数据块放在n个机架上,n≤N,且每组数据块中的原始数据块和冗余数据块放在同一机架上的不同数据节点上,相邻的两组数据块位于不同的机架上;
第四步,当存储文件中有数据块损坏时,采用现有的奇偶校验编码和解码方法对损坏的数据块进行恢复,得到恢复后的数据块。
2.根据权利要求1所述的环链式n+1位奇偶校验码的存储方法,其特征是,第一步中所述的分块处理,具体是:将待存储文件按照固定大小T分为N个原始数据块,当最后一个原始数据块小于T时,对最后一个原始数据块填充冗余,使其大小正好是T。
3.根据权利要求1所述的环链式n+1位奇偶校验码的存储方法,其特征是,第四步中所述的恢复,是:
1)当损坏的是若干个不相邻的原始数据块时,采用现有的奇偶校验解码方法对与其相邻的前面两个数据块或者与其相邻的后面两个数据块解码得到损坏的原始数据块;
2)当损坏的是若干个不相邻的冗余数据块时,采用现有的奇偶校验编码方法对与其相邻的前面一个原始数据块和与其相邻的后面一个原始数据块编码得到损坏的冗余数据块;
3)当损坏的是两个相邻的原始数据块和冗余数据块时,先采用步骤1)得到损坏的原始数据块,再采用步骤2)得到损坏的冗余数据块;
4)当损坏的是三个相邻的数据块且其中有两个原始数据块时,先采用步骤1)得到损坏的两个原始数据块,再采用步骤2)得到损坏的冗余数据块;
5)当损坏的是三个相邻的数据块且其中有两个冗余数据块时,无法得到损坏的数据块,文件标记为损坏;
6)当损坏的是四个以上相邻的数据块时,无法得到损坏的数据块,文件标记为损坏。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010171265XA CN101840366B (zh) | 2010-05-13 | 2010-05-13 | 环链式n+1位奇偶校验码的存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010171265XA CN101840366B (zh) | 2010-05-13 | 2010-05-13 | 环链式n+1位奇偶校验码的存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101840366A true CN101840366A (zh) | 2010-09-22 |
CN101840366B CN101840366B (zh) | 2012-05-23 |
Family
ID=42743748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010171265XA Expired - Fee Related CN101840366B (zh) | 2010-05-13 | 2010-05-13 | 环链式n+1位奇偶校验码的存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101840366B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136114A (zh) * | 2011-11-30 | 2013-06-05 | 华为技术有限公司 | 存储方法及存储装置 |
CN104008152A (zh) * | 2014-05-21 | 2014-08-27 | 华南理工大学 | 支持海量数据访问的分布式文件系统的架构方法 |
CN105159603A (zh) * | 2015-08-18 | 2015-12-16 | 福建省海峡信息技术有限公司 | 一种分布式数据存储系统的修复方法 |
CN105812448A (zh) * | 2016-06-13 | 2016-07-27 | 青海师范大学 | 一种云存储系统的纠删编码方法 |
WO2018011670A1 (en) * | 2016-07-12 | 2018-01-18 | International Business Machines Corporation | Manipulating distributed agreement protocol to identify desired set of storage units |
CN107632994A (zh) * | 2016-07-19 | 2018-01-26 | 普天信息技术有限公司 | 一种基于hdfs文件系统的可靠性增强方法和系统 |
CN108073471A (zh) * | 2016-11-15 | 2018-05-25 | 西部数据技术公司 | 链接的存储系统和主机系统错误校正码 |
CN108228081A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于数据保护的方法和设备 |
CN108733503A (zh) * | 2017-04-24 | 2018-11-02 | 慧与发展有限责任合伙企业 | 在分布式存储系统中存储数据 |
CN108900282A (zh) * | 2018-06-29 | 2018-11-27 | 南昌华勤电子科技有限公司 | 校验数据完整性的方法 |
CN109614266A (zh) * | 2018-12-05 | 2019-04-12 | 北京和利时系统工程有限公司 | 一种数据同步方法及装置 |
CN111007992A (zh) * | 2020-03-04 | 2020-04-14 | 广东电网有限责任公司佛山供电局 | 一种磁盘数据存储表示方法、系统、存储介质 |
CN113568786A (zh) * | 2021-09-23 | 2021-10-29 | 四川大学 | 一种数据恢复方法、装置、设备及存储介质 |
-
2010
- 2010-05-13 CN CN201010171265XA patent/CN101840366B/zh not_active Expired - Fee Related
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9442673B2 (en) | 2011-11-30 | 2016-09-13 | Huawei Technologies Co., Ltd. | Method and apparatus for storing data using a data mapping algorithm |
WO2013078801A1 (zh) * | 2011-11-30 | 2013-06-06 | 华为技术有限公司 | 存储方法及存储装置 |
CN103136114B (zh) * | 2011-11-30 | 2015-11-25 | 华为技术有限公司 | 存储方法及存储装置 |
CN103136114A (zh) * | 2011-11-30 | 2013-06-05 | 华为技术有限公司 | 存储方法及存储装置 |
CN104008152A (zh) * | 2014-05-21 | 2014-08-27 | 华南理工大学 | 支持海量数据访问的分布式文件系统的架构方法 |
CN105159603A (zh) * | 2015-08-18 | 2015-12-16 | 福建省海峡信息技术有限公司 | 一种分布式数据存储系统的修复方法 |
CN105159603B (zh) * | 2015-08-18 | 2018-01-12 | 福建省海峡信息技术有限公司 | 一种分布式数据存储系统的修复方法 |
CN105812448A (zh) * | 2016-06-13 | 2016-07-27 | 青海师范大学 | 一种云存储系统的纠删编码方法 |
WO2018011670A1 (en) * | 2016-07-12 | 2018-01-18 | International Business Machines Corporation | Manipulating distributed agreement protocol to identify desired set of storage units |
US10942806B2 (en) | 2016-07-12 | 2021-03-09 | International Business Machines Corporation | Manipulating a distributed agreement protocol to identify a desired set of storage units |
CN109478125A (zh) * | 2016-07-12 | 2019-03-15 | 国际商业机器公司 | 操纵分布式一致性协议以识别期望的存储单元集 |
GB2567106A (en) * | 2016-07-12 | 2019-04-03 | Ibm | Manipulating distributed agreement protocol to identify desired set of storage units |
GB2567106B (en) * | 2016-07-12 | 2021-07-14 | Ibm | Manipulating distributed agreement protocol to identify desired set of storage units |
CN107632994A (zh) * | 2016-07-19 | 2018-01-26 | 普天信息技术有限公司 | 一种基于hdfs文件系统的可靠性增强方法和系统 |
CN107632994B (zh) * | 2016-07-19 | 2021-05-25 | 普天信息技术有限公司 | 一种基于hdfs文件系统的可靠性增强方法和系统 |
CN108073471A (zh) * | 2016-11-15 | 2018-05-25 | 西部数据技术公司 | 链接的存储系统和主机系统错误校正码 |
CN108228081A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于数据保护的方法和设备 |
US11068346B2 (en) | 2016-12-21 | 2021-07-20 | EMC IP Holding Company LLC | Method and apparatus for data protection |
CN108733503A (zh) * | 2017-04-24 | 2018-11-02 | 慧与发展有限责任合伙企业 | 在分布式存储系统中存储数据 |
CN108733503B (zh) * | 2017-04-24 | 2021-10-01 | 慧与发展有限责任合伙企业 | 存储节点、分布式存储系统以及用于存储数据的方法 |
CN108900282A (zh) * | 2018-06-29 | 2018-11-27 | 南昌华勤电子科技有限公司 | 校验数据完整性的方法 |
CN109614266B (zh) * | 2018-12-05 | 2021-07-02 | 北京和利时系统工程有限公司 | 一种数据同步方法及装置 |
CN109614266A (zh) * | 2018-12-05 | 2019-04-12 | 北京和利时系统工程有限公司 | 一种数据同步方法及装置 |
CN111007992B (zh) * | 2020-03-04 | 2020-08-04 | 广东电网有限责任公司佛山供电局 | 一种磁盘数据存储表示方法、系统、存储介质 |
CN111007992A (zh) * | 2020-03-04 | 2020-04-14 | 广东电网有限责任公司佛山供电局 | 一种磁盘数据存储表示方法、系统、存储介质 |
CN113568786A (zh) * | 2021-09-23 | 2021-10-29 | 四川大学 | 一种数据恢复方法、装置、设备及存储介质 |
CN113568786B (zh) * | 2021-09-23 | 2021-12-31 | 四川大学 | 一种数据恢复方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101840366B (zh) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101840366B (zh) | 环链式n+1位奇偶校验码的存储方法 | |
CN101840377A (zh) | 基于rs纠删码的数据存储方法 | |
CN103336785B (zh) | 一种基于网络编码的分布式存储方法及其装置 | |
US20150358037A1 (en) | Method for encoding msr (minimum-storage regenerating) codes and repairing storage nodes | |
CN105356968B (zh) | 基于循环置换矩阵的网络编码的方法及系统 | |
CN102937967A (zh) | 数据冗余实现方法及装置 | |
CN108132854B (zh) | 一种可同时恢复数据元素及冗余元素的纠删码解码方法 | |
CN105703782B (zh) | 一种基于递增移位矩阵的网络编码方法及系统 | |
CN112835738B (zh) | 一种条带数据存储结构的构建方法 | |
CN102843212B (zh) | 编解码处理方法及装置 | |
CN106776129A (zh) | 一种基于最小存储再生码的多节点数据文件的修复方法 | |
CN106788891A (zh) | 一种适用于分布式存储的最优局部修复码构造方法 | |
CN108228382A (zh) | 一种针对evenodd码单盘故障的数据恢复方法 | |
CN111444042A (zh) | 一种基于纠删码的区块链数据存储方法 | |
CN105518996A (zh) | 一种基于二进制域里德所罗门码的数据编解码方法 | |
CN103559102A (zh) | 数据冗余处理方法、装置和分布式存储系统 | |
CN111782152A (zh) | 数据存储方法、数据恢复方法、装置、服务器及存储介质 | |
CN102932331A (zh) | 应用于分布式存储系统的超安存编解码方法 | |
CN112000512A (zh) | 一种数据修复方法及相关装置 | |
CN110895497B (zh) | 一种分布式存储中降低纠删码修复的方法及装置 | |
CN107153661A (zh) | 一种基于hdfs系统的数据的存储、读取方法及其装置 | |
WO2018119976A1 (zh) | 应用于数据仓库系统的高效优化数据布局方法 | |
WO2017041232A1 (zh) | 一种二进制循环码的编解码框架 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
CN108628697B (zh) | 一种基于二进制的节点修复方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20150513 |
|
EXPY | Termination of patent right or utility model |