论文部分内容阅读
分布式存储系统是一种存储设备基于网络互连的系统,具有较好的存储能力和较低的开销。由于系统内提供存储服务的设备往往具有不稳定性,存储节点出现数据失效的情况时有发生,在这种情况下整个系统就需要进行频繁的数据恢复操作。为了维持数据可用,早期的分布式存储系统通常采用保存文件副本的方法。这种方法虽然简单有效,却会造成大量的数据冗余,同时也提高了修复代价。基于上述情况,如何对失效节点进行高效地修复成为了分布式存储系统中亟待解决的问题,具有很重要的研究价值和现实意义。随着编码技术的提出,利用该技术存储数据成为了解决以上问题的一个有效途径。由于再生编码有着良好的存储能力和容错能力,因此成为近些年的重点研究方向。目前针对再生编码的研究主要分为两个方向:最小存储再生码(MSR)和最少带宽再生码(MBR),分别代表了研究如何减少存储时的数据冗余和研究如何减少数据恢复时的网络带宽。就目前计算机体系中存储与网络带宽资源的价格差异来看,网络资源的高效利用可以带来更大的开销节省,因此本文着重研究了最少带宽再生编码,并在此类编码中选择了四种具有快速修复特性的编码进行了理论和实际的性能研究。由于这些编码方案的修复方法是通过精确取得丢失数据的副本或者只需简单的运算,因此有着更好的修复性能和更低的带宽消耗,同时相比较其他类型的最少带宽再生码有着更加优秀的存储能力和更加灵活的存储方式。本文对基于分布式存储系统的快速修复再生编码进行性能研究,主要工作集中在以下几个方面:(1)根据编码过程的共同点总结出编码方案的相似性,进而规划出统一编码框架并得出了文件操作可能性。通过将分布式存储系统中的节点和网络以无向图的表示形式进行抽象描述,利用顶点表示存储节点、边表示网络中节点的互连关系,从而可以得到描述整个分布式存储系统的结构。同时用矩阵运算抽象表示出各类操作的过程,对于所有编码方案在编码、解码和修复单一失效节点时的性能进行了理论上的分析和总结。(2)使用模块化的方法设计并实现了基于快速修复再生编码的分布式存储系统。本文详细介绍了设计过程和实现算法,同时将系统部署在通过局域网络互连的服务器集群之上,利用开源对象存储项目OpenStack Swift模拟网络存储环境。基于该分布式存储系统,按照统一编码框架中给出的性质设置了合适参数后,进行文件级别上操作时的性能测量。最后按照实验得出的结果,分析其原因并找出修复数据时表现最佳的存储策略,对后续的相关研究提供了指导方向。