[发明专利]一种基于固态盘的磁盘缓存系统有效
申请号: | 201410138635.8 | 申请日: | 2014-04-04 |
公开(公告)号: | CN103885728A | 公开(公告)日: | 2014-06-25 |
发明(设计)人: | 周可;王桦;夏德军;饶琦 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F12/08 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 梁鹏 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 固态 磁盘 缓存 系统 | ||
技术领域
本发明属于计算机数据存储领域,更具体地,涉及一种基于固态盘的磁盘缓存系统,用于提升磁盘的读写性能。
背景技术
固态盘(Solid State Disk,简称SSD)虽然在性能、能耗、可靠性等方面优于传统的机械式磁盘(HDD),然而它除了具有成本高的缺点外,其有限容量和寿命等缺点是影响它被广泛采用的主要障碍。
机械式磁盘(HDD)虽然其机械寻道操作导致其性能,特别是随机访问性能受到严重限制,但其低成本、高容量、无限长寿命等优点仍然将保证其在现代存储系统中的重要作用。
基于这两类存储设备互补的优缺点,构建由固态盘和机械式磁盘组成的混合式存储系统将是近期乃至未来一段时期内利用固态盘的主要形式。
现有的基于固态盘的存储系统,要么是使用固态盘构建一个分层的存储系统,将热点数据存储在固态盘上,以加快上层应用访问数据的速度,但是使用这种方法热点数据的大小受限于固态盘存储空间的大小,所以对于存储系统读写性能的提升是有限的。要么是设计一个基于固态盘缓存的混合存储系统,而传统的使用固态盘作为缓存所构建的存储系统,在单机情况下拥有比较好的性能提升,但是应用在分布式系统中就会造成固态盘存储空间的浪费。
固态盘在现有的计算机存储系统中是一种比较稀缺的资源,大数据时代的到来使得分布式存储架构将得到更为广泛的应用,如何在不影响存储系统读写性能的情况下充分提升固态盘的利用率是一个值得研究的问题。
发明内容
本发明提供了一种基于固态盘的磁盘缓存系统,其目的在于将分布式系统中多台物理机磁盘上的热点数据进行分块,并对数据块进行哈希以获得数据块的指纹,该指纹能唯一地标识一个数据块,然后将这些数据块通过LRU缓存替换算法缓存到固态盘中,最终达到提升磁盘设备的读写性能并提高固态盘缓存的利用率的技术效果。
本发明所提供的一种基于固态盘的磁盘缓存系统,包括数据块元数据维护模块、固态盘数据块替换模块和脏数据块写回磁盘模块,其中:
所述数据块元数据维护模块,用于在使用固态盘作为磁盘缓存之前,在固态盘存储空间的头部开辟出一块固定大小的元数据存储区域,以保存各数据块的元数据;当把一个新数据块写入到缓存中时,用于生成该数据块所对应的元数据,并将该元数据写入到固态盘上的元数据存储区域中,同时用于在有需要时从元数据存储区域中读取任意数据块的元数据;
所述固态盘数据块替换模块,用于判断缓存中是否有空闲数据块存储区域可以用来缓存新的数据块,如有则直接将新的数据块写入缓存中,如没有则需要根据替换算法将缓存中现有的一个数据块替换出去;如果被替换出缓存的数据块是一个脏块,在替换之前需要将脏块写回磁盘,避免出现数据的不一致性,最后将新的数据块写入缓存中的对应位置;
所述脏数据块写回磁盘模块,用于定期将固态盘中的脏块写回磁盘,其中写回磁盘的时机基于两点:缓存内脏块数量是否超过脏块数阈值,以及各脏块的写回延时时间是否超过设定时间。如果缓存内脏块数量超过脏块数阈值,或者某些脏块的写回延时时间超过设定时间,则将缓存内的脏块集中写回磁盘,并更新各脏块的元数据信息。
进一步地,所述数据块元数据维护模块包括初始化数据块元数据存储区域子模块、生成数据块元数据子模块、写数据块元数据子模块、读数据块元数据子模块和更新数据块元数据子模块,其中:
所述初始化数据块元数据存储区域子模块:用于将固态盘缓存存储空间分割成定长大小的数据块,根据缓存空间大小计算所需元数据存储空间的大小,再求出所需的数据块的数量,在缓存空间的头部开辟出相应数量数据块的元数据存储区域;
所述生成数据块元数据子模块:用于在一个不在固态盘缓存中的数据块需要被写入固态盘时,生成新的数据块元数据,新的数据块元数据包括数据块的指纹、数据块的大小、数据块的状态、数据块的生成时间、数据块的元数据在数据块元数据存储区域的索引号和数据块的存储地址,并转写数据块元数据子模块;
所述写数据块元数据子模块:用于将新生成的数据块元数据写入到数据块元数据存储区域的空闲数据块中,同时将该数据块元数据添加到内存中的LRU栈的栈顶;
所述读数据块元数据子模块:用于根据数据块的元数据在数据块元数据存储区域的索引号读取数据块的元数据,并转更新数据块元数据子模块;
所述更新数据块元数据子模块:用于修改读取出的数据块元数据中的相应项,并将修改的结果写回固态盘的数据块元数据存储区域和内存中的LRU栈中对应的存储位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410138635.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电池组以及电池组的制造方法
- 下一篇:金合金中银量的测定方法