CN117591336A - 基于纠删码的去中心化数据冗余存储方法及系统 - Google Patents
基于纠删码的去中心化数据冗余存储方法及系统 Download PDFInfo
- Publication number
- CN117591336A CN117591336A CN202311498329.0A CN202311498329A CN117591336A CN 117591336 A CN117591336 A CN 117591336A CN 202311498329 A CN202311498329 A CN 202311498329A CN 117591336 A CN117591336 A CN 117591336A
- Authority
- CN
- China
- Prior art keywords
- data
- chip
- storage
- matrix
- decoding
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000005516 engineering process Methods 0.000 claims abstract description 22
- 230000009467 reduction Effects 0.000 claims abstract description 6
- 239000011159 matrix material Substances 0.000 claims description 67
- 230000008439 repair process Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 230000008707 rearrangement Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种基于纠删码的去中心化数据冗余存储方法及系统,方法具体步骤如下:S1.对文件数据进行冗余编码;S2.利用码片交织存储技术实现存储数据的负载均衡;S3.对数据解交织与数据还原;S4.对数据进行解码与修复。本发明采用RS纠删码编解码与数据交织技术,配合集群虚拟化技术实现安全、可靠、高效的数据冗余存储与修复方案,极大减少了存储空间占用以及修复所需带宽。
Description
技术领域
本发明属于分布式存储技术领域,具体涉及一种基于纠删码的泛在存储系统冗余存储方法及其系统。
背景技术
近年来,随着互联网应用的快速普及与发展,使得数据信息呈现出爆发式的增长。数据的急剧膨胀,以及对于数据存储安全性、可靠性、隐私性要求的提高,也不断暴露出了传统存储系统的问题与弊端。以数据中心为代表的传统中心化存储方案为例,其依赖大量的存储服务器来提供数据的存储服务,造成用户数据存储的安全性与可靠性与服务器本身的稳定性以及数据中心的抗毁性高度关联,存储系统中的单点故障都会造成大量数据的不可用,甚至丢失;同时,随着大数据分析以及人工智能的发展与商用,用户个人数据中蕴含着巨大的商业价值,大量数据存储于“寡头”节点之上,完全无法保证用户个人数据不被非法窃取和使用。
为了解决上述问题,目前的学术界与科技行业提出了多种去中心化的存储系统与解决方案,其中具有代表性并且成功落地实现的包括:Storj、MaidSafe、IPFS等,这些去中心化存储系统都致力于解决传统中心化存储系统的问题,如单点故障、数据安全性和隐私等,通过分散存储和加密技术,提供更安全、可靠和灵活的数据存储解决方案。然而,去中心化的存储模式下的存储节点分散于不同地域,相比于数据中心内的存储服务器,去中心化的存储节点更难监控与维护,进而影响存储节点的稳定性。因此,若要永久、安全、可靠的存储数据,就需要采取合适的数据容错技术来保障数据存储的安全性和可用性。
实际应用中,大多数的存储系统都是采用多副本备份的方式来保障数据的安全性和可用性,然而,这种方式往往需要消耗大量的额外存储空间,对某些资源受限系统(例如:泛在存储、边缘计算等)难以适用。目前,另一种主流的容错技术是通过纠删码来实现数据的高持久性和低冗余度的要求,例如:最常使用的RS(Reed-Solomon)纠删码算法,通过(n,k)纠删编码将原始数据切分为k个片段,随后编码得到n个码片(k<n)来保障数据存储可靠性。与传统的三副本备份方案相比,其存储开销能够降低53%,数据存储可靠性能提高一倍。
中国专利申请号202210936132.X公开了一种基于IPFS的文件分片备份方法:首先将源文件编码,然后对编码文件进行切割,最后将切割后的数据块分散存储于不同的存储节点之上,通过这种方法解决数据信息被窥探的问题。该方法虽然能够提高数据的安全性和隐私性,但是对于稳定性较差的去中心化存储系统来说,一旦发生数据丢失,数据修复将会导致额外的通信、计算开销,同时数据的修复时间也会增加,难以实际应用于去中心化存储系统之中。
发明内容
基于本领域的上述现状,本发明旨在实现存储网络内节点不稳定情况下,以数据可靠存储与高效修复的目标,提供一种去中心化存储中的数据冗余方案,该方案采用RS纠删码编解码与数据交织技术,配合集群虚拟化技术实现安全、可靠、高效的数据冗余存储与修复方案,与现有常规的多副本备份以及纠删码方案相比,极大的减少了存储空间占用以及修复所需带宽,同时提高了修复效率以及数据安全性。
本发明采取如下技术方案
基于纠删码的去中心化数据冗余存储方法,其具体步骤如下:
S1.对文件数据进行冗余编码;
S2.利用码片交织存储技术实现存储数据的负载均衡;
S3.对数据解交织与数据还原;
S4.对数据进行解码与修复。
本发明包含编解码和数据交织技术,实现文件数据块的冗余存储,最终实现将节点突发性异常导致的数据失效转化为随机性失效。
下面对本发明具体步骤的优选方案做如下详述。
优选的,S1.文件数据冗余编码
本发明在RS纠删码的基础上扩充参数,构成参数为[n,k,d,m]的RS码,其中:
参数m为新增的阈值存储,k<m≤n-1。当可用码片数低于阈值m时,则需要立即进行数据修复,通过这种方式给予存储节点恢复的容忍时间,减少不必要的修复开销;
参数k则表示原始数据切割后得到的信息码片数,参数n则表示纠删码条带中的编码码片数,则可以容忍任意n-k个码片失效;
参数d表示进行数据修复时,可访问节点个数,即修复节点要连接到d个节点下载数据。k≤d<n。当d=n-1时则可以达到最优的修复带宽开销。
所述编码流程具体细化为:
(1)为了提高RS纠删码计算效率,构建柯西矩阵G(k+r)×k代替范德蒙矩阵,降低解码过程中运算复杂度;其中,k为数据码片数,r为冗余码片数。k+r共同构成编码后的码片集合;
(2)通过有限域转换,将GF(2w)域中的元素转换为二进制矩阵,与范德蒙编RS纠删码中所描述的方法相比,不需要构建对数/反对数表,使得w可以支持很大的GF域空间计算,并有效降低运算复杂度。编码矩阵可表示为:
其中,D为原始数据的切块,xi和yj都是伽罗华域GF(2w)中的元素,i=1,2,…,r,j=1,2,…,k;数据码片di以及冗余码片cj为一维数组集合,i=0,1,…,k-1;j=0,1,…,r-1。在伽罗华有限域内,任何一个GF(2w)上的元素都可以映射为GF(2)二进制域,并且采用一个二进制矩阵的方式标识原GF(2w)中的元素。因此,在GF(2w)中的生成矩阵k×n,经过转换变成GF(2)域中的(w×k)×(w×(k+r))二进制矩阵。通过域变换,GF(2w)中的乘法运算编程了逻辑与(AND)运算,加法运算变为了异或(XOR)运算,极大的降低了运算复杂度。
优选的,S2.码片交织存储技术
为了解决存储节点因为网络中断、设备故障等原因,不可避免的出现突发性失效问题。为此,本发明提出一种基于数据交织技术的码片负载均衡方案,旨在实现存储数据在整个存储系统中的负载均衡,同时,能够将因节点故障而导致的突发性数据失效转换为随机失效。
为了实现上述目标,采用基于伪随机数的交织矩阵来进行数据块随机排序以及序列重建处理,具体实现方法如下:
(1)对于长度为n的码片序列X(1)={x1,x2,…,xn},生成一个等长的伪随机数数组,将原始码片基于伪随机数数组进行位置重排,得到新的码片序列X′;
(2)构建交织矩阵TW×L,将重排后的码片序列流x1,x2,…,逐行写入TW×L的矩阵缓存区,不同数据序列接续写入,当一个写入周期结束时,一行内未填充的部分由空字节补足。其中,L为矩阵深度,由单位时间内待存数据大小确定;W为矩阵宽度,表示当前存储周期内的可用存储节点数量,W设计上应不大于存储节点总数量。可表示为:
需要说明的是,为了保证同一个存储节点中不会存储同一个码片序列的数据,因此,矩阵宽度W>>n,即单位时间内可用存储节点数远大于数据块编码后所得的数量;l代表单位时间内已处理(待存储)的数据块数量。同时,为了充分利用存储节点资源,W应尽可能接近最大可用存储节点数。
(3)写入周期结束后,按照逐列的方式读取,得到输出序列Y={y1,y2,…yl},yj=xT(i),随后将输出序列Y,按顺序分别存入不同的存储节点之中。
经由矩阵T处理,输出序列数等于矩阵宽度W,而W可根据节点的负载情况自行调整,即对于重负载的节点减少选择次数。因此,待存储数据码片最终能够负载均衡的存储于节点中所有节点之上。随着存储系统中存储节点数的动态扩缩,对于每一次存储过程都是数据负载再平衡的过程,有效的避免了数据倾斜的发生。
优选的,S3.解交织与数据还原
解交织过程通过构建TW×L的转置矩阵T′=(TW×L)T,按照序列存储顺序以及码片索引标识,从对应存储节点获取码片数据流并写入解交织矩阵T′之中,如下所示:
从左至右,依次按列读取码片序列Y′={y1′,y2′,…yn′},依据伪随机数数组(array)还原码码片序列Y′,具体还原方法为:array中0号位置的数字,对应于原始码片序列中0号码片在X′的位置,第i号位置的数字对应于原始码片序列中i号码片在X′的位置。因此,只需要将X′各位置的码片数据移动到array中与索引编号数值相同的数字位置,即可得到原始码片序列X。
基于集群虚拟化技术,对外存储集群提供统一的交互接口,负责接收数据;随后,集群内部对于文件进行预处理(编码、交织),交织后的数据按照交织矩阵输出的序列,分别存储于不同的存储节点中。
优选的,S4.数据解码与修复
数据去交织并正确还原码片序列X(i)后,进行数据解码(修复),由于柯西矩阵任意子方阵都是奇异矩阵,存在逆矩阵。因此解码过程可表述为:
Decode(D′)=(G(2)′)-1D′
其中,D′为解码列向量,位置索引与编码后的码片保持一致。
对于文件数据来说,当任意数据码片di丢失或损坏时,修复系统会判断缺失码片缺失数量是否到达修复阈值m,若达到,则启动修复进程;否者,记录缺失码片标识信息同时更新文件缺失码片数量。数据修复流程可分为如下几步:
(1)获取缺失码片标识M及剩余有效码片数据,基于剩余码片构建解码列向量D′=[di,di+1,…,cj,…,cn];
(2)通过生成矩阵Cn×k解码列向量对应的行,得到方阵A,进而得到解码矩阵(C的逆矩阵)inv(A);
(3)通过将解码矩阵inv(A)与解码向量D′相乘,最终还原数据信息D。
本发明还公开了一种基于纠删码的去中心化数据冗余存储系统,基于上述方法的技术方案,其包括如下模块:
编码模块:对文件数据进行冗余编码;
负载均衡模块:利用码片交织存储技术实现存储数据的负载均衡;
解交织与还原模块:对数据解交织与数据还原;
解码与修复模块:对数据进行解码与修复。
本发明提供一种去中心化存储中的数据冗余存储方案,采用RS纠删码编解码与数据交织技术,配合集群虚拟化技术实现安全、可靠、高效的数据冗余存储与修复方案,极大减少了存储空间占用以及修复所需带宽。
附图说明
图1是本发明优选实施例基于纠删码的去中心化数据冗余存储方法流程图。
图2是本发明基于长度为12的码片序列的交织图。
图3是本发明基于长度为12的码片序列的解交织图。
图4是本发明优选实施例基于纠删码的去中心化数据冗余存储系统框图。
具体实施方式
结合以下具体实施例和附图,对本发明进一步的详细说明。
本发明优选实施例提供了一种基于纠删码的去中心化数据冗余存储方法,包括如下步骤:
S1,对文件数据进行冗余编码;
S2,利用码片交织存储技术实现存储数据再整个存储系统中的负载均衡;
S3,解交织与数据还原;
S4,数据解码与修复。
本实施例总体步骤流程如图1所示,将大文件或原始数据进行纠删编码,编码成片段后利用码片交织存储技术来对数据块随机排序以及序列重建处理,将这些处理后的码片发送到泛在存储系统中的节点上进行保存。需要取原始数据时,首先进行解交织与数据还原,最后对数据进行解码和修复即可得到原始数据。各步骤详述如下。
在本实施例中,步骤S1具体如下:
本发明基于RS纠删码,新增加了一个参数m用于阈值存储,构成参数为[n,k,d,m]的RS码。其中,k表示原始数据切割后的信息码片数,n表示纠删码条带中的编码码片数,d表示进行数据修复时可访问的节点个数,即修复节点需要连接到d个节点下载数据。而新增的参数m则表示在可用码片数低于阈值m时,则需要立即进行数据修复,从而给存储节点提供恢复容忍时间,避免不必要的修复开销。
扩充后的RS码可以容忍任意n-k个码片失效,因此其纠错能力很强。同时,当d=n-1时,可以达到最优的修复带宽开销。
所述编码流程可细化为:
(1)为了提高RS纠删码计算效率,构建柯西矩阵G(k+r)×k代替范德蒙矩阵,降低解码过程中运算复杂度,其中,k为数据码片数,r为冗余码片数,k+r共同构成编码后的码片集合;
(2)通过有限域转换,将GF(2w)域中的元素转换为二进制矩阵,与范德蒙编RS纠删码中描述的方法相比,不需要构建对数/反对数表,使得w可以支持很大的GF域空间计算,并有效降低运算复杂度。编码矩阵可表示为:
其中,D为原始数据的切块,xi和yi都是伽罗华域GF(2w)中的元素,i=1,2,…,r,j=1,2,…,k;数据码片di以及冗余码片cj为一维数组集合,i=0,1,…,k-1;j=0,1,…,r-1。在伽罗华有限域内,任何一个GF(2w)上的元素都可以映射为GF(2)二进制域,并且采用一个二进制矩阵的方式标识原GF(2w)中的元素。因此,在GF(2w)中的生成矩阵k×n,经过转换变成GF(2)域中的(w×k)×(w×(k+r))二进制矩阵。通过域变换,GF(2w)中的乘法运算编程了逻辑与(AND)运算,加法运算变为了异或(XOR)运算,极大降低了运算复杂度。
如图2所示,本实施例中,步骤S2具体如下:
S21,首先采用基于伪随机数的交织矩阵来对数据块进行随机排序处理,对于长度为12的码片序列X(1)={x1,x2,…,x12},生成一个等长的伪随机数数组A={2,4,6,8,5,10,1,9,3,11,7,12},将原始码片X基于伪随机数数组A进行位置重排,得到新的码片序列X′={x2,x4,…,x12};
S22,构建交织矩阵TW×L,将基于伪随机数组重排后的码片序列X′写入TW×L的矩阵缓存区中,当一个写入周期结束时,一行内未填充的部分由空字节补足。其中,W为矩阵宽度,其设计上应不大于单位时间内可用的存储节点数,此例取W等于12;L为矩阵深度,是由单位时间内待存数据大小确定的。可表示为:
需要说明的是,为了保证同一个存储节点中不会存储同一个码片序列的数据,因此,矩阵宽度W>>n,即单位时间内可用存储节点数远大于数据块编码后所得的数量;l代表单位时间内已处理的数据块数量。同时,为了充分利用存储节点资源,W应尽可能接近最大可用存储节点数。
S23,写入周期结束后,按照逐列的方式读取,得到输出序列Y={y1,y2,…yl},yj=xT(i),随后将输出序列Y,按顺序分别存入不同的存储节点之中。
矩阵T用于处理待存储数据码片,并通过输出序列数等于矩阵宽度W的方式进行存储。而W可以根据节点的负载情况自行调整,从而实现对重负载节点减少选择次数的目的。这样,待存储数据码片最终能够均衡地存储于所有节点之上。在存储系统中,如果存储节点数发生动态扩缩,每次存储过程都会进行数据负载再平衡的操作,有效避免了数据倾斜的发生。通过动态调整节点的负载情况和重新分配数据,系统可以实现数据的负载均衡,确保每个节点的负载相对均衡,提高系统的性能和效率。
总之,通过矩阵T处理和动态调整节点负载,存储系统可以实现数据的负载均衡,避免数据倾斜的发生,提高系统的可靠性和性能。
如图3所示,本实施例中,步骤S3具体过程为:
S31,解交织过程则通过构建TW×L的转置矩阵T′=(TW×L)T,按照序列存储顺序以及码片索引标识,从对应存储节点获取码片数据流并写入解交织矩阵T′之中,如下所示:
从左至右,依次按列读取码片序列Y′={y1′,y2′,…y1′2},依据伪随机数数组(array)还原码码片序列Y′,具体还原方法为:array中0号位置的数字,对应于原始码片序列中0号码片在X′的位置,第i号位置的数字对应于原始码片序列中i号码片在X′的位置。因此,只需要将X′各位置的码片数据移动到array中与索引编号数值相同的数字位置,即可得到原始码片序列X。
S32,基于集群虚拟化技术,对外存储集群提供统一的交互接口,负责接收数据;随后,集群内部对于文件进行预处理(编码、交织),交织后的数据按照交织矩阵输出的序列,分别存储于不同的存储节点中。
交织技术的应用使得每个节点仅保存原始数据的部分码片,任意节点失效仅会影响原始数据的部分码片,有效减弱了突发性失效对存储系统的影响。同时,交织技术还具有一定的容错性,能够在多个节点失效时通过其他节点的码片进行数据恢复。这样可以提高系统的可靠性和容错性,保证数据的安全性和完整性。
本实施例中,步骤S4包括如下步骤:
S41,数据去交织并正确还原码片序列X(i)后,进行数据解码修复,由于柯西矩阵任意子方阵都是奇异矩阵,存在逆矩阵。因此解码过程可表述为:
Decode(D′)=(G(2)′)-1D′
D′为解码列向量,位置索引与编码后的码片保持一致;
S42,对于文件数据来说,当任意数据码片di丢失或损坏时,修复系统会判断缺失码片缺失数量是否到达修复阈值m,若达到,则启动修复进程;否者,记录缺失码片标识信息同时更新文件缺失码片数量。数据修复流程可分为如下几步:
(1)获取缺失码片标识M及剩余有效码片数据,基于剩余码片构建解码列向量D′=[di,di+1,…,cj,…,cn];
(2)通过生成矩阵Cn×k解码列向量对应的行,得到方阵A,进而得到解码矩阵(C的逆矩阵)inv(A);
(3)通过将解码矩阵inv(A)与解码向量D′相乘,最终还原数据信息D。
柯西码的优点在于可以通过任意k个码片重构出原始数据,并且能够在一定程度上抵御码片的丢失和损坏。因此,修复进程仅在达到修复阈值m后才会启动,避免无谓的修复操作导致性能损失。同时,在实际应用过程中,还需要考虑数据传输、存储和校验等方面的问题,以确保数据的完整性和可靠性。
如图4所示,本实施例公开了一种基于纠删码的去中心化数据冗余存储系统,基于上述方法实施例,包括如下模块:
编码模块:对文件数据进行冗余编码;
负载均衡模块:利用码片交织存储技术实现存储数据的负载均衡;
解交织与还原模块:对数据解交织与数据还原;
解码与修复模块:对数据进行解码与修复。
本实施例其他内容可参考上述实施例。
综上,本发明采用RS纠删码编解码与数据交织技术,配合集群虚拟化技术实现安全、可靠、高效的数据冗余存储与修复方案,极大的减少了存储空间占用以及修复所需带宽,提供一种去中心化存储中的数据冗余方案。
以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。
Claims (7)
1.基于纠删码的去中心化数据冗余存储方法,其特征是,具体步骤如下:
S1.对文件数据进行冗余编码;
S2.利用码片交织存储技术实现存储数据的负载均衡;
S3.对数据解交织与数据还原;
S4.对数据进行解码与修复。
2.如权利要求1所述的基于纠删码的去中心化数据冗余存储方法,其特征是,步骤S1中,在RS纠删码的基础上扩充参数,构成参数为[n,k,d,m]的RS码,其中:
参数m为新增的阈值存储,k<m≤n-1;当可用码片数低于阈值m时,则进行数据修复;
参数k表示原始数据切割后得到的信息码片数,参数n表示纠删码条带中的编码码片数,能容忍任意n-k个码片失效;
参数d表示进行数据修复时,能访问节点个数,即修复节点要连接到d个节点下载数据;k≤d<n;当d=n-1时,则能达到最优的修复带宽开销;
所述编码过程具体如下:
(1)构建柯西矩阵G(k+r)×k,其中,k为数据码片数,r为冗余码片数,k+r共同构成编码后的码片集合;
(2)通过有限域转换,将GF(2w)域中的元素转换为二进制矩阵,编码矩阵表示为:
其中,D为原始数据的切块,xi;和yj都是伽罗华域GF(2w)中的元素,i=1,2,…,r,
j=1,2,…,k;数据码片di以及冗余码片cj为一维数组集合,i=0,2,…,k-1;j=0,1,…r-1;在伽罗华有限域内,任何一个GF(2w)上的元素都能映射为GF(2)二进制域,并且采用一个二进制矩阵的方式标识原GF(2w)中的元素。
3.如权利要求2所述的基于纠删码的去中心化数据冗余存储方法,其特征是,步骤S2,具体如下:
(1)对于长度为n的码片序列X(1)={x1,x2,…,xn},生成一个等长的伪随机数数组,将原始码片基于伪随机数数组进行位置重排,得到新的码片序列X′;
(2)构建交织矩阵TW×L,将重排后的码片序列流x1,x2,…,逐行写入TW×L的矩阵缓存区,不同数据序列接续写入,当一个写入周期结束时,一行内未填充的部分由空字节补足;其中,L为矩阵深度,由单位时间内待存数据大小确定;W为矩阵宽度,表示当前存储周期内的可用存储节点数量,W不大于存储节点总数量;表示为:
其中,矩阵宽度W>>n,即单位时间内可用存储节点数远大于数据块编码后所得的数量;l代表单位时间内已处理的数据块数量;
(3)写入周期结束后,按照逐列的方式读取,得到输出序列Y={y1,y2,…yl},yj=xT(i),随后将输出序列Y,按顺序分别存入不同的存储节点之中。
4.如权利要求3所述的基于纠删码的去中心化数据冗余存储方法,其特征是,步骤S3中,解交织过程通过构建TW×L的转置矩阵T′=(TW×L)T,按照序列存储顺序以及码片索引标识,从对应存储节点获取码片数据流并写入解交织矩阵T′之中,如下所示:
从左至右,依次按列读取码片序列Y′={y′1,y′2,…y′n},依据伪随机数数组array还原码码片序列Y′,具体还原方法为:array中0号位置的数字,对应于原始码片序列中0号码片在X′的位置,第i号位置的数字对应于原始码片序列中i号码片在X′的位置;将X′各位置的码片数据移动到array中与索引编号数值相同的数字位置,即能得到原始码片序列X。
5.如权利要求4所述的基于纠删码的去中心化数据冗余存储方法,其特征是,步骤S4中,数据去交织并正确还原码片序列X(i)后,进行数据解码,解码过程表述为:
Decode(D′)=(G(2)′)-1D′
其中,D′为解码列向量,位置索引与编码后的码片保持一致;
对于文件数据来说,当任意数据码片di丢失或损坏时,判断缺失码片缺失数量是否到达修复阈值m,若达到,则启动修复进程;否则,记录缺失码片标识信息同时更新文件缺失码片数量。
6.如权利要求5所述的基于纠删码的去中心化数据冗余存储方法,其特征是,步骤S4中,数据修复流程具体如下:
(1)获取缺失码片标识M及剩余有效码片数据,基于剩余码片构建解码列向量D′=[di,di+1,…,cj,…,cn];
(2)通过生成矩阵Cn×k解码列向量对应的行,得到方阵A,进而得到解码矩阵inv(A);
(3)通过将解码矩阵inv(A)与解码向量D′相乘,还原数据信息D。
7.基于纠删码的去中心化数据冗余存储系统,基于权利要求1-6任一项所述的方法,其特征是,包括如下模块:
编码模块:对文件数据进行冗余编码;
负载均衡模块:利用码片交织存储技术实现存储数据的负载均衡;
解交织与还原模块:对数据解交织与数据还原;
解码与修复模块:对数据进行解码与修复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311498329.0A CN117591336A (zh) | 2023-11-10 | 2023-11-10 | 基于纠删码的去中心化数据冗余存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311498329.0A CN117591336A (zh) | 2023-11-10 | 2023-11-10 | 基于纠删码的去中心化数据冗余存储方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591336A true CN117591336A (zh) | 2024-02-23 |
Family
ID=89919280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311498329.0A Pending CN117591336A (zh) | 2023-11-10 | 2023-11-10 | 基于纠删码的去中心化数据冗余存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591336A (zh) |
-
2023
- 2023-11-10 CN CN202311498329.0A patent/CN117591336A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103688515B (zh) | 一种最小带宽再生码的编码和存储节点修复方法 | |
US11531593B2 (en) | Data encoding, decoding and recovering method for a distributed storage system | |
CN103688514B (zh) | 一种最小存储再生码的编码和存储节点修复方法 | |
EP2394220B1 (en) | Distributed storage of recoverable data | |
Cadambe et al. | Permutation code: Optimal exact-repair of a single failed node in MDS code based distributed storage systems | |
US8775860B2 (en) | System and method for exact regeneration of a failed node in a distributed storage system | |
US20110113282A1 (en) | Method of storing a data set in a distributed storage system, distributed storage system and computer program product for use with said method | |
KR20060096156A (ko) | 서브심볼 기반 코드를 이용한 데이터 삭제를 방지하기 위한방법 | |
WO1993018589A1 (en) | Data recovery after error correction failure | |
WO2013164228A1 (en) | Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices | |
CN112000512B (zh) | 一种数据修复方法及相关装置 | |
CN102843212B (zh) | 编解码处理方法及装置 | |
CN113505019A (zh) | 一种纠删码数据及校验恢复方法、装置、设备及可读介质 | |
KR101621752B1 (ko) | 부분접속 복구 가능한 반복분할 부호를 이용한 분산 저장 장치 및 그 방법 | |
CN103650462B (zh) | 基于同态的自修复码的编码、解码和数据修复方法及其存储系统 | |
CN108614749B (zh) | 一种数据处理方法及装置 | |
CN114510368A (zh) | 一种基于rs纠删码的编解码加速方法及系统 | |
Ivanichkina et al. | Mathematical methods and models of improving data storage reliability including those based on finite field theory | |
CN107665152B (zh) | 一类纠删码的译码方法 | |
WO2024146186A1 (zh) | 一种数据存储方法、装置、计算机设备及非易失性可读存储介质 | |
GB2482112A (en) | Distributed data storage and recovery | |
Yang et al. | Hierarchical coding to enable scalability and flexibility in heterogeneous cloud storage | |
CN117591336A (zh) | 基于纠删码的去中心化数据冗余存储方法及系统 | |
JP5826202B2 (ja) | 符号化装置、復号装置、符号化方法、復号方法及びプログラム | |
Wei et al. | expanCodes: Tailored LDPC codes for big data storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |