论文部分内容阅读
随着互联网的不断发展,需要存储和处理的信息数据迅速增加,大数据技术应运而生。为了满足海量数据的存储需求,云存储系统得到了广泛的应用。目前云存储系统大都采用多副本技术来保证存储数据的可用性。多副本技术虽然实现简单,但是其较低的存储效率显著增加了云存储系统的存储成本。为了解决这个问题,纠删码技术在实践中得到了越来越多的应用。相对于CPU,GPU拥有更高的处理能力和存储器带宽。近年来不断发展的GPGPU(General-purpose computing on graphics processing units,基于GPU的通用运算)技术使用CPU+GPU的异构模式,由CPU负责复杂逻辑处理和事务管理,由GPU负责大规模数据的并行计算,拓宽了GPU的应用范围。而NVIDIA公司在2007年推出的CUDA(Compute Unified Device Architecture,统一计算设备架构)为开发人员有效利用GPU的强大性能提供了便利条件,同时支持CUDA的GPU在架构上进行了显著的改进,使CUDA更适合进行GPU通用计算。如今,CUDA性能已经大大超过了传统GPGPU技术,在各个领域获得了广泛的应用。本文针对纠删码技术在编码、解码过程中时间开销较高的缺点,在对其算法进行优化的基础上,使用CUDA对其进行加速,主要工作包括以下几个方面:1)研究了云存储系统为保证存储数据可用性所采用的技术,包括RAID技术、多副本技术和纠删码技术,分析了它们各自的优缺点。2)研究了各种纠删码算法的原理和特点,以及在实践中应用纠删码时所使用的技术。3)研究了CUDA的相关知识,以及使用CUDA对程序进行加速的方法。4)比较了一些开源纠删码库的性能,着重研究了Jerasure开源库中的代码,对其中的reed_sol_r6算法进行了分析,优化了其在解码端的性能,并对优化前后的算法性能进行了测试。5)使用CUDA对系统进行了并行优化,提升了系统性能,进行了详细的测试,给出了测试结果,并对结果进行了分析。6)总结了本文的研究工作,并给出了下一步的研究方向。在实验过程中,本文设计的系统依然能够正常稳定地实现保证数据可用性的功能,同时使用CUDA技术大幅提升了系统的编码、解码效率,编码速率提升了约20倍,解码速率根据出错情况的不同提升了5到50倍,为纠删码应用于对实时性要求较高的云存储系统提供了可能。