论文部分内容阅读
随着企业对高性能、大容量存储需求的增长,基于SSD闪存的分布式存储系统开始应用起来,然而巨大的成本压力使得学术界和工业界开始研究怎么让基于S SD闪存的存储系统具有过去HDD硬盘存储系统一样低的成本,同时还保持着高性能,其中较为热点的研究有纠删码技术,重复数据删除技术以及高效的压缩算法技术。然而以上提到的各种压缩方案和压缩算法都有一定的局限性,如纠删码技术数据恢复过慢,重复数据删除技术十分依赖数据之间的重复性,现有压缩算法没有针对分布式存储的特性进行优化,针对以上问题,结合分布式存储的特点,本文提出并设计了在分布式存储的客户端中集成弹性数据压缩的方案EDC(Elastic Data Compression),其中主要包含了字典管理模块,异步通信模块,检测模块和压缩解压缩模块。几乎所有常见的分布式文件系统都支持POSIX客户端来读写操作整个存储系统,因此在客户端里面集成数据压缩不仅可以将压缩任务分摊到各个客户端中,同时具有很好的移植性;其次结合分布式存储的特点及文本压缩算法原理,通过给现有压缩算法zstd加入预置字典的方式来对小文件的存储进行优化,大幅提高了压缩速率及压缩比,同时对大文件的压缩和解压缩也有一定的优化;通过检测模块去更加科学地评估压缩时采用的压缩等级,分别从文件类型、文件可压缩性和客户端负载三个维度来计算当前的一个文件压缩指标,通过此指标判断文件是否由必要压缩,如果由必要,那么在指定的阈值区间中使用高中低三个等级的压缩,使得整个系统在保证高效存储的同时依然保持着高性能的IO能力。最终测试表明,在分布式存储的客户端集成EDC弹性数据压缩方案后,在数据冗余设置为单倍的情况下,小文件的存储在系统IO吞吐率上提高了约70%的同时节省了约160%的存储空间;中大型文件存储在系统IO吞吐率提高了约40%的同时节省了约120%的存储空间,在多倍冗余设置情况下,这种优化效果更加明显。