CN103761171A - 一种针对二进制编码冗余存储系统的低带宽数据重构方法 - Google Patents

一种针对二进制编码冗余存储系统的低带宽数据重构方法 Download PDF

Info

Publication number
CN103761171A
CN103761171A CN201410048536.0A CN201410048536A CN103761171A CN 103761171 A CN103761171 A CN 103761171A CN 201410048536 A CN201410048536 A CN 201410048536A CN 103761171 A CN103761171 A CN 103761171A
Authority
CN
China
Prior art keywords
data
low bandwidth
matrix
check matrix
storage system
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
Application number
CN201410048536.0A
Other languages
English (en)
Other versions
CN103761171B (zh
Inventor
蒋海波
陈建中
李娜
周星梅
王晓京
蒋小强
陈怡�
李�范
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Xinghe Shandong Intelligent Technology Co ltd
Original Assignee
Chengdu Institute of Biology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Institute of Biology of CAS filed Critical Chengdu Institute of Biology of CAS
Priority to CN201410048536.0A priority Critical patent/CN103761171B/zh
Publication of CN103761171A publication Critical patent/CN103761171A/zh
Application granted granted Critical
Publication of CN103761171B publication Critical patent/CN103761171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供一种针对二进制编码冗余存储系统的低带宽数据重构方法,包括如下步骤:(1)建立丢失的数据块与数据校验矩阵行向量之间的对应关系,根据存储系统中未丢失数据块所对应的数据校验矩阵的列向量所构成的子矩阵确定低带宽校验矩阵;(2)判断低带宽校验矩阵是否多于一个;(3)若多于一个,则判断利用各低带宽校验矩阵对丢失数据块进行恢复给各存储节点带来的I/O压力是否相同;(4)若不相同,则选择I/O压力影响最小的低带宽校验矩阵对丢失的数据块进行数据重构。相对于现有技术,通过确定低带宽校验矩阵查找I/O读取压力最小的存储节点进行丢失数据块的恢复,可减少数据块重构时对系统存储节点进行数据读取的网络带宽消耗。

Description

一种针对二进制编码冗余存储系统的低带宽数据重构方法
技术领域
本发明涉及电子信息数据的编码存储技术领域,特别涉及数据在分布式基础存储架构上的数据容灾与丢失数据低带宽重构技术。
背景技术
随着有线网络技术与无线网络技术的飞速发展,利用网络构建分布式存储系统已成为趋势。然而,在逻辑上,网络覆盖范围宽广,任何节点因一些无法预测的偶发性变故都可能导致分布式系统上存储的某些重要数据永久性丢失或损毁,如包括人为操作失误、设备元器件故障、地震、水灾、火灾、台风、乃至恶意窃取等,由此可能造成难以估量的损失;特别是用于野外监测的传感器网络节点,由于野外环境变化较大,有些极端环境较为恶劣,数据采集节点会出现频繁损毁的情况,因而,如何实现已采集数据的完好保存,急需新的存储技术,以满足存储数据的高可靠性存储。
当前数据存储主要是基于“数据备份——多机备份与热切换”这种数据冗余机制,其技术路线的核心是文件复制技术,例如异地镜像备份、设置不同地点的备份服务器等都是常用的方法,如谷歌存储系统的重要文件均有3个甚至多个副本。虽然文件复制技术具有存储操作简单、读取操作快速的优点,但文件复制技术路线的数据冗余高,用于“灾难备份”存在着诸多弊端,若主要采用文件复制技术来防范,显然在网络上将有大量的备份服务器在多数时间里至少要闲置一倍乃至多倍的存储空间,这将造成惊人的资源浪费,网络规模越大这种浪费越巨大。
当前,基于二进制编码冗余存储策略已逐渐成为新型信息系统基础存储架构的关键技术。该种技术在数据中心存储系统、野外传感器网络等方面具有广阔的应用价值;对系统工作环境变化大、较为恶劣,数据节点存储容量有限、数据容易丢失的情况具有很好的应对作用。
如越来越多的系统利用纠删码冗余策略存储系统的关键数据。当系统采用纠删码时,大小为M的原文件f被分割为s个大小相同的初始分块,每个分块大小为M/s;由s个初始分块计算得到大小相同的r个编码块,s个初始分块和r个编码块组成了待存储的数据。由初始分块得到校验块的方法采用的是纠删码编码技术,该种技术通常称这种纠删码为“(s+r,s)纠删码”。对于纠删码冗余模式,所有的s+r个数据块最终被存储在s+r个不同的存储节点中,只要故障节点数不多于r个,那么未故障节点中的数据就能恢复出原文件,因此对于参数为s和r的纠删码冗余,系统允许某一时刻发生故障的节点的个数最多为r。如果要修复故障节点中的数据,那么纠删码冗余就比复制冗余复杂多了。以编码技术采用RS码为例,当一个数据块丢失时,系统需要将任意的s个未丢失数据块传输到新节点中,先译码得到原文件,再编码产生丢失的数据块。
由于在恢复丢失的数据块时,需要将任意的s个未丢失数据块传输到新节点中进行译码,当数据量较大时,利用传统的数据重构方法就会给存储系统带来巨大的网络带宽压力,降低丢失数据块恢复的时间。
发明内容
针对现有技术存在的问题,本发明的主要目的在于提供一种降低对丢失数据块进行恢复时给存储系统带来的网络带宽压力的针对二进制编码冗余存储系统的低带宽数据重构方法。
为实现上述目的,本发明提供一种针对二进制编码冗余存储系统的低带宽数据重构方法,该二进制编码冗余存储系统包含一编码矩阵和一数据校验矩阵,该数据校验矩阵包含行向量和列向量,当二进制编码冗余存储系统的存储节点发生损毁导致数据块丢失,对丢失的数据块进行恢复,该低带宽数据重构方法包括如下步骤(1)至步骤(4):
(1)建立该丢失的数据块与该数据校验矩阵行向量之间的对应关系,并根据二进制编码冗余存储系统中未丢失数据块所对应的数据校验矩阵的列向量所构成的子矩阵确定低带宽校验矩阵;
(2)判断低带宽校验矩阵是否多于一个;
(3)若低带宽校验矩阵多于一个,则判断利用各个低带宽校验矩阵对丢失数据块进行恢复所需要的未丢失数据块数量是否相同,即判断利用不同低带宽校验矩阵对丢失数据块进行恢复给二进制编码冗余存储系统各存储节点带来的I/O压力是否相同;
(4)若利用不同低带宽校验矩阵对丢失数据块进行恢复给二进制编码冗余存储系统各存储节点带来的I/O压力不相同,则选择所需重构数据块(未丢失的数据块)最少的,即对存储节点I/O压力影响最小的低带宽校验矩阵对丢失的数据块进行数据重构。
进一步地,当该步骤(2)判断低带宽校验矩阵只有一个,则利用该低带宽校验矩阵对丢失的数据块进行数据重构。
更进一步地,当该步骤(3)判断利用各个低带宽校验矩阵对丢失数据块进行恢复重构时,所需要的重构数据块(未丢失的数据块)的数据量相同,即对二进制编码冗余存储系统各存储节点的I/O压力影响相同,则任意选择一个低带宽校验矩阵对丢失的数据块进行数据重构。
更进一步地,利用低带宽校验矩阵和部分未丢失数据块对丢失的数据块进行数据重构。
更进一步地,该数据校验矩阵为H(k+r)m·rm,即该数据校验矩阵包含(k+r)·m个行向量和r·m个列向量,该损毁节点数为r′(1≤r′≤r),即系统丢失的数据块为r′,该丢失的数据块r′包含的微数据块为r′·m,该步骤(1)包含如下步骤(11)至步骤(12):
(11)从数据校验矩阵H(k+r)m·rm中选择r′·m个列向量,使r′·m个列向量所构成的矩阵与丢失的微数据块所对应的行向量组成的矩阵为(r′·m)×(r′·m)的满秩矩阵;
(12)该(r′·m)×(r′·m)的满秩矩阵H(r′m)·(r′m)为确定的低带宽校验矩阵。
更进一步地,该步骤(11)包含如下步骤(111)至步骤(115):
(111)计算数据校验矩阵H(k+r)m·rm的每一个列向量中元素“1”的个数;
(112)从数据校验矩阵H(k+r)m·rm中抽取出丢失数据块所对应的行向量,由抽取出的丢失数据块构成二进制矩阵H(r′m)·(rm),由数据校验矩阵H(k+r)m·rm中剩余的行向量构成二进制矩阵H(k+r-r′)m·rm,二进制矩阵H(k+r-r′)m·rm的最下端r·m个向量构成了一个单位矩阵,二进制矩阵H(k+r-r′)m·rm上部的k-r′个向量构成二进制矩阵H(k-r′)m·rm
(113)依次确定该上部的k-r′个向量构成的二进制矩阵H(k-r′)m·rm行向量中元素“0”的个数,当该行向量中“0”的个数大于或等于r′·m时,记录每个“0”元素所在的列向量;
(114)在该记录的“0”元素所在的列向量中进一步寻找是否存在“0”元素个数大于或等于r′·m的行向量,若无,则记录步骤(113)所确定的列向量;若有,则记录新的列向量;
(115)根据步骤(114)记录的每一组列向量中“1”的个数,确定出“1”元素和为最小的r′·m个列向量,并确定与该“1”元素和最小的r′·m个列向量对应的H(r′m)·(r′m)的秩为满秩,构成(r′·m)×(r′·m)的满秩矩阵H(r′m)·(r′m)
更进一步地,该步骤“利用低带宽校验矩阵和部分未丢失数据块对丢失的数据块进行数据重构”包含如下步骤:利用低带宽校验矩阵H(r′m)·(r′m)确定需要参与数据重构的微数据块;构成一个包含有r′·m个丢失的微数据块的r′·m个方程,利用该r′·m个方程构成的方程组求解出丢失的r′·m个数据块。
更进一步地,若该二进制矩阵H(k-r′)m·rm无行向量中“0”元素的个数皆小于r′·m时,则无法获得低带宽校验矩阵,即此时,系统在恢复丢失数据块时,无法获得降低系统存储节点I/O带宽的低带宽数据重构方法。
相对于现有技术,首先,本发明通过确定所需要重构数据量最小的低带宽校验矩阵对丢失数据块进行恢复,可减少数据块重构时对系统存储节点进行数据读取的网络带宽消耗,降低存储系统内部网络维护带宽的压力,即减少系统内部网络之间的数据传输量,降低系统对存储器件的读取次数;其次,本发明可以根据数据存储节点的运行情况,及网络带宽,I/O情况确定最优的数据重构策略,以实现系统调用最少的数据块,实现最小维护带宽的丢失数据块重构方法。在海量数据存储系统、传感系统网络等方面具有较好的应用价值。
附图说明
图1是现有的二进制编码冗余存储系统数据编码存储的示意图
图2是本发明针对二进制编码冗余存储系统的低带宽数据重构方法系统流程图
图3是(6,3,4)范德蒙系统码校验矩阵与数据分块之间的对应关系图
具体实施方式
下面结合附图,详细说明本发明的具体实施方式。
如图1所示,为现有的将图形文件利用二进制编码冗余存储系统进行编码存储的示意图。将待存储的图形文件分为d1,1,d1,1,d1,3…个微数据块,对应D1,D2…个数据块,也可以称为宏数据块。每个宏数据块对应一个存储节点。宏数据块为微数据块的集合,微数据块是存储系统中最小的分块单元,针对存储文件而言,存储文件大小不同,则微数据块的大小也各异。每个宏数据块由m个微数据块构成,而每个宏数据块以一个整体存储在不同的存储节点中。在编码过程和译码过程中是以微数据块为单位进行的。在存储时,则以宏数据块为单位进行存储。
若存储节点1损毁时,那么数据块D1丢失,即对应的微数据块集合d1,1,d1,1,d1,3丢失,这时就需要对丢失数据块进行译码重构。其中,图1中最左侧为编码矩阵,通过现有的技术可将编码矩阵转换成数据校验矩阵,当文件编码存储完毕后,便确定了用于数据恢复的数据校验矩阵。编码矩阵用于对原始文件进行冗余编码,产生校验数据块(冗余数据块);当系统出现存储节点损毁,数据块丢失时,数据校验矩阵用于重构出丢失的数据块。
如图2所示,是本发明针对二进制编码冗余存储系统的低带宽数据重构方法系统流程图。该低带宽数据重构方法包括如下步骤:
S1、二进制编码冗余存储系统的存储节点发生损毁导致数据块丢失;
S2、确定存储系统的数据校验矩阵,根据数据存储的编码原理,当文件编码存储完毕后,便确定了用于数据恢复的数据校验矩阵,该数据校验矩阵包含行向量和列向量;
S3、判断是否可以确定低带宽校验矩阵,利用文件存储最初所用的编码矩阵所对应的数据校验矩阵与数据块之间的关系确定重构丢失数据块的全部低带宽校验矩阵。低带宽校验矩阵的确定方法为:建立该丢失的数据块与该数据校验矩阵行向量之间的对应关系,并根据二进制编码冗余存储系统中未丢失数据块所对应的数据校验矩阵的列向量所构成的子矩阵确定低带宽校验矩阵。若不能确定,进入步骤S4,若能确定,进入步骤S5;
S4、按照传统的方法进行数据重构;
S5、判断是否有多于一个低带宽校验矩阵,若否,进入步骤S6,若是,进入步骤S7;
S6、利用该低带宽校验矩阵和与该低带宽校验矩阵相对应的完好存储节点读取相应的数据块对丢失的数据块进行数据重构;
S7、判断判断利用各个低带宽校验矩阵对丢失数据块进行恢复所需要的未丢失数据块数量是否相同,即判断利用不同低带宽校验矩阵对丢失数据块进行恢复给二进制编码冗余存储系统各完好的存储节点带来的I/O压力是否相同,若是,进入步骤S8,若否,进入步骤S9;
S8、任意选择一个低带宽校验矩阵和与该低带宽校验矩阵相对应的完好存储节点读取相应的数据块对丢失的数据块进行数据重构;
S9、计算各个低带宽校验矩阵所对应的存储节点的I/O读取压力之和;
S10、选择整体I/O读取压力之和最小的存储节点组对应的低带宽校验矩阵作为最终的重构矩阵,利用该矩阵与其相对应的完好存储节点读取相应的数据块对丢失的数据块进行重构。
上述方法的原理为:从校验矩阵中根据丢失数据块的情况选择低带宽校验矩阵,低带宽校验矩阵确定了在重构丢失数据块的过程中所需要的未丢失数据块数量,进而在系统恢复过程中,因低带宽校验矩阵所需要的数据块少于原来方法所需要的数据块,因而,在数据恢复过程中会降低系统各个存储节点的I/O压力。
设该数据校验矩阵为H(k+r)m·rm,即该数据校验矩阵包含(k+r)·m个行向量和r·m个列向量,该损毁节点数为r′(1≤r′≤r),即系统丢失的数据块为r′,该丢失的数据块r′包含的微数据块为r′·m,一般地,损毁节点个数不能超过r个,即丢失的数据块个数不能超过r个,对应丢失的微数据块个数不能超过r×m个。由于当1≤r′<r时,从数据校验矩阵H(k+r)m·rm中选择r′·m个列向量构成恢复丢失数据块的低带宽校验矩阵具有多种选择方法。因而,研究是否存在更低维护带宽的方法,即如何选择出需要最少重构带宽的低带宽校验矩阵是本发明的创新点之一。上述步骤S3低带宽校验矩阵的确定方法包括如下步骤S31至步骤S32:
S31、从数据校验矩阵H(k+r)m·rm中选择r′·m个列向量,使r′·m个列向量所构成的矩阵与丢失的微数据块所对应的行向量组成的矩阵为(r′·m)×(r′·m)的满秩矩阵;
S32、该(r′·m)×(r′·m)的满秩矩阵H(r′m)·(r′m)为确定的低带宽校验矩阵。
该步骤S31包含如下步骤S311至步骤S315:
S311、计算数据校验矩阵H(k+r)m·rm的每一个列向量中元素“1”的个数;
S312、从数据校验矩阵H(k+r)m·rm中抽取出丢失数据块所对应的行向量,由抽取出的丢失数据块构成二进制矩阵H(r′m)·(rm),由数据校验矩阵H(k+r)m·rm中剩余的行向量构成二进制矩阵H(k+r-r′)m·rm,二进制矩阵H(k+r-r′)m·rm的最下端r·m个向量构成了一个单位矩阵,二进制矩阵H(k+r-r′)m·rm上部的k-r′个向量构成二进制矩阵H(k-r′)m·rm。由于该单位矩阵每一个列向量仅对应一个数据块,因此,该单位矩阵将不影响参与重构过程的数据块的个数。因此,本发明的使用范围可限于二进制矩阵H(k+r-r′)m·rm上部,即由k-r′个向量构建的二进制矩阵H(k-r′)m·rm
S313、依次确定该上部的k-r′个向量构成的二进制矩阵H(k-r′)m·rm行向量中元素“0”的个数,当该行向量中“0”的个数大于或等于r′·m时,记录每个“0”元素所在的列向量;
S314、在该记录的“0”元素所在的列向量中进一步寻找是否存在“0”元素个数大于或等于r′·m的行向量,若无,则记录步骤S313所确定的列向量;若有,则记录新的列向量,如此循环,并记录下每次循环所确定的列向量。
S315、根据步骤S314记录的每一组列向量中“1”的个数,确定出“1”元素和为最小的r′·m个列向量,并确定与该“1”元素和最小的r′·m个列向量对应的H(r′m)·(r′m)的秩为满秩,构成(r′·m)×(r′·m)的满秩矩阵H(r′m)·(r′m)
在确定低带宽校验矩阵后,利用低带宽校验矩阵和未丢失数据块对丢失的数据块进行数据重构,即利用低带宽校验矩阵H(r′m)·(r′m)确定需要参与数据重构的微数据块;构成一个包含有r′·m个丢失的微数据块的r′·m个方程,利用该r′·m个方程构成的方程组求解出丢失的r′·m个数据块。
另外,若该二进制矩阵H(k-r′)m·rm无行向量中“0”元素的个数皆小于r′·m时,则无法获得低带宽校验矩阵,只能按照传统的方法进行数据重构。
实施例一
当存储系统内部出现节点损毁时,对于一个由传统(n,k)MDS纠删码构造的存储系统,当系统中有≤n-k个节点出现损毁时,系统都需要调用k个节点上的数据对其进行恢复,而通常构造的纠删码都有n-k≤k。
若在二进制上构建的(6,3)范德蒙系统纠删码的校验矩阵如图3所示,由于β.H(k+r)·r=0,其中β表示存入存储系统的原始文件分块和校验数据分块,用[D1,D2,D3,D4,L,D10,L,D(k+r)·r]表示。若存储系统中第一个存储节点出现损毁,即存储文件分块[D1,D2,D3]出现丢失,则β=[X1,X2,X3,D4,L,D10,L,D18],其中[X1,X2,X3]对应的为已经丢失的数据块,而[D10,L,D18]为校验数据块。显然,不论选择数据校验矩阵——H矩阵中的任何三列向量作为恢复丢失数据块的依据,都会有三个校验数据块参与重构。因而,只能通过观察H矩阵的子矩阵[l4,l5,L,l9]T中“0”“1”的分布情况来确定低带宽的重构方法。
由H矩阵可知,若要重构出丢失的三个数据块,则需要从H矩阵的9个列向量中选择三列向量,并使得三列向量构成的矩阵的秩为3。近一步地,为获得最少重构带宽重构方法,且在译码过程中耗用最少的计算量,则有如下过程(如图3所示):
当重构过程不需要数据块D4参与运算,即H矩阵的列向量中对应第四个元素为“0”的列向量有:C2,C3,C5,C9
其中列向量C2中有6个位上的元素为“1”,则可表示为C2(6);列向量C3中有4个位上的元素为“1”,则可表示为C3(4);列向量C5中有7个位上的元素为“1”,则可表示为C5(7);列向量C9中有7个位上的元素为“1”,则可表示为C9(7);
当重构过程不需要数据块D5参与运算时,即H矩阵的列向量中对应第五位元素为“0”的列向量有:C1,C3,C7,则列向量可分别表示为:C1(5),C3(4),C7(6);同样的,当重构过程不需要数据块D6参与运算时,即H矩阵的列向量中对应第六个元素为“0”的列向量有:C1,C2,C6,C8,C9,则列向量可分别表示为:C1(5),C2(6),C6(8),C8(5),C9(7);当重构过程不需要数据块D7参与运算时,即H矩阵的列向量中对应第七位元素为“0”的列向量有:C3,C4,C5,C6,C8,则列向量可分别表示为:C3(4),C4(8),C5(7),C7(6),C8(5);当重构过程不需要数据块D8参与运算时,即H矩阵的列向量中对应第八位元素为“0”的列向量有:C1,C5,C8,则列向量可分别表示为:C1(5),C5(7),C8(5);当重构过程不需要数据块D9参与运算时,即H矩阵的列向量中对应第九位元素为“0”的列向量有:C2,C3,则列向量可分别表示为:C2(6),C3(4)。由于该行向量中只有两个元素为零,即说明,当对宏数据块进行重构时,必有数据块D9参与恢复重构。
对于在二进制域上的(6,3)范德蒙系统码而言,可以很容易确定出可节约一个微数据块的低带宽重构算法。但却无可节约两个微数据块的重构算法,因为校验矩阵中并无在不同数据块上同时标记的相同三个列向量。即可以从搜索结果中任选一个恢复向量组,用来重构丢失的数据块。
对于本低带宽重构过程,由于原方法在重构一个宏数据块时需要调用3存储节点上的宏数据块,即9个微数据块,而利用本发明,则需要8个微数据块,即对于整个系统而言,则可以节约11.1%的重构带宽,这对于内部网络受限的存储系统而言,具有一定的实用意义。
实施例二
为了进一步说明本发明的有效性,本发明针对STAR码的译码过程按照本发明提出的方法进行低带宽优化,本实施例中STAR码的信息规模m=5,则校验列规模为3。根据STAR码的构建过程可得,当STAR码的信息规模m=5时,其生成矩阵可以表示为: G = I P , 则P可表示为:
P = 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 0
则由线性分组码的性质可以得到该编码的数据校验矩阵H,若H表示为: H = Q I , 则对Q进行标记,可得:
Figure BDA0000465138970000131
利用本发明提出的低带宽数据重构方法,可以得到系统在不同损毁情况下的低带宽数据重构方法。如当系统中第一个存储节点损毁时,即微数据块c0,0,c1,0,c2,0,c3,0丢失时,即其可用Q中的列向量C3,C4,C5,C6组成的子矩阵进行对丢失的数据块进行重构,在重构过程中c1,1,c0,2,c1,2,c0,3将不参加重构运算,即对于原重构方法而言,利用本方法重构第一个存储节点上的数据块时,系统可节约20%的网络数据传输带宽。如表1,为不同存储节点损毁时利用本发明的低带宽数据重构方法的达到的效果:
表1STAR码的低带宽重构算法性能
Figure BDA0000465138970000132
Figure BDA0000465138970000141
当系统中同时出现两个节点损毁时,每个文件将会有8个对应的数据块丢失,由数据校验矩阵可知,若要重构出每个文件丢失的8个数据块,需要数据校验矩阵中选择出8个列向量,且由这8个列向量构造的矩阵的秩为8,则可重构出丢失的数据块。由数据校验矩阵可知,对于系统中任意两个节点损毁,都可以选择出一个可以节约1个微数据块的重构方法。即在恢复两个存储节点中的数据块时,最少需要19个数据块,可节约一个数据块。
以上介绍了一种针对二进制编码冗余存储系统的低带宽数据重构方法。本发明根据数据校验矩阵中“0,1”分布特点,利用优化搜索方法,并根据各个存储节点的I/O读取压力,寻找最优低带宽校验矩阵并用于丢失数据块的重构过程,该方法可以减少系统在重构数据块时的重构带宽,减轻存储系统内部网络的带宽压力。本发明具有通用性,可以应用到所有利用二进制矩阵构造的编码存储系统中。本发明并不限定于以上实施例,任何未脱离本发明技术方案,即仅仅对其进行本领域普通技术人员所知悉的改进或变更,均属于本发明的保护范围之内。

Claims (8)

1.一种针对二进制编码冗余存储系统的低带宽数据重构方法,所述二进制编码冗余存储系统包含一编码矩阵和一数据校验矩阵,所述数据校验矩阵包含行向量和列向量,其特征在于,当二进制编码冗余存储系统的存储节点发生损毁导致数据块丢失,对丢失的数据块进行恢复,所述低带宽数据重构方法包括如下步骤:
(1)建立所述丢失的数据块与所述数据校验矩阵行向量之间的对应关系,并根据二进制编码冗余存储系统中未丢失数据块所对应的数据校验矩阵的列向量所构成的子矩阵确定低带宽校验矩阵;
(2)判断低带宽校验矩阵是否多于一个;
(3)若低带宽校验矩阵多于一个,则判断利用各个低带宽校验矩阵对丢失数据块进行恢复时所需要的未丢失数据块数量是否相同,即判断利用不同低带宽校验矩阵对丢失数据块进行恢复给二进制编码冗余存储系统各存储节点带来的I/O压力是否相同;
(4)若利用不同低带宽校验矩阵对丢失数据块进行恢复给二进制编码冗余存储系统各存储节点带来的I/O压力不相同,则选择对存储节点带来的I/O压力最小的低带宽校验矩阵对丢失的数据块进行数据重构。
2.如权利要求1所述的针对二进制编码冗余存储系统的低带宽数据重构方法,其特征在于:当所述步骤(2)判断低带宽校验矩阵只有一个,则利用该低带宽校验矩阵对丢失的数据块进行数据重构。
3.如权利要求2所述的针对二进制编码冗余存储系统的低带宽数据重构方法,其特征在于:当所述步骤(3)利用不同低带宽校验矩阵对丢失数据块进行恢复给二进制编码冗余存储系统各存储节点带来的I/O压力相同,则任意选择一个低带宽校验矩阵对丢失的数据块进行数据重构。
4.如权利要求3所述的针对二进制编码冗余存储系统的低带宽数据重构方法,其特征在于:利用低带宽校验矩阵和部分未丢失数据块对丢失的数据块进行数据重构。
5.如权利要求1~4任一所述的针对二进制编码冗余存储系统的低带宽数据重构方法,所述数据校验矩阵为H(k+r)m·rm,即所述数据校验矩阵包含(k+r)·m个行向量和r·m个列向量,所述损毁节点数为r′(1≤r′≤r),即系统丢失的数据块为r′,所述丢失的数据块r′包含的微数据块为r′·m,其特征在于:所述步骤(1)包含如下步骤:
(11)从数据校验矩阵H(k+r)m·rm中选择r′·m个列向量,使r′·m个列向量所构成的矩阵与丢失的微数据块所对应的行向量组成的矩阵为(r′·m)×(r′·m)的满秩矩阵;
(12)所述(r′·m)×(r′·m)的满秩矩阵H(r′m)·(r′m)为确定的低带宽校验矩阵。
6.如权利要求5所述的针对二进制编码冗余存储系统的低带宽数据重构方法,其特征在于,所述步骤(11)包含如下步骤:
(111)计算数据校验矩阵H(k+r)m·rm的每一个列向量中元素“1”的个数;
(112)从数据校验矩阵H(k+r)m·rm中抽取出丢失数据块所对应的行向量,由抽取出的丢失数据块构成二进制矩阵H(r′m)·(rm),由数据校验矩阵H(k+r)m·rm中剩余的行向量构成二进制矩阵H(k+r-r′)m·rm,二进制矩阵H(k+r-r′)m·rm的最下端r·m个向量构成了一个单位矩阵,二进制矩阵H(k+r-r′)m·rm上部的k-r′个向量构成二进制矩阵H(k-r′)m·rm
(113)依次确定所述上部的k-r′个向量构成的二进制矩阵H(k-r′)m·rm行向量中元素“0”的个数,当该行向量中“0”的个数大于或等于r′·m时,记录每个“0”元素所在的列向量;
(114)在所述记录的“0”元素所在的列向量中进一步寻找是否存在“0”元素个数大于或等于r′·m的行向量,若无,则记录步骤(113)所确定的列向量;若有,则记录新的列向量;
(115)根据步骤(114)记录的每一组列向量中“1”的个数,确定出“1”元素和为最小的r′·m个列向量,并确定与所述“1”元素和最小的r′·m个列向量对应的H(r′m)·(r′m)的秩为满秩,构成(r′·m)×(r′·m)的满秩矩阵H(r′m)·(r′m)
7.如权利要求6所述的针对二进制编码冗余存储系统的低带宽数据重构方法,其特征在于,所述步骤“利用低带宽校验矩阵和部分未丢失数据块对丢失的数据块进行数据重构”包含如下步骤:
利用低带宽校验矩阵H(r′m)·(r′m)确定需要参与数据重构的微数据块;
构成一个包含有r′·m个丢失的微数据块的r′·m个方程,利用所述r′·m个方程构成的方程组求解出丢失的r′·m个数据块。
8.如权利要求7所述的针对二进制编码冗余存储系统的低带宽数据重构方法,其特征在于,若所述二进制矩阵H(k-r′)m·rm无行向量中“0”元素的个数皆小于r′·m时,则无法获得低带宽校验矩阵。
CN201410048536.0A 2014-02-11 2014-02-11 一种针对二进制编码冗余存储系统的低带宽数据重构方法 Active CN103761171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410048536.0A CN103761171B (zh) 2014-02-11 2014-02-11 一种针对二进制编码冗余存储系统的低带宽数据重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410048536.0A CN103761171B (zh) 2014-02-11 2014-02-11 一种针对二进制编码冗余存储系统的低带宽数据重构方法

Publications (2)

Publication Number Publication Date
CN103761171A true CN103761171A (zh) 2014-04-30
CN103761171B CN103761171B (zh) 2017-04-05

Family

ID=50528413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410048536.0A Active CN103761171B (zh) 2014-02-11 2014-02-11 一种针对二进制编码冗余存储系统的低带宽数据重构方法

Country Status (1)

Country Link
CN (1) CN103761171B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105353974A (zh) * 2015-10-08 2016-02-24 华东交通大学 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN106788891A (zh) * 2016-12-16 2017-05-31 陕西尚品信息科技有限公司 一种适用于分布式存储的最优局部修复码构造方法
CN106911793A (zh) * 2017-03-17 2017-06-30 上海交通大学 I/o优化的分布式存储数据修复方法
US10031807B2 (en) 2015-11-04 2018-07-24 International Business Machines Corporation Concurrent data retrieval in networked environments
EP3364541A4 (en) * 2016-12-24 2018-08-22 Huawei Technologies Co., Ltd. Storage controller, data processing chip, and data processing method
CN110968454A (zh) * 2018-09-28 2020-04-07 杭州海康威视系统技术有限公司 确定已丢失数据块的恢复数据的方法和装置
CN111679793A (zh) * 2020-06-16 2020-09-18 成都信息工程大学 一种基于star码的单盘故障快速恢复方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083379A1 (en) * 2000-11-02 2002-06-27 Junji Nishikawa On-line reconstruction processing method and on-line reconstruction processing apparatus
CN101404563A (zh) * 2008-11-20 2009-04-08 吕晓雯 一种差错控制方法和系统
CN103135946A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 基于ssd的大规模存储系统中的文件布局方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083379A1 (en) * 2000-11-02 2002-06-27 Junji Nishikawa On-line reconstruction processing method and on-line reconstruction processing apparatus
CN101404563A (zh) * 2008-11-20 2009-04-08 吕晓雯 一种差错控制方法和系统
CN103135946A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 基于ssd的大规模存储系统中的文件布局方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105353974A (zh) * 2015-10-08 2016-02-24 华东交通大学 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN105353974B (zh) * 2015-10-08 2018-02-02 华东交通大学 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
US10031807B2 (en) 2015-11-04 2018-07-24 International Business Machines Corporation Concurrent data retrieval in networked environments
CN106788891A (zh) * 2016-12-16 2017-05-31 陕西尚品信息科技有限公司 一种适用于分布式存储的最优局部修复码构造方法
EP3364541A4 (en) * 2016-12-24 2018-08-22 Huawei Technologies Co., Ltd. Storage controller, data processing chip, and data processing method
US10210044B2 (en) 2016-12-24 2019-02-19 Huawei Technologies Co., Ltd Storage controller, data processing chip, and data processing method
CN106911793A (zh) * 2017-03-17 2017-06-30 上海交通大学 I/o优化的分布式存储数据修复方法
CN106911793B (zh) * 2017-03-17 2020-06-16 上海交通大学 I/o优化的分布式存储数据修复方法
CN110968454A (zh) * 2018-09-28 2020-04-07 杭州海康威视系统技术有限公司 确定已丢失数据块的恢复数据的方法和装置
CN110968454B (zh) * 2018-09-28 2022-09-09 杭州海康威视系统技术有限公司 确定已丢失数据块的恢复数据的方法和装置
CN111679793A (zh) * 2020-06-16 2020-09-18 成都信息工程大学 一种基于star码的单盘故障快速恢复方法
CN111679793B (zh) * 2020-06-16 2023-03-14 成都信息工程大学 一种基于star码的单盘故障快速恢复方法

Also Published As

Publication number Publication date
CN103761171B (zh) 2017-04-05

Similar Documents

Publication Publication Date Title
CN103761171A (zh) 一种针对二进制编码冗余存储系统的低带宽数据重构方法
CN104052576B (zh) 一种云存储下基于纠错码的数据恢复方法
Silberstein et al. Lazy means smart: Reducing repair bandwidth costs in erasure-coded distributed storage
Duminuco et al. Hierarchical codes: How to make erasure codes attractive for peer-to-peer storage systems
CN105260259B (zh) 一种基于系统最小存储再生码的局部性修复编码方法
US20140310571A1 (en) Local Erasure Codes for Data Storage
US8775860B2 (en) System and method for exact regeneration of a failed node in a distributed storage system
US20160006463A1 (en) The construction of mbr (minimum bandwidth regenerating) codes and a method to repair the storage nodes
CN103746774B (zh) 一种高效数据读取的容错编码方法
CN103106124B (zh) 一种基于纠删码集群存储系统的交叉重构方法
WO2018072294A1 (zh) 一种校验矩阵的构造方法及水平阵列纠删码的构造方法
CN103916483A (zh) 一种针对编码冗余存储系统的自适应数据存储与重构方法
CN105956128B (zh) 一种基于简单再生码的自适应编码存储容错方法
CN107003933B (zh) 部分复制码的构建方法、装置及其数据修复的方法
CN105356968B (zh) 基于循环置换矩阵的网络编码的方法及系统
CN107844272A (zh) 一种提高纠错能力的交叉分组编译码方法
CN106788891A (zh) 一种适用于分布式存储的最优局部修复码构造方法
CN105703782B (zh) 一种基于递增移位矩阵的网络编码方法及系统
CN112799875B (zh) 基于高斯消元进行校验恢复的方法、系统、设备及介质
CN110389848B (zh) 基于分块构造的部分重复码构造方法及故障节点修复方法
CN114153651B (zh) 一种数据编码方法、装置、设备及介质
CN109491835A (zh) 一种基于动态分组码的数据容错方法
CN103838649A (zh) 一种降低二进制编码存储系统中计算量的方法
CN104782101B (zh) 用于分布式网络存储的自修复码的编码、重构和恢复方法
CN107665152B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211215

Address after: Room 339, Gaoxin building, north of Yuqing East Street and west of central secondary road, Gaoxin District, Weifang City, Shandong Province, 261000

Patentee after: SHANDONG QIFENG ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: 610041, No. four, 9 South Renmin Road, Chengdu, Sichuan, Wuhou District

Patentee before: CHENGDU INSTITUTE OF BIOLOGY, CHINESE ACADEMY OF SCIENCES

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230612

Address after: 274032 Floor 1, South Span, Building 1, New Century Technopole, No. 666, Jinan Road, Development Zone, Heze City, Shandong Province

Patentee after: Zhongke Xinghe (Shandong) Intelligent Technology Co.,Ltd.

Address before: Room 339, Gaoxin building, north of Yuqing East Street and west of central secondary road, Gaoxin District, Weifang City, Shandong Province, 261000

Patentee before: SHANDONG QIFENG ELECTRONIC TECHNOLOGY Co.,Ltd.