论文部分内容阅读
分布式存储系统通过多节点存储和管理数据,能够实现数据的海量存储。这类系统一般采用商用服务器节点构建,节点的频繁失效使得数据的可靠性较低。纠删码技术可以通过对数据进行编码,实现数据的冗余存储,提高数据的可靠性。然而,将纠删码应用于分布式存储系统时,会出现数据插入效率低、失效数据的修复开销高、修复时间长等问题。本文针对这些问题展开研究,取得了以下成果:针对传统纠删码方案下数据插入效率较低的问题,提出了一种面向数据插入的均衡分发方法,以有效减小数据插入时间,提高插入过程的吞吐量。该方法的基本思想是:将各数据块拆分为粒度更小的数据片,利用中间节点间的传输能力转发数据片,达到并行传输的效果;将并行传输下的数据块划分方案建模为一个二次规划问题,求解出最小插入时间,获得最优的数据块划分方案。实验表明,与传统的星型数据插入模式相比,该方法降低了数据插入时间,提高了插入过程的吞吐量,提高了数据插入效率。针对纠删码在数据修复时开销较高的问题,提出了一种交织层次复合码,称为IZSHC。采用IZSHC,以有效降低数据修复时从磁盘读取的数据量和数据传输量。构建IZSHC的基本思想是:通过分解IZS码的重复码结构得到最小的IZS编码组,将IZS编码组的数据修复开销小的基本特性融合到层次码中;利用层次码的层组结构对IZS编码组进行扩展,减少数据修复时参与修复的节点数目。该方法将IZS码的重复码可分解特性与层次码的分层分组模式结合起来,从总体上降低了修复开销。实验表明,与纠删码相比,IZSHC减少了数据修复中参与的节点数目,使得修复中的总磁盘开销与总传输带宽开销降低。针对纠删码下的单节点修复方法修复时间较长的问题,提出了一种协作式的多树修复方法,以有效减小单节点修复时间。该方法的基本思想是:通过将网络中更多的可用带宽组织成多树实现对单个数据块的协作修复模式,每个树单独修复数据块的一部分,加快修复过程;通过迭代式的边交换方式尽力提高每棵树的瓶颈带宽,实现对网络带宽的充分使用,进一步减小修复时间。实验表明,与基于网络编码的单树修复模式相比,能够减小失效节点的修复时间。针对纠删码下的多节点修复方法修复时间较长的问题,提出了一种基于MSR码的多树修复方法,以有效减小节点平均修复时间。该方法的基本思想是:依次为每个失效节点构造一棵极小最大瓶颈生成树;在每次构造单树时,在不减小当前树中瓶颈带宽的前提下,将其它带宽较大的边留给余下的树的构造,提高这些树获取更大瓶颈带宽边的机会。该方法有效利用了并行多树中瓶颈带宽之间的关联特点,实现了对网络中可用带宽的高利用率。实验表明,与现有的多节点并行修复方法相比,能够减小节点的平均修复时间。