CN102624866B - 一种存储数据的方法、装置及分布式网络存储系统 - Google Patents
一种存储数据的方法、装置及分布式网络存储系统 Download PDFInfo
- Publication number
- CN102624866B CN102624866B CN201210011386.7A CN201210011386A CN102624866B CN 102624866 B CN102624866 B CN 102624866B CN 201210011386 A CN201210011386 A CN 201210011386A CN 102624866 B CN102624866 B CN 102624866B
- Authority
- CN
- China
- Prior art keywords
- node
- module
- storage system
- data
- distributed network
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- 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/033—Theoretical methods to calculate these checking codes
-
- 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明适用于存储技术领域,提供了一种存储数据的方法、装置及分布式网络存储系统,所述方法包括:将大小为M的文件分成k个模块,每个模块的大小为M/k;将所述k个模块分发给分布式网络存储系统中的k个不同节点;将所述k个模块通过线性编码构造成n-k个互不相关的模块,并且满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS,;将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点。本发明,使分布式网络存储系统能够容忍n-k个节点同时失效而不丢失数据,并使系统的冗余度保持不变,保证了分布式网络存储系统的可靠性。
Description
技术领域
本发明属于存储技术领域,尤其涉及一种存储数据的方法、装置及分布式网络存储系统。
背景技术
2000年诞生的网络编码(Network Coding,NC)是继C.E.Shannon发表《AMathematical Theory of Communication》解决信道容量极限问题后的一个全新突破,它解决了网络通信中单/多源对多接收点组/广播如何达到网络容量极限的问题。
传统网络通信节点上的路由交换机只完成存储转发功能。NC指出如果允许路由交换机对输入信息流进行编码再发送,将使得网络节点既实现路由功能又实现编码功能。在这种全新的体系结构下,网络性能可以达到最大流传输的理论极限。
伴随存储系统规模的发展,故障概率也显著提高,人们对存储系统也提出了更高的容错要求。现有技术主要是通过纠错码来实现分布式存储的可靠性。比之于RAID系统,常用的RAID-5产品只能提供单盘故障的修复,能够修复双盘故障的恢复的RAID-6逐渐也走入了实用。容单盘错的RAID-5系统原理来自于奇偶校验,而为达到各方面性能的优化,容双盘故障的RAID-6系统需要采用“特制”的纠错编码。
分布式系统中采用纠删码时限制因素有所减少,如可以用Galois域运算代替XOR运算,且由于通常情况下各个分布式节点所处地位相同,并不一定要求采用系统化编码。此外,分布式系统规模通常较大,也要求编码率不能随规模增大而过分减小。分布式系统中常用的纠删码是较为通用的Reed Solomon编码(MacWilliams and Sloane,1977),根据需要它可以实现任意程度的冗余,编解码过程是在较大的Galois域上进行运算,运算代价相对异或运算明显偏大。Reed Solomon编码原理是建立在多项式理论之上,生成矩阵有多种形式,一种
广泛采用的编码方式是使用Vandermonde矩阵作为生成矩阵:
这里m和n可以根据需要选择,达到任意的编码率。
纠删码利用成熟的编码理论对数据进行分块编码,它将数据分成n块,另外生成m块冗余块,从这n+m块中得到任意n块即可恢复出原始数据,节点中有些存储的是原始模块,有些存储的是编码冗余块,地位和作用并不一致,而且分布式环境下的编码过程有时会需要中心节点的参与。
随后提出的分布式存储的随机线性编码方案,虽然也实现了分布式数据存储,并且将整个文件分成若干块,编码模块通过随机线性结合所有块。但要求存储每个编码模块的编码向量,文件丢失是通过收集编码向量和从其他节点获得编码模块来恢复。这增加了节点的存储量和数据处理负荷,以及节点失效修复过程的通信带宽。
综上所述,现有的数据存储方法,不能保证分布式网络存储系统的可靠性。
发明内容
本发明实施例提供了一种存储数据的方法、装置及分布式网络存储系统,旨在解决现有技术提供的存储数据的方法,不能保证分布式网络存储系统的可靠性的问题。
一方面,提供一种存储数据的方法,所述方法包括:
将大小为M的文件分成k个模块,每个模块的大小为M/k;
将所述k个模块分发给分布式网络存储系统中的k个不同节点;
将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS;
将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点;
其中,n、k均是大于0的整数,且n>k,n为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数。
另一方面,提供一种存储数据的装置,所述装置包括:
数据分块单元,用于将大小为M的文件分成k个模块,每个模块的大小为M/k;
第一模块分配单元,用于将所述k个模块分发给分布式网络存储系统中的k个不同节点;
编码单元,用于将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS;
第二模块分配单元,用于将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点;
其中,n、k均是大于0的整数,且n>k,n为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数。
又一方面,提供一种分布式网络存储系统,包括客户端,所述系统还包括与所述客户端连接的存储数据的装置,所述存储数据的装置是所述分布式网络存储系统中的节点和索引服务器。
在本发明实施例中,将数据均分成k个模块,存储于k个节点中,再将所述k个模块通过线性编码(最大距离可分离码MDS),生成n-k个互不相关的编码块(满足n个节点中任意k个模块能恢复出所述文件中的原始数据,),并将所述n-k个编码块分发到各节点上,使得系统能够容忍n-k个节点同时失效而不丢失数据,系统的冗余度保持不变,保证了分布式网络存储系统的可靠性。
附图说明
图1是本发明实施例提供的一种分布式网络存储系统的总体框架示意图;
图2是本发明实施例一提供的一种存储数据的方法的实现流程图;
图3是本发明实施例二提供的一种存储数据的方法的实现流程图;
图4a是本发明实施例提供的一种(4,2)MDS码示意图;
图4b是本发明实施例提供的一种MDS码节点失效修复示意图;
图4c是本发明实施例提供的另一种MDS码节点失效修复示意图;
图5是本发明实施例提供的一种不同修复模型和主要技术示意图;
图6是本发明实施例提供的一种(4,2)MDS码功能修复信息流程示意图;
图7是本发明实施例提供的一种节点存储α和修复带宽γ的最优折中曲线示意图;
图8是本发明实施例提供的一种精确修复(5,3)MBR码示意图;
图9是本发明实施例提供的一种精确修复(4,2)MSR码示意图;
图10是本发明实施例提供的一种精确修复(6,3)MSR码示意图;
图11是本发明实施例提供的一种系统部分精确修复示意图;
图12是本发明实施例三提供的一种存储数据的装置的结构框图;
图13是本发明实施例四提供的一种存储数据的装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
分布式存储系统是将数据分散存储在多台独立队设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。
分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
图1是分布式网络存储系统的一个总体框架示意图,该系统中有4个节点(SN1-SN4),一个索引服务器IS和一个由PC表示的客户端,IS和SN构成了服务器端。IS中存储着各个节点的命名和路由信息、整个系统的目录结构和文件名到模块的映射以及各个文件块的存储位置等,IS的作用类似于传统文件系统中的文件分区表。当用户要上传或下载文件时,通过IS找到指定的若干SN,然后与SN进行交互。
本发明实施例,是在分布式网络存储系统中通过线性网络编码引入冗余来增加系统的可靠性。当使用编码时,会出现需要修复失效节点的问题:如果一个存储加密信息的节点失效,为了支持相同级别的系统可靠性,需要在一个新的节点中构造加密信息。这相当于一个部分恢复的编码,然而传统的纠错码集中于从一个编码模块的子集中来恢复信息,出于修复网络负载的考虑将引出新的设计挑战。最近,网络编码技术对于这些挑战已经有所帮助,相比于标准的纠错码,网络编码将以数量级单位减少带宽的使用。
实施例一
图2示出了本发明实施例一提供的存储数据的方法的实现流程,主要包括:
在步骤S201中,将大小为M的文件分成k个模块,每个模块的大小为M/k。
在本实施例中,将一个大小为M的文件要存储在分布式网络存储系统中,首先将该文件分成大小相同的k个模块,使得每个模块的大小相等,即每个模块的大小为M/k。
在步骤S202中,将所述k个模块分发给分布式网络存储系统中的k个不同节点。
在本实施例中,将大小相等的k个模块分发给分布式网络存储系统中的k个不同的节点,这些节点即为系统节点。
在步骤S203中,将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS。
在本实施例中,先由分布式网络存储系统随机生成一个k*(n-k)满秩矩阵,再通过已知的k个模块和该满秩矩阵产生(n-k)个互不相关的模块,这些模块实为原文件信息块的线性叠加,并保证MDS码的属性,即通过n个节点中的任意k个模块就可恢复整个文件。其中,n、k均是大于0的整数,且n>k,n为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数。
在步骤S204中,将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点。
在本实施例中,将编码的(n-k)个互不相关的模块分发给剩下的不同节点,这些节点即为非系统节点。
实施例二
图3示出了本发明实施例二提供的存储数据的方法的实现流程,主要包括:
在步骤S301中,将大小为M的文件分成k个模块,每个模块的大小为M/k。
在步骤S302中,将所述k个模块分发给分布式网络存储系统中的k个不同节点。
在步骤S303中,将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS。
在步骤S304中,将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点。
在步骤S305中,若分布式网络存储系统中有节点失效,且失效节点数不超过n-k,则通过现有不少于k个节点来恢复失效节点中所存储的数据。
在本实施例中,对于分布式网络存储系统中的节点进行控制,判断是否有节点出现故障(如硬盘损坏、网络断开、电源关闭等)以及统计同一时间内出现故障的节点数。
对于故障节点数超过(n-k)的情况下,根据MDS属性可知,恢复一个原文件至少需要k个节点的信息,而现有活动节点数低于k,从而可知文件内容不能恢复,系统丢失该文件。
对于故障节点数不超过(n-k)的情况下,由MDS码属性可知,可从现有不低于k个节点中获得相关信息,进行线性编码恢复失效节点存储的内容。经过对失效节点的修复,使得系统冗余度不变,仍是一个MDS码,从而保证了系统的可靠性。
实施例一和实施例二中主要应用到MDS码,MDS码是在冗余和可靠性方面最好的折中,因为k个模块包含恢复原始数据所需要的最低数量的信息。在一个分布式网络存储系统,存储n个加密数据包的不同节点(如磁盘、服务器或端点)遍布于一个网络,并且这个系统可以容忍(n-k)个节点失效而不丢失数据。
图4a是一个(4,2)MDS码的例子,其中总共存储大小为4个信息即A1、A2、B1、B2,将该文件分成2份,每份大小为2,其中前两个节点存储的是未编码模块,因而为系统节点,后两个节点存储的是原始信息A1、A2、B1、B2二进制线性组合,可以观察出,在这n=4个节点中,任意k=2个节点就可以恢复所有数据。
以下集中于分布式网络存储中一个节点失效后且失效节点数不超过n-k,如何通过现有不少于k个节点来恢复失效节点中所存储的数据的问题。
图4b描述当第一个节点失效后,新节点可以通过三个存在的节点恢复丢失的数据内容。很明显修复一个简单失效比重构所有数据简单,该例子中通过和三个现存节点交流B2、A2+B2、A1+A2+B2来修复故障,这可以用来恢复原始信息A1、A2。
图4c表示修复第四个节点的例子,这个可以只用三个模块来实现,但是一个主要的不同是:第二个节点需要计算一个存储数据包B1、B2的线性组合,这个实际交流模块为B1+B2。这表示网络编码的必要性,在修复过程中在中间节点构造线性组合。
如果网络带宽比磁盘访问是更重要的资源,则一个重要的考虑是找到最小需求的带宽和采用哪种编码可以实现最小需求的网络带宽。
由图4的两个修复例子中可看出,新节点需要精确构造故障节点丢失的模块,然而关于修复的定义只要求一个新的节点与现有节点结合仍能形成一个(n,k)MDS码,满足n中任意k个节点能够恢复所有原始信息。换言之,新节点可以形成新的、不同于丢失节点存储的模块,这个要求也更容易满足。
因而通过现有不少于k个节点来恢复失效节点中所存储的数据的方法可以考虑三种修复模型,如图5所示:精确修复,功能修复和混合修复(系统部分精确修复)。功能修复只要产生的模块支持MDS码属性即可,它可以在信息流图表的相应构造图表上降低成一个多播问题,因而应用的主要技术是网络编码NC;而精确修复必须精确恢复原始丢失模块,应用到的主要技术是网络编码NC和干扰队列;系统部分精确修复介于前两种修复之间的一个混合修复模型,要求系统节点存储的模块必须精确恢复,非系统节点存储的模块只需功能修复,可看成精确修复模型的一个放松,因而核心技术仍是网络编码NC和干扰队列。
其中,功能修复是指:通过线性网络编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性。
其中,功能修复具体包括:
从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据;
其中,d≤n-1,n为分布式网络存储系统中的总共节点数。
对于功能修复的具体描述如下:
功能修复问题可以看成是在一个信息流图中的组播。信息流图代表信息流的进展,如节点加入和离开分布式网络存储系统。对于任意节点存储α≥α*(n,k,d,γ),点(n,k,d,α,γ)是切实可行的并且线性网络编码能够实现。
信息从理论上不可能实现点α<α*(n,k,d,γ),这个函数α*(n,k,d,γ)的阈值如下:
当d≤n-1,给定(n,k,d),最小修复带宽
从上式可观察出,最小修复带宽γ=dβ是关于参与修复的节点个数d的递减函数。当一个新节点与多个节点交互,每个交互包的大小β以很快速度降低来使dβ乘积减小。因此,最小修复带宽可以通过d=n-1来实现。如我们所提到的,当且仅当信息流图满足最小割,修复编码才可以实现。这个条件推导出公式(1)到(4)的修复率的计算,当这些条件满足,随着编码领域的增大简单的线性组合将实现系统的高可靠性。
我们考虑两种编码,分别为最小存储再生编码(MSR)和最小带宽再生编码(MBR)。从公式(1)到(4),可以证实最小存储点是「得出修复带宽γMSR=dβMSR是一个关于参与修复过程的节点数量d的递减函数。因为MSR编码在每个节点存储M/k比特,同时确保MDS码的属性,因此它等同于MDS码。观察当d=k,总共修复交流是M(原始文件的大小)。因此,如果一个新来者只允许和k节点联系,它必然要下载整个数据对象来修复一个新的故障,这是对于执行任何MDS码的无经验的修复方式。
然而当允许一个新来者和多于k个节点联系,MSR码可以降低修复带宽γMSR,当d=n-1时我们在中分离出M/k因子,来描述MSR码中带宽比存储多了一个(n-1)/(n-k)因子。这代表MDS构造所必须的一个基本扩张,这是最佳的可靠性-冗余折中。例如,考虑一个(n,k)=(14,7)码,这个例子里,当有一个节点失效,新节点只需要从d=n-1=13每个活动节点中下载仅M/49比特,使修复带宽等于(M/7)·(13/7)。注意我们只需要知道扩张因子13/7,而在无经验的修复方式中需要因子7。
另一个折中方法是MBR码,它拥有最小修复带宽。可以证实最小修复带宽点是注意在最小带宽再生码中,在整个修复过程中交流的总比特数中存储大小等于带宽。如果我们设置最优值d=n-1,我们可以获得
注意MBR码根本不引发修复带宽扩张,如同一个复制系统,在修复过程下载存储信息的个数。然而,MBR码在存储信息量上要求一个扩张因子(2n-2)/(2n-k-1),依据给定的冗余可靠性,这种方案将不再是最优性。图6给出一个信息流图(4,2)MDS码的例子。在图6中,每个节点通过一对节点Xi in,Xi out来表示,这对节点通过一个容量为该节点存储容量的边连接。有个虚拟的源节点s相当于原始的数据对象。假设最初我们在四个节点存储一个大小为M=4模块的文件,每个节点存储α=2模块,这个文件可以通过任意两个节点来重构造。虚拟的信宿节点叫做数据的收集者,连接任意k个节点子集并确保这个编码具有MDS属性。假设存储节点4失败,这个目标是创造一个新的节点X5 in,传输最低数量的信息然后存储α=2模块。节点X5 in与三个活动的节点相连。假设β为与每个活动的节点交流的比特数,令人关注的是需求最小β值。最小割必须要大于M=4模块来重产生数据。对于图6,最小割值是α+2β,意味着交流量β≥1模块,则总共修复一个失败节点的带宽为γ=dβ=3模块。
一个信息流图相当于在一定数量的失效/修复后,分布式网络存储系统的一个特需进化。我们称每个失效/修复为一个阶段:在每个阶段,一个节点失效,编码通过从任何d个幸存节点下载β比特来修复。因此,总共修复带宽为γ=dβ。如图6所示例子,在初始化阶段,系统由节点1,2,3和4组成;在第二阶段,系统由节点2,3,4和5组成。
如我们所提到的,当且仅当信息流图满足最小割,编码修复才可以实现。当这些条件满足,随着编码领域大小的增长,简单的随机线性结合将达到高度可靠性。在图7中根据公式(1)至(4),画出k=5,n=10以及k=10,n=15每个节点存储量α和修复一个节点所需要的带宽γ的最优折中曲线图,这里M=1,d=n-1。注意在k=5,n=10的最优折中曲线图中,传统的纠错码相当于点(α=0.2,γ=1),而在k=10,n=15最优折中曲线图中,传统的纠错码相当于点(α=0.1,γ=1)。
在最优折中曲线上的两个极值点,分别相当于最优的存储效应和最小修复带宽。我们称达到这些点的编码分别为最小存储再生编码(MSR)和最小带宽再生编码(MBR)。
如我们所讨论的,功能修复的带宽-存储折中可以完全通过分析信息流图的割集来描述。然而在功能修复下,每当一个故障发生为了不断更新修复和译码规则将会引起重大的系统负担。此外,基于随机网络编码的功能修复解决方案需要一个巨大的有限域来支持一个动态的扩张图大小(取决于连续不断的修复),这将提高加解密计算复杂性。而且,功能修复在面对窃听者的安全存储应用中是不受欢迎的。假设这样,信息的保密将取决于修复和解密规则,而这规则可能被窃听者观察出,从而导致信息泄露。这个缺点促使节点失效的精确修复的需要。
其中,精确修复具体是指:通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中的模块相同。
其中,精确修复具体包括:
从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据;
通过线性排列使得进入新节点的干扰量的维数降低;
其中,对于MBR码,d=n-1,对于MSR码,d∈[2k-1,n-1],k/n≤1/2,n为分布式网络存储系统中的总共节点数。
其中,对于精确修复的具体描述如下:
对于精确修复的MBR码,当d=n-1,最小割集界限可以用一个决定性的方案来实现,它要求有限域字母大小不能超过(n-1)n/2。图8通过(n,k,d,α,γ)=(5,3,4,4,4)一个例子来描述这种思想,其中能够存储的文件大小为M=9(匹配割集界限)。每个节点存储四个模块的atvi,vi可以被理解为数据文件的一个一维子空间。我们只简单的写子空间向量来代表一个实际的存储模块。注意d等于修复的存储模块的大小,可利用的方程数匹配一个节点精确修复所需要的变量。因此,对于精确修复,在节点1和所有i≠1的节点i之间必须至少有一个相同的模块。
这个思想是使其他节点i(i≠1)分别存储节点1的每个模块:节点2,3,4和5在它们自己位置分别存储atv1,atv2,atv3,atv4。注意为了确保修复,在任意两个存储节点之间只能够拥有一个相同模块。因此,节点2可以在剩下的其他位置存储其他三个信息块atv5,atv6,atv7。依据上面的过程,节点3,4和5在它们的空间分别复制三个块中的一个。我们重复这个过程直到总共10=(4+3+2+1)块都被存储。这个构造可以保证任何节点失效的精确修复,因为在任意两个节点之间至少有一个模块是相同的,并且各相同模块间是不同的。
剩下的问题是设计这十个子空间向量vi,i=1,...,10。详细的构造来自于MDS码属性,即5个节点中任意3个就可以恢复原始信息文件。观察图8可得出9个不同的向量可以通过任意三个节点下载。因此,任意(10,9)MDS码可以构造这些vi。在这个例子里,在GF(2)中使用偶校验定义,我们可以如下设计vi:vi=ei,和v10=[1,...,1]t,并可以延伸至任意的(n,k)事件。这个构造可以被解释成一个最优的干扰避免技术。为了证明这点,观察图可以看出精确修复所需要的模块数等于可以下载的可用方程数。因此,精确修复将排除任何不需要的模块。
这个干扰避免技术虽然实现MBR码,但是节点存储量大,不能满足MSR码,因而需要为MSR码提供新的思想。这里采用干扰队列思想将多个干扰信号排成一个信号子空间,使得它的维数比干扰数量要小。图9描述干扰队列用于当节点1失效的精确修复,其中(n,k,d,α,γ)=(4,2,3,2,2),最大可存储文件大小M=4。我们引用矩阵符号来描述。令a=(a1,a2)t和b=(b1,b2)t是2维单位信息向量。令Ai,Bi是对等节点i(i=1,2)的2*2加密矩阵,分别包含线性组合(a1,a2)和(b1,b2)加密系数。如图9所示,节点3以atA1+btB1形式来存储模块。对于系统节点的加密矩阵没有明确定义,因为它们将分级推导。由于β=1,我们定义二维投影向量vαi(i=1,2,3)。
通过图9所示例子对干扰队列思想进行解释。首先,每个存储节点根据投影向量vαi将存储的两个模块投影成一个数,通过与其他三个节点的连接,我们得到vt α1b;(A1vα2)ta+(B1vα2)tb;(A2vα3)ta+(B2vα3)tb。这里的目标是在包含四个未知数的三个方程中解密出两个想要的未知数。为了实现这个目标需要下面两个条件即 和 第二个条件可以通过设置vα2=B1 -1vα1和vα3=B2 -1vα1来实现。这种选择使干扰空间缩小为一维线性子空间,因此可以实现干扰队列。另一方面,我们可以同样通过小心选择Ai,Bi来满足第一个条件。对于节点2的精确修复,我们可以应用相同思想。对于节点3和4我们可以将其经过重新映射转换为对等节点,然后应用上述相同技术恢复。
为了实现对任意的(k/n)≤(1/2)均能达到精确修复的最小割集界限,使用了同步干扰队列。图9通过(n,k,d,α,γ)=(6,3,5,3,3),M=9的例子来描述这种干扰队列。令a=(a1,a2,a3)t,b=(b1,b2,b3)t,c=(c1,c2,c3)t为一个三维信息单位向量。令Ai,Bi,Ci为对等节点i(i=1,2,3)的一个3*3加密矩阵。我们定义三维投影向量vαi(i=1,...,5)。当节点1失效,新节点通过连接到现有5个节点,得到5个方程。为了成功恢复a向量所需要的信号组件,与a相连的矩阵需要是行为3,而和向量b和c相关的矩阵行数应分别为1。依据图9中(4,2)码的例子,如果设置vα3=B1 -1vα1,vα4=B2 -1vα2,vα5=B3 -1vα1,则它可以实现关于b的干扰队列。然而,这个选择也指定向量c的干扰空间。如果Bi、Ci没有合理设置,干扰队列将不会保证c。因此,如何在同一时间实现干扰队列是不明显的。
为了描述同步干扰队列的挑战,将引入一个共同特征向量观点。这个思想包含两部分:1)设计(Ai,Bi,Ci)使得v1是Bi,Ci的共同特征向量但不是Ai的;2)通过统一的特征向量v1将通过现存节点的数据投射到一个线性子空间。我们然后可以通过设置vαi=v1,来实现b和c的同步干扰队列。只要[A1v1,A2v1,A3v1]是可逆的,我们可以确保a的可译码性。
现在的问题是设计一个加密矩阵来保证一个共同的特征向量的存在,同时也满足期望信号的译码。这个困难来源于(6,3,5)码例子中的事实,这些约束条件在所有六个可能的故障配置中都要被满足。矩阵元素的构造(产生于主要的矩阵和高斯矩阵)将会对这进行深入理解。为了理解,考虑一个3*3矩阵A为A=uvt+αI,u和v是三维向量。注意v的零空间维数为2,零向量vt是A的一个特征向量,即Avt=αvt,从而推导出 其中,vi,ui均是3维线性无关的向量,αi,βi,γi的值可以是任意的非零值。为了简单起见,我们考虑简单的情况,vi是正规化的,尽管这不一定要正规化,只要线性无关。我们然后可以看到对于有αiv1+ui、Biv1=βiv1、Civ1=γiv1,其中v1是Bi,Ci的共同特征向量,同时要确保向量Aiv1是线性无关的。因此,对所有i设置vαi=v1,它可以实现同步干扰队列,同时也可以保证期望信号的译码。另一方面,这个构造也保证b和c的精确修复。我们用v2表示b精确修复,它是Ci,Ai的共同特征向量,同时确保[B1v2,B2v2,B3v2]可逆。同样,用v3表示c的精确修复。
对等节点可以通过描述与系统节点的二元关系来修复,这个过程包含两步。第一步是用a′,b′,c′分别重映射非系统节点,系统节点然后可以用基本符号重写,如at=a′tA′1+b′tB′1+c′tC′1、bt=a′tA′2+b′tB′2+c′tC′2、ct=a′tA′3+b′tB′3+c′tC′3,其中新的映射加密矩阵(A′i,B′i,C′i)可以定义成 第二步随着这个重映射,可以使系统节点和对等节点之间的关系二元化。特别地,如果所有A′i,B′i,C′i是基本矩阵并且形成一个相似的编码构造,非系统节点的精确修复将是明显的。事实表明[v1,v2,v3]和[u1,u2,u3]之间的一种特需关系通过(αi,βi,γi)的正确选择,也可以保证二重构造。
其中,混合修复是指:若失效节点是分布式网络存储系统中的系统节点,则通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中的模块相同;若失效节点是分布式网络存储系统中的非系统节点,则通过线性编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性。
其中,混合修复的具体包括:
从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据;
通过线性排列使得进入新节点的干扰量的维数降低;
其中,d=k+1,k为恢复所述文件所需要的最少节点数,n为分布式网络存储系统中的总共节点数。
混合修复在实际中存在介于功能修复和精确修复之间的修复,即系统部分精确修复,该修复要求系统节点精确修复,非系统节点只需功能修复。从文献[Y.Wu.(2009,Aug.).A construction of systematic MDS codes with minimumrepair bandwidth.IEEE Trans.Inf.Theory]中可以得出对于n≥2k的(n,k)MDS码的一个构造,当与k+1个节点通信即可达到最小修复带宽。在图11中描述了该修复的构造计划,在图11中,x∈F2k是一个由2k原始信息符号组成的向量。每个节点存储两个符号xTui和xTvixTvi。向量{ui}不会随着时间变化,但{vi}会随着编码修复过程而变化。我们主张不变性,2n个长度为2k的向量{vi,ui}形成一个(2n,2k)MDS码,也就是{vi,ui}集合中任意2k向量都是满秩的。这当然意味着n个节点形成(n,k)MDS码。我们用F上的任意(2n,2k)系统MDS码来初始化编码。
现在我们考虑一个修复的情况。不失一般性,假设节点n失效,在图11中将通过访问节点1,...,k+1来修复,这个替代节点从{1,...,k+1}每个节点下载αixTui+βixTvi。使用k+1下载符号,代替节点根据和两个方程计算两个符号xTun和xTv′n。v′n可允许与vn不同,我们保持的属性是修复编码仍然是一个(2n,2k)MDS码。这里{αi,βi,ρi}和v′n是我们可以控制的变量,可以通过控制这些变量分配使得修复编码仍然是一个(2n,2k)MDS码。
实施例三
图12示出了本发明实施例三提供的存储数据的装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分,该装置能够实现上述实施例一的方法,该装置是分布式网络存储系统中的节点和索引服务器可以和客户端组成如图1所示的分布式网络存储系统。在本实施例中,该装置包括:数据分块单元121、第一模块分配单元122、编码单元123、第二模块分配单元124。
其中,数据分块单元121,用于将大小为M的文件分成k个模块,每个模块的大小为M/k;
第一模块分配单元122,用于将所述k个模块分发给分布式网络存储系统中的k个不同节点;
编码单元123,用于将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS;
第二模块分配单元124,用于将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点;
其中,n、k均是大于0的整数,且n>k,n为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数。
本实施例提供的存储数据的装置可以使用前述对应的方法实施例(第一实施例)中,具体可参照图2所示方法实施例,在此不再赘述。
实施例四
图13示出了本发明实施例四提供的存储数据的装置的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分,该装置能够实现上述实施例二的方法,该装置是分布式网络存储系统中的节点和索引服务器,可以和客户端组成如图1所示的分布式网络存储系统。在本实施例中,该装置包括:数据分块单元131、第一模块分配单元132、编码单元133、第二模块分配单元134和节点恢复单元135。
其中,数据分块单元131,用于将大小为M的文件分成k个模块,每个模块的大小为M/k;
第一模块分配单元132,用于将所述k个模块分发给分布式网络存储系统中的k个不同节点;
编码单元133,用于将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS;
第二模块分配单元134,用于将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点;
其中,n、k均是大于0的整数,且n>k,n为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数;
节点恢复单元135,用于若分布式网络存储系统中有节点失效且失效节点数不超过n-k,则通过现有不少于k个节点来恢复失效节点中所存储的数据。
其中,所述节点恢复单元135包括:功能修复模块、精确修复模块和混合修复模块中的至少一个;
所述功能修复模块,用于通过线性网络编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性;
所述精确修复模块,用于通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中所存储的模块相同;
所述混合修复模块,用于若失效节点是分布式网络存储系统中的系统节点,则通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中存储的模块相同;若失效节点是分布式网络存储系统中的非系统节点,则通过线性编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性。
其中,所述功能修复模块包括:
第一编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据;
其中,d≤n-1,n为分布式网络存储系统中的总共节点数;
所述精确修复模块包括:
第二编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据,其中,对于MBR码,d=n-1,对于MSR码,d∈[2k-1,n-1],k/n≤1/2,n为分布式网络存储系统中的总共节点数;
第一干扰队列子模块,用于通过线性排列使得进入新节点的干扰量的维数降低;
所述混合修复模块包括:
第三编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据,其中,d=k+1,k为恢复所述文件所需要的最少节点数;
第二干扰队列子模块,用于通过线性排列使得进入新节点的干扰量的维数降低。
本实施例提供的存储数据的装置可以使用前述对应的方法实施例(第二实施例)中,具体可参照图3所示方法实施例,在此不再赘述。
在本发明实施例中,将数据均分成k个模块,存储于k个节点中,再将所述k个模块通过线性编码(最大距离可分离码MDS),生成n-k个互不相关的编码块(满足n个节点中任意k个模块能恢复出所述文件中的原始数据,),并将所述n-k个编码块分发到各节点上,使得系统能够容忍n-k个节点同时失效而不丢失数据,系统的冗余度保持不变,保证了分布式网络存储系统的可靠性;另外,在节点失效时,修复过程中的三个版本都考虑到,从而降低了修复负载以及节点存储量。功能修复问题本质上是在一个无限图中,从一个信源到一个无限的接受者的组播问题,如我们所表述的,在存储和修复带宽之间有一个折中,并且这两个极点通过MBR和MSR码来实现,修复带宽通过最小割集界限描述。精确修复问题相当于要求信宿覆盖子集的网络编码问题,对于MBR码修复带宽在d=n-1情况下,可以实现给定的割集界限,对于MSR码可在d∈[2k-1,n-1],d≤n-1匹配割集界限。混合修复只是对于n≥2k的(n,k)MDS码的一个构造,当与d=k+1个节点通信即可达到最小修复带宽。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种存储数据的方法,其特征在于,所述方法包括:
将大小为M的文件分成k个模块,每个模块的大小为M/k;
将所述k个模块分发给分布式网络存储系统中的k个不同节点;
将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS;
将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点;
其中,n、k均是大于0的整数,且n>k,n为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数。
2.如权利要求1所述的方法,其特征在于,在将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点的步骤之后,所述方法还包括:
若分布式网络存储系统中有节点失效且失效节点数不超过n-k,则通过现有不少于k个节点来恢复失效节点中所存储的数据。
3.如权利要求2所述的方法,其特征在于,所述通过现有不少于k个节点来恢复失效节点中所存储的数据的方法包括:
功能修复、精确修复和混合修复;
所述功能修复是:通过线性网络编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性;
所述精确修复是:通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中所存储的模块相同;
所述混合修复是:若失效节点是分布式网络存储系统中的系统节点,则通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中存储的模块相同;
若失效节点是分布式网络存储系统中的非系统节点,则通过线性编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性。
4.如权利要求3所述的方法,其特征在于,所述功能修复具体包括:
从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据;
其中,d≤n-1,n为分布式网络存储系统中的总共节点数;
所述精确修复具体包括:
从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据;
通过线性排列使得进入新节点的干扰量的维数降低;
其中,对于最小带宽再生编码MBR,d=n-1,对于最小存储再生编码MSR,d∈[2k-1,n-1],k/n≤1/2,n为分布式网络存储系统中的总共节点数;
所述混合修复具体包括:
从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据;
通过线性排列使得进入新节点的干扰量的维数降低;
其中,d=k+1,k为恢复所述文件所需要的最少节点数,n为分布式网络存储系统中的总共节点数。
5.一种存储数据的装置,其特征在于,所述装置包括:
数据分块单元,用于将大小为M的文件分成k个模块,每个模块的大小为M/k;
第一模块分配单元,用于将所述k个模块分发给分布式网络存储系统中的k个不同节点;
编码单元,用于将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS;
第二模块分配单元,用于将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点;
其中,n、k均是大于0的整数,且n>k,n为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数。
6.如权利要求5所述的存储数据的装置,其特征在于,所述装置还包括:
节点恢复单元,用于若分布式网络存储系统中有节点失效且失效节点数不超过n-k,则通过现有不少于k个节点来恢复失效节点中所存储的数据。
7.如权利要求6所述的存储数据的装置,其特征在于,所述节点恢复单元包括:功能修复模块、精确修复模块和混合修复模块中的至少一个;
所述功能修复模块,用于通过线性网络编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性;
所述精确修复模块,用于通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中所存储的模块相同;
所述混合修复模块,用于若失效节点是分布式网络存储系统中的系统节点,则通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中存储的模块相同;若失效节点是分布式网络存储系统中的非系统节点,则通过线性编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性。
8.如权利要求7所述的存储数据的装置,其特征在于,所述功能修复模块包括:
第一编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据;
其中,d≤n-1,n为分布式网络存储系统中的总共节点数;
所述精确修复模块包括:
第二编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据,其中,对于MBR码,d=n-1,对于MSR码,d∈[2k-1,n-1],k/n≤1/2,n为分布式网络存储系统中的总共节点数;
第一干扰队列子模块,用于通过线性排列使得进入新节点的干扰量的维数降低;
所述混合修复模块包括:
第三编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据,其中,d=k+1,k为恢复所述文件所需要的最少节点数;
第二干扰队列子模块,用于通过线性排列使得进入新节点的干扰量的维数降低。
9.一种分布式网络存储系统,包括客户端,其特征在于,所述系统还包括如权利要求5至8任一项所述的存储数据的装置,所述存储数据的装置与所述客户端连接,所述存储数据的装置是所述分布式网络存储系统中的节点和索引服务器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210011386.7A CN102624866B (zh) | 2012-01-13 | 2012-01-13 | 一种存储数据的方法、装置及分布式网络存储系统 |
PCT/CN2012/071177 WO2013104135A1 (zh) | 2012-01-13 | 2012-02-15 | 一种存储数据的方法、装置及分布式网络存储系统 |
US13/818,360 US9961142B2 (en) | 2012-01-13 | 2012-02-15 | Data storage method, device and distributed network storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210011386.7A CN102624866B (zh) | 2012-01-13 | 2012-01-13 | 一种存储数据的方法、装置及分布式网络存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102624866A CN102624866A (zh) | 2012-08-01 |
CN102624866B true CN102624866B (zh) | 2014-08-20 |
Family
ID=46564549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210011386.7A Expired - Fee Related CN102624866B (zh) | 2012-01-13 | 2012-01-13 | 一种存储数据的方法、装置及分布式网络存储系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9961142B2 (zh) |
CN (1) | CN102624866B (zh) |
WO (1) | WO2013104135A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933386A (zh) * | 2016-04-06 | 2016-09-07 | 中科院成都信息技术股份有限公司 | 一种存储系统构建方法及装置 |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624866B (zh) * | 2012-01-13 | 2014-08-20 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
WO2013191658A1 (en) * | 2012-06-20 | 2013-12-27 | Singapore University Of Technology And Design | System and methods for distributed data storage |
CN102833581B (zh) | 2012-08-27 | 2015-09-16 | 中兴通讯股份有限公司 | 内容管理的方法和系统 |
WO2014059651A1 (zh) * | 2012-10-19 | 2014-04-24 | 北京大学深圳研究生院 | 一种射影自修复码的编码、数据重构及修复方法 |
CN103793291B (zh) * | 2012-11-01 | 2017-04-19 | 华为技术有限公司 | 分布式数据复制方法和装置 |
CN103034814B (zh) * | 2012-12-11 | 2015-10-21 | 浙江大学 | 一种数据存取方法 |
CN103106124B (zh) * | 2012-12-29 | 2015-06-17 | 华中科技大学 | 一种基于纠删码集群存储系统的交叉重构方法 |
WO2014106316A1 (zh) * | 2013-01-04 | 2014-07-10 | 北京大学深圳研究生院 | 一种通用射影自修复码的编码、数据重构和修复方法 |
US8862847B2 (en) | 2013-02-08 | 2014-10-14 | Huawei Technologies Co., Ltd. | Distributed storage method, apparatus, and system for reducing a data loss that may result from a single-point failure |
WO2014131148A1 (zh) * | 2013-02-26 | 2014-09-04 | 北京大学深圳研究生院 | 一种最小存储再生码的编码和存储节点修复方法 |
CN103176865B (zh) * | 2013-03-12 | 2015-05-20 | 华中科技大学 | 一种纠删码存储中负载感知的读优化方法 |
WO2014153716A1 (zh) * | 2013-03-26 | 2014-10-02 | 北京大学深圳研究生院 | 一种最小带宽再生码的编码和存储节点修复方法 |
CN104079369A (zh) * | 2013-03-28 | 2014-10-01 | 株式会社日立制作所 | 服务器、数据缓存方法、使用该服务器的通信系统及方法 |
CN104102646B (zh) * | 2013-04-07 | 2019-01-15 | 腾讯科技(深圳)有限公司 | 数据处理的方法、装置及系统 |
CN104113562A (zh) * | 2013-04-17 | 2014-10-22 | 王磊 | 基于网络编码的分布式数据存储和修复系统及其方法 |
US9166734B2 (en) * | 2013-08-14 | 2015-10-20 | National Cheng Kung University | Method and device for frame aggregation transmission of wireless network system |
CN103533055A (zh) * | 2013-10-16 | 2014-01-22 | 南京大学镇江高新技术研究院 | 一种基于网络编码的低冗余云存储系统及其实现方法 |
WO2015100627A1 (zh) * | 2013-12-31 | 2015-07-09 | 华为技术有限公司 | 一种分布式文件存储系统中的数据处理方法及设备 |
CN103746774B (zh) * | 2014-01-03 | 2017-07-14 | 中国人民解放军国防科学技术大学 | 一种高效数据读取的容错编码方法 |
CN107003933B (zh) * | 2014-05-27 | 2020-12-08 | 北京大学深圳研究生院 | 部分复制码的构建方法、装置及其数据修复的方法 |
WO2016100767A2 (en) * | 2014-12-19 | 2016-06-23 | Aalborg Universitet | Method for file updating and version control for linear erasure coded and network coded storage |
WO2016058289A1 (zh) * | 2015-01-20 | 2016-04-21 | 北京大学深圳研究生院 | 一种能修复多个节点失效的mds纠删码 |
CN106161523B (zh) | 2015-04-02 | 2019-11-22 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和设备 |
CN105095013B (zh) * | 2015-06-04 | 2017-11-21 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
US10241689B1 (en) | 2015-06-23 | 2019-03-26 | Amazon Technologies, Inc. | Surface-based logical storage units in multi-platter disks |
CN105356892B (zh) * | 2015-06-24 | 2018-11-16 | 深圳大学 | 网络编码的方法及系统 |
US10003357B2 (en) * | 2015-08-28 | 2018-06-19 | Qualcomm Incorporated | Systems and methods for verification of code resiliency for data storage |
US20170063399A1 (en) * | 2015-08-28 | 2017-03-02 | Qualcomm Incorporated | Systems and methods for repair redundancy control for large erasure coded data storage |
WO2017041233A1 (zh) * | 2015-09-08 | 2017-03-16 | 广东超算数据安全技术有限公司 | 一种功能修复再生码的编码和存储节点修复方法 |
WO2017061891A1 (en) * | 2015-10-09 | 2017-04-13 | Huawei Technologies Co., Ltd. | Coding for distributed storage system |
CN105426493B (zh) * | 2015-11-24 | 2019-11-19 | 北京中电普华信息技术有限公司 | 一种应用于分布式存储系统的数据处理系统及方法 |
WO2017107095A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Technologies for adaptive erasure code |
US10219118B2 (en) * | 2015-12-29 | 2019-02-26 | Koninklijke Kpn N.V. | Method and transmission node for providing data packets to a plurality of receivers using network coding |
CN105681425B (zh) * | 2016-01-22 | 2019-01-22 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 基于分布式存储系统的多节点修复方法及其系统 |
CN105721611B (zh) * | 2016-04-15 | 2019-03-01 | 西南交通大学 | 一种由极大距离可分存储码生成最小存储再生码的方法 |
CN107463462B (zh) * | 2016-06-06 | 2020-10-13 | 华中科技大学 | 数据修复方法及数据修复装置 |
CN106612172B (zh) * | 2016-07-15 | 2019-09-17 | 李福帮 | 云存储中一种可验证还原数据真实性的数据篡改恢复算法 |
CN106383669B (zh) * | 2016-09-19 | 2019-04-16 | 渤海大学 | 一种基于(n,k,m)编码的分布式存储方法及系统 |
CN106790408B (zh) * | 2016-11-29 | 2019-08-09 | 中国空间技术研究院 | 一种用于分布式存储系统节点修复的编码方法 |
US10904334B1 (en) * | 2017-01-17 | 2021-01-26 | Spatial Digital Systems, Inc. | Cloud data storage via cascaded K-muxing |
CN107086870B (zh) * | 2017-03-16 | 2019-10-22 | 东莞理工学院 | 修复多节点失效的mds阵列码编码以及解码方法 |
CN106911793B (zh) * | 2017-03-17 | 2020-06-16 | 上海交通大学 | I/o优化的分布式存储数据修复方法 |
WO2018209541A1 (zh) * | 2017-05-16 | 2018-11-22 | 北京大学深圳研究生院 | 基于t-设计的部分重复码的编码结构以及构造方法 |
CN107241414B (zh) * | 2017-06-09 | 2019-10-22 | 深圳大学 | 一种基于zigzag解码的私人信息检索方法及系统 |
WO2019008748A1 (ja) * | 2017-07-07 | 2019-01-10 | 株式会社Asj | データ処理システムおよびこれを用いた分散データシステム |
CN107395207B (zh) * | 2017-07-12 | 2019-11-22 | 紫晟科技(深圳)有限公司 | 多容错性的mds阵列码编码以及修复方法 |
CN109582213B (zh) * | 2017-09-29 | 2020-10-30 | 杭州海康威视系统技术有限公司 | 数据重构方法及装置、数据存储系统 |
CN108156040A (zh) * | 2018-01-30 | 2018-06-12 | 北京交通大学 | 一种分布式云存储系统中的中央控制节点 |
CN108512553B (zh) * | 2018-03-09 | 2022-09-27 | 哈尔滨工业大学深圳研究生院 | 一种降低带宽消耗的截短再生码构造方法 |
CN108712488B (zh) * | 2018-05-11 | 2021-09-10 | 北京奇虎科技有限公司 | 一种基于区块链的数据处理方法、装置、区块链系统 |
CN109062724B (zh) * | 2018-07-21 | 2019-04-05 | 湖北大学 | 一种纠删码转换方法及终端 |
WO2020047707A1 (zh) * | 2018-09-03 | 2020-03-12 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据编码、解码及修复方法 |
US11061772B2 (en) * | 2018-12-14 | 2021-07-13 | Samsung Electronics Co., Ltd. | FPGA acceleration system for MSR codes |
CN111382007B (zh) * | 2018-12-28 | 2024-04-30 | 深圳市茁壮网络股份有限公司 | 一种数据恢复方法、装置及电子设备 |
CN111512332B (zh) * | 2019-02-20 | 2022-12-09 | 北京大学深圳研究生院 | 一种联盟链共识下满足分区容忍性的拓扑构造方法及系统 |
CN110032470B (zh) * | 2019-03-18 | 2023-02-28 | 长安大学 | 一种基于哈夫曼树的异构部分重复码的构造方法 |
CN110427156B (zh) * | 2019-07-16 | 2020-09-08 | 华中科技大学 | 一种基于分片的mbr的并行读方法 |
US11308040B2 (en) | 2019-10-31 | 2022-04-19 | Seagate Technology Llc | Distributed secure edge storage network utilizing cost function to allocate heterogeneous storage |
US11308041B2 (en) | 2019-10-31 | 2022-04-19 | Seagate Technology Llc | Distributed secure edge storage network utilizing redundant heterogeneous storage |
CN111030701B (zh) * | 2019-11-26 | 2023-03-24 | 长安大学 | 一种基于Harary图的部分重复码的构造方法 |
EP3879781B1 (en) | 2020-03-13 | 2022-07-27 | Deutsche Telekom AG | Methods and systems for network service management in a distributed architecture |
EP3879782A1 (en) | 2020-03-13 | 2021-09-15 | Deutsche Telekom AG | Methods and systems for message relay in a distributed architecture |
CN111585582B (zh) * | 2020-05-14 | 2023-04-07 | 成都信息工程大学 | 一种基于阵列运算且码距自由确定的编码方法 |
CN113505021B (zh) * | 2021-05-26 | 2023-07-18 | 南京大学 | 基于多主节点主从分布式架构的容错方法及系统 |
CN114615014B (zh) * | 2022-01-29 | 2023-03-17 | 北京航空航天大学 | 面向多层分布式网络的数据传输方法及系统 |
CN116260577B (zh) * | 2022-12-19 | 2023-12-08 | 佛山赛思禅科技有限公司 | 基于再生码的门限秘密共享方法及系统 |
CN116860186B (zh) * | 2023-09-05 | 2023-11-10 | 上海凯翔信息科技有限公司 | 一种分布式集群的数据清理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859115A (zh) * | 2006-01-24 | 2006-11-08 | 华为技术有限公司 | 一种网络数据的分布式存储下载系统、设备及方法 |
CN101316274A (zh) * | 2008-05-12 | 2008-12-03 | 华中科技大学 | 一种适用于广域网的数据容灾系统 |
WO2010033644A1 (en) * | 2008-09-16 | 2010-03-25 | File System Labs Llc | Matrix-based error correction and erasure code methods and apparatus and applications thereof |
CN101834898A (zh) * | 2010-04-29 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种网络分布式编码存储方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8128457B2 (en) * | 2005-04-22 | 2012-03-06 | Nike, Inc. | Athletic bra |
US8631269B2 (en) * | 2010-05-21 | 2014-01-14 | Indian Institute Of Science | Methods and system for replacing a failed node in a distributed storage network |
EP2570925A1 (en) * | 2011-09-19 | 2013-03-20 | Thomson Licensing | Method of exact repair of pairs of failed storage nodes in a distributed data storage system and corresponding device |
CN102624866B (zh) * | 2012-01-13 | 2014-08-20 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
US20150127974A1 (en) * | 2012-05-04 | 2015-05-07 | Thomson Licensing | Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices |
WO2013191658A1 (en) * | 2012-06-20 | 2013-12-27 | Singapore University Of Technology And Design | System and methods for distributed data storage |
WO2014153716A1 (zh) * | 2013-03-26 | 2014-10-02 | 北京大学深圳研究生院 | 一种最小带宽再生码的编码和存储节点修复方法 |
US20150095747A1 (en) * | 2013-09-30 | 2015-04-02 | Itzhak Tamo | Method for data recovery |
US9430443B1 (en) * | 2015-05-08 | 2016-08-30 | Norwegian University Of Science And Technology | Systematic coding technique |
US20170179979A1 (en) * | 2015-12-18 | 2017-06-22 | Netapp, Inc. | Systems and Methods for Minimum Storage Regeneration Erasure Code Construction Using r-Ary Trees |
-
2012
- 2012-01-13 CN CN201210011386.7A patent/CN102624866B/zh not_active Expired - Fee Related
- 2012-02-15 US US13/818,360 patent/US9961142B2/en active Active
- 2012-02-15 WO PCT/CN2012/071177 patent/WO2013104135A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859115A (zh) * | 2006-01-24 | 2006-11-08 | 华为技术有限公司 | 一种网络数据的分布式存储下载系统、设备及方法 |
CN101316274A (zh) * | 2008-05-12 | 2008-12-03 | 华中科技大学 | 一种适用于广域网的数据容灾系统 |
WO2010033644A1 (en) * | 2008-09-16 | 2010-03-25 | File System Labs Llc | Matrix-based error correction and erasure code methods and apparatus and applications thereof |
CN101834898A (zh) * | 2010-04-29 | 2010-09-15 | 中科院成都信息技术有限公司 | 一种网络分布式编码存储方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933386A (zh) * | 2016-04-06 | 2016-09-07 | 中科院成都信息技术股份有限公司 | 一种存储系统构建方法及装置 |
CN105933386B (zh) * | 2016-04-06 | 2018-11-27 | 中科院成都信息技术股份有限公司 | 一种存储系统构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20140317222A1 (en) | 2014-10-23 |
WO2013104135A1 (zh) | 2013-07-18 |
CN102624866A (zh) | 2012-08-01 |
US9961142B2 (en) | 2018-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102624866B (zh) | 一种存储数据的方法、装置及分布式网络存储系统 | |
El Rouayheb et al. | Fractional repetition codes for repair in distributed storage systems | |
Papailiopoulos et al. | Locally repairable codes | |
Papailiopoulos et al. | Repair optimal erasure codes through Hadamard designs | |
CN107656832B (zh) | 一种低数据重建开销的纠删码方法 | |
Cadambe et al. | Optimal repair of MDS codes in distributed storage via subspace interference alignment | |
CN104364765A (zh) | 分布式数据存储系统中的数据存储和维护的方法以及对应设备 | |
Li | On the confidentiality of information dispersal algorithms and their erasure codes | |
CN106484559A (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
CN104915609B (zh) | 一种基于Lagrange插值法和多云的数据隐藏方法 | |
Su | Optimal pliable fractional repetition codes that are locally recoverable: A bipartite graph approach | |
US9846596B1 (en) | System and method for cloud control operations plane based on proactive security algorithms | |
Ivanichkina et al. | Mathematical methods and models of improving data storage reliability including those based on finite field theory | |
CN104782101B (zh) | 用于分布式网络存储的自修复码的编码、重构和恢复方法 | |
Han et al. | Efficient exact regenerating codes for byzantine fault tolerance in distributed networked storage | |
Olmez et al. | Constructions of fractional repetition codes from combinatorial designs | |
Zhang et al. | Aggrecode: Constructing route intersection for data reconstruction in erasure coded storage | |
Çalkavur et al. | Multisecret-sharing schemes and bounded distance decoding of linear codes | |
Bao et al. | Reducing network cost of data repair in erasure-coded cross-datacenter storage | |
Wei et al. | expanCodes: Tailored LDPC codes for big data storage | |
Kruglik et al. | An information-theoretic approach for reliable distributed storage systems | |
Sipos et al. | On the effectiveness of recoding-based repair in network coded distributed storage | |
Rawat et al. | On codes with availability for distributed storage | |
Yuan et al. | A randomly expandable method for data layout of Raid Storage Systems | |
JP6396849B2 (ja) | 生成行列構成装置及び生成行列構成方法 |
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: 20140820 Termination date: 20150113 |
|
EXPY | Termination of patent right or utility model |