论文部分内容阅读
随着云计算时代的到来,云端存储的数据急剧增长,因此云存储系统已经成为云计算中的一个关键要素。云存储中的海量数据,使得云存储系统必须面对一个问题:如何在保证数据的有效性和可靠性的同时,还要兼顾存储空间、带宽消耗和延迟等条件。分布式存储系统通过增加冗余的方式来提供可靠的服务,并将这些数据独立的存储在不同的节点中。基于复制策略的分布式系统,将数据复制多份,随后将这些副本存储在独立的节点中。因为存储了多份数据,因此它可以容忍一定数量节点的损坏,从而具有一定的容错能力。但是复制策略的存储效率太低,会浪费几倍自身大小的存储空间,显然不能满足目前大数据存储的要求。而纠删码策略将原数据进行分片后再编码,并将其存储在网络中的不同节点。相对于复制策略,纠删码的存储效率得到了很大的提高,但是它也会带来额外的开销,如带宽的消耗和访问延迟等,而且在修复一个失效节点时所需要的数据量远远大于该节点本身的数据量。再生码在修复单个节点时可以达到存储空间和带宽消耗的最优折衷,但是在多个节点同时损坏时,再生码只能逐个的修复每个节点,因此,对于多个失效节点的修复,再生码的效率是次优的。协同再生码能够同时修复多个失效节点,并且具有更好的存储空间和带宽消耗的折衷曲线,但是最小冗余协同再生码的构造方法较少,同时对参数的选择也受到限制。本文主要对基于矩阵的最小冗余再生码(MSR)和最小冗余协同再生码(MSCR)展开研究,具体工作和贡献点如下:(1)对基于复制的策略和编码的策略进行深入地研究和分析,包括纠删码、再生码和协同再生码。(2)分析了已有的两种基于矩阵的最小冗余再生码的优缺点,针对这些缺点设计实现了基于矩阵的低复杂度MSR码,解决了矩阵实现的MSR码中编译码复杂度较高的问题,完整的推导了该MSR码的编码、节点修复以及数据重构的算法实现过程。(3)分析了已有协同再生码的优缺点,针对目前协同再生码的实现过程中参数选择不够灵活的缺点,由基于矩阵实现的MSR码码推导出了一种基于矩阵实现的最小冗余协同再生码,该方法继承了矩阵实现中参数广泛的特性。给出了该MSCR码的编码、节点修复以及数据重构的具体算法。(4)采用JAVA编程实现了本文提出的两种方法,并与已有算法进行了对比,证明了本文提出的方法的可行性和有效性。