论文部分内容阅读
混合存储系统解决了以传统机械硬盘为主的存储系统性能不佳,使用固态硬盘替换机械硬盘成本又过高的问题,具有很高的应用价值。EnhanceIO是由STEC公司开发,应用于Linux平台下的一款开源混合储存系统软件,在内核空间实现了处理应用程序数据读写请求的块设备驱动程序,对存储系统的性能有显著提升。论文阐述了混合存储系统设计所需要的关键技术,详细分析了EnhanceIO系统的实现原理,提出并完成对其改进方案。一方面,EnhanceIO系统实现的三种缓存替换算法中,随机替换算法完全没有考虑缓存中数据块的历史使用情况,先入先出替换算法只考虑缓存中数据块加入缓存的先后顺序,最近最少使用替换算法只考虑缓存中数据块的最近使用情况。由于没有综合考虑缓存中数据块的访问时间和访问频率,不能对存储系统的数据访问模式做出很好的判断和预测,这三种替换算法的缓存命中率还有提升空间。论文在最近最少使用替换算法的基础上,使用两条最近最少使用链表,即一条低频访问链表和一条高频访问链表,实现了综合考虑访问时间和访问频率特性的替换算法。另一方面,EnhanceIO系统没有区分读写请求类型,对于随机读写请求和顺序读写请求都会进行缓存。磁盘扫描和文件拷贝等大数据量、低频率的顺序读写,会给整个存储系统的读写性能造成波动。固态硬盘相对于机械硬盘,在随机读写速度上的优势比顺序读写速度上的优势更加明显。区分读写请求的类型,优先对随机读写请求进行缓存,会对存储系统性能带来更大的提升。针对这一问题,论文在EnhanceIO系统中加入了顺序读写过滤功能。通过对测试结果的分析,改进的替换算法相比于原最近最少使用替换算法,缓存命中率提高3.42%,带来存储系统性能的提升。分别表现为,随机读测试,读性能提升6.94%;随机写测试,写性能提升4.29%;随机读写测试,读性能提升5.52%,写性能提升4.48%。在有大量连续数据访问的应用场景中,顺序读写过滤功能的加入,能够有效防止缓存中有用数据块被淘汰,使得存储系统的性能更加稳定。