发明名称 一种网络分布式编码存储方法
摘要 本发明公开了一种网络分布式编码存储方法,将文件保存至分布式系统中的n个服务器中,其中n≥4,且容许≤t/2个服务器出错时仍然能够保证存储数据的安全性,该方法包括如下步骤:对n个服务器进行编码;将欲存储的原文件均分成(n-t)×n个小块信息块;通过容错编码方法产生t×n个小块的校验块;在每n-t小块信息块后添加t小块校验块构成文件块;按编号顺序将文件块存储至n个服务器中。本发明相对于现有技术,首先,由于编码和译码操作只是在有限域上的简单异或和,没有增加太多的时间消耗;其次,在空间上,存储冗余度低但具备较强的容灾能力;再次,恢复某原文件后进行二次编码并存储至新服务器中,能达到可持续容灾的能力。
申请公布号 CN101834898A 申请公布日期 2010.09.15
申请号 CN201010159646.6 申请日期 2010.04.29
申请人 中科院成都信息技术有限公司 发明人 方佳嘉;王晓京;孙宣东;陈峥;唐聃;王一丁;蔡红亮;蒋海波;肖宜龙;王谦;肖劲飞
分类号 H04L29/08(2006.01)I;H04L1/00(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 成都赛恩斯知识产权代理事务所(普通合伙) 51212 代理人 朱月仙;肖国华
主权项 1.一种网络分布式编码存储方法,将文件保存至分布式系统中的n个服务器中,其中n≥4,且容许≤t/2个服务器出错时仍然能够保证存储数据的安全性并正常提供服务,其特征在于,所述网络分布式编码存储方法包括如下步骤:(1)对n个服务器进行编号j,0≤j≤n-1;(2)将欲分存入服务器的各个文件都均分为(n-t)×n个小块信息块,标记为a<sub>i,j</sub>,其中0≤i<n-t,0≤j<n,当无法均分数据文件时,在文件后面补零直至可以均分;(3)生成一个参数为(n-t,n-1,t,(n-t)×t/(n-1))的码,具体方法如下:①生成一个(n-t)×(n-1)的矩阵A,将第0列至第t-1列的所有元素赋值为1,其他元素赋值为0;②对t≤j<n-1,计算矩阵A第j列的权重x<sub>j</sub>,即数值为1的个数,如果第j列的权重x<sub>j</sub>小于(n-t)×t/(n-1),必然存在a<sub>i,j</sub>=0,a<sub>i,j′</sub>=1使得列j′的数值为1的个数>(n-t)×t/(n-1),其中0≤j′<n-1,且j′≠j,则赋值a<sub>i,j</sub>=1,a<sub>i,j′</sub>=0;③计算矩阵A每一列的权重的均值<img file="FSA00000103316400011.GIF" wi="57" he="74" />并计算矩阵A列重量的方差的平方<img file="FSA00000103316400012.GIF" wi="1220" he="151" />④其中在进行步骤②之前先计算得到矩阵A最初的列重量的方差,然后重复步骤②,计算步骤②元素赋值后矩阵A列重量的方差并每计算得到一次方差,均与前一次方差进行比较,直到矩阵A列重量的方差保持不变,则得到参数为(n-t,n-1,t,(n-t)×t/(n-1))的码;(4)随机记录步骤(3)所得到的编码矩阵A中所有值为1的元素坐标[p,q]为一个二元组合,将取得的二元组合保存为一个t×(n-t)的二维矩阵;(5)根据步骤(4)得到的二维矩阵,其对应的信息块为a<sub>p,(q+j+1)modn</sub>,将二维矩阵每一行所对应的信息块进行异或和操作即可获得一校验块,a<sub>i,j</sub>=⊕a<sub>p,(q+j+1)mod n</sub>,其中n-t≤i<n,0≤j<n,根据相同的方法对于原文件信息块的每一列均产生t块校验块,共有t×n块校验块;(6)在每n-t小块原文件信息块后添加t小块校验块组成文件块,共同构成一个n×n的二维矩阵组;(7)把步骤(6)中的二维矩阵组第j列的分块对应存储到第j号服务器中,分存成功。
地址 610041 四川省成都市高新区创业东路管委会高新大厦11楼5号