一种存储数据的方法、装置及分布式网络存储系统的制作方法

文档序号:7840054阅读:308来源:国知局
专利名称:一种存储数据的方法、装置及分布式网络存储系统的制作方法
技术领域
本发明属于存储技术领域,尤其涉及一种存储数据的方法、装置及分布式网络存储系统。
背景技术
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矩阵作为生成矩阵
权利要求
1.一种存储数据的方法,其特征在于,所述方法包括 将大小为M的文件分成k个模块,每个模块的大小为M/k ; 将所述k个模块分发给分布式网络存储系统中的k个不同节点; 将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足η个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS ; 将所述n-k个模块分发给分布式网络存储系统中剰余的n-k个不同节点; 其中,n、k均是大于O的整数,且η > k, η为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数。
2.如权利要求I所述的方法,其特征在于,在将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点的步骤之后,所述方法还包括 若分布式网络存储系统中有节点失效且失效节点数不超过n-k,则通过现有不少于k个节点来恢复失效节点中所存储的数据。
3.如权利要求2所述的方法,其特征在于,所述通过现有不少于k个节点来恢复失效节点中所存储的数据的方法包括 功能修复、精确修复和混合修复; 所述功能修复是通过线性网络编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性; 所述精确修复是通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中所存储的模块相同; 所述混合修复是若失效节点是分布式网络存储系统中的系统节点,则通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中存储的模块相同; 若失效节点是分布式网络存储系统中的非系统节点,则通过线性编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性。
4.如权利要求3所述的方法,其特征在于,所述功能修复具体包括 从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据; 其中,d ^ η-1,η为分布式网络存储系统中的总共节点数; 所述精确修复具体包括 从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据; 通过线性排列使得进入新节点的干扰量的维数降低; 其中,对于最小带宽再生编码MBR,d = η-1,对于最小存储再生编码MSR,d e [2k_l,n-1],k/n彡1/2,η为分布式网络存储系统中的总共节点数; 所述混合修复具体包括 从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据; 通过线性排列使得进入新节点的干扰量的维数降低; 其中,d = k+1,k为恢复所述文件所需要的最少节点数,η为分布式网络存储系统中的总共节点数。
5.一种存储数据的装置,其特征在于,所述装置包括 数据分块単元,用于将大小为M的文件分成k个模块,每个模块的大小为M/k ; 第一模块分配単元,用于将所述k个模块分发给分布式网络存储系统中的k个不同节点; 编码单元,用于将所述k个模块通过线性编码构造成n-k个互不相关的模块,并满足η个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码 MDS ; 第二模块分配単元,用于将所述n-k个模块分发给分布式网络存储系统中剰余的n-k个不同节点; 其中,n、k均是大于O的整数,且η > k, η为分布式网络存储系统中的总共节点数,k为恢复所述文件所需要的最少节点数。
6.如权利要求5所述的存储数据的装置,其特征在于,所述装置还包括 节点恢复单元,用于若分布式网络存储系统中有节点失效且失效节点数不超过n-k,则通过现有不少于k个节点来恢复失效节点中所存储的数据。
7.如权利要求6所述的存储数据的装置,其特征在于,所述节点恢复单元包括功能修复模块、精确修复模块和混合修复模块中的至少ー个; 所述功能修复模块,用于通过线性网络编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性; 所述精确修复模块,用于通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中所存储的模块相同; 所述混合修复模块,用于若失效节点是分布式网络存储系统中的系统节点,则通过线性网络编码和干扰队列使构造的新节点中所存储的模块与失效节点中存储的模块相同;若失效节点是分布式网络存储系统中的非系统节点,则通过线性编码使构造的新节点中所存储的模块中包含不同于失效节点中的数据且修复后的分布式网络存储系统支持MDS的属性。
8.如权利要求7所述的存储数据的装置,其特征在于,所述功能修复模块包括 第一编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据; 其中,d ^ η-1, η为分布式网络存储系统中的总共节点数; 所述精确修复模块包括 第二编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据,其中,对于MBR码,d = n-1,对于MSR码,d e [2k-l,n-1],k/n彡1/2,η为分布式网络存储系统中的总共节点数; 第一干扰队列子模块,用于通过线性排列使得进入新节点的干扰量的维数降低; 所述混合修复模块包括 第三编码子模块,用于从任何d个有效节点下载β比特的编码信息,对所述编码信息进行线性网络编码来恢复失效节点中存储的数据,其中,d = k+l,k为恢复所述文件所需要的最少节点数;第二干扰队列子模块,用于通过线性排列使得进入新节点的干扰量的维数降低。
9.ー种分布式网络存储系统,包括客户端,其特征在于,所述系统还包括与所述客户端连接的存储数据的装置,所述存储数据的装置是所述分布式网络存储系统中的节点和索引服务器。
全文摘要
本发明适用于存储技术领域,提供了一种存储数据的方法、装置及分布式网络存储系统,所述方法包括将大小为M的文件分成k个模块,每个模块的大小为M/k;将所述k个模块分发给分布式网络存储系统中的k个不同节点;将所述k个模块通过线性编码构造成n-k个互不相关的模块,并且满足n个节点中任意k个模块能恢复出所述文件中的原始数据,所述线性编码是最大距离可分离码MDS,;将所述n-k个模块分发给分布式网络存储系统中剩余的n-k个不同节点。本发明,使分布式网络存储系统能够容忍n-k个节点同时失效而不丢失数据,并使系统的冗余度保持不变,保证了分布式网络存储系统的可靠性。
文档编号H04L29/08GK102624866SQ20121001138
公开日2012年8月1日 申请日期2012年1月13日 优先权日2012年1月13日
发明者侯韩旭, 周敬邦, 周泰, 朱兵, 李挥, 陈畅民, 黄显霞 申请人:北京大学深圳研究生院, 深圳广信网络传媒有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1