CN102521147A - 一种使用高速非易失介质做缓存的管理方法 - Google Patents

一种使用高速非易失介质做缓存的管理方法 Download PDF

Info

Publication number
CN102521147A
CN102521147A CN2011103643112A CN201110364311A CN102521147A CN 102521147 A CN102521147 A CN 102521147A CN 2011103643112 A CN2011103643112 A CN 2011103643112A CN 201110364311 A CN201110364311 A CN 201110364311A CN 102521147 A CN102521147 A CN 102521147A
Authority
CN
China
Prior art keywords
buffer memory
state hard
solid state
hard disc
region
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.)
Granted
Application number
CN2011103643112A
Other languages
English (en)
Other versions
CN102521147B (zh
Inventor
袁清波
许建卫
刘新春
邵宗有
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN201110364311.2A priority Critical patent/CN102521147B/zh
Publication of CN102521147A publication Critical patent/CN102521147A/zh
Application granted granted Critical
Publication of CN102521147B publication Critical patent/CN102521147B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种使用高速非易失介质做缓存的管理方法,使用固态硬盘做为缓存设备,每个缓存设备可以被多个磁盘共享,每个磁盘只能使用一个缓存设备;所述缓存设备划分region结构,缓存设备与磁盘之间采用组映射相连;缓存设备划分为两部分,前面部分存储内存中的region数据结构,后面部分为缓存。本发明采取将元数据实时写入固态硬盘的策略来解决这个问题,在脏数据写进固态硬盘的同时,管理这些数据的元数据也被同步到固态硬盘的指定位置,只要重启时读出这些元数据即可将所有缓存在固态硬盘而没有写入传统磁盘的数据读出,从而所有的数据在***崩溃和掉电的情况下也能保证不丢失。

Description

一种使用高速非易失介质做缓存的管理方法
技术领域
本发明涉及磁盘缓存管理技术,具体来说,涉及将慢速磁盘的数据缓存在高速非易失介质中的一种管理策略。
背景技术
磁盘缓存分为读缓存和写缓存。读缓存是指,操作***为已读取的文件数据,在内存较空闲的情况下留在内存空间中,当下次软件或用户再次读取同一文件时就不必重新从磁盘上读取,从而提高速率。写缓存实际上就是将要写入磁盘的数据先保存于***为写缓存分配的内存空间中,当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际的磁盘操作,有效的保护磁盘免于重复的读写操作而导致的损坏,也能减少写入所需的时间。根据写入方式的不同,有写通式和回写式两种。写通式在读硬盘数据时,***先检查请求指令,看看所要的数据是否在缓存中,在的话就由缓存送出响应的数据,这个过程称为命中。这样***就不必访问硬盘中的数据,由于SDRAM的速率比磁介质快很多,因此也就加快了数据传输的速率。回写式就是在写入硬盘数据时也在缓存中找,找到就由缓存就数据写入盘中,多数硬盘都是采用的回写式缓存,这样就大大提高了性能。
然而,采用如内存这样的易失性设备,在***崩溃或者掉电以后,缓存在高速设备上的数据将会丢失,这对类似于数据库这样的对数据安全性要求很高的应用程序来说是不可忍受的。
发明内容
本发明使用高速非易失介质替代易失性高速设备来缓存慢速的磁盘数据,即使在***崩溃或者掉电的情况下,缓存的数据也不会丢失,通过约定的格式在重启后可以将缓存的数据读出。
一种使用高速非易失介质做缓存的管理方法,使用固态硬盘做为缓存设备,每个缓存设备可以被多个磁盘共享,每个磁盘只能使用一个缓存设备;所述缓存设备划分region结构,缓存设备与磁盘之间采用组映射相连;缓存设备划分为两部分,前面部分存储内存中的region数据结构,后面部分为缓存。
优选的,所述固态硬盘可以组成raid磁盘阵列扩大缓存容量及提高性能。
优选的,所述region大小为64KB~1MB,且为2的幂,所述region在设备运行后不能被更改。
优选的,所述缓存设备与磁盘之间采用组映射相连时,默认每组16个region,可以通过宏更改
优选的,所述缓存设备在读操作时,根据bio里记录的地址信息找到对应的region数据结构,然后通过region数据结构查看是否数据缓存在固态硬盘中,如果是,则直接从固态硬盘读出;否则,从磁盘读出并缓存到固态硬盘中。
优选的,所述缓存设备在写操作时,根据bio里记录的地址信息找到对应的region数据结构,如果有空闲的固态硬盘空间,则直接将数据写往固态硬盘;否则,写往传统硬盘;如果写往固态硬盘则同时更新对应的region数据结构元数据信息到固态硬盘。
优选的,所述缓存设备在***崩溃后掉电的情况下,当***故障恢复后,会扫描存放在固态硬盘内的元数据信息,并根据这些信息恢复之前的所有环境,独处缓存在固态硬盘中的脏数据。
本发明采取将元数据实时写入固态硬盘的策略来解决这个问题,在脏数据写进固态硬盘的同时,管理这些数据的元数据也被同步到固态硬盘的指定位置,只要重启时读出这些元数据即可将所有缓存在固态硬盘而没有写入传统磁盘的数据读出,从而所有的数据在***崩溃和掉电的情况下也能保证不丢失。
附图说明
图1是本发明的整体结构示意图
图2是本发明的映射关系示意图
具体实施方式
本发明利用Linux的Device Mapper机制来管理多个块设备,以其中的高速设备作为低速设备的缓存来建立一个两级存储***,以较低的成本获得较高的存储性能,整体结构如图1所示。
本发明将所管理的设备分为缓存设备和磁盘设备,其中缓存设备使用性能较高的固态硬盘,实际使用中可用多块固态硬盘组成RAID以提高缓存的性能。缓存设备和磁盘设备都是对用户不可见的,但是本发明会向用户提供与磁盘设备个数相同、特性相同的伪设备。本发明可以管理多个缓存设备和磁盘设备,缓存设备与磁盘设备是一对多的关系,即一个缓存设备可以被多个磁盘设备共享,但是任何一个磁盘设备只可使用一个缓存设备。至于设备,具体则对应于磁盘分区,即Linux下的块设备文件/dev/sda1等。
之所以选择固态硬盘而不是直接使用内存等更高速的设备,是因为固态硬盘上的数据在***崩溃或掉电后不会丢失,而且固态硬盘的容量更大,可以缓存更多的数据。但是,虽然缓存的数据可以保存在固态硬盘中,但是对这些数据的管理元数据却必须采取一定的措施才能获得,否则虽然数据存在但是我们却无法分析这些数据的真实含义。
本发明对磁盘作缓存,本身的思路比较直观,类似于处理器cache,将缓存设备按固定大小划分为许多region,一般地,region的大小为64K~1M,且为2的幂,一旦运行不可再动态更改。region是缓存设备管理的基本单位,可类比处理器中的cache line。每个region维护相应的状态、必要的锁、tag等信息。region相对于文件***的请求是比较大的,文件***IO的最小单位一般是512字节(称之为sector),因此文件***的一次IO更多可能是只覆盖了某个region的部分区域,鉴于此,每个region还需要维护若干位图,用来标记其中各个sector的状态。缓存设备与磁盘设备的映射采用组相联,默认一组16个region,可对相关宏进行调整。
管理数据映射关系的数据结构(struct region)位于内存中,而内存是易失性设备,在***崩溃或掉电后将会丢失这些数据结构。虽然固态硬盘上的数据实际上并没有丢失,但是因为管理这些数据的struct region丢失,所以实际上数据也就丢失了。为了解决这个问题,本发明采用如图2所示的结构。固态硬盘分为两部分,前一部分保存内存中的struct region数据结构,后一部分才是实际缓存的数据。这样,当***崩溃或掉电后可以通过读取存放在固态硬盘前一部分的struct region来找到存放在后一部分的数据,并重建整个文件***环境,从而保证缓存的数据不丢失。实际应用时不必将任何对struct region的修改都同步到固态硬盘,这样开销较大。可以仅在数据发生改变时再修改struct region,特别是要记录那些只缓存在固态硬盘而没有在传统磁盘的数据的变化情况。
读操作。根据bio里记录的地址信息找到对应的struct region,然后通过struct region查看是否数据缓存在固态硬盘中,如果是,则直接从固态硬盘读出;否则,从磁盘读出并缓存到固态硬盘中。
写操作。根据bio里记录的地址信息找到对应的struct region,如果有空闲的固态硬盘空间,则直接将数据写往固态硬盘;否则,写往传统硬盘。如果写往固态硬盘则同时更新对应的struct region元数据信息到固态硬盘。
恢复操作。在***崩溃后掉电的情况下,当***故障恢复后,本发明会扫描存放在固态硬盘内的元数据信息,并根据这些信息恢复之前的所有环境,此时缓存在固态硬盘中的脏数据都可以完整地读出。

Claims (7)

1.一种使用高速非易失介质做缓存的管理方法,其特征在于:使用固态硬盘做为缓存设备,每个缓存设备可以被多个磁盘共享,每个磁盘只能使用一个缓存设备;所述缓存设备划分region结构,缓存设备与磁盘之间采用组映射相连;缓存设备划分为两部分,前面部分存储内存中的region数据结构,后面部分为缓存。
2.如权利要求1所述的方法,其特征在于:所述固态硬盘可以组成raid磁盘阵列扩大缓存容量及提高性能。
3.如权利要求1所述的方法,其特征在于:所述region大小为64KB~1MB,且为2的幂,所述region在设备运行后不能被更改。
4.如权利要求1所述的方法,其特征在于:所述缓存设备与磁盘之间采用组映射相连时,默认每组16个region,可以通过宏更改。
5.如权利要求1所述的方法,其特征在于:所述缓存设备在读操作时,根据bio里记录的地址信息找到对应的region数据结构,然后通过region数据结构查看是否数据缓存在固态硬盘中,如果是,则直接从固态硬盘读出;否则,从磁盘读出并缓存到固态硬盘中。
6.如权利要求1所述的方法,其特征在于:所述缓存设备在写操作时,根据bio里记录的地址信息找到对应的region数据结构,如果有空闲的固态硬盘空间,则直接将数据写往固态硬盘;否则,写往传统硬盘;如果写往固态硬盘则同时更新对应的region数据结构元数据信息到固态硬盘。
7.如权利要求1所述的方法,其特征在于:所述缓存设备在***崩溃后掉电的情况下,当***故障恢复后,会扫描存放在固态硬盘 内的元数据信息,并根据这些信息恢复之前的所有环境,独处缓存在固态硬盘中的脏数据。 
CN201110364311.2A 2011-11-17 2011-11-17 一种使用高速非易失介质做缓存的管理方法 Active CN102521147B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110364311.2A CN102521147B (zh) 2011-11-17 2011-11-17 一种使用高速非易失介质做缓存的管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110364311.2A CN102521147B (zh) 2011-11-17 2011-11-17 一种使用高速非易失介质做缓存的管理方法

Publications (2)

Publication Number Publication Date
CN102521147A true CN102521147A (zh) 2012-06-27
CN102521147B CN102521147B (zh) 2015-03-25

Family

ID=46292077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110364311.2A Active CN102521147B (zh) 2011-11-17 2011-11-17 一种使用高速非易失介质做缓存的管理方法

Country Status (1)

Country Link
CN (1) CN102521147B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945207A (zh) * 2012-10-26 2013-02-27 浪潮(北京)电子信息产业有限公司 一种块级数据的缓存管理方法及***
CN103345450A (zh) * 2013-06-26 2013-10-09 浙江宇视科技有限公司 一种动态调整冗余raid阵列重建的装置和方法
CN103678166A (zh) * 2013-08-16 2014-03-26 记忆科技(深圳)有限公司 一种采用固态硬盘作为计算机高速缓存的实现方法及***
CN103744796A (zh) * 2013-09-29 2014-04-23 记忆科技(深圳)有限公司 采用uSSD实现缓存的方法及其***
CN103744611A (zh) * 2013-12-17 2014-04-23 记忆科技(深圳)有限公司 基于固态硬盘为缓存的计算机***及缓存加速方法
CN103827837A (zh) * 2012-08-22 2014-05-28 华为技术有限公司 访问固态硬盘空间的方法、装置及***
CN104050014A (zh) * 2014-05-23 2014-09-17 上海爱数软件有限公司 基于虚拟化平台的高效存储管理方法
CN104793892A (zh) * 2014-01-20 2015-07-22 上海优刻得信息科技有限公司 一种加速磁盘随机输入输出(io)读写的方法
CN104866438A (zh) * 2014-02-20 2015-08-26 联想(北京)有限公司 存储装置、存储装置控制方法和电子设备
CN105094711A (zh) * 2015-09-22 2015-11-25 浪潮(北京)电子信息产业有限公司 一种实现写时复制文件***的方法及装置
CN105302656A (zh) * 2015-10-21 2016-02-03 浪潮(北京)电子信息产业有限公司 一种数据测试方法及装置
CN106443740A (zh) * 2016-09-13 2017-02-22 上海顺砾智能科技有限公司 应用于无人机的快速定位***及方法
CN106528001A (zh) * 2016-12-05 2017-03-22 北京航空航天大学 一种基于非易失性存储器和软件raid的缓存***
CN107229573A (zh) * 2017-05-22 2017-10-03 上海天玑数据技术有限公司 一种基于固态硬盘的弹性高可用缓存方法
CN107402724A (zh) * 2017-07-31 2017-11-28 郑州云海信息技术有限公司 一种SSD中Journal元数据的保存方法及***
CN107402819A (zh) * 2017-08-04 2017-11-28 郑州云海信息技术有限公司 一种客户端缓存的管理方法及***
CN107480074A (zh) * 2017-08-31 2017-12-15 郑州云海信息技术有限公司 一种缓存方法、装置及电子设备
CN107704400A (zh) * 2017-10-12 2018-02-16 郑州云海信息技术有限公司 一种面向非易失存储的页缓存方法
CN108829835A (zh) * 2018-06-19 2018-11-16 深圳市瑞驰信息技术有限公司 一种新型高速缓存文件***架构
CN113312300A (zh) * 2021-06-17 2021-08-27 上海天玑科技股份有限公司 一种融合数据传输和存储的非易失内存缓存方法
CN115437853A (zh) * 2022-11-07 2022-12-06 四川省华存智谷科技有限责任公司 ***异常重启下的缓存数据保护方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860083A (en) * 1996-11-26 1999-01-12 Kabushiki Kaisha Toshiba Data storage system having flash memory and disk drive
CN1465009A (zh) * 2000-06-23 2003-12-31 英特尔公司 与大容量存储装置集成的非易失性高速缓冲存储器
CN1527973A (zh) * 2000-06-23 2004-09-08 英特尔公司 非易失性高速缓存
CN201698255U (zh) * 2010-05-14 2011-01-05 上海浙大网新易得科技发展有限公司 具有磁盘高速读写功能的服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860083A (en) * 1996-11-26 1999-01-12 Kabushiki Kaisha Toshiba Data storage system having flash memory and disk drive
CN1465009A (zh) * 2000-06-23 2003-12-31 英特尔公司 与大容量存储装置集成的非易失性高速缓冲存储器
CN1527973A (zh) * 2000-06-23 2004-09-08 英特尔公司 非易失性高速缓存
CN201698255U (zh) * 2010-05-14 2011-01-05 上海浙大网新易得科技发展有限公司 具有磁盘高速读写功能的服务器

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103827837B (zh) * 2012-08-22 2016-08-03 华为技术有限公司 访问固态硬盘空间的方法、装置及***
CN103827837A (zh) * 2012-08-22 2014-05-28 华为技术有限公司 访问固态硬盘空间的方法、装置及***
CN102945207A (zh) * 2012-10-26 2013-02-27 浪潮(北京)电子信息产业有限公司 一种块级数据的缓存管理方法及***
CN103345450A (zh) * 2013-06-26 2013-10-09 浙江宇视科技有限公司 一种动态调整冗余raid阵列重建的装置和方法
CN103345450B (zh) * 2013-06-26 2016-11-02 浙江宇视科技有限公司 一种动态调整冗余raid阵列重建的装置和方法
CN103678166A (zh) * 2013-08-16 2014-03-26 记忆科技(深圳)有限公司 一种采用固态硬盘作为计算机高速缓存的实现方法及***
CN103744796A (zh) * 2013-09-29 2014-04-23 记忆科技(深圳)有限公司 采用uSSD实现缓存的方法及其***
CN103744611A (zh) * 2013-12-17 2014-04-23 记忆科技(深圳)有限公司 基于固态硬盘为缓存的计算机***及缓存加速方法
CN104793892B (zh) * 2014-01-20 2019-04-19 优刻得科技股份有限公司 一种加速磁盘随机输入输出(io)读写的方法
CN104793892A (zh) * 2014-01-20 2015-07-22 上海优刻得信息科技有限公司 一种加速磁盘随机输入输出(io)读写的方法
CN104866438A (zh) * 2014-02-20 2015-08-26 联想(北京)有限公司 存储装置、存储装置控制方法和电子设备
CN104050014B (zh) * 2014-05-23 2017-12-29 上海爱数信息技术股份有限公司 基于虚拟化平台的高效存储管理方法
CN104050014A (zh) * 2014-05-23 2014-09-17 上海爱数软件有限公司 基于虚拟化平台的高效存储管理方法
CN105094711A (zh) * 2015-09-22 2015-11-25 浪潮(北京)电子信息产业有限公司 一种实现写时复制文件***的方法及装置
CN105094711B (zh) * 2015-09-22 2018-05-18 浪潮(北京)电子信息产业有限公司 一种实现写时复制文件***的方法及装置
CN105302656B (zh) * 2015-10-21 2018-09-04 浪潮(北京)电子信息产业有限公司 一种数据测试方法及装置
CN105302656A (zh) * 2015-10-21 2016-02-03 浪潮(北京)电子信息产业有限公司 一种数据测试方法及装置
CN106443740A (zh) * 2016-09-13 2017-02-22 上海顺砾智能科技有限公司 应用于无人机的快速定位***及方法
CN106528001A (zh) * 2016-12-05 2017-03-22 北京航空航天大学 一种基于非易失性存储器和软件raid的缓存***
CN106528001B (zh) * 2016-12-05 2019-08-23 北京航空航天大学 一种基于非易失性存储器和软件raid的缓存***
CN107229573A (zh) * 2017-05-22 2017-10-03 上海天玑数据技术有限公司 一种基于固态硬盘的弹性高可用缓存方法
CN107229573B (zh) * 2017-05-22 2020-04-28 上海天玑数据技术有限公司 一种基于固态硬盘的弹性高可用缓存方法
CN107402724A (zh) * 2017-07-31 2017-11-28 郑州云海信息技术有限公司 一种SSD中Journal元数据的保存方法及***
CN107402724B (zh) * 2017-07-31 2020-07-24 苏州浪潮智能科技有限公司 一种SSD中Journal元数据的保存方法及***
CN107402819A (zh) * 2017-08-04 2017-11-28 郑州云海信息技术有限公司 一种客户端缓存的管理方法及***
CN107480074A (zh) * 2017-08-31 2017-12-15 郑州云海信息技术有限公司 一种缓存方法、装置及电子设备
CN107480074B (zh) * 2017-08-31 2020-02-07 郑州云海信息技术有限公司 一种缓存方法、装置及电子设备
CN107704400A (zh) * 2017-10-12 2018-02-16 郑州云海信息技术有限公司 一种面向非易失存储的页缓存方法
CN108829835A (zh) * 2018-06-19 2018-11-16 深圳市瑞驰信息技术有限公司 一种新型高速缓存文件***架构
CN113312300A (zh) * 2021-06-17 2021-08-27 上海天玑科技股份有限公司 一种融合数据传输和存储的非易失内存缓存方法
CN113312300B (zh) * 2021-06-17 2024-05-03 上海天玑科技股份有限公司 一种融合数据传输和存储的非易失内存缓存方法
CN115437853A (zh) * 2022-11-07 2022-12-06 四川省华存智谷科技有限责任公司 ***异常重启下的缓存数据保护方法及***
CN115437853B (zh) * 2022-11-07 2023-03-10 四川省华存智谷科技有限责任公司 ***异常重启下的缓存数据保护方法及***

Also Published As

Publication number Publication date
CN102521147B (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
CN102521147B (zh) 一种使用高速非易失介质做缓存的管理方法
US9940261B2 (en) Zoning of logical to physical data address translation tables with parallelized log list replay
US10289556B2 (en) Techniques to perform power fail-safe caching without atomic metadata
US10521131B2 (en) Storage apparatus and storage control apparatus
CN106528001B (zh) 一种基于非易失性存储器和软件raid的缓存***
US10061704B2 (en) Systems and methods for managing cache of a data storage device
US9798623B2 (en) Using cache to manage errors in primary storage
US11144224B2 (en) Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
CN109739696B (zh) 一种双控存储阵列固态硬盘缓存加速方法
US20170277450A1 (en) Lockless parity management in a distributed data storage system
WO2018090255A1 (zh) 内存访问技术
CN102063386B (zh) 一种单载体多目标的缓存***的缓存管理方法
US20140237190A1 (en) Memory system and management method therof
CN110502188A (zh) 一种基于数据库读写性能的数据存储方法与装置
JP7318367B2 (ja) ストレージ制御装置及びストレージ制御プログラム
CN105786721A (zh) 一种内存地址映射管理方法及处理器
US20210081321A1 (en) Method and apparatus for performing pipeline-based accessing management in a storage server
CN101377788A (zh) 一种机群文件***中缓存管理的方法及***
CN101807212B (zh) 嵌入式文件***的缓存方法及嵌入式文件***的缓存装置
JP4734432B2 (ja) データ記憶システム
CN102362263A (zh) Ssd控制器与ssd控制器的操作方法
CN102160038A (zh) 管理非易失性磁盘高速缓存的方法和设备
Yang et al. A shingle-aware persistent cache management scheme for DM-SMR disks
US8108605B2 (en) Data storage system and cache data—consistency assurance method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220725

Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing

Patentee after: Dawning Information Industry (Beijing) Co.,Ltd.

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 100084 Beijing Haidian District City Mill Street No. 64

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.