CN104881253A - 一种纠错参数无限制的阵列纠删码方法 - Google Patents
一种纠错参数无限制的阵列纠删码方法 Download PDFInfo
- Publication number
- CN104881253A CN104881253A CN201510269982.9A CN201510269982A CN104881253A CN 104881253 A CN104881253 A CN 104881253A CN 201510269982 A CN201510269982 A CN 201510269982A CN 104881253 A CN104881253 A CN 104881253A
- Authority
- CN
- China
- Prior art keywords
- code
- array
- centerdot
- matrix
- deleted
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机大容量存储领域,尤其是涉及一种不间断的高容错磁盘阵列系统。构造一个参数为(n-t,n-1,t,(n-t)×t/(n-1))的等重码,也就是构造一个(n-t)×(n-1)的矩阵,使得每行恰好有t个1,而每列恰好为(n-t)×t/(n-1)个1,构造一个参数为(n,n-t,t/2+1)的垂直阵列码;码长为n,信息位为k,汉明距离为(n-k)/2+1。磁盘阵列中有n个磁盘,则将每个磁盘分为n个块。用其中编号为k=n-t个块作为信息块,而余下的n-t,…,n-2,n-1的块作为校验块。采用上述技术方案,作为阵列码的一种,E码的编译码过程中都只用到了异或运算,而异或运算的时间复杂度远远低于有限域运算。因此E码的容错能力远远高于传统的阵列码,其容错能力大约在几十这个数量级。
Description
技术领域
本发明涉及计算机大容量存储领域,尤其是涉及一种不间断的高容错磁盘阵列系统。
背景技术
中福在线即开型彩票是以计算机网络在线方式发行销售的即开型彩票,国际上统称为视频彩票,是中国福利彩票的新型票种和国内唯一的视频彩票,其主要特点是,采用计算机和通讯网络系统为发行载体,在投注终端上完成彩票销售,实现在线投兑,并使用中福在线即开型彩票专用投注卡作为投注介质,记录彩票投注过程和中奖结果,实现即开、即兑。福彩中心系统的稳定性、安全性需求也在不断增加,建设福彩中心容灾系统工程是一个相当关键的环节。业务量的增长和业务模式的日趋多样性是使得不能单依靠磁带库的备份来满足系统出现异常或灾难情况时业务支撑的要求;另一方面,电脑福利彩票销售系统已经升级为“热线”系统,销售规模不断扩大,电脑系统的负荷与日俱增。一旦出现故障,如果不能在短时间内恢复,将会造成严重的损失。因此,福彩中心迫切需要建设数据存储恢复系统,提高对数据的分析处理能力,并且在主中心系统出现故障时,数据存储恢复系统能在数据零丢失的情况下,于半小时内接管主中心系统的全部功能。因此,能够最大限度地支持数据容灾而又最小程度地依赖硬件冗余的数据存储恢复系统意义重大。
目前针对福利彩票行业还没有相关专用的数据存储备份系统,一般都是采用通用的容灾备份系统,这些通用系统没有考虑到福利在线彩票系统的特点,存在以下几个缺点:
1)通用数据存储备份系统的功能较多,针对福利彩票在线系统数据备份这类较为单一固定的应用,使用不方便;
2)如果服务器发生数据丢失,整个数据恢复系统不能使用;
3)数据存储备份系统维护困难。
4)没有考虑到福利彩票行业的特殊性。
磁盘阵列(Redundant Array of Inexpensive Disks),简称RAID,是高可靠性存储系统的基础和关键部件。虽然RAID包含多块磁盘,但是在操作系统下 是作为一个独立的大型存储设备出现。人们在开发RAID时主要是基于以下设想,即几块小容量硬盘的价格总和要低于一块大容量的硬盘,设计RAID系统的基本思想就是把多个相对便宜的硬盘组合起来,成为一个磁盘阵列,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。虽然目前这一设想还没有完全实现,RAID在节省成本方面的作用还不是很明显,但是RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,当硬盘出现问题的情况时仍然可以继续工作,不会受到损坏硬盘的影响。
发明技术方案
本发明的目的是实现一种基于编码的磁盘阵列系统,提供了对数据备份高效、可靠的解决方案,在关键服务器上实现,把数据丢失损害降低到最低限度。
本发明的技术方案:构造一个参数为(n-t,n-1,t,(n-t)×t/(n-1))的等重码,也就是构造一个(n-t)×(n-1)的矩阵,使得每行恰好有t个1,而每列恰好为(n-t)×t/(n-1)个1,构造一个参数为(n,n-t,t/2+1)的垂直阵列码;码长为n,信息位为k,汉明距离为(n-k)/2+1。磁盘阵列中有n个磁盘,则将每个磁盘分为n个块。用其中编号为k=n-t个块作为信息块,而余下的n-t,…,n-2,n-1的块作为校验块;
编码过程为:
令ai,j表示阵列中第i行第j列上的元素,把E码用一个矩阵A=[ai,j]0≤i<n,0≤j<n来表示;其中[ai,j]0≤i<n-t,0≤j<n用于存储有效信息,称为信息元,而校验元[ai,j]n-t≤i<n,0≤j<n由信息元根据如下步骤生成:
①根据矩阵A,构造一个(n-t)×(n-1)的矩阵A'如下:
②生成一个等重码C(n-t,n-1,t,(n-t)×t/(n-1)),既在矩阵A'上选择(n-t)×t个元素,我们把这些元素表示成Ci,j,具体表示如下:
③将这些元素随机的划分为t个集合,如下所示:
D0:[d0,0,d0,1…d0,n-t-1]
D1:[d1,0,d1,1…d1,n-t-1]
……
Dk-1:[dt-1,0,dt-1,1…dt-1,n-t-1]
④E码的校验元ai,j就可以由如下公式生成:
所述di,j所对应的是一个A'中的元素,要经过一个相对坐标变换才能够得到原始矩阵A中所对应的元素;
纠错过程为:
阵列中存在m≤t/2列删除错,按照如下步骤回复所有m列删除错:
①将阵列中所有的校验元的状态标记为‘可用’;
②随机选择一个状态为‘可用’的校验元ai,j,检查它所校验的信息元是否被删除。如果其中没有信息元被删除,那么将此校验元标记为‘无用’;如果其中有且仅有一个信息元被删除,同样将此校验元标记为‘无用’,并且此被删除
③重复第二步,直到阵列中不再有状态为‘可用’的校验元,或者所有状态为‘可用’的校验元都校验了至少两个被删除的信息元。
采用上述技术方案,作为阵列码的一种,E码的编译码过程中都只用到了异或运算,而异或运算的时间复杂度远远低于有限域运算。因此E码的容错能力远远高于传统的阵列码,其容错能力大约在几十这个数量级。
附图说明
图1为E码磁盘阵列布局构成示意图。
图2为文件切割规则示意图。
具体实施方式
下面结合具体实施例作进一步详述:
在E码中,数据将会存放在一个n×n的阵列中。具体到磁盘阵列中,假设磁盘阵列中有n个磁盘,则将每个磁盘分为n个块。用其中编号为k=n-t个块作为信息块,而余下的n-t,…,n-2,n-1的块作为校验块。
列的有效信息,用t=n-k列的校验信息获得t/2列的容错能力。
在构造E码的过程中有一个关键的问题是要想办法构造一个二维等重码。等重码是一个在通讯领域广泛讨论的编码,一个等重码是指一组有着相同汉明重量的向量,而二维等重码则是一个在行和列两个维度上都有着相同汉明距离的矩阵。一个参数为(n,m,i,j)的二维等重码是指一个n行m列的二进制矩阵,它每行有且仅有i个1,而每列也有且仅有j个1。既行重恒等于i,列重恒等于j。因为它的每行和每列的重量是相等的,由此,我们把这个基于等重码的全新的阵列码命名为E码。
如果我们要构造一个参数为(n-t,n-1,t,(n-t)×t/(n-1))的等重码,也就是构造一个(n-t)×(n-1)的矩阵,使得每行恰好有t个1,而每列恰好为(n-t)×t/(n-1)个1,这样我们就可以构造一个参数为(n,n-t,t/2+1)的E码。
等重码的构造是E码构造的基础。若(n-t)×t能够整除(n-1),那么我们可以按照如下步骤成功构造出一个参数为(n-t,n-1,t,(n-t)×t/(n-1))的等重码:
1.将(n-t)×(n-1)矩阵第0列至第t-1列的所有元素赋值为1,其他元素赋值为0.
2.对j从t到n-1,计算矩阵第j列的列重量,若第j列的列重量小于(n-t)×t/(n-1),那么必有ai,j'=1使得weightj'>(n-t)×t/(n-1),则赋值ai,j=1,ai,j'=0。
3.重复第二步,直到矩阵每列的列重量均等于(n-t)×t/(n-1),至此,我们得到了参数为(n-t,n-1,t,(n-t)×t/(n-1))的等重码。
机械地按照以上步骤进行就可以得到一个(n-t,n-1,t,(n-t)×t/(n-1))等重码,但是满足这样参数的等重码并不是唯一的。我们可以随机的交换所得到的等重码中的某些行或某些列,这并不改变其等重的性质,却可以给我们更多的选择。
E码的编码过程
令ai,j表示阵列中第i行第j列上的元素,这样我们就可以把E码用一个矩阵A=[ai,j]0≤i<n,0≤j<n来表示。其中[ai,j]0≤i<n-t,0≤j<n用于存储有效信息,称为信息元,而校验元[ai,j]n-t≤i<n,0≤j<n由信息元根据如下步骤生成:
1.根据矩阵A,构造一个(n-t)×(n-1)的矩阵A'如下:
2.生成一个等重码C(n-t,n-1,t,(n-t)×t/(n-1)),既在矩阵A'上选择(n-t)×t个素,我们把这些元素表示成Ci,j,具体表示如下:
3.将这些元素随机的划分为t个集合,如下所示:
D0:[d0,0,d0,1…d0,n-t-1]
D1:[d1,0,d1,1…d1,n-t-1]
……
Dk-1:[dt-1,0,dt-1,1…dt-1,n-t-1]
4.E码的校验元ai,j就可以由如下公式生成:
有一点需要特别指出的是,di,j所对应的是一个A'中的元素,要经过一个相对坐标变换才能够得到原始矩阵A中所对应的元素。
E码的译码过程
如果E码阵列中存在m≤t/2列删除错,则我们可按照如下步骤回复所有m列删除错:
1.将阵列中所有的校验元的状态标记为‘可用’;
2.随机选择一个状态为‘可用’的校验元ai,j,检查它所校验的信息元是否被删除。如果其中没有信息元被删除,那么将此校验元标记为‘无用’;如果其中有且仅有一个信息元被删除,同样将此校验元标记为‘无用’,并且此被删除的信息元则可由如下公式恢复:
3.重复第二步,直到阵列中不再有状态为‘可用’的校验元,或者所有状态为‘可用’的校验元都校验了至少两个被删除的信息元。
经过上述步骤,如果系统中所有被删除的信息元都得到了恢复,我们就认为此译码过程成功。
对我们的编码理论加以应用,不妨以E(31,10,6)码举例说明。
文件切割规则
1、每个文件的大小不一定相同,并且也不一定是21的倍数,那么就以最大的文件作为划分标准,分成21块,每块大小为sliceLength。当最大文件不为21的倍数时,则sliceLength=最大文件大小/21+1;
2、以最大文件为划分标准,较小文件的不足最大文件部分全部用0填充,并且记录下每个文件大小。
不妨假设有31个文件,其中最大文件为20B,最小文件为15B。取最大文件为划分标准,则每一块大小sliceLength=20/21+1=1,即sliceLength=1B,总共21块。编码时假设所有文件大小相等,且都为sliceLength*21=21B,则最大文件最后1B为全0,最小文件后面6B为全0.然后进行编码。如图2所示。
文件操作规则
1、校验码文件和数据文件分开,每个校验码文件大小为sliceLength*10,共31个编码文件,存放于目录FileRecovery\CheckCodeFiles中(默认,可以更改路径)。上例中,校验文件大小为10B。
2、超出文件大小部分,按全0进行编码。
3、当数据文件大小差异很大时,有可能出现校验码文件大小比某些数据文件还大的情况。上例中,最小文件大小为15B,检验码文件为10B。假如最小文件为8B,校验码文件也为10B,比最小文件还要大2B,这是因为分块时,sliceLength是按最大文件为标准划分的。
4、如果需要备份文件小于31时,如文件数n=25时,则最后31-25=6个文件按全0编码。即文件数可灵活选择,假如选择的文件大小一致,当文件数小于16个时,所需的校验码文件总大小超过了16个文件的总大小,空间冗余度 甚至高于直接备份数据的空间利用率,恢复效果也差于直接备份的恢复效果。
5、具体编码规则:
令ai,j表示第i个文件的第j块数据,这样我们就可以把所有数据文件的所有数据块用一个矩阵A=[ai,j]0≤i<n,0≤j<n来表示。其中[ai,j]0≤i<n-t,0≤j<n用于存储有效信息,称为信息元,而校验元[ai,j]n-t≤i<n,0≤j<n由信息元根据如下步骤生成:
(1)根据矩阵A,构造一个(n-t)×(n-1)的矩阵A'如下:
(2)生成一个等重码C(n-t,n-1,t,(n-t)×t/(n-1)),既在矩阵A'上选择(n-t)×t个元素,我们把这些元素表示成Ci,j,具体表示如下:
(3)将这些元素随机的划分为t个集合,如下所示:
D0:[d0,0,d0,1…d0,n-t-1]
D1:[d1,0,d1,1…d1,n-t-1]
……
Dk-1:[dt-1,0,dt-1,1…dt-1,n-t-1]
(4)第i个校验文件的j数据块ai,j就可以由如下公式生成:
文件恢复规则
1、随机删除n个文件,按照E码译码算法进行恢复。
(1)如果有m≤t/2个文件被损坏,则我们可按照如下步骤回复所有m个文件:
(2)将校验文件中所有的校验块的状态标记为‘可用’;
(3)随机选择一个状态为‘可用’的校验块ai,j,检查它所校验的信息元是 否被删除。如果其中没有信息元被删除,那么将此校验元标记为‘无用’;如果其中有且仅有一个信息元被删除,同样将此校验元标记为‘无用’,并且此被删
(4)重复第二步,直到阵列中不再有状态为‘可用’的校验元,或者所有状态为‘可用’的校验元都校验了至少两个被删除的信息元。
Claims (1)
1.一种纠错参数无限制的阵列纠删码方法E码,其特征在于构造一个参数为(n-t,n-1,t,(n-t)×t/(n-1))的等重码,也就是构造一个(n-t)×(n-1)的矩阵,使得每行恰好有t个1,而每列恰好为(n-t)×t/(n-1)个1,构造一个参数为(n,n-t,t/2+1)的垂直阵列码;码长为n,信息位为k,汉明距离为(n-k)/2+1。磁盘阵列中有n个磁盘,则将每个磁盘分为n个块。用其中编号为k=n-t个块作为信息块,而余下的n-t,…,n-2,n-1的块作为校验块;
编码过程为:
令ai,j表示阵列中第i行第j列上的元素,把E码用一个矩阵A=[ai,j]0≤i<n,0≤j<n来表示;其中[ai,j]0≤i<n-t,0≤j<n用于存储有效信息,称为信息元,而校验元[ai,j]n-t≤i<n,0≤j<n由信息元根据如下步骤生成:
①根据矩阵A,构造一个(n-t)×(n-1)的矩阵A'如下:
②生成一个等重码C(n-t,n-1,t,(n-t)×t/(n-1)),既在矩阵A'上选择(n-t)×t个元素,我们把这些元素表示成Ci,j,具体表示如下:
③将这些元素随机的划分为t个集合,如下所示:
D0:[d0,0,d0,1…d0,n-t-1]
D1:[d1,0,d1,1…d1,n-t-1]
……
Dk-1:[dt-1,0,dt-1,1…dt-1,n-t-1]
④E码的校验元ai,j就可以由如下公式生成:
所述di,j所对应的是一个A'中的元素,要经过一个相对坐标变换才能够得到原始矩阵A中所对应的元素;
纠错过程为:
阵列中存在m≤t/2列删除错,按照如下步骤回复所有m列删除错:
①将阵列中所有的校验元的状态标记为‘可用’;
②随机选择一个状态为‘可用’的校验元ai,j,检查它所校验的信息元是否被删除。如果其中没有信息元被删除,那么将此校验元标记为‘无用’;如果其中有且仅有一个信息元被删除,同样将此校验元标记为‘无用’,并且此被删除
③重复第二步,直到阵列中不再有状态为‘可用’的校验元,或者所有状态为‘可用’的校验元都校验了至少两个被删除的信息元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510269982.9A CN104881253A (zh) | 2015-05-25 | 2015-05-25 | 一种纠错参数无限制的阵列纠删码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510269982.9A CN104881253A (zh) | 2015-05-25 | 2015-05-25 | 一种纠错参数无限制的阵列纠删码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104881253A true CN104881253A (zh) | 2015-09-02 |
Family
ID=53948763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510269982.9A Pending CN104881253A (zh) | 2015-05-25 | 2015-05-25 | 一种纠错参数无限制的阵列纠删码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881253A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484559A (zh) * | 2016-10-17 | 2017-03-08 | 成都信息工程大学 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
CN109474279A (zh) * | 2018-11-05 | 2019-03-15 | 安庆师范大学 | 一种数据压缩方法及装置 |
CN113434328A (zh) * | 2021-08-26 | 2021-09-24 | 西安热工研究院有限公司 | 一种分散控制系统逻辑组态编译纠错方法和系统 |
-
2015
- 2015-05-25 CN CN201510269982.9A patent/CN104881253A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484559A (zh) * | 2016-10-17 | 2017-03-08 | 成都信息工程大学 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
WO2018072294A1 (zh) * | 2016-10-17 | 2018-04-26 | 成都信息工程大学 | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 |
CN109474279A (zh) * | 2018-11-05 | 2019-03-15 | 安庆师范大学 | 一种数据压缩方法及装置 |
CN109474279B (zh) * | 2018-11-05 | 2022-09-23 | 安庆师范大学 | 一种数据压缩方法及装置 |
CN113434328A (zh) * | 2021-08-26 | 2021-09-24 | 西安热工研究院有限公司 | 一种分散控制系统逻辑组态编译纠错方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10216434B2 (en) | Detailed memory device statistics with drive write location determination | |
CN102270161B (zh) | 一种基于纠删码的多等级容错数据存储、读取和恢复方法 | |
Silberstein et al. | Lazy means smart: Reducing repair bandwidth costs in erasure-coded distributed storage | |
US10067832B2 (en) | Imposter slices | |
CN106484559B (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
Wang et al. | Rebuilding for array codes in distributed storage systems | |
Shum et al. | Exact minimum-repair-bandwidth cooperative regenerating codes for distributed storage systems | |
CN105393225A (zh) | 跨多个区的纠删编码 | |
CN101222295B (zh) | 将数据分为多段部分数据来分发的系统 | |
CN105956128B (zh) | 一种基于简单再生码的自适应编码存储容错方法 | |
CN102937967A (zh) | 数据冗余实现方法及装置 | |
CN101834898A (zh) | 一种网络分布式编码存储方法 | |
CN105353974B (zh) | 一种适用于磁盘阵列及分布式存储系统的二容错编码方法 | |
CN105808170A (zh) | 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法 | |
CN108132854A (zh) | 一种可同时恢复数据元素及冗余元素的纠删码解码方法 | |
CN104881253A (zh) | 一种纠错参数无限制的阵列纠删码方法 | |
KR101621752B1 (ko) | 부분접속 복구 가능한 반복분할 부호를 이용한 분산 저장 장치 및 그 방법 | |
CN108228382A (zh) | 一种针对evenodd码单盘故障的数据恢复方法 | |
CN109358980A (zh) | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 | |
US20050086575A1 (en) | Generalized parity stripe data storage array | |
CN113419895B (zh) | 一种降低储存集群系统中修复开销的优化方法及装置 | |
CN110268397B (zh) | 应用于数据仓库系统的高效优化数据布局方法 | |
Dorkson et al. | Private information retrieval using product-matrix minimum storage regenerating codes | |
Iliadis | Effect of lazy rebuild on reliability of erasure-coded storage systems | |
CN102129354A (zh) | 一种基于2d-raid阵列的自适应重组方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150902 |