CN102063386B - 一种单载体多目标的缓存系统的缓存管理方法 - Google Patents
一种单载体多目标的缓存系统的缓存管理方法 Download PDFInfo
- Publication number
- CN102063386B CN102063386B CN201010611791.3A CN201010611791A CN102063386B CN 102063386 B CN102063386 B CN 102063386B CN 201010611791 A CN201010611791 A CN 201010611791A CN 102063386 B CN102063386 B CN 102063386B
- Authority
- CN
- China
- Prior art keywords
- cache
- buffer memory
- buffer
- disk
- space
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种单载体多目标的缓存系统的缓存管理方法,用户的读写操作在对应的缓存设备中未命中时,请求分配一个新的缓存块来存放数据;若在其可使用的缓存地址空间中有空闲缓冲块,则直接分配;若无空闲缓冲块,则进行缓存块不足次数+1操作;判断不足次数是否超过预先设定的阈值,若未超过则返回进行缓存替换操作;若超过则检查其他盘缓存块信息;若其他盘也无空闲缓存块,则返回进行缓存替换操作;若有空闲缓冲块,则将所有盘缓存数据写回各自对应的硬盘;根据使用频繁情况重新分配缓冲块空间。本发明为每个磁盘设备分配独立的缓存空间,然后再分别对它们做组相连的映射,当系统检测出某个磁盘设备需要更大或者更少的缓存空间时,可以自动地对缓存设备进行再分配,从而使整个系统获得更好的IO性能。
Description
技术领域
本发明涉及存储系统缓存管理领域,具体涉及一种动态调整多个目标磁盘共享单一缓存设备的共享比例以保证均衡的性能提升的方法。
背景技术
磁盘以其大容量、低价格等优势一直在计算机系统中占有一席之地,但是其内部的机械部件却限制了速度的进一步提升,特别是对于不连续的IO数据访问,性能更是远远跟不上内存的发展。所以,磁盘的访问速度一直是IO密集型应用程序的瓶颈。为了提高磁盘的读写性能,磁盘厂商在磁盘内部加入了缓存(Cache memory),Cache是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。受限于磁盘的硬件结构,其上的缓存容量不可能特别大,所以如果将磁盘Cache从磁盘内部移动到外部将很容易解决容量的问题。因为不受空间的限制,外置磁盘Cache可以达到几个GB,甚至几十GB的大小,使用如此大容量的缓存将会大大提高整个系统的IO性能。为了充分利用大容量的缓存,系统中可以使用多个磁盘设备共享一个缓存设备,如图1所示。
在这样一个系统内,用户通过唯一的外置磁盘Cache来加速多个磁盘的访问速度,此外置Cache同时缓存着多个磁盘的数据,如何保证数据的正确性是一个挑战。在使用过程中,如何区分用户的IO请求究竟位于哪一个磁盘设备上以及如何将各个磁盘的数据送到合适的用户缓冲区内都是必须解决的难题。
一般利用Linux的Device Mapper机制来管理多个磁盘设备,以其中的高速设备作为低速设备的Cache来建立一个两级存储系统,以较低的成本获得较高的存储性能。将所管理的设备分为缓存设备(Cache Device)和磁盘设备(DiskDevice),这些设备对用户来说都是不可见的,用户不能直接操作缓存设备和磁盘设备。在使用过程中,需要向用户提供与磁盘设备个数相同、特性相同的伪设备,这些伪设备的使用方式与传统的磁盘设备完全一样,只是系统自动地将缓存设备融入访问过程,用户会感觉到更快的访问速度,整个系统的IO性能会得到显著提高。
系统整体结构如图2所示,disk 1、disk 2和disk 3是磁盘设备,sharedcache device是缓存设备,这些设备被虚拟成三个伪设备:pseudo disk 1、pseudodisk 2和pseudo disk 3,分别对应三个磁盘设备。缓存设备与磁盘设备是一对多的关系,即一个缓存设备可以被多个磁盘设备共享,但是任何一个磁盘设备只可使用一个缓存设备。至于设备,具体则对应于partition,即Linux下的块设备文件/dev/sda1等。
对磁盘设备作缓存,本身的思路比较直观,类似于处理器Cache,它将缓存设备按固定大小划分为许多region,一般地,region的大小为64K~1M,且为2的幂,在系统运行前决定,一旦运行不可再动态更改。region是缓存设备管理的基本单位,可类比处理器中的Cache Line。每个region维护相应的状态、必要的锁、tag等信息。region相对于文件系统的请求是比较大的,文件系统I/O的最小单位一般是512字节(称之为sector),因此文件系统的一次I/O更多可能是只覆盖了某个region的部分区域,鉴于此,每个region还需要维护若干位图,用来标记其中各个sector的状态。
文件系统建立在伪设备上,用户通过文件系统发出的IO请求通过伪设备进入本发明控制的系统中,对不同伪设备的请求,系统可以对应到不同磁盘设备上。主要的问题是如何将这些地址对应到缓存设备上,因为缓存设备的容量小于磁盘设备,特别是多个磁盘设备需要共享同一个缓存设备,所以缓存设备只能保存一小部分磁盘设备上的数据。两者采用组相连方式映射,如果将所有磁盘的容量看成一个整体映射到共享的缓存设备,那么每个磁盘设备只能利用其中的固定的缓存空间,而无法根据用户对各个磁盘的使用情况作出动态调整。
发明内容
为解决磁盘使用过程中频繁程度不同导致的大量缓存空间被浪费,本发明提供了一种单载体多目标的缓存系统的缓存管理方法。
一种单载体多目标的缓存系统的缓存管理方法,过程如下:
A、用户的读写操作在对应的缓存设备中未命中时,请求分配一个新的缓存块来存放数据;
B、若在其可使用的缓存地址空间中有空闲缓冲块,则直接分配;若无空闲缓冲块,则进行缓存块不足次数+1操作;
C、判断不足次数是否超过预先设定的阈值,若未超过则返回进行缓存替换操作;若超过则检查其他盘缓存块信息;
D、若其他盘也无空闲缓存块,则返回进行缓存替换操作;若有空闲缓冲块,则将所有盘缓存数据写回各自对应的硬盘;
E、根据使用频繁情况重新分配缓冲块空间。
本发明的一种优选技术方案在于:步骤D中的缓存写回操作可以只写缓存空间不足磁盘设备和周围相邻的大量空闲缓存块的磁盘设备。
本发明为每个磁盘设备分配独立的缓存空间,然后再分别对它们做组相连的映射,当系统检测出某个磁盘设备需要更大或者更少的缓存空间时,可以自动地对缓存设备进行再分配,从而使整个系统获得更好的IO性能。
附图说明
图1为多个磁盘共享一个缓存设备结构图
图2为缓存系统整体结构
图3为缓存系统映射方式
图4为本发明流程图
具体实施方式
在实现过程中,相当于先将唯一的缓存设备人为地划分为多份(根据需要缓存的磁盘设备数量及容量确定份数及每份的大小),然后每个磁盘设备对应于其中的一份,系统保存所有的映射关系。当收到一个IO请求时,首先检测此IO操作属于哪个磁盘设备;根据此磁盘设备与缓存设备的映射关系可以找到其对应的缓存设备的偏移地址,由于其使用的缓存的大小已经确定,所以可以容易地将此IO的地址信息根据组相连的规则映射到缓存设备的地址空间中;然后根据缓存设备的地址信息再做进一步的读写操作。
整个流程如图4所示。
在用户发出的读写操作未在其对应的缓存设备中命中时,需要根据情况分配一个新的缓存块用来存放这些数据。如果在其可使用的缓存地址空间中有空闲缓冲块的话,直接分配并写入数据即可;如果没有空闲缓存块,那么需要记录此信息,将空闲缓存块不足的次数增加一次,这时将要判定此次数是否超过之前定义的一个最大值;如果没有超过,那么直接返回,对此次读写的数据不做缓存;如果超过了这个阈值,那需要查看系统的整体运行情况,这个过程需要进行一些加锁的操作,以免数据不一致的情况出现。如果其他磁盘设备对应的缓存地址空间有较多的空闲缓存块未被使用,那么需要做出调整的动作,特别地,如果其他磁盘设备根本未被用户使用,那么其空闲缓存块必定很多,更应该将他们分配给空闲缓存块严重不足的磁盘设备。
调整时,因为缓存设备可能存在一些脏数据,直接将它们分配给其他磁盘设备显然不合适。这时最简单的办法是将所有的脏数据写回各自对应的磁盘设备,然后根据之前对缓存设备的使用情况进行再分配,使用越频繁则应该分配较大的缓存空间,而使用很少或者根本未使用缓存空间的,则应该尽量减少其对应的缓存空间,甚至直接将其对应的空间置为0,这样可以充分发挥缓存设备的作用,使最经常被访问的磁盘设备得到更多的缓存设备,从而得到更好的性能。
在以上实现过程中可以做出一些优化操作,比如在将脏数据刷回各自对应的磁盘设备时,可以根据情况不将所有的脏数据写回,而只写相关的几个磁盘设备。这里的相关指的是,如果缓存空间不足的磁盘设备与有大量空闲缓存块的磁盘设备对应的缓存空间相邻的话,可以只刷新两者临界的那几个脏数据块,然后只在这两者之间进行快速的容量调整。这样调整的开销将会降到最低,对系统的影响也比较小。
Claims (2)
1.一种单载体多目标的缓存系统的缓存管理方法,其特征在于:过程如下:
A、用户的读写操作在对应的缓存设备中未命中时,请求分配一个新的缓存块来存放数据;
B、若在其可使用的缓存地址空间中有空闲缓冲块,则直接分配;若无空闲缓冲块,则进行空闲缓存块不足次数+1操作;
C、判断不足次数是否超过预先设定的阈值,若未超过则返回进行缓存替换操作;若超过则检查其他盘缓存块信息;
D、若其他盘也无空闲缓存块,则返回进行缓存替换操作;若有空闲缓冲块,则将所有盘缓存数据写回各自对应的硬盘;
E、根据使用频繁情况重新分配缓冲块空间。
2.如权利要求1所述一种单载体多目标的缓存系统的缓存管理方法,其特征在于:步骤D中的缓存写回操作可以只写缓存空间不足磁盘设备和周围相邻的大量空闲缓存块的磁盘设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611791.3A CN102063386B (zh) | 2010-12-17 | 2010-12-17 | 一种单载体多目标的缓存系统的缓存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010611791.3A CN102063386B (zh) | 2010-12-17 | 2010-12-17 | 一种单载体多目标的缓存系统的缓存管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102063386A CN102063386A (zh) | 2011-05-18 |
CN102063386B true CN102063386B (zh) | 2014-07-23 |
Family
ID=43998671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010611791.3A Active CN102063386B (zh) | 2010-12-17 | 2010-12-17 | 一种单载体多目标的缓存系统的缓存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063386B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779017B (zh) * | 2012-06-29 | 2016-04-13 | 华中科技大学 | 一种固态盘中数据缓存区的控制方法 |
CN103020550B (zh) * | 2012-12-03 | 2016-08-17 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其安全访问方法、固态硬盘系统 |
CN104252421A (zh) * | 2013-06-25 | 2014-12-31 | 华为技术有限公司 | 缓存方法及装置 |
CN109032970A (zh) * | 2018-06-16 | 2018-12-18 | 温州职业技术学院 | 一种基于lru算法的动态缓存方法 |
CN110557432B (zh) * | 2019-07-26 | 2022-04-26 | 苏州浪潮智能科技有限公司 | 一种缓存池均衡优化方法、系统、终端及存储介质 |
CN111026335A (zh) * | 2019-12-12 | 2020-04-17 | 天地伟业技术有限公司 | 一种优化存储性能提升硬盘兼容性的方法 |
CN111338579B (zh) * | 2020-02-27 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 基于存储池的读写缓存优化方法、系统、终端及存储介质 |
CN113495678B (zh) * | 2020-04-01 | 2022-06-28 | 荣耀终端有限公司 | 一种dm缓存的分配方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231637A (zh) * | 2007-01-22 | 2008-07-30 | 中兴通讯股份有限公司 | 一种基于文件系统缓存的自适应预读取方法 |
CN101478481A (zh) * | 2009-01-07 | 2009-07-08 | 成都市华为赛门铁克科技有限公司 | 缓存管理方法及装置、数据转发系统 |
CN101609432A (zh) * | 2009-07-13 | 2009-12-23 | 中国科学院计算技术研究所 | 共享缓存管理系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003640B2 (en) * | 2003-07-28 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Power-aware adaptation in an information server |
-
2010
- 2010-12-17 CN CN201010611791.3A patent/CN102063386B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231637A (zh) * | 2007-01-22 | 2008-07-30 | 中兴通讯股份有限公司 | 一种基于文件系统缓存的自适应预读取方法 |
CN101478481A (zh) * | 2009-01-07 | 2009-07-08 | 成都市华为赛门铁克科技有限公司 | 缓存管理方法及装置、数据转发系统 |
CN101609432A (zh) * | 2009-07-13 | 2009-12-23 | 中国科学院计算技术研究所 | 共享缓存管理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102063386A (zh) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063386B (zh) | 一种单载体多目标的缓存系统的缓存管理方法 | |
CN113424160B (zh) | 一种处理方法、装置及相关设备 | |
US8943294B2 (en) | Software architecture for service of collective memory and method for providing service of collective memory using the same | |
EP2645259B1 (en) | Method, device and system for caching data in multi-node system | |
US20130318196A1 (en) | Storage system and storage control method for using storage area based on secondary storage as cache area | |
JP2018521385A (ja) | 共有システムキャッシュの仮想化制御のための方法および装置 | |
US20150161051A1 (en) | Computer System and Cache Control Method | |
GB2479235A (en) | Wear leveling in a solid state drive | |
CN102043593B (zh) | 一种基于Region的磁盘外置cache管理方法 | |
CN110658984B (zh) | 用于优化多层存储器系统中的动态存储器指派的方法和设备 | |
CN105117180A (zh) | 一种数据存储方法和装置以及固态硬盘 | |
CN102521147A (zh) | 一种使用高速非易失介质做缓存的管理方法 | |
US9727465B2 (en) | Self-disabling working set cache | |
CN103744611A (zh) | 基于固态硬盘为缓存的计算机系统及缓存加速方法 | |
CN104346284A (zh) | 一种内存管理方法及内存管理设备 | |
CN112286838B (zh) | 存储设备可配置的映射粒度系统 | |
KR20230012440A (ko) | 이기종 메모리 시스템에서의 로드 밸런싱을 위한 시스템 및 방법 | |
CN102567225A (zh) | 一种管理系统内存的方法及装置 | |
CN113641596A (zh) | 缓存管理方法、缓存管理装置、处理器 | |
US9699254B2 (en) | Computer system, cache management method, and computer | |
US20110055482A1 (en) | Shared cache reservation | |
CN102521161B (zh) | 一种数据的缓存方法、装置和服务器 | |
US20200341673A1 (en) | Intra-device notational data movement system | |
KR20230050477A (ko) | 캐시 엔트리 전송을 위한 캐시 위치 정보를 저장하기 위한 시스템 및 방법 | |
CN116710886A (zh) | 精简配置的分离式存储器中的页面调度 |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170203 Address after: 211106 Jiangning economic and Technological Development Zone, Jiangsu, general Avenue, No. 37, No. Patentee after: JIANGSU DAWN INFORMATION TECHNOLOGY CO., LTD. Address before: 100084 Beijing Haidian District City Mill Street No. 64 Patentee before: Dawning Information Industry (Beijing) Co., Ltd. |