一种基于安全再生码的分布式存储系统的存储方法与流程

文档序号:14940786发布日期:2018-07-13 20:41阅读:118来源:国知局

本发明涉及大数据的分布式存储及数据修复技术领域,尤其涉及一种基于安全再生码的分布式存储系统的存储方法。



背景技术:

当今世界已步入大数据时代,数据呈现爆炸式的增长,传统的数据存储方式已经不能适应大数据环境下的数据存储。分布式云存储系统的出现和发展,从灵活性、可用性、安全性、稳定性等各个方面满足了大数据环境下新的数据存储需求。但是目前市场上的云存储系统多采取两种方式进行数据分布式存储:1.简单增加文件拷贝数,每个数据中心均存有完整文件拷贝;2.采用reed-solomon码对源文件进行编码,将编码后的文件分割存于不同数据中心。对于方式1来说,其缺点在于存储效率过低,而且必须采用一定的加密算法才能保证数据不被泄漏,而且传统的加密会影响数据传输效率;对于方式2来说,虽然存储效率有一定程度提高,但修复损坏节点以及恢复文件时的带宽占用仍离理论极限差距较大;这两种方式导致整个云存储安全模型不完备,性能不能达到最优、而且安全性较差。

然而随着分布式存储系统集群的扩张和云存储的广泛应用,冗余编码逐渐应用于分布式存储系统中保证数据的可靠性,减少了存储容量和存储成本。常用的纠错码有rs码。(n,k)-rs码是一种最大距离可分mds码,也就是所有数据存储在n个节点中,其中,任意k个节点的数据可以恢复出原始数据。(n,k)-rs保证了最多可失效(n-k)节点而原数据不丢失。而分布式存储系统中,单个节点的失效是常态,多个节点的失效不常见。将rs码应用于分布式存储系统中有几点值得注意:1)rs码修复一个节点的数据所需要的修复带宽远大于该节点数据的数据量,从信息角度来说,传输过量数据用于修复少量数据是一种浪费;2)rs码修复一个存储节点和多个存储节点所需要下载数据量是一样的。从本质上看导致以上2点的原因是:rs码的修复重建了原始数据并重新对丢失的数据进行编码,所以每次修复无论修复数据量的大小,都必须从网络上传输相当于原始数据量大小的数据。云存储系统中存储了海量数据,如何减少因为数据丢失而产生的修复数据量是云存储系统需要面对的关键问题之一。

因此需要研究一种具有高可靠性、高效性以及易扩展性的分布式大数据安全存储模型以及关键技术。同时,采用安全高效的元数据修复方法也是十分有必要的。



技术实现要素:

本发明提供了一种基于安全再生码的分布式存储系统的存储方法,基于安全再生码的大数据安全存储、修复及访问技术,实现了对存储节点的安全访问、数据修复功能,可为数据的存储、获取、共享、处理提供服务。

为了实现上述目的,本发明采取了如下技术方案:

本发明提供了一种基于安全再生码的分布式存储系统的存储方法,其具体如下:

将上传文件分成k块,将各分块编码后存到n个存储节点中,每个存储节点存储α个符号,作为文件编码块;

在修复故障存储节点的单个文件编码块时,先建立新存储节点,再从所述n个存储节点中选取d个正常存储节点,所述d个正常存储节点各向所述新存储节点发送β个符号进行编码块修复;

在重建源文件时,从所述n个存储节点中选取k个正常存储节点,所述k个正常存储节点各向文件请求端发送α个符号进行节点重建。

进一步地,重新生成故障节点的单个文件编码块所需的总带宽为γ=dβ,存储节点参数满足如下关系:

其中,α和β为设定值,α表示每个存储节点中所存的符号数,β表示在修复故障节点的单个文件编码块时,从单个正常存储节点下载的符号数;k=(α+β)/β,k表示在重建源文件时需要连接的最少节点数和表示分块数量;d表示修复损坏节点时需要连接的最少节点数;b=kα,b表示上传文件的大小,γ表示在修复故障节点的单个文件编码块时所需的总带宽。

进一步地,

(1)分块编码前将文件中的b个符号与本地生成的随机序列进行异或运算,如下:

s=m+r=[s1,s2,…,sb]

其中,m为文件中符号组成的向量,r为本地生成的随机序列符号组成的向量;

将s填入两个对称矩阵s1,s2:

(2)分块编码矩阵其中,

(3)进行分块编码,

c=ψs

其中,ψ为n×d编码矩阵,为d×α数据矩阵,c为n×α码字矩阵;λ为对角矩阵,λ=diag[λ1,λ2,…,λα];ρ为有限域gf(q)中的本原元素;

(4)分块编码完成后,将c中的1×α向量分别存储于所述n个存储节点中。

进一步地,

(1)所述d个正常存储节点各向新存储节点z′发送β个符号进行故障节点z的单个文件编码块修复,

其中,hi表示正常存储节点,i=1,2,…d,为φz的转置矩阵,t为转置符号,为hi节点上所存的文件编码块,为hi节点生成的帮助符号;

(2)故障存储节点中的符号由如下公式得出:

新存储节点满足如下关系:

其中,为d*1向量,为前一半元素组成的向量,为后一半元素组成的向量,sz由得出。

进一步地,

采用检测再生方法检测新存储节点单个文件编码块修复是否出错,具体如下:

1)新存储节点向d+1个正常存储节点发送修复请求,该d+1个正常存储节点接收到请求后各向新存储节点发送β个符号,

其中,hi表示正常存储节点,i=1,2,…d+1,为φz的转置矩阵,t为转置符号,为hi节点上所存的文件编码块,为hi节点生成的帮助符号;

2)新存储节点收到d+1个正常节点的帮助符号后,先利用正常节点h1~hd发送的符号建立如下方程:

其中,v1,d是节点h1~hd对应的编码矩阵,p′1为接收到的相应帮助符号向量,表示接收到的帮助符号

3)新存储节点再利用正常存储节点h2~hd+1发送的帮助符号建立如下方程:

其中,v2,d+1是节点h2~hd+1对应的编码矩阵,p′2为接收到的相应帮助符号向量,表示接收到的帮助符号

4)根据步骤2)、3)计算得到向量x1、x2,比较向量x1、x2,若向量x1、x2相等,则再生过程无误,再进行如下计算修复损坏节点单个文件编码块:

其中,为d*1向量,为前一半元素组成的向量,为后一半元素组成的向量,x1由得出。如果向量x1、x2不等,则再生过程出错,执行恢复再生方法。

进一步地,所述恢复再生方法具体如下:

1)新存储节点向剩余n-1个正常存储节点发送修复请求,该n-1个正常存储节点接收到请求后各向新存储节点发送β个符号,

其中,hi表示正常存储节点,i=1,2,…n-1,为φz的转置矩阵,t为转置符号,为hi节点上所存的文件编码块,为hi节点生成的帮助符号;

2)新存储节点收到n-1个正常节点的符号后,新存储节点可建立如下方程:

其中,v1,n-1是节点h1~hn-1对应的编码矩阵,p′为接收到的相应帮助符号向量,表示接收到的帮助符号

3)定义p′为mds码,mds码为最大距离可分码,mds码的参数分别为(n-1,d,n-d),对p′进行纠错解码,可计算出正确的码字pcw,比较p′和pcw,若p′和pcw的第i个元素不同,标记节点i损坏;

4)故障存储节点中的符号由如下公式得出:

满足:

其中,p为pcw前d行,为d*1向量,为前一半元素组成的向量,为后一半元素组成的向量,sz由得出。

由上述本发明提供的技术方案可以看出,本发明基于安全再生码的大数据安全存储、修复及访问技术,实现了对存储节点的安全访问、数据修复功能,可为数据的存储、获取、共享、处理提供服务。切块后的文件选择正常存储节点中的若干节点进行文件存储,实现上传、下载等功能。当一个节点或若干节点损坏时,系统只需从其余正常的若干节点中获取部分元数据,即可进行最小存储再生码修复,实现理论最优值。该方案具有很好的隐私保护性能,一定程度上保护了数据的安全。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于安全再生码的分布式存储系统的存储方法的步骤流程示意图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。

实施例一

本发明实施例提出一种基于安全再生码的分布式存储系统的存储方法,图1为该方法的流程示意图,如图1所示:

基于安全再生码编码技术,步骤如下:

将上传文件分成k块,编码后存到n个存储节点中,每个存储节点存储α个符号。在修复故障存储节点的单个文件编码块时,需要从d个正常存储节点各下载β个符号。在重建源文件时,需要从k个正常存储节点各下载α个符号。各参数之间满足如下关系,b为上传文件大小,

d=2α=2k-2;

b=α(α+1)

编码公式为:

c=ψs

其中,ψ为n×d编码矩阵,s为d×α数据矩阵,c为n×α码字矩阵。编码完成后,1×α向量分别存储于n个存储节点。

为了数据的安全存储,在进行安全再生码编码之前,本地会利用线性反馈移位寄存器(lfsr)与反馈多项式在本地生成b个随机序列符号。编码前将本地随机序列符号与原始b个符号进行异或运算,得到的结果用于安全再生码的数据部分,公式如下:

s=m+r=[s1,s2,…,sb]

将s填入上下两个对称矩阵s1,s2:

矩阵排布规则如下:因为是对称矩阵,故第二行第一列的元素同第一行第二列的元素,第二行第二列的元素自第一行最后一个元素起继续加1,共排布α-1个元素,故第二行最后一列的元素为s2α-1,依次类推,s2排布规则同s1:

编码矩阵其中

λ为对角矩阵,λ=diag[λ1,λ2,…,λα]。

基于安全再生码再生技术,具体步骤如下:

假设故障存储节点,即失效节点为z,重新生成失效节点z上符号cz,步骤如下:

1)新节点z′向d个帮助节点发起请求,假设d个帮助节点编号为hi,i=1,2,…,d,每个节点向z′发送符号,其中为φz的转置矩阵:

2)收到d个帮助节点的帮助符号后,新节点可以建立如下方程:

其中,为d*1向量,为前一半元素组成的向量,为后一半元素组成的向量,sz由得出。

3)新节点根据如下公式计算出失效节点上的符号:

基于安全再生码编码的检测再生技术,具体步骤如下:

假设失效节点为z,检测重新生成失效节点z上符号cz是否正确的步骤如下:

定义其中ψt为矩阵ψ的第t行。

设p′i=pi+ei,当ei为0时,表明节点i发送的帮助符号无误,为了检测是否有错误的帮助符号,将进行如下步骤:

1)新节点z′向d+1个帮助节点发起请求,假设d+1个帮助节点编号为hi,i=1,2,…,d+1,每个节点向z′发送帮助符号其中为φz的转置矩阵:

2)收到d+1个帮助节点的帮助符号后,新节点z′先利用1~d个帮助节点发送的帮助符号建立如下方程:

3)新节点z′再利用2~d+1个帮助节点发送的帮助符号建立如下方程:

4)根据步骤2、3计算得到向量x1、x2,比较向量x1、x2,若向量x1、x2相等,则再生无误,利用公式,

计算cz,为x1前一半元素组成的向量,为x1后一半元素组成的向量。如不等,则再生过程出错,需要利用恢复再生技术。

基于安全再生码编码的恢复再生技术,详细步骤如下:

假设失效节点为z,经检测后发现生成失效节点z上符号cz出错,恢复符号cz步骤如下:

1)新节点z′向其余n-1个帮助节点发起请求,假设n-1个帮助节点编号为hi,i=1,2,…,n-1,每个节点向z′发送帮助符号,其中为φz的转置矩阵:

2)新存储节点收到n-1个正常节点的符号后,新存储节点可建立如下方程:

3)定义p′为mds码,mds码为最大距离可分码,mds码的参数分别为(n-1,d,n-d)。对p′进行纠错解码,可计算出正确的码字pcw。比较p′和pcw,若p′和pcw的第i个元素不同,标记节点i损坏。

4)利用前述基于安全再生码再生技术,在z′上恢复出失效节点上的符号。

实施例二

本实施例提供了一种基于安全再生码的分布式存储系统的存储方法,其具体如下:

将上传文件分成k块,将各分块编码后存到n个存储节点中,每个存储节点存储α个符号,作为文件编码块;

在修复故障存储节点的单个文件编码块时,先建立新存储节点,再从所述n个存储节点中选取d个正常存储节点,所述d个正常存储节点各向所述新存储节点发送β个符号进行编码块修复;

在重建源文件时,从所述n个存储节点中选取k个正常存储节点,所述k个正常存储节点各向文件请求端发送α个符号进行节点重建。

在本实施例中,重新生成故障节点的单个文件编码块所需的总带宽为γ=dβ,存储节点参数满足如下关系:

其中,α和β为设定值,α表示每个存储节点中所存的符号数,β表示在修复故障节点的单个文件编码块时,从单个正常存储节点下载的符号数;k=(α+β)/β,k表示在重建源文件时需要连接的最少节点数和表示分块数量;d表示修复损坏节点时需要连接的最少节点数;b=kα,b表示上传文件的大小,γ表示在修复故障节点的单个文件编码块时所需的总带宽。

在本实施例中,

(1)分块编码前将文件中的b个符号与本地生成的随机序列进行异或运算,如下:

s=m+r=[s1,s2,…,sb]

其中,m为文件中符号组成的向量,r为本地生成的随机序列符号组成的向量;

将s填入两个对称矩阵s1,s2:

(2)分块编码矩阵其中,

(3)进行分块编码,

c=ψs

其中,ψ为n×d编码矩阵,为d×α数据矩阵,c为n×α码字矩阵;λ为对角矩阵,λ=diag[λ1,λ2,…,λα];ρ为有限域gf(q)中的本原元素;

(4)分块编码完成后,将c中的1×α向量分别存储于所述n个存储节点中。

在本实施例中,

(1)所述d个正常存储节点各向新存储节点z′发送β个符号进行故障节点z的单个文件编码块修复,

其中,hi表示正常存储节点,i=1,2,…d,为φz的转置矩阵,t为转置符号,为hi节点上所存的文件编码块,为hi节点生成的帮助符号;

(2)故障存储节点中的符号由如下公式得出:

新存储节点满足如下关系:

其中,为d*1向量,为前一半元素组成的向量,为后一半元素组成的向量,sz由得出。

在本实施例中,

采用检测再生方法检测新存储节点单个文件编码块修复是否出错,具体如下:

1)新存储节点向d+1个正常存储节点发送修复请求,该d+1个正常存储节点接收到请求后各向新存储节点发送β个符号,

其中,hi表示正常存储节点,i=1,2,…d+1,为φz的转置矩阵,t为转置符号,为hi节点上所存的文件编码块,为hi节点生成的帮助符号;

2)新存储节点收到d+1个正常节点的帮助符号后,先利用正常节点h1~hd发送的符号建立如下方程:

其中,v1,d是节点h1~hd对应的编码矩阵,p′1为接收到的相应帮助符号向量,表示接收到的帮助符号

3)新存储节点再利用正常存储节点h2~hd+1发送的帮助符号建立如下方程:

其中,v2,d+1是节点h2~hd+1对应的编码矩阵,p′2为接收到的相应帮助符号向量,表示接收到的帮助符号

4)根据步骤2)、3)计算得到向量x1、x2,比较向量x1、x2,若向量x1、x2相等,则再生过程无误,再进行如下计算修复损坏节点单个文件编码块:

其中,为d*1向量,为前一半元素组成的向量,为后一半元素组成的向量,x1由得出。如果向量x1、x2不等,则再生过程出错,执行恢复再生方法。

在本实施例中,所述恢复再生方法具体如下:

1)新存储节点向剩余n-1个正常存储节点发送修复请求,该n-1个正常存储节点接收到请求后各向新存储节点发送β个符号,

其中,hi表示正常存储节点,i=1,2,…n-1,为φz的转置矩阵,t为转置符号,为hi节点上所存的文件编码块,为hi节点生成的帮助符号;

2)新存储节点收到n-1个正常节点的符号后,新存储节点可建立如下方程:

其中,v1,n-1是节点h1~hn-1对应的编码矩阵,p′为接收到的相应帮助符号向量,表示接收到的帮助符号

3)定义p′为mds码,mds码为最大距离可分码,mds码的参数分别为(n-1,d,n-d),对p′进行纠错解码,可计算出正确的码字pcw,比较p′和pcw,若p′和pcw的第i个元素不同,标记节点i损坏;

4)故障存储节点中的符号由如下公式得出:

满足:

其中,p为pcw前d行,为d*1向量,为前一半元素组成的向量,为后一半元素组成的向量,sz由得出。

综上所述,本发明实施例通过基于安全再生码的大数据安全存储、修复及访问技术,实现了对存储节点的安全访问、数据修复功能,可为数据的存储、获取、共享、处理提供服务。切块后的文件选择正常存储节点中的若干节点进行文件存储,实现上传、下载等功能。当一个节点或若干节点损坏时,系统只需从其余正常的若干节点中获取部分元数据,即可进行最小存储再生码修复,实现理论最优值。该方案具有很好的隐私保护性能,一定程度上保护了数据的安全。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1