CN102043593B - 一种基于Region的磁盘外置cache管理方法 - Google Patents
一种基于Region的磁盘外置cache管理方法 Download PDFInfo
- Publication number
- CN102043593B CN102043593B CN 201010598566 CN201010598566A CN102043593B CN 102043593 B CN102043593 B CN 102043593B CN 201010598566 CN201010598566 CN 201010598566 CN 201010598566 A CN201010598566 A CN 201010598566A CN 102043593 B CN102043593 B CN 102043593B
- Authority
- CN
- China
- Prior art keywords
- region
- disk
- buffer memory
- data
- user
- 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.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种基于Region的磁盘外置cache管理方法,将外置缓存设备按固定大小划分为若干Region,每个Region维护相应的状态、锁、tag和若干位图;包括读操作和写操作。本发明在用户与外置Cache直接传送的是一个个的bio,而在外置Cache与磁盘之间除了可以以bio为单位传送外,还可以直接传送整个Region,由于整个Region在物理磁盘是连续的,可以极大提高IO效率。
Description
技术领域
本发明涉及磁盘读写优化领域,具体涉及一种通过外置高速缓存的方式提高磁盘IO性能的方法。
背景技术
自从磁盘被IBM发明以来一直是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成,这些碟片外覆盖有铁磁性材料。绝大多数磁盘都是固定磁盘,被永久性地密封固定在磁盘驱动器中。机械磁盘以其大容量、低价格等优势一直在计算机系统中占有一席之地,但是其内部的机械部件却限制了速度的进一步提升,特别是对于不连续的IO数据访问,性能更是远远跟不上内存的发展。所以,磁盘的访问速度一直是IO密集型应用程序的瓶颈。
为了提高磁盘的读写性能,磁盘厂商在磁盘内部加入了缓存(Cachememory),Cache是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。硬盘的缓存主要起三种作用:一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁头读写的速度,所以能够达到明显改善性能的目的;二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——如果数据还在缓存里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地;第三个作用就是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的,硬盘内部的缓存会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。
缓存容量的大小不同品牌、不同型号的产品各不相同,早期的硬盘缓存基本都很小,只有几百KB,已无法满足用户的需求。2MB和8MB缓存是现今主流硬盘所采用,而在服务器或特殊应用领域中还有缓存容量更大的产品,甚至达到了16MB、64MB等。大容量的缓存虽然可以在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速度,但并不意味着缓存越大就越出众。缓存的应用存在一个算法的问题,即便缓存容量很大,而没有一个高效率的算法,那将导致应用中缓存数据的命中率偏低,无法有效发挥出大容量缓存的优势。算法是和缓存容量相辅相成,大容量的缓存需要更为有效率的算法,否则性能会大大折扣,从技术角度上说,高容量缓存的算法是直接影响到硬盘性能发挥的重要因素,更大容量缓存是未来硬盘发展的必然趋势。
受限于磁盘的硬件结构,其上的缓存容量不可能特别大,所以如果将磁盘Cache从磁盘内部移动到外部将很容易解决容量的问题。因为不受空间的限制,外置磁盘Cache可以达到几个GB,甚至几十GB的大小,使用如此大容量的缓存将会大大提高整个系统的IO性能。但是,如何管理外置磁盘Cache与磁盘之间的数据交换是一个必须解决的问题。
发明内容
为解决上述问题,本发明提出一种基于Region的外置磁盘Cache管理策略。
一种基于Region的磁盘外置cache管理方法,将外置缓存设备按固定大小划分为若干Region,每个Region维护相应的状态、锁、tag和若干位图;
其中,读操作流程为:
A、若用户不允许使用缓存,则直接重定向至磁盘设备,读完直接返回;
B、若用户允许缓存,则要么从缓存设备读数据,要么从磁盘设备读数据并将数据缓存到磁盘外置Cache;
C、若用户另外设置了预取命令,则除了重定向至磁盘读取用户需要的数据外,还要尝试预取整个Region,首先通过当前数据包含的最后一个块在Region中的位置,确定要缓存当前Region,还是相邻的下一个Region;若数据在Region比较靠前的位置,则预取本Region,若数据在Region比较靠后的位置,则预取紧邻的下一个Region;
写操作的流程为:
D、若用户不允许使用缓存,则直接重定向至磁盘设备;
E、若用户仅允许对读操作进行缓存,此时对应的Region中可能存在读缓存的数据,需要将其无效掉,设置状态为INVAL,然后重定向至磁盘设备;
F、若用户允许对写操作进行缓存,但是此操作的方式为write through方式,则直接将数据写至磁盘;
G、若用户允许对写操作进行缓存,且操作方式不是write through,则分配一个空闲Region块,并将数据写入磁盘外置Cache,同时Region的状态变为DIRTY。
本发明的一种优选技术方案在于:多数情况下,写操作都是无条件地将Region状态改为DIRTY,并开始写入磁盘外置Cache的相应空间,并且在结束的时候不需要改变状态。
本发明的另一优选技术方案在于:磁盘地址空间与cache地址空间采用组相连映射。
本发明在用户与外置Cache直接传送的是一个个的bIO,而在外置Cache与磁盘之间除了可以以bIO为单位传送外,还可以直接传送整个Region,由于整个Region在物理磁盘是连续的,可以极大提高IO效率。
附图说明
图1基于Region的外置磁盘Cache管理的体系结构
图2磁盘地址与Cache地址映射关系
图3地址变换过程
具体实施方式
本发明将缓存设备按固定大小划分为许多Region,一般地,Region的大小为64K到1M,且为2的幂次方,在系统运行前确定,一旦运行不可再动态更改。这里的Region是缓存设备管理的基本单位,可类比处理器中的Cache Line。每个Region维护相应的状态、必要的锁、tag等信息。Region相对于文件系统的请求是比较大的,文件系统IO的最小单位一般是512字节(称之为sector),因此文件系统的一次IO操作更多可能是只覆盖了某个Region的部分区域,鉴于此,每个Region还需要维护若干位图,用来标记其中各个sector的状态。基于Region的外置磁盘Cache管理的体系结构如图1所示,用户向操作系统发出的读写请求最终转化为一个一个的bIO被外置磁盘Cache管理模块捕获,每一个bIO都是一段连续的磁盘空间数据,在没有外置Cache时,这些请求直接从磁盘空间读入;在加入磁盘Cache层后,需要首先检查是否在此处有备份,为了方便管理,整个模块以多个bIO组织成一个Region的形式管理。
在实现过程中,可以通过操作系统的Device Mapper技术将高速的存储设备作为磁盘的Cache,逻辑上所有高速存储设备和磁盘都被划分为若干个Region,因为高速存储设备的容量要小于磁盘,所以作为Cache的高速存储设备只能存一部分的磁盘Region。用户发出的IO请求仅包含磁盘块的地址信息,为了使用磁盘外置Cache必须找到一种合适的地址映射方式,它应该可以快速地从用户提供的磁盘地址信息迅速找到对应的磁盘外置Cache地址,本发明的地址映射方法如图2所示。
磁盘的地址空间数倍于外置Cache的地址空间,两者之间采用组相连的方式一一映射,每组包含16个Region,磁盘中的一个组唯一地对应于磁盘外置Cache的一个组,但是组内不是一一对应的关系,任何一个磁盘组内的Region可以对应于相应组的任何一个Region,这样既可以快速地找到对应的地址,也减少了地址冲突,充分利用了所有的磁盘Cache。图中区0和区1都分别对应于整个磁盘外置Cache,区的个数是磁盘地址空间的大小与Cache地址空间的大小的商。这样,给出一个磁盘块地址,其对应的磁盘外置Cache块的地址的求解方式如图3所示。磁盘地址的组织方式是:区号、组号、组内Region号和块号,而磁盘外置Cache地址的组织方式是:组号、组内Region号和块号。通过磁盘的组号可以查看之前保存的块表,里面含有已经建立映射的两种地址的对应信息:区号和组内Region号,如果查表得到的这两者的信息与已知的磁盘地址的两者的信息一致,那么即表示地址命中,可以查表得到其对应的Cache地址的组内Region号。此时,磁盘地址的组号、Cache组内Region号和磁盘地址的块号组成了磁盘外置Cache的完整地址信息。
在定位好磁盘外置Cache的位置信息后,即可以对数据进行读取操作,其中读操作的详细流程为:
1)如果用户不允许使用缓存,那么直接重定向至磁盘设备,读完直接返回即可,不需要做进一步的动作;
2)如果用户允许缓存,那么这时要么从缓存设备读数据,要么从磁盘设备读数据并将数据缓存到磁盘外置Cache;
3)如果用户另外设置了预取命令,那么除了重定向至磁盘读取用户需要的数据外,还要尝试预取整个Region,首先通过当前数据包含的最后一个块在Region中的位置,确定要缓存当前Region,还是相邻的下一个Region。如果数据在Region比较靠前的位置,那么预取本Region是合适的,因为接下来可能就需要本Region后面的数据;但是,如果数据在Region比较靠后的位置,那么预取紧邻的下一个Region则是比较合适的选择。
大多数情况下,写操作都是无条件地将Region状态改为DIRTY,并开始写入磁盘外置Cache的相应空间,并且在结束的时候不需要改变状态,其操作过程为:
1)如果用户不允许使用缓存,那么直接重定向至磁盘设备;
2)如果用户仅允许对读操作进行缓存,此时对应的Region中可能存在读缓存的数据,需要将其无效掉,设置状态为INVAL,然后重定向至磁盘设备;
3)如果用户允许对写操作进行缓存,但是此操作的方式为write through方式,那么直接将数据写至磁盘;
4)如果用户允许对写操作进行缓存,且操作方式不是write through,那么,分配一个空闲Region块,并将数据写入磁盘外置Cache,同时Region的状态变为DIRTY。
Claims (2)
1.一种基于Region的磁盘外置cache管理方法,其特征在于:将外置缓存设备按固定大小划分为若干Region,每个Region维护相应的状态、锁、tag和若干位图;
其中,读操作流程为:
A、若用户不允许使用缓存,则直接重定向至磁盘设备,读完直接返回;
B、若用户允许缓存,则要么从缓存设备读数据,要么从磁盘设备读数据并将数据缓存到磁盘外置Cache;
C、若用户另外设置了预取命令,则除了重定向至磁盘读取用户需要的数据外,还要尝试预取整个Region,首先通过当前数据包含的最后一个块在Region中的位置,确定要缓存当前Region,还是相邻的下一个Region;若数据在Region比较靠前的位置,则预取本Region,若数据在Region比较靠后的位置,则预取紧邻的下一个Region;
写操作的流程为:
D、若用户不允许使用缓存,则直接重定向至磁盘设备;
E、若用户仅允许对读操作进行缓存,此时对应的Region中可能存在读缓存的数据,需要将其无效掉,设置状态为INVAL,然后重定向至磁盘设备;
F、若用户允许对写操作进行缓存,但是此操作的方式为write through方式,则直接将数据写至磁盘;
G、若用户允许对写操作进行缓存,且操作方式不是write through,则分配一个空闲Region块,并将数据写入磁盘外置Cache,同时Region的状态变为DIRTY。
2.如权利要求1所述一种基于Region的磁盘外置cache管理方法,其特征在于:磁盘地址空间与cache地址空间采用组相连映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010598566 CN102043593B (zh) | 2010-12-17 | 2010-12-17 | 一种基于Region的磁盘外置cache管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010598566 CN102043593B (zh) | 2010-12-17 | 2010-12-17 | 一种基于Region的磁盘外置cache管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102043593A CN102043593A (zh) | 2011-05-04 |
CN102043593B true CN102043593B (zh) | 2013-03-13 |
Family
ID=43909757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010598566 Active CN102043593B (zh) | 2010-12-17 | 2010-12-17 | 一种基于Region的磁盘外置cache管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102043593B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150122B (zh) * | 2011-12-07 | 2016-05-25 | 华为技术有限公司 | 一种磁盘缓存空间管理方法和装置 |
WO2014029087A1 (zh) * | 2012-08-22 | 2014-02-27 | 华为技术有限公司 | 访问固态硬盘空间的方法、装置及系统 |
CN102981979B (zh) * | 2012-11-15 | 2015-12-23 | 上海爱数软件有限公司 | 一种提高存储系统数据访问速度的方法 |
CN103336672B (zh) * | 2013-06-28 | 2016-10-05 | 华为技术有限公司 | 数据读取方法、装置及计算设备 |
CN103596067B (zh) * | 2013-11-26 | 2017-12-12 | 深圳创维数字技术有限公司 | 一种基于http实时流媒体协议的电视节目传输方法及装置 |
CN104793892B (zh) * | 2014-01-20 | 2019-04-19 | 优刻得科技股份有限公司 | 一种加速磁盘随机输入输出(io)读写的方法 |
CN105808154B (zh) * | 2014-12-31 | 2019-05-24 | 深圳神州数码云科数据技术有限公司 | 基于位图的双控制器的高速缓冲存储器回写方法及装置 |
CN105824580B (zh) * | 2016-03-18 | 2018-11-02 | 福州瑞芯微电子股份有限公司 | 录像文件写方法和录制设备 |
CN107656702B (zh) * | 2017-09-27 | 2020-11-20 | 联想(北京)有限公司 | 加速硬盘读写的方法及其系统、以及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236482A (zh) * | 2008-02-26 | 2008-08-06 | 杭州华三通信技术有限公司 | 降级状态下处理数据的方法及独立冗余磁盘阵列系统 |
CN101382918A (zh) * | 2008-07-26 | 2009-03-11 | 深圳市硅格半导体有限公司 | 一种基于数据交换区的NAND Flash闪存优化管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200828273A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Hard disk cache device and method |
-
2010
- 2010-12-17 CN CN 201010598566 patent/CN102043593B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236482A (zh) * | 2008-02-26 | 2008-08-06 | 杭州华三通信技术有限公司 | 降级状态下处理数据的方法及独立冗余磁盘阵列系统 |
CN101382918A (zh) * | 2008-07-26 | 2009-03-11 | 深圳市硅格半导体有限公司 | 一种基于数据交换区的NAND Flash闪存优化管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102043593A (zh) | 2011-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102043593B (zh) | 一种基于Region的磁盘外置cache管理方法 | |
CN100377065C (zh) | 一种超大容量的虚拟磁盘存储系统 | |
CN103049222B (zh) | 一种raid5的写io优化处理方法 | |
CN100362462C (zh) | 磁盘阵列缓存的管理方法 | |
US20110197035A1 (en) | Data storage device, storing medium access method and storing medium thereof | |
CN104049907A (zh) | 动态存储设备自动配置 | |
CN105159622A (zh) | 一种减小ssd读写io时延的方法与系统 | |
CN102521147A (zh) | 一种使用高速非易失介质做缓存的管理方法 | |
TW200305857A (en) | Concurrent read and write access to simulated sequential data of a removable random access data storage medium | |
CN104572478A (zh) | 数据存取方法和数据存取装置 | |
US20100325384A1 (en) | Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method | |
JP3568110B2 (ja) | キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置 | |
CN109739696B (zh) | 一种双控存储阵列固态硬盘缓存加速方法 | |
CN102866957A (zh) | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 | |
US8977816B2 (en) | Cache and disk management method, and a controller using the method | |
CN106527987A (zh) | 一种不带dram的ssd主控可靠性提升系统及方法 | |
CN102521161B (zh) | 一种数据的缓存方法、装置和服务器 | |
CN102520885B (zh) | 一种混合硬盘的数据管理系统 | |
JP2019521447A (ja) | キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 | |
CN100336008C (zh) | 用于允许在驱动器被格式化的同时访问存储设备的方法和装置 | |
US6532513B1 (en) | Information recording and reproduction apparatus | |
CN102160038A (zh) | 管理非易失性磁盘高速缓存的方法和设备 | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
US20130205074A1 (en) | Data i/o controller and system including the same | |
US9588898B1 (en) | Fullness control for media-based cache operating in a steady state |
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 |