论文部分内容阅读
在大数据时代,分布式存储已成为解决海量数据存储的最有效途径。随着分布式系统规模越来越庞大,由于磁盘错误等因素而引发的节点故障也日益频繁,为此分布式存储研究的重点在于如何快速修复故障节点并提升系统修复性能。通常采用冗余存储方式来实现故障节点的快速修复,传统的冗余存储方案,如复制或者纠删码,都存在各自的缺陷和不足。具体地,复制的冗余存储开销过大,而纠删码的传输带宽代价较高。再生码则可以达到两者的最佳折衷,但其故障修复期间的磁盘I/O开销大,且修复复杂度也较高。因此,在存储开销相对理想的条件下,本文进一步对分布式存储系统故障修复期间的带宽开销、修复局部性以及修复时间进行优化,主要研究内容如下:(1)提出一种基于部分重复循环码的局部性修复编码方法。在构造部分重复循环码(Fractional Repetition Cyclic Codes,FRCC)的基础上划分局部修复组,且局部修复组内故障节点可以通过相邻节点实现协作修复。性能分析表明,基于部分重复循环码的局部性修复编码可以快速实现多个不相邻故障节点的数据重构,且故障修复带宽开销和修复局部性方面较三副本策略、简单再生码以及基于传统部分重复码的局部性修复编码更具优势。考虑到分布式存储系统存在多个相邻故障节点的情形,对基于FRCC的局部性修复编码改进,构造生成一种可容多错的交织循环卷积码(Interleaved Cyclic Convolution,ICC)的局部性修复编码,该局部性修复编码可以完成多个相邻故障节点的精确修复,且故障节点的修复选择方案众多,同时确保了修复过程中相对较低的修复局部性。(2)将部分重复码(Fractional Repetition Codes,FRC)与异构分布式存储系统相结合,提出一类异构部分重复码(Heterogeneous Fractional Repetition Codes,HFRC)的构造方法。具体地,首先对原始数据块进行最大距离可分(Maximum Distance Separable,MDS)码编码,对输出的编码块进行分层交叉,确定重复度后按序组合,进而生成包含再生层和交叉再生层的一类具有修复可选性的异构部分重复码。理论分析表明,具有相同编码规则的同异构部分重复码之间可相互转换;与最小带宽再生码相比,该异构部分重复码可实现故障节点的快速精确修复,且在故障修复期间的磁盘I/O开销和修复时间开销方面的性能更优。