CN102637147A - 利用固态硬盘作为计算机写缓存的存储***以及相应的管理调度方法 - Google Patents
利用固态硬盘作为计算机写缓存的存储***以及相应的管理调度方法 Download PDFInfo
- Publication number
- CN102637147A CN102637147A CN2011103583535A CN201110358353A CN102637147A CN 102637147 A CN102637147 A CN 102637147A CN 2011103583535 A CN2011103583535 A CN 2011103583535A CN 201110358353 A CN201110358353 A CN 201110358353A CN 102637147 A CN102637147 A CN 102637147A
- Authority
- CN
- China
- Prior art keywords
- solid state
- state hard
- hard disc
- page
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种利用固态硬盘作为计算机写缓存的存储***及相应的管理调度方法。所述存储***包括,一块或多块小容量、访问速度较快的固态硬盘设备,和一块或多块大容量、访问速度较慢的传统磁盘设备,上述设备通过标准PCI-E、SAS或SCSI接口之一与所述计算机的总线相连,并对所述计算机***可见。
Description
技术领域
本发明涉及数据信息处理,特别是涉及一种利用固态硬盘作为计算机写缓存的存储***及相应的管理调度方法。
背景技术
磁盘缓慢的寻道时间已经成为大型数据处理应用中的瓶颈所在。相比CPU纳秒级别的处理速度,磁盘毫秒级的寻道时间严重影响了整个***的响应时间和吞吐率。固态硬盘作为一种新型的电学存储介质,具有极高的随机访问速度,被认为是下一代的主流存储设备。
然而我们注意到,当前的固态硬盘要完全取代磁盘仍然是不现实的,究其原因有以下两点:首先固态硬盘的容量较小,同等价格能购买的固态硬盘的容量只有磁盘的几百分之一甚至几千分之一,完全使用固态硬盘来存储所有数据的成本是极其高昂的;其次固态硬盘的存储芯片闪存具有读写不对称性,对闪存进行小数据量的随机写往往需要对较大范围进行一次很慢的擦除操作,因此当前的固态硬盘尽管拥有极其强劲的随机读和顺序读写的性能,但其随机写的性能相对磁盘并没有明显的优势,是固态硬盘的性能瓶颈所在。
在这一背景下,如何利用好固态硬盘,使之在整个存储架构中充分发挥其优势、避免其缺陷是一个具有重要意义的技术问题,是提高计算机***在大规模数据应用中的性能的关键所在。
发明内容
本发明目的在于提供一种利用固态硬盘作为计算机写缓存的存储***,以及基于其上的调度方法,充分发挥固态硬盘高带宽以及高速随机读的优势、避免其低速随机写的劣势,大幅度提高***的响应性能。
为达到上述目标,本发明公开了一种利用固态硬盘作为计算机写缓存的存储***,包括:
一块或多块小容量、访问速度较快的固态硬盘设备,和
一块或多块大容量、访问速度较慢的传统磁盘设备,
上述设备通过标准PCI-E、SAS或SCSI接口之一与所述计算机的总线相连,并对所述计算机***可见。
上述存储***,其特征还在于:所述计算机的初始数据均存储在上述磁盘上,其中所述固态硬盘在***运行中动态缓存计算机最近更新数据,同时在初始状态下,所述固态硬盘的容量大小对***的正确性没有影响。
上述存储***,其特征也在于:在所述计算机的***在运行过程中,可以不定期动态增加固态硬盘的数目,提高***的性能;但已有的所述固态硬盘不可被动态移除。
此外,本发明还公开了一种用于对上述存储***进行管理调度的方法,所述方法包括:
所有的固态硬盘被格式化为分页结构,每个页面的长度与所述计算机***内外存交换页面相同,全部的所述固态硬盘上的页面被当作一个整体的队列进行顺序循环使用,当有脏页面从内存中排出时,首先将它写回所述队列的最后一个页面,而不是直接写回所述固态磁盘;
在内存中维护一个固态硬盘的地址映射表,当页面写回所述固态硬盘后,其页面号、固态硬盘偏移被作为一个二元组索引项,并维持在所述地址映射表中,而若一个页面被写回多次,则只有最后一次的索引项有效;
当需要访问外存数据时,首先在所述地址映射表中查看包含该页面号的索引项是否存在,如果存在,则访问相应索引项中的固态硬盘的偏移,如果不存在,则访问磁盘的地址。
上述管理调度方法还包括步骤:由于设备对计算机***可见,因此所述调度方法可以按实际***需求,在操作***、文件***、数据库以及具体应用程序等不同层次实现。
上述管理调度方法还包括:当所述整个计算机***发生崩溃并重启时,需要首先扫描所述固态硬盘,并根据其中所有缓存的所述页面重建地址映射表,再进行***的正常运行。
本发明解决了如何充分利用容量较小但性能较快的固态硬盘来优化计算机存储***响应能力的问题,具有的有益效果是:
1)消除了原来的计算机***中对磁盘的随机写操作,有效地降低了磁盘的寻道压力,将随机写转换为顺序写,提高了***性能。
2)对最近更新的数据利用固态硬盘进行缓存,充分发挥了固态硬盘的高速随机读能力,减少了原来的计算机***中对磁盘的随机读操作,进一步提高了***性能。
3)对固态硬盘的操作只有顺序读写以及随机读,避开了固态硬盘随机写较较弱所带来的性能瓶颈。
4)本发明中的***和方法的基础假设是标准的基于内外存的计算机结构以及固态硬盘的基础特征,不依赖于任何具体的固态硬盘型号、计算机指令体系、操作***等,也可以在操作***、文件***、数据库以及具体应用程序等各个层次灵活实现,具有充分的可移植性。
附图说明
图1是***整体框架图。
图2是地址映射表结构示意图。
图3是***脏页面回写的工作流程图。
图4是***访问页面的工作流程图。
图5是***后台回写线程的工作流程图。
具体实施方式
下面结合附图及具体实施方式对本发明作进一步的描述:
如图1所示,给出了整个存储***的结构示意图。其存储设备包含一块或多块固态硬盘设备,以及一块或多块传统磁盘设备,所有的设备通过PCI-E、SATA或SCSI等标准接口与计算机总线相连,设备的具体数量视总线的可扩展性决定。
存储***对外完全透明,所有的存储设备及其所属于的设备类型均被格式化为分页结构,且可被计算机识别,计算机以固定长度的页面作为内存和外存之间的基本交换单位,页面的长度为2的幂次数千字节,一般在1KB到32KB之间。计算机可以向任一存储设备请求某一偏移开始的页面内容,将页面读取到内存中,并访问其中的数据。
所有的固态硬盘上的页面被组织为一个循环的队列结构,初始状态下队列的首尾相等,当有页面写入时,队列尾向后移动,当越过边界时再回到队列头部。当队列尾接近队列头时,则说明所有固态硬盘的容量快要被使用完。
存储***在初始化时,其存储设备可以只包括磁盘,原始数据被加载到磁盘当中。当***开始运行后,可以不定期地向***中增加一块或多块固态硬盘设备,这些固态硬盘设备可以在计算机运行状态下增加,也可以先停止计算机的运行,增加固态硬盘设备并再次启动计算机,其过程视设备的具体类型而定,增加的固态硬盘也同样被分页后再***队列中。所有已有的固态硬盘设备在运行后不可再被移除。
同时***需要在内存中开辟一定区域,维护一张地址映射表,供管理调度使用。
如图2所示,给出了地址映射表的结构示意图。地址映射表是哈希表的结构,其哈希索引键值为页面号,其结点为(页面号、固态硬盘偏移)的二元组索引项。索引项中,页面号是指页面的物理标识,而固态硬盘偏移是指本页面在固态硬盘中的偏移,通过这一偏移量可 以迅速定位到相应的页面在固态硬盘中的位置。所有的索引项以页面号计算哈希值,属于同一个哈希桶的索引项以单项链表的形式被维护在一起。
如图3所示,该图为本发明提出的单个脏页面回写的工作流程,本流程由单个工作线程执行,其详细描述如下:
301将页面写回到固态硬盘队列尾的页面中,这个动作始终顺序写固态硬盘,可以良好的利用固态硬盘的高带宽。在多线程并发的工作环境下,本步骤对于队列尾位置的访问和修改需要临界区保护。
302此时检查队列尾与队列头之间的距离是否小于回写阈值。回写阈值一般要大于在回写线程一次工作的时间内,其它工作线程所回写的页面数目,否则在回写线程工作完成前,其它线程的回写请求需要被阻塞。
303如果302中所检查的距离小于回写阈值,此时回写线程被唤醒,将储存在队列中的脏页面写回硬盘。需要注意的是,回写线程回写的过程中,并不阻碍工作线程继续向固态硬盘中写回数据。
304检查本页面在地址映射表中是否已经有索引项,这个过程首先通过页面号计算出哈希值,再由相应的哈希索引入口进行单向链表的查找。由于页面号是一个非常有规律的整数值,因此良好的哈希函数可以将这个查找代价降到接近0(1)复杂度。
305如果找到了相应的索引项,则更新索引项中的相应偏移值。
306如果没有找到相应的索引项,则生成一个将的索引项,并将(页面号、偏移值)写入。
如图4所示,该图为本发明提出的读取页面的工作流程,本流程由单个工作线程执行,其详细描述如下:
401首先检查本页面在地址映射表中是否有索引项,这个过程也是先通过页面号计算出哈希值,再由相应的哈希索引入口进行单向链表的查找。
402如果索引项存在,则说明这个页面的最新版本在固态硬盘中,此时根据索引项的偏移读取固态硬盘中的数据。
403如果索引项不存在,则说明这个页面没有被回写到固态硬盘中过,此时根据页面号去磁盘读取数据。
如图5所示,该图为本发明所提出的回写线程的工作流程图,本流程由后台回写线程实现,其详细描述如下:
501获取当前固态硬盘队列尾的位置,这个动作需要在临界区保护下完成。
502将当前地址映射表中所有的索引项按页面号进行排序,由于索引项的长度很小,因此这个动作可以在内存中进行。
503检查排序后的索引项,如果两个索引项的页面号是连续的,即它们原始数据在磁盘中的位置是连续的,则把它们合并为一个更长的页面。
504按排序的索引项进行回写,其具体步骤为读取一个索引项,并从固态硬盘中读取偏移位置所在的数据,再回写到磁盘的相应页面上。可以看到这里对固态硬盘的访问序列是随机读,而对磁盘的访问特征是顺序写,都符合它们的性能特征。
回写过的索引项从地址映射表中被摘除。
505最后将当前队列的队列首更新为在501步骤中所获取的原队列尾,这个动作也在临界区保护下进行。由于在回写过程中仍然有工作线程会向队列中写入一些最新回写的页面,因此这些页面的索引项信息仍然需要被保留。
虽然附图和前述说明给出了本发明的实施例。但可以理解的是,本领域技术人员将理解可以将这种组件中的一个或多个组件很好地组合成单个功能组件。在替换方案中,特定的组件可以分成多个功能组件,或反之。同时,本发明的范围并不受这些特定实例的限制。多种变化都是可能的,例如结构等上的差异,而无论其是否在说明书中被清晰地给出。本发明的范围至少与所附权利要求给出的范围一样宽。
Claims (6)
1.一种利用固态硬盘作为计算机写缓存的存储***,包括:
一块或多块小容量、访问速度较快的固态硬盘设备,和
一块或多块大容量、访问速度较慢的传统磁盘设备,
上述设备通过标准PCI-E、SAS或SCSI接口之一与所述计算机的总线相连,并对所述计算机***可见。
2.根据权利要求1所述的存储***,其特征在于:
所述计算机的初始数据均存储在上述磁盘上,其中所述固态硬盘在***运行中动态缓存计算机最近更新数据,同时在初始状态下,所述固态硬盘的容量大小对***的正确性没有影响。
3.根据权利要求1所述的存储***,其特征在于:
在所述计算机的***在运行过程中,可以不定期动态增加固态硬盘的数目,提高***的性能;但已有的所述固态硬盘不可被动态移除。
4.一种对权利要求1-3中的任何一个进行管理调度的方法,其特征在于:
所有的固态硬盘被格式化为分页结构,每个页面的长度与所述计算机***内外存交换页面相同,全部的所述固态硬盘上的页面被当作一个整体的队列进行顺序循环使用,当有脏页面从内存中排出时,首先将它写回所述队列的最后一个页面,而不是直接写回所述固态磁盘;
在内存中维护一个固态硬盘的地址映射表,当页面写回所述固态硬盘后,其页面号、固态硬盘偏移被作为一个二元组索引项,并维持在所述地址映射表中,而若一个页面被写回多次,则只有最后一次的索引项有效;
当需要访问外存数据时,首先在所述地址映射表中查看包含该页面号的索引项是否存在,如果存在,则访问相应索引项中的固态硬盘的偏移,如果不存在,则访问磁盘的地址;
而当所有的固态硬盘设备的可用容量均低于预设的阈值时,由后台的回写线程将所述地址映射表中的索引项按页面号进行重排,将相邻的页面合并,并将它们按顺序写回磁盘中。
5.根据权利要求4所述的管理调度方法,其特征在于:
由于权利要求1-3中任意一个所涉及的设备对计算机***可见,因此所述调度方法可以按实际***需求,在操作***、文件***、数据库以及具体应用程序等不同层次实现。
6.根据4或5的管理调度方法,其特征在于:
当所述整个计算机***发生崩溃并重启时,需要首先扫描所述固态硬盘,并根据其中所有缓存的所述页面重建地址映射表,再进行***的正常运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103583535A CN102637147A (zh) | 2011-11-14 | 2011-11-14 | 利用固态硬盘作为计算机写缓存的存储***以及相应的管理调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103583535A CN102637147A (zh) | 2011-11-14 | 2011-11-14 | 利用固态硬盘作为计算机写缓存的存储***以及相应的管理调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102637147A true CN102637147A (zh) | 2012-08-15 |
Family
ID=46621548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103583535A Pending CN102637147A (zh) | 2011-11-14 | 2011-11-14 | 利用固态硬盘作为计算机写缓存的存储***以及相应的管理调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102637147A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257935A (zh) * | 2013-04-19 | 2013-08-21 | 华中科技大学 | 一种缓存管理方法及其应用 |
CN103279561A (zh) * | 2013-06-13 | 2013-09-04 | 三珠数码软件开发(上海)有限公司 | 一种提高数据库数据随机读写速度的方法 |
CN103678166A (zh) * | 2013-08-16 | 2014-03-26 | 记忆科技(深圳)有限公司 | 一种采用固态硬盘作为计算机高速缓存的实现方法及*** |
CN104298620A (zh) * | 2014-10-10 | 2015-01-21 | 张维加 | 一种耐擦写低能耗的外接计算机加速设备 |
CN107145449A (zh) * | 2016-03-01 | 2017-09-08 | 日本电气株式会社 | 存储设备和存储方法 |
WO2018028529A1 (zh) * | 2016-08-08 | 2018-02-15 | 北京忆恒创源科技有限公司 | 无锁io处理方法及其装置 |
CN107832013A (zh) * | 2017-11-03 | 2018-03-23 | 中国科学技术大学 | 一种管理固态硬盘映射表的方法 |
CN108228482A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储***中的缓存设备的方法和*** |
CN108664211A (zh) * | 2017-03-31 | 2018-10-16 | 深圳市中兴微电子技术有限公司 | 一种实现数据读写的方法及装置 |
CN109213420A (zh) * | 2017-06-29 | 2019-01-15 | 杭州海康威视数字技术股份有限公司 | 数据存储方法、装置及*** |
CN109446113A (zh) * | 2018-11-10 | 2019-03-08 | 苏州韦科韬信息技术有限公司 | 一种优化固态硬盘缓存管理方法 |
CN109918234A (zh) * | 2019-03-06 | 2019-06-21 | 苏州浪潮智能科技有限公司 | 一种基于ssd的元数据恢复方法、装置、设备及介质 |
CN111143236A (zh) * | 2019-12-07 | 2020-05-12 | 杭州安恒信息技术股份有限公司 | 一种内存映射实现队列及其数据读取和写入方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266573A (zh) * | 2008-04-29 | 2008-09-17 | 中国船舶重工集团公司第七〇九研究所 | 允许覆盖的闪存均匀磨损循环队列技术 |
-
2011
- 2011-11-14 CN CN2011103583535A patent/CN102637147A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266573A (zh) * | 2008-04-29 | 2008-09-17 | 中国船舶重工集团公司第七〇九研究所 | 允许覆盖的闪存均匀磨损循环队列技术 |
Non-Patent Citations (2)
Title |
---|
***: "《操作***》", 31 July 2004, 重庆大学出版社 * |
徐昶: "基于闪存的数据库存储引擎技术研究", 《万方学位论文数据库》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257935A (zh) * | 2013-04-19 | 2013-08-21 | 华中科技大学 | 一种缓存管理方法及其应用 |
CN103257935B (zh) * | 2013-04-19 | 2016-07-13 | 华中科技大学 | 一种缓存管理方法及其应用 |
CN103279561A (zh) * | 2013-06-13 | 2013-09-04 | 三珠数码软件开发(上海)有限公司 | 一种提高数据库数据随机读写速度的方法 |
CN103678166A (zh) * | 2013-08-16 | 2014-03-26 | 记忆科技(深圳)有限公司 | 一种采用固态硬盘作为计算机高速缓存的实现方法及*** |
CN104298620A (zh) * | 2014-10-10 | 2015-01-21 | 张维加 | 一种耐擦写低能耗的外接计算机加速设备 |
CN107145449A (zh) * | 2016-03-01 | 2017-09-08 | 日本电气株式会社 | 存储设备和存储方法 |
WO2018028529A1 (zh) * | 2016-08-08 | 2018-02-15 | 北京忆恒创源科技有限公司 | 无锁io处理方法及其装置 |
CN107704194A (zh) * | 2016-08-08 | 2018-02-16 | 北京忆恒创源科技有限公司 | 无锁io处理方法及其装置 |
CN108228482B (zh) * | 2016-12-21 | 2021-11-05 | 伊姆西Ip控股有限责任公司 | 用于管理存储***中的缓存设备的方法和*** |
CN108228482A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于管理存储***中的缓存设备的方法和*** |
US11403224B2 (en) | 2016-12-21 | 2022-08-02 | EMC IP Holding Company, LLC | Method and system for managing buffer device in storage system |
CN108664211A (zh) * | 2017-03-31 | 2018-10-16 | 深圳市中兴微电子技术有限公司 | 一种实现数据读写的方法及装置 |
CN109213420A (zh) * | 2017-06-29 | 2019-01-15 | 杭州海康威视数字技术股份有限公司 | 数据存储方法、装置及*** |
CN107832013A (zh) * | 2017-11-03 | 2018-03-23 | 中国科学技术大学 | 一种管理固态硬盘映射表的方法 |
CN107832013B (zh) * | 2017-11-03 | 2019-10-25 | 中国科学技术大学 | 一种管理固态硬盘映射表的方法 |
CN109446113A (zh) * | 2018-11-10 | 2019-03-08 | 苏州韦科韬信息技术有限公司 | 一种优化固态硬盘缓存管理方法 |
CN109918234B (zh) * | 2019-03-06 | 2020-07-07 | 苏州浪潮智能科技有限公司 | 一种基于ssd的元数据恢复方法、装置、设备及介质 |
CN109918234A (zh) * | 2019-03-06 | 2019-06-21 | 苏州浪潮智能科技有限公司 | 一种基于ssd的元数据恢复方法、装置、设备及介质 |
CN111143236A (zh) * | 2019-12-07 | 2020-05-12 | 杭州安恒信息技术股份有限公司 | 一种内存映射实现队列及其数据读取和写入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102637147A (zh) | 利用固态硬盘作为计算机写缓存的存储***以及相应的管理调度方法 | |
CN102012791B (zh) | 基于Flash的数据存储PCIE板卡 | |
CN101236530B (zh) | 高速缓存替换策略的动态选择方法 | |
CN101907978B (zh) | 基于固态硬盘和磁性硬盘的混合存储***及存储方法 | |
CN106066890B (zh) | 一种分布式高性能数据库一体机*** | |
CN106445405B (zh) | 一种面向闪存存储的数据访问方法及其装置 | |
US20100235568A1 (en) | Storage device using non-volatile memory | |
CN105630700B (zh) | 一种具有二级缓存结构的存储***及读写方法 | |
WO2010066098A1 (zh) | 用较大容量dram参与闪存介质管理构建高速固态存储盘的方法及装置 | |
US20180107601A1 (en) | Cache architecture and algorithms for hybrid object storage devices | |
CN103838676B (zh) | 数据存储***、数据存储方法及pcm桥 | |
CN104903864A (zh) | 选择性错误校正码和存储器访问粒度切换 | |
JP2013156977A (ja) | 冗長キャッシュデータのエラスティックキャッシュ | |
CN104765575A (zh) | 信息存储处理方法 | |
CN103530237A (zh) | 一种固态盘阵列的垃圾回收方法 | |
CN103076993A (zh) | 一种密集型***中的存储***及方法 | |
CN106469123A (zh) | 一种基于nvdimm的写缓存分配、释放方法及其装置 | |
US9507534B2 (en) | Home agent multi-level NVM memory architecture | |
CN101414244A (zh) | 一种网络环境下处理数据的方法、装置和*** | |
Huang et al. | SSDs Striking Back: The Storage Jungle and Its Implications to Persistent Indexes. | |
JPH11288387A (ja) | ディスクキャッシュ装置 | |
Xie et al. | MICRO: A multilevel caching-based reconstruction optimization for mobile storage systems | |
CN202795333U (zh) | 服务器中磁盘冗余阵列高速读写控制电路结构 | |
Wu et al. | {IDO}: Intelligent Data Outsourcing with Improved {RAID} Reconstruction Performance in {Large-Scale} Data Centers | |
CN102262511B (zh) | 用于raid的缓存管理***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice |
Addressee: Tianjin Shenzhou General Data Co., Ltd. Document name: Notification that Application Deemed to be Withdrawn |
|
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120815 |