论文部分内容阅读
伴随着互联网的快速发展与普及,越来越多的个人用户在使用网络应用的同时产生大量的数据。而云技术的发展也使得更多的企业用户选择将数据服务迁移到云中。在电子商务、社交网站、视频服务等网络应用中,服务端每天都产生大量的小文件,久而久之小文件的数量呈几何级增长。传统的存储系统往往针对大文件进行设计,在面对小文件存储时往往性能低下。本文以Openstack Swift分布式存储系统为实验平台,利用小文件存储的特点,对存储系统读写性能优化进行研究。首先,Swift中的对象服务通过调用底层文件系统对数据进行读写。在面对小文件的随机访问时,存储节点需要频繁从磁盘中读取元数据,浪费了大量的磁盘I/O。本文提出对文件进行合并存取的Swift改进方案,并在内存中建立文件的索引,减少元数据使用空间。存储节点可以将所有的文件元数据缓存在内存中,在小文件访问时只需要一次连续的磁盘I/O操作,以此改善Swift存储系统在处理小文件场景下的随机读写性能。通过对文件组织形式的改变,以虚拟分区进行文件整合,以此降低数据迁移时对系统带宽的影响。其次,对于分布式存储系统,其外部的CDN服务往往具备缓存功能。时间局部性强的数据通过被外部缓存被读取,从而导致存储系统本身的数据缓存命中率降低。本文提出基于预取缓存的Swift改进框架。将对文件访问的日志记录进行分析,利用数据挖掘的方式计算出文件的访问模式。将相关性强的小文件进行合并存储,并且在访问过程中对文件进行预取,用以增加Swift存储系统的数据缓存效果。在缓存过程中对文件的相关率进行验证,降低错误的预取对系统性能的影响。最后,本文通过Cosbench模拟不同大小的文件读写,对整合了合并存储优化模块的Swift存储系统进行测评,验证对小文件读写的性能的改进效果。并通过真实的访问日志,模拟其访问过程,分析预取模块对系统性能的影响。实验表明,基于合并存储的方式在面对越小的文件时,系统带宽提升效果越明显。合并的方式也可以有效的降低数据迁移对系统吞吐量的影响。基于文件关联的预取策略虽然会降低系统带宽,但可以有效的提高系统的平均响应时间。