CN102063386A - 一种单载体多目标的缓存系统的缓存管理方法 - Google Patents

一种单载体多目标的缓存系统的缓存管理方法 Download PDF

Info

Publication number
CN102063386A
CN102063386A CN2010106117913A CN201010611791A CN102063386A CN 102063386 A CN102063386 A CN 102063386A CN 2010106117913 A CN2010106117913 A CN 2010106117913A CN 201010611791 A CN201010611791 A CN 201010611791A CN 102063386 A CN102063386 A CN 102063386A
Authority
CN
China
Prior art keywords
cache
buffer
disk
buffer memory
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.)
Granted
Application number
CN2010106117913A
Other languages
English (en)
Other versions
CN102063386B (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.)
JIANGSU DAWN INFORMATION TECHNOLOGY 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 CN201010611791.3A priority Critical patent/CN102063386B/zh
Publication of CN102063386A publication Critical patent/CN102063386A/zh
Application granted granted Critical
Publication of CN102063386B publication Critical patent/CN102063386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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中的缓存写回操作可以只写缓存空间不足磁盘设备和周围相邻的大量空闲缓存块的磁盘设备。
CN201010611791.3A 2010-12-17 2010-12-17 一种单载体多目标的缓存系统的缓存管理方法 Active CN102063386B (zh)

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 true CN102063386A (zh) 2011-05-18
CN102063386B 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)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779017A (zh) * 2012-06-29 2012-11-14 华中科技大学 一种固态盘中数据缓存区的控制方法
CN103020550A (zh) * 2012-12-03 2013-04-03 记忆科技(深圳)有限公司 一种固态硬盘及其安全访问方法、固态硬盘系统
WO2014206234A1 (zh) * 2013-06-25 2014-12-31 华为技术有限公司 缓存方法及装置
CN109032970A (zh) * 2018-06-16 2018-12-18 温州职业技术学院 一种基于lru算法的动态缓存方法
CN110557432A (zh) * 2019-07-26 2019-12-10 苏州浪潮智能科技有限公司 一种缓存池均衡优化方法、系统、终端及存储介质
CN111026335A (zh) * 2019-12-12 2020-04-17 天地伟业技术有限公司 一种优化存储性能提升硬盘兼容性的方法
CN111338579A (zh) * 2020-02-27 2020-06-26 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN113495678A (zh) * 2020-04-01 2021-10-12 荣耀终端有限公司 一种dm缓存的分配方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027952A1 (en) * 2003-07-28 2005-02-03 Mayo Robert N. Power-aware adaptation in an information server
CN101231637A (zh) * 2007-01-22 2008-07-30 中兴通讯股份有限公司 一种基于文件系统缓存的自适应预读取方法
CN101478481A (zh) * 2009-01-07 2009-07-08 成都市华为赛门铁克科技有限公司 缓存管理方法及装置、数据转发系统
CN101609432A (zh) * 2009-07-13 2009-12-23 中国科学院计算技术研究所 共享缓存管理系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027952A1 (en) * 2003-07-28 2005-02-03 Mayo Robert N. Power-aware adaptation in an information server
CN101231637A (zh) * 2007-01-22 2008-07-30 中兴通讯股份有限公司 一种基于文件系统缓存的自适应预读取方法
CN101478481A (zh) * 2009-01-07 2009-07-08 成都市华为赛门铁克科技有限公司 缓存管理方法及装置、数据转发系统
CN101609432A (zh) * 2009-07-13 2009-12-23 中国科学院计算技术研究所 共享缓存管理系统及方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779017A (zh) * 2012-06-29 2012-11-14 华中科技大学 一种固态盘中数据缓存区的控制方法
CN102779017B (zh) * 2012-06-29 2016-04-13 华中科技大学 一种固态盘中数据缓存区的控制方法
CN103020550A (zh) * 2012-12-03 2013-04-03 记忆科技(深圳)有限公司 一种固态硬盘及其安全访问方法、固态硬盘系统
CN103020550B (zh) * 2012-12-03 2016-08-17 记忆科技(深圳)有限公司 一种固态硬盘及其安全访问方法、固态硬盘系统
WO2014206234A1 (zh) * 2013-06-25 2014-12-31 华为技术有限公司 缓存方法及装置
CN109032970A (zh) * 2018-06-16 2018-12-18 温州职业技术学院 一种基于lru算法的动态缓存方法
CN110557432A (zh) * 2019-07-26 2019-12-10 苏州浪潮智能科技有限公司 一种缓存池均衡优化方法、系统、终端及存储介质
CN110557432B (zh) * 2019-07-26 2022-04-26 苏州浪潮智能科技有限公司 一种缓存池均衡优化方法、系统、终端及存储介质
CN111026335A (zh) * 2019-12-12 2020-04-17 天地伟业技术有限公司 一种优化存储性能提升硬盘兼容性的方法
CN111338579A (zh) * 2020-02-27 2020-06-26 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN111338579B (zh) * 2020-02-27 2022-07-19 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN113495678A (zh) * 2020-04-01 2021-10-12 荣耀终端有限公司 一种dm缓存的分配方法及装置
CN113495678B (zh) * 2020-04-01 2022-06-28 荣耀终端有限公司 一种dm缓存的分配方法及装置

Also Published As

Publication number Publication date
CN102063386B (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN102063386B (zh) 一种单载体多目标的缓存系统的缓存管理方法
TWI525433B (zh) 具有動態運行時間記憶體對映選擇之適應性位址對映技術
CN113424160B (zh) 一种处理方法、装置及相关设备
JP3962368B2 (ja) 共用リソースを動的に割り振るためのシステムおよび方法
US9811465B2 (en) Computer system and cache control method
US9098417B2 (en) Partitioning caches for sub-entities in computing devices
US8621141B2 (en) Method and system for wear leveling in a solid state drive
US7653799B2 (en) Method and apparatus for managing memory for dynamic promotion of virtual memory page sizes
US20130318196A1 (en) Storage system and storage control method for using storage area based on secondary storage as cache area
US8943294B2 (en) Software architecture for service of collective memory and method for providing service of collective memory using the same
JP2018521385A (ja) 共有システムキャッシュの仮想化制御のための方法および装置
CN105843748B (zh) 一种对内存中内存页的处理方法及装置
CN102043593B (zh) 一种基于Region的磁盘外置cache管理方法
US11093410B2 (en) Cache management method, storage system and computer program product
CN102207830A (zh) 一种缓存动态分配管理方法及装置
US20090228656A1 (en) Associativity Implementation in a System With Directly Attached Processor Memory
US9727465B2 (en) Self-disabling working set cache
CN103744611A (zh) 基于固态硬盘为缓存的计算机系统及缓存加速方法
US20140223072A1 (en) Tiered Caching Using Single Level Cell and Multi-Level Cell Flash Technology
CN104346284A (zh) 一种内存管理方法及内存管理设备
CN115617503A (zh) 用于异构存储器系统中的负载均衡的系统和方法
Min et al. {eZNS}: An elastic zoned namespace for commodity {ZNS}{SSDs}
CN102521161B (zh) 一种数据的缓存方法、装置和服务器
CN112286838A (zh) 存储设备可配置的映射粒度系统
Xie et al. Exploiting internal parallelism for address translation in solid-state drives

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.