论文部分内容阅读
分布式存储系统中普遍采用多副本机制作为容错机制,多副本策略实现容易,读写简单,容错性能可以随着副本数的增加而增强,但随着数据量不断增大,多副本机制会造成存储成本过高的问题。于是纠删码技术作为一种新的容错机制被逐渐引入分布式存储系统。纠删码通过对数据编码解码来实现数据的存储恢复,不需要完全复制数据,只需要编码生成多个校验数据块即可,从而可以大量降低数据的冗余度,降低存储系统的存储成本。同时,如何更有效的保护重要数据,提高分布式系统的安全性已经成为计算机网络应用中亟需要考虑和解决的问题,数据存储和数据传输是分布式存储系统中涉及安全问题的两个重要部分。在纠删码存储系统中,数据被编码存放在不同的存储结点,一定程度上增强了系统的安全性,但是数据仍旧容易被泄露。在分布式存储系统中,数据的访问频率、访问次数、更新频率等存在很大不同,主流的分布式文件系统例如HDFS、Ceph和GFS等均只支持文件的读写和追加,不会涉及复杂的更新操作,但是在实际的企业服务器和网络文件系统中,数据更新占比很大,所以在分布式存储系统中支持更新操作非常必要。同时,在基于纠删码的分布式存储系统中,纠删码中的生成矩阵包括单位矩阵和编码矩阵两部分,单位矩阵用来保留原始数据信息,编码矩阵用来生成冗余信息,采用这样策略的主要原因是加快读写速度,但是在信息安全极为重要的今天,这种策略不能够有效保证数据的安全性。为了扩展目前主流的分布式存储系统,并针对基于纠删码的分布式存储系统中更新的问题和数据安全问题,本文做出了以下主要贡献:(1)针对在存储系统中面临更新频繁和更新范围多变的现状,通过对重构写更新策略和读改写更新策略在分布式系统中建模分析,提出了更新范围感知的混合更新策略,减少更新过程中网络的传输量,提高更新效率。通过在广域网和局域网两种不同的网络环境下进行测试,实验结果表明混合更新策略有效地减少了更新延迟,特别是在广域网中,分别比重构写更新策略和读改写更新策略最多提高了28.1%和24.2%;(2)针对基于纠删码的分布式存储系统中的安全问题,通过对加解密对象为文件和加解密对象为数据块这两种不同情况下两阶段安全策略的读、写和更新操作进行分析,说明了加解密对象为数据块的两阶段安全策略在支持更新操作的存储系统中的可行性;同时对两阶段安全策略下混合更新策略进行建模分析,得出应该尽量提高加密算法加解密速率以适应混合更新策略的结论;(3)对目前主流的开源加密库的加解密性能进行了系统地实验对比分析,填补了开源加密库性能分析的空白,同时为实现安全高效的分布式存储系统做支撑。通过对Java加密库Flexiprovider、Cryptix、Bouncy Castle、SunJCE和C++加密库Crypto++、OpenSSL的实验分析,结果表明OpenSSL和Bouncy Castle支持的分组加密算法最多,其中OpenSSL的加密性能更好;(4)设计并实现一个基于纠删码混合更新策略和两阶段安全加密策略的分布式存储系统EcDFS,并通过两阶段提交协议,保证写入和更新时的数据一致性。通过对原型系统的性能进行测试,实验结果表明EcDSF的顺序写吞吐率比HDFS-RAID提高了两倍多,比HDFS提高了近1.5倍,在两个结点失效情况下的顺序读吞吐率比HDFS-RAID提高了两倍多,和HDFS性能相近。使用了两阶段安全策略后的EcDSF顺序写吞吐率没有下降太多,而顺序读吞吐率要略低于HDFS,但比HDFS-RAID提高了1.6倍。