论文部分内容阅读
云计算和大数据时代的到来,对计算机存储介质的容量和性能提出了非常高的要求。固态硬盘的出现,从一定程度上满足了这一需求,但在实际应用中,固态硬盘对系统性能提升所能发挥的作用,并未得到完全释放。固态硬盘,作为一种出现相对较晚的存储介质,已经逐渐被部署到数据中心的存储阵列中。相比于机械硬盘,固态硬盘有着体积小、功耗低以及访问速度快的优势。但固态硬盘的高昂价格和相对较低的存储密度,使其难以在短时间内完全取代传统的机械硬盘。在许多存储中心,同时部署着固态硬盘和机械硬盘,且只有部分存储空间被用作存储。笔者认为,如果能将未使用的固态硬盘空间用作机械硬盘的缓存,系统IO性能将会因此而得到提升。针对固态硬盘和机械硬盘共存于数据中心,但性能却没有得到充分发挥这一现状,本论文提出了一种基于固态硬盘的机械硬盘缓存系统解决方案:该方案使用固态硬盘的存储空间作为机械硬盘的缓存,通过实现多种缓存管理算法,提升存储系统的IO性能。解决方案中基于数据局部性原理的缓存管理算法,在系运行过程中,会在冷数据保持不变的前提下,将访问频繁的热数据由机械硬盘逐块拷贝至固态硬盘,这样会降低再次访问热数据的读写延迟。缓存系统中实现了LRU、LFU以及一种论文改进的缓存页面替换算法。改进的缓存页面替换算法综合考虑了缓存块的访问时间和访问频度因素,命中率高且算法时间和空间复杂度低。用户利用配置工具,可指定哪个固态硬盘卷用作缓存空间、以及去缓存哪一块机械硬盘。最终实现的Windows®存储卷过滤器驱动程序,提供写穿和写回两种缓存运行模式。两模式的不同在于,写穿模式只缓存读请求,写回模式既缓存读又缓存写请求。为进一步优化性能提升效果,缓存系统还实现了对超长缓存块的支持:支持大于读写请求对齐长度的缓存块。从而达到减少大尺寸读、写请求所所必须的缓存查询次数,提升数据拷贝效率的目的。论文实现的固态硬盘缓存系统不仅能够充分发挥固态硬盘的性能,而且避免了存储系统向全固态硬盘迁移所带来的高昂成本。经测试,由固态硬盘缓存的机械硬盘将会有2-3倍的读写性能提升。