CN104035887A - 一种基于精简配置系统的块设备缓存装置及其方法 - Google Patents

一种基于精简配置系统的块设备缓存装置及其方法 Download PDF

Info

Publication number
CN104035887A
CN104035887A CN201410219002.XA CN201410219002A CN104035887A CN 104035887 A CN104035887 A CN 104035887A CN 201410219002 A CN201410219002 A CN 201410219002A CN 104035887 A CN104035887 A CN 104035887A
Authority
CN
China
Prior art keywords
cache
module
request
management
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.)
Granted
Application number
CN201410219002.XA
Other languages
English (en)
Other versions
CN104035887B (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.)
Tianjin Zhongke Bluewhale Information Technology Co ltd
Institute of Computing Technology of CAS
Original Assignee
Tianjin Zhongke Bluewhale Information Technology Co ltd
Institute of Computing Technology of CAS
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 Tianjin Zhongke Bluewhale Information Technology Co ltd, Institute of Computing Technology of CAS filed Critical Tianjin Zhongke Bluewhale Information Technology Co ltd
Priority to CN201410219002.XA priority Critical patent/CN104035887B/zh
Publication of CN104035887A publication Critical patent/CN104035887A/zh
Application granted granted Critical
Publication of CN104035887B publication Critical patent/CN104035887B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种基于精简配置系统的块设备缓存装置,该缓存装置包含上层模块和底层设备,底层设备包含一缓存设备和一数据源设备,上层模块包含缓存管理模块和精简配置模块,分别实现逻辑缓存资源管理功能与物理资源管理功能,精简配置模块对外导出逻辑容量与数据源设备容量相同的一标准块设备逻辑卷,并且精简配置模块支持资源回收功能。

Description

一种基于精简配置系统的块设备缓存装置及其方法
技术领域
该发明涉及信息技术领域,特别涉及存储领域的缓存技术。
背景技术
缓存技术是决定存储系统性能的重要因素之一,该技术通过在缓存层部署读写性能高的设备,同时利用I/O负载中普遍存在的时空局部性来降低慢速磁盘I/O对系统性能的影响。
从应用形式角度出发,缓存技术有两种常见应用形式:(一)缓存子功能模块,缓存功能仅作为宿主系统中性能优化的子模块存在,这种情况下缓存功能通常是为满足宿主系统的特定需求定制的,一方面不能独立于宿主系统应用,另一方面不同系统间的缓存功能模块难以兼容,比如linux-kernel中的page cache,NFS客户端缓存,Coda客户端缓存等均属于这种应用方式;(二)独立缓存模块,将缓存功能实现为一个可独立运行的功能模块,这种方式较前一种方式有更好的通用性,比如linux通用块层缓存(linux-bcache,linuxblock layer cache)。
从资源使用角度出发,上述两种形式通常都是将小容量的高性能存储设备作为缓存区,因此存在缓存区容量与数据源设备容量不对称的问题。目前解决容量不对称问题较为普遍的做法是,采用虚拟存储技术与缓存管理技术结合的方式实现缓存资源按需分配,在缓存功能模块中集成虚拟存储技术及缓存管理技术,通常情况下,虚拟存储技术实现物理资源管理及资源映射功能,即将缓存区划分为固定大小的存储单元,建立缓存资源映射表,按照实际需要将缓存单元映射给需要缓存的逻辑块,并根据缓存资源的使用情况维护缓存资源映射关系,缓存管理技术则提供缓存策略支持,维护缓存管理逻辑,监测缓存资源使用情况,根据缓存策略触发缓存回写,缓存替换等操作。比如linux-bcache将固态盘(solid state disk)作为缓存设备,将缓存设备以资源桶(bucket)为单位形成资源池,使用时将数据源设备与缓存设备关联,动态更新已用资源以及空闲资源状态。Linux-kernel中页高速缓存(page cache)将内存作为缓存区,缓存的基本单位是页(page),其资源分配、回收由内核的内存管理模块实现,映射关系由页高速缓存维护。基于上述分析,直接将特定存储设备作为缓存设备,实现缓存功能同时需要有相应的物理资源管理功能做支持,造成缓存管理与资源管理紧耦合。
精简配置技术作为虚拟存储技术的一种实现,因为其在提高资源利用率和共享存储两方面的优势在工业界广泛应用。精简配置技术依赖于写时分配,即数据写操作发生的时候才被分配。该技术通过将所有的存储空间按照固定的粒度划分为大小相同的物理存储段,并将所有物理存储段汇集到一个共享存储池中,按需分配物理存储段。精简配置存储系统对外提供虚拟逻辑卷。精简配置技术通过存储虚拟化提供了比实际物理存储容量更大的虚拟存储容量,因此可以很好的解决缓存技术中缓存设备容量与数据源设备容量不对称的问题。并且当缓存容量不足时,可能增加物理缓存设备进行扩容。然而传统的精简配置技术并不支持资源回收机制,因而无法支持缓存技术的资源回收功能。
基于上述分析缓存技术在实际应用中存在以下三方面的局限:
1)解决缓存设备容量与数据源设备容量不对称问题,需要在缓存功能模块中集成虚拟存储技术实现物理资源管理功能。
2)传统精简配置技术作为虚拟存储技术的常用形式,可以通过其资源映射机制解决容量不对称的问题,但是其自身并不支持资源回收,因此不支持缓存回收功能。
3)对物理资源管理功能的需求导致缓存功能模块中耦合资源映射机制,造成缓存管理与资源映射功能混合。
本发明的目的在于,提出一种基于精简配置系统的块设备缓存方法,解决传统缓存技术以下三方面的局限性:(一)缓存设备容量与源设备容量不对称;(二)传统精简配置技术不支持资源回收功能;(三)缓存管理与资源管理功能混合。
发明内容
本发明的目的在于,提出一种基于精简配置系统的块设备缓存装置及其方法,解决现有技术中存在的问题:缓存设备容量与源设备容量不对称;传统精简配置技术不支持资源回收功能;缓存管理与资源管理功能混合。
为达上述目的,本发明提供了一种基于精简配置系统的块设备缓存装置,其特征在于,所述缓存系统包含上层模块和底层设备,所述底层设备包含一缓存设备和一数据源设备,所述上层模块包含缓存管理模块和精简配置模块,分别实现逻辑缓存资源管理功能与物理资源管理功能,所述精简配置模块对外导出逻辑容量与所述数据源设备容量相同的一标准块设备逻辑卷,并且所述精简配置模块支持资源回收功能。
上述基于精简配置系统的块设备缓存装置,其特征在于:
所述缓存管理模块:用于根据缓存资源管理策略维护缓存管理逻辑;所述缓存管理模块接收应用请求,发起缓存预取,缓存回写,缓存资源回收操作,实现逻辑缓存资源管理以及逻辑块缓存状态维护和管理;
所述精简配置模块:该模块通过通用块层接口与所述缓存管理模块连接,外导出指定容量的虚拟逻辑卷;所述精简配置模块采用自动精简配置技术,接收所述缓存管理模块下发读写缓存请求,并为首次写实现资源写时分配、资源映射,接收所述缓存管理模块的缓存管理命令,持久化存储缓存元数据,其中,接收到缓存失效命令,实施资源回收操作并持久化存储相应的缓存元数据。
上述基于精简配置系统的块设备缓存装置,其特征在于,所述缓存管理模块包括:
缓存资源管理策略模块:用于提供统一的缓存策略接口,负责向缓存系统注册缓存管理策略并支持动态的缓存管理策略注册及注销,所述缓存管理策略包括:缓存预取策略,缓存回写策略和缓存替换策略;
逻辑缓存资源管理模块:用于进行缓存资源监测,并更新和维护当前缓存资源使用记录;
缓存管理决策模块:根据所述缓存管理策略进行缓存无效逻辑块的预取、缓存逻辑块的回写或替换决策,并返回决策结果;
缓存资源管理驱动模块:根据所述缓存管理决策模块返回的决策结果,执行所述缓存预取、缓存回收或缓存回写操作,并为所述缓存预取和缓存回写构造数据迁移请求;
应用请求映射模块:根据请求映射方法将应用请求重定向到目标设备,所述目标设备包含:缓存设备或者数据源设备,所述请求映射方法包括:写无效,写回和写直达;
缓存元数据管理模块:负责在内存中维护逻辑块的缓存状态,并根据所述缓存资源管理驱动模块的执行结果更新相应的所述逻辑块的缓存状态,根据所述逻辑块的状态变化向所述精简配置模块发送元数据更新命令,所述缓存逻辑块的缓存状态包括:缓存干净、缓存脏和缓存无效;
请求提交模块:用于提交应用请求和数据迁移请求。
上述基于精简配置系统的块设备缓存装置,其特征在于,所述逻辑缓存资源管理模块还包括:
缓存资源监测模块:用于监测空闲缓存资源数量和缓存脏逻辑块数量,缓存资源不足或者缓存脏逻辑块数量超过高临界值时,通知所述缓存管理决策模块进行缓存资源回收或者缓存回写决策;
逻辑缓存记录模块;更新并维护当前逻辑缓存资源使用记录,其中所述逻辑缓存记录包括空闲逻辑缓存资源数量,缓存脏逻辑块数量和缓存干净逻辑块数量。
上述基于精简配置系统的块设备缓存装置,其特征在于,所述缓存资源管理驱动模块还包括:
数据迁移模块:用于为缓存预取和缓存回写构造数据迁移请求,所述数据迁移请求包括:数据读请求和数据写请求。
上述基于精简配置系统的块设备缓存装置,其特征在于,所述请求提交模块还包括:
数据迁移请求提交模块:用于将数据迁移请求提交到所述目标设备,并向所述元数据管理模块发送元数据更新命令;
应用请求提交模块:用于提交应用请求提交到所述目标设备,并向所述元数据管理模块发送元数据更新命令。
上述基于精简配置系统的块设备缓存装置,其特征在于,所述精简配置模块包括:
资源映射模块:用于维护缓存数据块与物理缓存存储资源块的映射关系;
元数据处理模块:用于更新所述缓存逻辑块的缓存状态并持久化存储所述缓存状态,向所述缓存设备提供所述缓存状态查询服务;
资源虚拟化管理模块:用于负责将所述缓存设备进行虚拟池化管理,按照需求提供存储资源;
资源分配模块:用于接收资源分配命令从可用资源池中分配存储资源;
资源回收模块:用于接收资源回收命令并执行所述资源回收操作。
上述基于精简配置系统的块设备缓存装置,其特征在于,所述通用块层接口包括:
数据接口:用于所述缓存管理模块与所述精简配置模块之间的IO请求的传递;
控制命令接口:用于所述缓存管理模块与所述资精简配置模块之间的控制命令传递,所述控制命令包括:缓存状态更新命令和缓存状态查询命令。
本发明还提供一种基于精简配置系统的块设备缓存方法,应用于如所述基于精简配置系统的块设备缓存装置,其特征在于,所述缓存方法包括:
缓存管理步骤:用于进行缓存资源策略管理、缓存预取、缓存回收、缓存回写和应用请求处理;
精简配置步骤,用于进行IO请求处理,缓存资源写时分配、资源回收和元数据状态管理。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存管理步骤包括:
缓存管理策略注册与注销步骤:用于生成并注册缓存管理策略,并可根据用户管理需求结合所述缓存管理策略的引用情况,进行所述缓存管理策略的保留或移除;
缓存预取步骤:根据所述缓存管理决策模块确定的缓存预取决策,更新待预取缓存逻辑块集合,并执行缓存预取操作;
缓存回收步骤:根据所述缓存管理决策模块确定的缓存逻辑块的回收决策,更新待回收缓存逻辑块集合,并执行缓存资源回收操作;
缓存回写步骤:根据所述缓存管理决策模块确定的缓存逻辑块的回写决策,更新待回写缓存逻辑块集合,并执行缓存回写操作;
应用读请求处理步骤:所述应用请求映射模块根据逻辑块缓存记录及应用读请求,获取所述读请求的目标设备以及所述读请求产生的元数据变化操作,并重定向所述读请求到目标设备;
应用写请求处理步骤:所述应用请求映射模块根据逻辑块缓存记录及应用写请求,获取所述写请求目标设备以及所述写请求产生的元数据变化操作,进行所述写请求与元数据更新命令绑定,重定向所述写请求到目标设备,并完成数据和元数据更新。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述精简配置步骤包括:
资源分配步骤:所述精简配置模块接收资源分配请求,并从资源池中为缓存逻辑块分配物理存储块,建立所述缓存逻辑块与所述物理存储块的映射关系,并更新资源映射表和空闲物理资源记录;
资源回收步骤:所述精简配置模块接收所述缓存设备针对缓存逻辑块的缓存失效命令,所述元数据管理模块更新所述缓存逻辑块的元数据,并取消所述缓存逻辑块和所述物理存储块的映射关系,更新空闲物理资源记录;
元数据处理步骤:所述精简配置模块接收元数据更新命令,进行元数据更新,或接收元数据查询命令,进行元数据查询;
写请求处理步骤:所述逻辑卷接收所述写请求和所述元数据更新命令,通知所述元数据管理模块进行元数据更新,为所访问逻辑地址的首次写向资源分配模块发送资源分配命令,资源分配模块为该请求分配物理存储块;将写请求转发到下层物理设备;
读请求处理步骤:所述逻辑卷接收所述读请求,查找所述读请求访问缓存逻辑块的数据存储的物理存储块,并将所述读请求重定向到目标物理存储地址。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存管理策略注册与注销步骤还包括:
缓存资源管理策略注册步骤包括:缓存系统策略框架生成缓存管理策略实例,所述缓存管理策略包括:缓存预取,缓存回写和缓存替换,将所述缓存管理策略添加到所述缓存系统的策略库中;
缓存资源管理策略注销步骤包括:检查待注销的所述缓存管理策略是否被引用,若所述缓存管理策略未被引用,则将所述缓存管理策略从所述策略库中移除,若所述缓存管理策略正在被引用,则不做任何操作。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存预取步骤还包括:
缓存预取决策步骤:所述缓存管理决策模块根据接收到的缓存预取决策询问消息,进行缓存预取决策,并更新待预取逻辑块集合,将所述待预取逻辑块集合中的逻辑块按照优先级排列,并将当前可预取的逻辑块数量发送给所述缓存管理驱动模块;
缓存预取执行步骤:所述缓存管理驱动模块根据接收到的所述当前可预取的逻辑块数量执行预取操作。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存预取执行步骤还包括:
预取请求构造步骤:所述数据迁移模块构造数据迁移请求,所述数据迁移请求包括读数据源设备请求和写缓存设备请求,并且所述逻辑缓存资源管理模块向所述缓存资源监测模块发送逻辑资源分配请求;
检查资源数量步骤:所述缓存资源监测模块检查空闲逻辑资源数量是否满足资源分配要求,如果不满足,则等待资源满足分配条件,如果满足,则进行逻辑缓存资源分配;
缓存资源分配步骤:所述数据迁移请求提交模块通知所述元数据管理模块构造元数据更新命令,将所述元数据更新命令与所述数据迁移请求绑定,并提交给所述精简配置模块执行缓存资源分配以及数据迁移,更新相关缓存状态以及缓存干净逻辑块记录。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存回收步骤还包括:
缓存回收决策步骤:所述缓存资源监测模块监测到空闲资源低于临界值,所述缓存管理决策模块根据接收到的缓存回收决策消息,进行缓存回收决策,并更新待回收逻辑块集合,将所述待回收逻辑块集合中的逻辑块按照优先级排列,并将当前可回收的逻辑块数量发送给所述缓存管理驱动模块;
缓存回收执行步骤:所述缓存管理驱动模块根据接收到的所述当前可回收的逻辑块数量执行回收操作。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存回收执行步骤还包括:
回收请求构造步骤:所述元数据管理模块构造缓存逻辑块的缓存失效元数据更新命令,并提交给所述请求提交模块;
缓存资源回收步骤:所述请求提交模块将所述缓存失效元数据更新请求提交给所述精简配置模块执行缓存资源回收,并更新缓存逻辑块状态,更新空闲逻辑资源记录和缓存干净逻辑块记录。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存回写步骤还包括:
缓存回写决策步骤:所述缓存资源监测模块监测到脏缓存块数量高于临界值,所述缓存管理决策模块根据接收到的缓存回写决策消息,进行缓存回写决策,并更新待回写逻辑块集合,将所述待回写逻辑块集合中的逻辑块按照优先级排列,并将当前可回写的逻辑块数量发送给所述缓存管理驱动模块;
缓存回写执行步骤:所述缓存管理驱动模块根据接收到的所述当前可回写的逻辑块数量执行回写操作。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存回写执行步骤还包括:
回写请求构造步骤:所述数据迁移模块构造数据迁移请求,所述数据迁移请求包括读缓存设备请求和写数据源设备请求,并且所述元数据管理模块构造元数据更新命令;
缓存资源回写步骤:将所述元数据更新命令与所述数据迁移请求绑定,提交给所述精简配置模块执行缓存逻辑块回写,并更新缓存块状态,更新缓存脏逻辑块记录和缓存干净逻辑块记录。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述应用读请求处理步骤还包括:
读请求查询并更新缓存记录步骤:所述缓存管理模块接收到应用的读请求,在缓存数据中查询所述读请求访问的缓存逻辑块的缓存记录,并通知所述缓存管理策略模块进行缓存管理记录更新;
读请求映射项查询步骤:读取注册的所述请求映射方法,根据所述请求映射方法进行逻辑块的缓存状态的映射项查询;
读请求映射步骤:根据所述映射项将所述读请求映射到目标设备,并将所述读请求重定向到所述目标设备进行处理,所述目标设备为数据源设备或者缓存设备。
上述基于精简配置系统的块设备缓存方法,其特征在于,所述应用写请求处理步骤还包括:
写请求查询并更新缓存记录步骤:缓存接收到应用的写请求,在缓存数据中查询所述写请求访问的逻辑块的缓存记录,并通知所述缓存管理策略模块进行缓存管理记录更新;
写请求映射项查询步骤:读取注册的所述请求映射方法,根据所述请求映射方法进行逻辑块缓存状态的映射项查询;
写请求映射步骤:根据所述映射项将所述写请求映射到目标设备,并将所述写请求与元数据命令绑定,将所述写请求重定向到所述目标设备,所述元数据命令提交给所述精简配置模块和所述元数据管理模块进行处理。
与现有技术相比,本发明的积极效果在于:
1)对外提供标准块设备接口;
2)缓存功能维护与物理资源管理实施分离,更好的支持策略与机制分离;
3)可以在存储系统的IO路径上灵活部署。
附图说明
图1为本发明块设备缓存装置结构示意图;
图2为本发明缓存系统逻辑结构示意图;
图3为缓存管理模块结构示意图;
图4为本发明精简配置模块结构示意图;
图5为本发明接口示意图;
图6为本发明缓存方法流程示意图;
图7A~图7F为本发明步骤详细流程示意图;
图8为本发明精简配置步骤流程示意图;
图9为本发明实施例缓存预取步骤示意图;
图10为本发明实施例缓存回收步骤示意图;
图11为本发明实施例缓存回写步骤示意图;
图12为本发明实施例读请求处理步骤示意图;
图13为本发明实施例写请求处理步骤示意图。
其中,附图标记:
1 缓存管理模块 2 精简配置模块
11 缓存资源管理策略模块 12 逻辑缓存资源管理模块
13 缓存管理决策模块 14 缓存资源管理驱动模块
15 应用请求映射模块 16 缓存元数据管理模块
17 请求提交模块
21 资源映射模块 22 元数据处理模块
23 资源虚拟化管理模块 24 资源分配模块
25 资源回收模块
121 缓存资源监测模块 122 逻辑缓存记录模块
141 数据迁移模块
171 数据迁移请求提交模块 172 应用请求提交模块
S1~S2、S11~S16、S21~S25、S111~S163:本发明具体实施例步骤
具体实施方式
下面给出本发明的具体实施方式,结合图示对本发明做出了详细描述。
图1为本发明块设备缓存装置结构示意图,如图1所示,一种基于精简配置系统的块设备缓存装置,该缓存装置包含上层模块和底层设备,底层设备包含一缓存设备和一数据源设备,上层模块包含缓存管理模块1和精简配置模块2,实现缓存管理与资源管理功能分离,精简配置模块1对外导出逻辑容量与数据源设备相等容量的一标准块设备逻辑卷,并且精简配置模块1支持资源回收操作。
其中,缓存管理模块1用于根据缓存资源管理策略,维护缓存管理逻辑,实现缓存逻辑块状态维护和管理;
其中,精简配置模块2通过一通用块层接口与缓存管理模块1连接,该模块采用自动精简配置技术,根据接收缓存管理模块1下发读写缓存请求,并为首次写实现资源写时分配,接收所述缓存管理模块的缓存管理命令,持久化存储缓存元数据,其中,接收到资源回收命令,实施资源回收操作并持久化存储相应的缓存元数据,并对外导出指定容量的虚拟逻辑卷。
本发明具有特点:
1)标准块设备层叠的缓存系统结构,数据源设备与缓存设备均为标准块设备;
2)缓存系统对外导出与数据源设备等容量的逻辑卷,该逻辑卷亦为标准块设备。
3)缓存设备为与数据源设备等容量的精简配置逻辑卷,图2为本发明缓存系统逻辑结构示意图,如图2所示。
4)支持缓存管理功能与资源映射功能分离,将传统缓存系统实现按照功能功能自顶向下分为缓存管理模块1和精简配置模块2,由精简配置模块2实现资源映射机制。
5)缓存管理模块1,用于维护缓存管理逻辑,实现缓存状态维护和管理。图3为缓存管理模块结构示意图,逻辑结构如图3所示。
6)缓存元数据由资源映射层固化存储到非易失设备,支持缓存设备重构。
其中,如图3所示,缓存管理模块1包括:
缓存资源管理策略模块11:用于提供统一的缓存策略接口,负责向缓存系统注册缓存管理策略并支持动态的缓存管理策略注册和注销,缓存管理策略包括:缓存预取,缓存回写和缓存替换;
缓存资源管理策略模块11,提供统一的缓存策略接口,负责向缓存层注册缓存管理策略并支持动态的缓存管理策略注册和注销,该缓存管理策略包括,缓存预取策略,缓存回写策略,缓存替换策略三部分;
逻辑缓存资源管理模块12:用于进行缓存资源监测,并更新和维护当前逻辑缓存资源记录,其中逻辑缓存资源记录包括,空闲逻辑缓存资源记录,缓存脏逻辑块记录,缓存干净逻辑块记录;
其中,逻辑缓存资源管理模块12还包括:
缓存资源监测模块121:用于监测空闲缓存资源数量和缓存脏逻辑块数量,缓存资源不足或者缓存脏逻辑块数量超过临界值时,通知缓存管理决策模块进行缓存资源回收或者缓存回写决策;
缓存资源监测模块121,监测空闲缓存资源数量和缓存脏逻辑块数量,缓存资源不足时通知缓存管理决策模块,进行资源回收决策,缓存脏逻辑块数量超过预设比例时通知缓存管理决策模块进行回写决策;
逻辑缓存记录模块122;更新并记录当前空闲逻辑缓存资源数量,缓存脏逻辑块数量和缓存干净逻辑块数量;
逻辑缓存记录模块122,更新并记录当前空闲逻辑缓存资源数量,缓存脏逻辑块数量以及缓存干净逻辑块数量;
缓存管理决策模块13:根据缓存管理策略进行逻辑块的预取、缓存逻辑块回写或替换决策,并返回决策结果;
缓存资源管理驱动模块14:根据缓存管理决策模块返回的决策结果,执行缓存预取、缓存回收或缓存回写操作,并为缓存预取和缓存回写构造数据迁移请求;其中,执行缓存预取时为待预取逻辑块分配逻辑缓存资源。
缓存管理驱动模块14,根据缓存决策模块的决策执行缓存预取,并执行逻辑缓存资源分配,执行缓存资源回收,以及缓存回写;
其中,缓存资源管理驱动模块14还包括:
数据迁移模块141:用于缓存预取和缓存回写构造数据迁移请求,数据迁移请求包括:数据读请求和数据写请求;
数据迁移模块141,为缓存预取和缓存回写构造数据迁移请求,其中数据迁移请求包括从迁移源设备中读数据的读请求和向数据迁移目标设备写数据的写请求。
应用请求映射模块15:根据请求映射方法将应用请求重定向到目标设备,目标设备包含:缓存设备或者数据源设备,请求映射方法包括:支持写无效,写回和写直达。
应用请求映射模块15,根据指定的请求映射方法将应用请求重定向到缓存设备或者数据源设备,支持写无效(write-invalid),写回(write-back),写直达(write-through)三种映射方法。
缓存元数据管理模块16:负责在内存中维护缓存逻辑块的缓存状态,并根据缓存资源管理驱动模块的执行结果更新相应的逻辑块的缓存状态,根据逻辑块的状态变化向精简配置模块2发送元数据更新命令,或者缓存状态查询命令,缓存逻辑块的缓存状态包括:缓存干净、缓存脏和缓存无效;
缓存元数据管理模块16,在内存中维护缓存逻辑块缓存状态,并根据缓存管理驱动模块14的执行结果更新逻辑块缓存状态;构造元数据更新命令,并向精简配置模块2发送元数据更新命令;其中,逻辑块缓存状态有三种,缓存无效(cache invalid),该逻辑块对应的数据未被缓存;缓存干净(cacheclean),该逻辑块对应的数据被缓存且缓存中的数据与源设备中的数据一致;缓存脏(cache dirty),该逻辑块对应的数据被缓存且缓存中的数据被更新过,与源设备中的数据不一致。
请求提交模块17:用于提交数据迁移请求应用请求和缓存数据迁移请求。请求提交模块17,负责将数据迁移请求或者应用请求提交到数据源设备或缓存设备;调用元数据管理模块接口向缓存设备发送元数据更新命令。
其中,请求提交模块17还包括:
数据迁移请求提交模块171:用于将数据迁移请求的读写请求提交到目标设备,并向元数据管理模块发送元数据更新命令;
应用请求提交模块172:用于提交应用请求提交到目标设备,并向元数据管理模块发送元数据更新命令。
其中,图4为本发明精简配置模块结构示意图,如图4所示,精简配置模块2包括:
资源映射模块21:用于维护缓存数据块与物理缓存存储资源块的映射关系;
元数据处理模块22:用于更新并持久化存储缓存逻辑块的缓存状态,向缓存设备提供缓存状态查询服务;
资源虚拟化管理模块23:用于负责将缓存物理设备进行虚拟池化管理,按照需求提供存储资源;
资源分配模块24:用于接收资源分配命令从可用资源池中分配存储资源;
资源回收模块25:用于接收资源回收命令并执行资源回收操作。
其中,图5为本发明接口示意图,如图5所示,通用块层接口包括:
数据接口:用于缓存管理模块1与精简配置模块2之间的IO请求的传输;
控制命令接口:用于缓存管理模块1与精简配置模块2之间的控制命令传输,控制命令包括:缓存状态更新命令和缓存状态查询命令。
缓存管理模块1与精简配置模块2通过通用块层标准数据接口和控制命令接口通信,缓存系统的应用请求流程、数据迁移请求流程、元数据命令流程均为通用块层处理流程。
数据接口,负责缓存管理模块1与精简配置模块2间的IO请求处理,缓存管理模块1与精简配置模块2间的请求包括应用读写请求,缓存系统数据迁移请求的读请求或者写请求;其中,缓存系统的数据迁移请求,包括缓存预取数据迁移请求和缓存回写数据迁移请求;
控制命令接口,实现缓存管理模块1与精简配置模块2间的控制命令传递,其中,该控制命令包括:
缓存状态更新命令,通知精简配置模块更新逻辑块的缓存状态,并将该状态存储到元数据存储区;
缓存状态查询命令,精简配置模块从元数据区读取指定逻辑块的缓存状态并返回给缓存管理模块。
本发明还提供一种基于精简配置系统的块设备缓存方法,应用于如所述基于精简配置的块设备缓存装置,图6为本发明缓存方法流程示意图,如图6所示,该缓存方法包括:
缓存管理步骤S1:用于进行缓存资源策略管理、缓存预取、缓存回收、缓存回写和应用请求处理;
精简配置步骤S2:用于进行缓存资源写时分配、资源回收和元数据状态管理。
其中,缓存管理步骤S1包括:
缓存管理策略注册与注销步骤S11:用于生成并注册缓存管理策略,并根据缓存管理策略的引用情况,进行缓存管理策略的保留或移除;
缓存预取步骤S12:根据缓存管理决策模块确定的缓存预取决策,更新待预取缓存逻辑块集合,并执行预取操作;
缓存回收步骤S13:根据缓存管理决策模块确定的缓存逻辑块的回收决策,更新待回收缓存逻辑块集合,并执行回收操作;
缓存回写步骤S14:根据缓存管理决策模块确定的缓存逻辑块的回写决策,更新待回写缓存逻辑块集合,并执行回写操作;
应用读请求处理步骤S15:应用请求映射模块根据逻辑块缓存记录及应用读请求,获取读请求的目标设备以及读请求产生的元数据变化操作,并重定向读请求到目标设备;
应用写请求处理步骤S16:应用请求映射模块根据逻辑块缓存记录及应用写请求,获取写请求目标设备以及写请求产生的元数据变化操作,重定向写请求到目标设备,进行写请求与元数据更新命令绑定,并完成数据更新和数据迁移。
其中,图7A~图7F为本发明步骤详细流程示意图,如图7A~图7F所示,缓存管理策略注册与注销步骤S11还包括:
缓存资源管理策略注册步骤S111:缓存系统策略框架生成缓存管理策略实例,缓存管理策略包括:缓存预取,缓存回写和缓存替换,将所述缓存管理策略添加到所述缓存系统的策略库中;
缓存资源管理策略注销步骤S112:检查待注销的缓存管理策略是否被引用,若缓存管理策略未被引用,则将缓存管理策略从策略库中移除,若缓存管理策略正在被引用,则不做任何操作。
其中,缓存预取步骤S12还包括:
缓存预取决策步骤S121:缓存管理决策模块根据接收到的缓存预取决策询问消息,进行缓存预取决策,并更新待预取逻辑块集合,将逻辑块集合中的逻辑块按照优先级排列,并将当前可预取的逻辑块数量发送给缓存管理驱动模块;
缓存预取执行步骤S122:缓存管理驱动模块根据接收到的当前可预取的逻辑块数量执行预取操作。
其中,缓存预取执行步骤S122还包括:
预取请求构造步骤S1221:数据迁移模块构造数据迁移请求,数据迁移请求包括读数据源设备请求和写缓存设备请求,并且逻辑缓存资源管理模块向缓存资源监测模块发送逻辑资源分配请求;
检查资源数量步骤S1222:缓存资源监测模块检查空闲逻辑资源数量是否满足资源分配要求,如果不满足,则执行请求构造步骤,如果满足,则进行缓存资源分配;
缓存资源分配步骤S1223:数据迁移请求提交模块通知元数据管理模块构造元数据更新命令,将元数据更新命令与数据迁移请求绑定,并提交给精简配置模块执行缓存资源分配以及数据迁移,更新相关缓存状态,通知逻辑缓存记录模块更新缓存干净逻辑块记录。
其中,缓存回收步骤S13还包括:
缓存回收决策步骤S131:缓存资源监测模块监测到空闲资源低于临界值,缓存管理决策模块根据接收到的缓存回收决策消息,进行缓存回收决策,并更新待回收逻辑块集合,将逻辑块集合中的逻辑块按照优先级排列,并将当前可回收的逻辑块数量发送给缓存管理驱动模块;
缓存回收执行步骤S132:缓存管理驱动模块根据接收到的当前可回收的逻辑块数量执行回收操作。
其中,缓存回收执行步骤S132还包括:
回收请求构造步骤S1321:元数据管理模块构造缓存逻辑块的缓存失效元数据更新命令,并提交给请求提交模块;
缓存资源回收步骤S1322:请求提交模块将缓存失效元数据更新请求提交给精简配置模块执行缓存资源回收,并更新缓存逻辑块状态,更新空闲逻辑资源记录和缓存干净逻辑块记录。
其中,缓存回写步骤S14还包括:
缓存回写决策步骤S141:缓存资源监测模块监测到脏缓冲块数量高于临界值,缓存管理决策模块根据接收到的缓存回写决策消息,进行缓存回写决策,并更新待回写逻辑块集合,将逻辑块集合中的逻辑块按照优先级排列,并将当前可回写的逻辑块数量发送给缓存管理驱动模块;
缓存回写执行步骤S142:缓存管理驱动模块根据接收到的当前可回写的逻辑块数量执行回写操作。
其中,缓存回写执行步骤S142还包括:
回写请求构造步骤S1421:数据迁移模块构造数据迁移请求,数据迁移请求包括读缓存设备请求和写数据源设备请求,并且通知元数据管理模块构造元数据更新命令;
缓存资源回写步骤S1422:将元数据更新命令与数据迁移请求绑定,提交给精简配置模块执行缓存逻辑块回写,并更新缓存块状态,更新缓存脏逻辑块记录和缓存干净逻辑块记录。
其中,应用读请求处理步骤S15还包括:
读请求查询并更新缓存记录步骤S151:缓存管理模块接收到应用的读请求,在缓存数据中查询读请求访问的缓存逻辑块的缓存记录,并通知缓存管理策略模块进行缓存管理记录更新;
读请求映射项查询步骤S152:读取注册的请求映射方法,根据请求映射方法进行逻辑块的缓存状态的映射项查询;
读请求映射步骤S153:根据映射项将读请求映射到目标设备,并将读请求重定向到目标设备进行处理,目标设备为数据源设备或者缓存设备。
其中,应用写请求处理步骤S16还包括:
写请求查询并更新缓存记录步骤S161:缓存接收到应用的写请求,在缓存数据中查询写请求访问的逻辑块的缓存记录,并通知缓存管理策略模块进行缓存管理记录更新;
写请求映射项查询步骤S162:读取注册的请求映射方法,根据请求映射方法进行逻辑块缓存状态的映射项查询;
写请求映射步骤S163:根据映射项将写请求映射到目标设备,并将所述写请求与元数据命令绑定,将所述写请求重定向到目标设备,所述元数据命令提交给所述精简配置模块和所述元数据管理模块进行处理。
其中,图8为本发明精简配置步骤流程示意图,如图8所示,精简配置步骤S2包括:
资源分配步骤S21:精简配置模块接收资源分配请求,并从资源池中为缓存逻辑块分配物理存储块,建立缓存逻辑块与物理存储块的映射关系,并更新资源映射表;
资源回收步骤S22:精简配置模块接收缓存设备针对缓存逻辑块的缓存失效命令,元数据管理模块更新缓存逻辑块的元数据,并取消缓存逻辑块和物理存储块的映射关系,更新空闲物理资源记录;
元数据处理步骤S23:精简配置模块接收元数据更新命令,进行元数据更新并将元数据存储到元数据存储区,或接收元数据查询命令,进行元数据查询;
写请求处理步骤S24:逻辑卷接收写请求和元数据更新命令,通知元数据管理模块进行元数据更新,为所访问逻辑地址的首次写向资源分配模块发送资源分配命令,资源分配模块为该请求分配物理存储块;将写请求转发到下层物理设备;
读请求处理步骤S25:逻辑卷接收读请求,查找读请求访问缓存逻辑块的数据存储的物理存储块,并将读请求重定向到目标设备。
以下结合具体实施例详细说明本发明缓存方法的流程。
本发明涉及缓存管理步骤和精简配置步骤两部分。
(一)缓存管理步骤
缓存管理步骤包括缓存管理策略注册与注销步骤,缓存预取步骤,缓存回收步骤,缓存回写步骤,应用读请求处理步骤,应用写请求处理步骤。
1.缓存管理策略注册与注销步骤:
a)缓存管理策略注册步骤:
i.按照缓存系统策略框架生成缓存管理策略模块实例;
ii.加载缓存管理策略模块;
iii.将缓存策略模块添加到缓存系统的策略库中,策略注册完成。
b)缓存管理策略注销步骤:
bi.检查被注销的缓存管理策略是否被引用;若该策略正在被引用执行步骤(bii);否则执行步骤(biii);
bii.保留策略模块,并返回;
biii.将该策略模块从缓存系统策略库中移除,策略注销完成返回。
2.缓存预取步骤,图9为本发明实施例缓存预取步骤示意图,如图9所示:
步骤S301:缓存预取线程向当前缓存管理决策模块发送缓存预取决策询问消息;
步骤S302:缓存管理决策模块通知缓存预取策略进行预取决策;
步骤S303:缓存预取策略根据当前预取算法,更新待预取逻辑块集合,将集合中的逻辑块按照优先级排列,并返回当前可预取的逻辑块数量N;
步骤S304:缓存管理驱动模块选取待预取逻辑块集合中的前N个逻辑块执行预取操作:
步骤S3041:数据迁移子模块为逻辑块构造数据迁移请求,其中数据迁移请求包括读数据源设备请求和写缓存设备请求;
步骤S3042:向逻辑缓存资源管理模块发送逻辑资源分配请求,该模块通知缓存资源监测子模块,检查缓存层空闲逻辑缓存资源数量是否满足资源分配要求;
步骤S3043:若不满足,则等待重复执行步骤S3042,否则执行逻辑缓存资源分配,并更新空闲逻辑资源记录;
步骤S3044:数据迁移子模块将数据迁移请求提交到数据迁移请求提交子模块;
步骤S3045:数据迁移请求提交子模块通知元数据管理模块构造元数据更新命令;
步骤S3046:将数据迁移请求与元数据命令绑定;
步骤S3047:请求提交模块向精简配置模块缓存设备逻辑卷提交数据迁移请求;并调用元数据管理模块向缓存设备提交数据更新命令;
步骤S3048:元数据更新命令及数据迁移请求均完成后,更新内存的缓存元数据,将完成预取的逻辑块缓存状态更新为缓存干净状态,并更新缓存干净逻辑块记录;
步骤S305:所有N个逻辑块的数据均迁移到缓存设备后,预取结束。
3.缓存资源回收步骤,图10为本发明实施例缓存回收步骤示意图,如图10所示:
步骤S401:缓存资源监测子模块检查到空闲资源小于低临界值,唤醒缓存回收线程;
步骤S402:缓存回收线程向缓存管理决策模块发送缓存回收决策消息,缓存管理决策模块通知缓存策略模块进行回收决策;
步骤S403:缓存回收策略确定本次可回收的缓存逻辑块,据此更新待回收缓存逻辑块集合,将待回收逻辑块按照优先级顺序排列;并返回本次可回收缓存块数量N;
步骤S404:缓存管理驱动模块选取待预取逻辑块集合中的前N个逻辑块执行预取操作:
步骤S4041:缓存回收驱动通知元数据管理模块构造逻辑块的缓存失效元数据更新命令;
步骤S4042:缓存回收驱动向请求提交模块提交缓存失效元数据命令;
步骤S4043:请求提交模块调用元数据管理模块向精简配置模块缓存设备逻辑卷提交缓存失效元数据更新命令;
步骤S4044:缓存失效元数据更新命令返回后,更新内存缓存元数据,将相应的逻辑块标识为缓存无效;
步骤S4045:更新空闲逻辑缓存资源数量;
步骤S405:缓存的空闲逻辑缓存资源数量达到上限制临界值,本次回收结束,否则执行步骤S402继续回收。
4.缓存回写步骤,图11为本发明实施例缓存回写步骤示意图,如图11所示:
步骤S501:缓存资源监测子模块监测到脏缓存块超过上限临界值时,唤醒缓存回写线程;
步骤S502:缓存回写线程向缓存决策模块发送缓存回写决策消息,缓存决策模块通知缓存回写策略进行回写决策;
步骤S503:缓存回写策略确定可回写的缓存块,并据此更新待回写缓存块集合,将待回写逻辑块按优先级排列,并返回需要回写缓存脏块数量N;
步骤S504:缓存回写线程通知缓存管理驱动模块实施缓存回写;
步骤S5041:缓存管理驱动模块接收到缓存回写消息,由数据迁移子模块为待回写逻辑块构造数据迁移请求,其中数据迁移请求包括读缓存设备请求和写数据源设备请求;将数据迁移请求提交到数据迁移请求提交子模块;
步骤S5042:数据迁移请求提交子模块通知元数据管理模块构造元数据更新命令;
步骤S5043:将数据请求与元数据命令绑定;
步骤S5044:请求提交模块向精简配置模块缓存设备逻辑卷提交数据迁移请求;并调用元数据管理模块接口向缓存设备提交数据更新命令;
步骤S5045:元数据更新请求及数据迁移请求均完成后,更新内存的缓存元数据,将完成回写的逻辑块缓存状态标识为缓存干净状态。
步骤S5046:逻辑缓存资源管理模块更新缓存脏数据块记录和缓存干净数据块记录。
步骤S505:当前缓存中的缓存脏数据块达到下限时,回写结束,否则重复执行步骤S502继续回收。
5.应用读请求处理步骤,图12为本发明实施例读请求处理步骤示意图,如图12所示:
步骤S601:应用IO线程接收到发送到缓存逻辑卷的应用读请求,缓存元数据管理模块在内存缓存元数据中查询当前访问逻辑块的缓存记录;
步骤S602:向缓存决策模块发送notify消息,缓存决策模块通知缓存管理策略更新相应的逻辑块记录;
步骤S603:IO线程将读请求以及逻辑块缓存记录提交给请求提交模块的应用请求提交子模块;
步骤S604:应用请求提交子模块向应用请求映射模块发送请求映射查询消息;应用请求映射模块根据当前缓存逻辑卷注册的请求映射策略,和该逻辑块的缓存状态,
获取该读请求的目标设备以及该读请求产生的元数据变化操作,其中若该逻辑块为缓存无效将被映射到数据源设备,否则被映射到缓存设备;
步骤S605:将该读请求重定向到该目标设备,并转发该读请求;
步骤S606:读请求返回后逐层向上返回。
6.应用写请求处理步骤,图13为本发明实施例写请求处理步骤示意图,如图13所示:
步骤S701:IO线程接收到发送到缓存逻辑卷的应用写请求,缓存元数据管理模块在内存元数据中查询当前访问逻辑块的缓存状态记录;
步骤S702:向缓存决策模块发送notify消息,缓存决策模块通知缓存管理策略更新相应的缓存管理记录;
步骤S703:IO线程将该写请求以及对应的逻辑块缓存记录提交给请求提交模块的应用请求提交子模块;
步骤S704:应用请求提交子模块向应用请求映射模块发送映射查询消息;应用请求映射模块根据当前缓存逻辑卷注册的请求映射策略,和该逻辑块的缓存状态,获取该写请求的目标设备以及该写请求产生的元数据变化操作;
步骤S705:将该写请求定向到映射策略返回的目标设备;
步骤S706:通知元数据管理模块构造元数据更新命令;
步骤S707:请求提交模块将该写请求与元数据命令绑定;
步骤S708:请求提交模块向精简配置模块缓存设备逻辑卷提交写请求;并调用元数据管理模块接口向缓存设备提交数据更新命令;
步骤S709:元数据更新请求及数据迁移请求均完成后,更新内存缓存元数据;逻辑缓存资源管理模块更新缓存脏数据块记录;
步骤S710:向上层返回;
(二)精简配置模块步骤
精简配置模块步骤包括元数据处理步骤,资源分配步骤,资源回收步骤,写请求处理步骤,读请求处理步骤。
1.资源分配步骤:
a)接收到资源分配请求,从资源池中为逻辑块分配物理存储块,更新资源池空闲资源池记录;
b)建立缓存逻辑块与物理存储块映射关系,更新资源映射表;
c)资源分配完成并返回。
2.资源回收步骤:
a)精简配置模块的缓存设备逻辑卷接收到缓存模块的针对逻辑块的缓存失效命令;
b)元数据管理模块更新该逻辑块元数据;
c)取消缓存逻辑块和物理存储块的映射关系,并更新空闲物理资源记录;
d)资源回收命令处理完成后返回;
3.元数据处理步骤:
a)元数据更新步骤:
i.接收到元数据更新命令,解析命令参数,获取逻辑块号,及缓存状态;
ii.查找逻辑块属性项,按照缓存状态更新元数据;
iii.将元数据写入磁盘元数据区。
b)元数据查询步骤:
i.接收到针对逻辑块的元数据查询命令,解析命令参数,获取逻辑块号;
ii.从磁盘元数据区读取逻辑块的状态,并返回。
4.写请求处理步骤:
a)缓存设备逻辑卷接收到写请求和元数据更新命令;
b)将元数据更新命令转发给元数据管理模块更新元数据;
c)判断该写请求是否为所访问逻辑地址的首次写请求,若是则向资源分配模块发送资源分配消息;
d)将写请求重定向到底层物理设备,并转发;
e)写请求与元数据更新均完成后向上层返回。
5.读请求处理步骤:
a)缓存设备逻辑卷接收到请求,查找该读请求访问逻辑块数据存储的物理存储块;
b)将读请求重定向到数据存储物理设备,并转发;
c)读请求返回后向上层返回。
综上所述,本发明提供的基于精简配置系统的块设备缓存装置及其方法,对外提供标准块设备接口,并且有效进行缓存功能维护与物理资源管理实施分离。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (20)

1.一种基于精简配置系统的块设备缓存装置,其特征在于,所述缓存系统包含上层模块和底层设备,所述底层设备包含一缓存设备和一数据源设备,所述上层模块包含缓存管理模块和精简配置模块,分别实现逻辑缓存资源管理功能与物理资源管理功能,所述精简配置模块对外导出逻辑容量与所述数据源设备容量相同的一标准块设备逻辑卷,并且所述精简配置模块支持资源回收功能。
2.根据权利要求1所述基于精简配置系统的块设备缓存装置,其特征在于:
所述缓存管理模块:用于根据缓存资源管理策略维护缓存管理逻辑;所述缓存管理模块接收应用请求,发起缓存预取,缓存回写,缓存资源回收操作,实现逻辑缓存资源管理以及逻辑块缓存状态维护和管理;
所述精简配置模块:该模块通过通用块层接口与所述缓存管理模块连接,对外导出指定容量的虚拟逻辑卷;所述精简配置模块采用自动精简配置技术,接收所述缓存管理模块下发读写缓存请求,并为首次写实现资源写时分配、资源映射,接收所述缓存管理模块的缓存管理命令,持久化存储缓存元数据,其中,接收到缓存失效命令,实施资源回收操作并持久化存储相应的缓存元数据。
3.根据权利要求2所述基于精简配置系统的块设备缓存装置,其特征在于,所述缓存管理模块包括:
缓存资源管理策略模块:用于提供统一的缓存策略接口,负责向缓存系统注册缓存管理策略并支持动态的缓存管理策略注册及注销,所述缓存管理策略包括:缓存预取策略,缓存回写策略和缓存替换策略;
逻辑缓存资源管理模块:用于进行缓存资源监测,并更新和维护当前缓存资源使用记录;
缓存管理决策模块:根据所述缓存管理策略进行缓存无效逻辑块的预取、缓存逻辑块的回写或替换决策,并返回决策结果;
缓存资源管理驱动模块:根据所述缓存管理决策模块返回的决策结果,执行所述缓存预取、缓存回收或缓存回写操作,并为所述缓存预取和缓存回写构造数据迁移请求;
应用请求映射模块:根据请求映射方法将应用请求重定向到目标设备,所述目标设备包含:缓存设备或者数据源设备,所述请求映射方法包括:写无效,写回和写直达;
缓存元数据管理模块:负责在内存中维护逻辑块的缓存状态,并根据所述缓存资源管理驱动模块的执行结果更新相应的所述逻辑块的缓存状态,根据所述逻辑块的状态变化向所述精简配置模块发送元数据更新命令,所述缓存逻辑块的缓存状态包括:缓存干净、缓存脏和缓存无效;
请求提交模块:用于提交应用请求和数据迁移请求。
4.根据权利要求3所述基于精简配置系统的块设备缓存装置,其特征在于,所述逻辑缓存资源管理模块还包括:
缓存资源监测模块:用于监测空闲缓存资源数量和缓存脏逻辑块数量,缓存资源不足或者缓存脏逻辑块数量超过高临界值时,通知所述缓存管理决策模块进行缓存资源回收或者缓存回写决策;
逻辑缓存记录模块;更新并维护当前逻辑缓存资源使用记录,其中所述逻辑缓存记录包括空闲逻辑缓存资源数量,缓存脏逻辑块数量和缓存干净逻辑块数量。
5.根据权利要求3所述基于精简配置系统的块设备缓存装置,其特征在于,所述缓存资源管理驱动模块还包括:
数据迁移模块:用于为缓存预取和缓存回写构造数据迁移请求,所述数据迁移请求包括:数据读请求和数据写请求。
6.根据权利要求3所述基于精简配置系统的块设备缓存装置,其特征在于,所述请求提交模块还包括:
数据迁移请求提交模块:用于将数据迁移请求提交到所述目标设备,并向所述元数据管理模块发送元数据更新命令;
应用请求提交模块:用于提交应用请求提交到所述目标设备,并向所述元数据管理模块发送元数据更新命令。
7.根据权利要求2所述基于精简配置系统的块设备缓存装置,其特征在于,所述精简配置模块包括:
资源映射模块:用于维护缓存数据块与物理缓存存储资源块的映射关系;
元数据处理模块:用于更新所述缓存逻辑块的缓存状态并持久化存储所述缓存状态,向所述缓存设备提供所述缓存状态查询服务;
资源虚拟化管理模块:用于负责将所述缓存设备进行虚拟池化管理,按照需求提供存储资源;
资源分配模块:用于接收资源分配命令从可用资源池中分配存储资源;
资源回收模块:用于接收资源回收命令并执行所述资源回收操作。
8.根据权利要求2所述基于精简配置系统的块设备缓存装置,其特征在于,所述通用块层接口包括:
数据接口:用于所述缓存管理模块与所述精简配置模块之间的IO请求的传递;
控制命令接口:用于所述缓存管理模块与所述资精简配置模块之间的控制命令传递,所述控制命令包括:缓存状态更新命令和缓存状态查询命令。
9.一种基于精简配置系统的块设备缓存方法,应用于如权利要求1-8中任一项所述基于精简配置的块设备缓存装置,其特征在于,所述缓存方法包括:
缓存管理步骤:用于进行缓存资源策略管理、缓存预取、缓存回收、缓存回写和应用请求处理;
精简配置步骤,用于进行IO请求处理,缓存资源写时分配、资源回收和元数据状态管理。
10.根据权利要求9所述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存管理步骤包括:
缓存管理策略注册与注销步骤:用于生成并注册缓存管理策略,并可根据用户管理需求结合所述缓存管理策略的引用情况,进行所述缓存管理策略的保留或移除;
缓存预取步骤:根据所述缓存管理决策模块确定的缓存预取决策,更新待预取缓存逻辑块集合,并执行缓存预取操作;
缓存回收步骤:根据所述缓存管理决策模块确定的缓存逻辑块的回收决策,更新待回收缓存逻辑块集合,并执行缓存资源回收操作;
缓存回写步骤:根据所述缓存管理决策模块确定的缓存逻辑块的回写决策,更新待回写缓存逻辑块集合,并执行缓存回写操作;
应用读请求处理步骤:所述应用请求映射模块根据逻辑块缓存记录及应用读请求,获取所述读请求的目标设备以及所述读请求产生的元数据变化操作,并重定向所述读请求到目标设备;
应用写请求处理步骤:所述应用请求映射模块根据逻辑块缓存记录及应用写请求,获取所述写请求目标设备以及所述写请求产生的元数据变化操作,进行所述写请求与元数据更新命令绑定,重定向所述写请求到目标设备,并完成数据和元数据更新。
11.根据权利要求9所述基于精简配置系统的块设备缓存方法,其特征在于,所述精简配置步骤包括:
资源分配步骤:所述精简配置模块接收资源分配请求,并从资源池中为缓存逻辑块分配物理存储块,建立所述缓存逻辑块与所述物理存储块的映射关系,并更新资源映射表和空闲物理资源记录;
资源回收步骤:所述精简配置模块接收所述缓存设备针对缓存逻辑块的缓存失效命令,所述元数据管理模块更新所述缓存逻辑块的元数据,并取消所述缓存逻辑块和所述物理存储块的映射关系,更新空闲物理资源记录;
元数据处理步骤:所述精简配置模块接收元数据更新命令,进行元数据更新,或接收元数据查询命令,进行元数据查询;
写请求处理步骤:所述逻辑卷接收所述写请求和所述元数据更新命令,通知所述元数据管理模块进行元数据更新,为所访问逻辑地址的首次写向资源分配模块发送资源分配命令,资源分配模块为该请求分配物理存储块;将写请求转发到下层物理设备;
读请求处理步骤:所述逻辑卷接收所述读请求,查找所述读请求访问缓存逻辑块的数据存储的物理存储块,并将所述读请求重定向到目标物理存储地址。
12.根据权利要求10所述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存管理策略注册与注销步骤还包括:
缓存资源管理策略注册步骤包括:缓存系统策略框架生成缓存管理策略实例,所述缓存管理策略包括:缓存预取,缓存回写和缓存替换,将所述缓存管理策略添加到所述缓存系统的策略库中;
缓存资源管理策略注销步骤包括:检查待注销的所述缓存管理策略是否被引用,若所述缓存管理策略未被引用,则将所述缓存管理策略从所述策略库中移除,若所述缓存管理策略正在被引用,则不做任何操作。
13.根据权利要求10所述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存预取步骤还包括:
缓存预取决策步骤:所述缓存管理决策模块根据接收到的缓存预取决策询问消息,进行缓存预取决策,并更新待预取逻辑块集合,将所述待预取逻辑块集合中的逻辑块按照优先级排列,并将当前可预取的逻辑块数量发送给所述缓存管理驱动模块;
缓存预取执行步骤:所述缓存管理驱动模块根据接收到的所述当前可预取的逻辑块数量执行预取操作。
14.根据权利要求13所述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存预取执行步骤还包括:
预取请求构造步骤:所述数据迁移模块构造数据迁移请求,所述数据迁移请求包括读数据源设备请求和写缓存设备请求,并且所述逻辑缓存资源管理模块向所述缓存资源监测模块发送逻辑资源分配请求;
检查资源数量步骤:所述缓存资源监测模块检查空闲逻辑资源数量是否满足资源分配要求,如果不满足,则等待资源满足分配条件,如果满足,则进行逻辑缓存资源分配;
缓存资源分配步骤:所述数据迁移请求提交模块通知所述元数据管理模块构造元数据更新命令,将所述元数据更新命令与所述数据迁移请求绑定,并提交给所述精简配置模块执行缓存资源分配以及数据迁移,更新相关缓存状态以及缓存干净逻辑块记录。
15.根据权利要求10所述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存回收步骤还包括:
缓存回收决策步骤:所述缓存资源监测模块监测到空闲资源低于临界值,所述缓存管理决策模块根据接收到的缓存回收决策消息,进行缓存回收决策,并更新待回收逻辑块集合,将所述待回收逻辑块集合中的逻辑块按照优先级排列,并将当前可回收的逻辑块数量发送给所述缓存管理驱动模块;
缓存回收执行步骤:所述缓存管理驱动模块根据接收到的所述当前可回收的逻辑块数量执行回收操作。
16.根据权利要求15所述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存回收执行步骤还包括:
回收请求构造步骤:所述元数据管理模块构造缓存逻辑块的缓存失效元数据更新命令,并提交给所述请求提交模块;
缓存资源回收步骤:所述请求提交模块将所述缓存失效元数据更新请求提交给所述精简配置模块执行缓存资源回收,并更新缓存逻辑块状态,更新空闲逻辑资源记录和缓存干净逻辑块记录。
17.根据权利要求10所述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存回写步骤还包括:
缓存回写决策步骤:所述缓存资源监测模块监测到脏缓存块数量高于临界值,所述缓存管理决策模块根据接收到的缓存回写决策消息,进行缓存回写决策,并更新待回写逻辑块集合,将所述待回写逻辑块集合中的逻辑块按照优先级排列,并将当前可回写的逻辑块数量发送给所述缓存管理驱动模块;
缓存回写执行步骤:所述缓存管理驱动模块根据接收到的所述当前可回写的逻辑块数量执行回写操作。
18.根据权利要求17所述基于精简配置系统的块设备缓存方法,其特征在于,所述缓存回写执行步骤还包括:
回写请求构造步骤:所述数据迁移模块构造数据迁移请求,所述数据迁移请求包括读缓存设备请求和写数据源设备请求,并且所述元数据管理模块构造元数据更新命令;
缓存资源回写步骤:将所述元数据更新命令与所述数据迁移请求绑定,提交给所述精简配置模块执行缓存逻辑块回写,并更新缓存块状态,更新缓存脏逻辑块记录和缓存干净逻辑块记录。
19.根据权利要求10所述基于精简配置系统的块设备缓存方法,其特征在于,所述应用读请求处理步骤还包括:
读请求查询并更新缓存记录步骤:所述缓存管理模块接收到应用的读请求,在缓存数据中查询所述读请求访问的缓存逻辑块的缓存记录,并通知所述缓存管理策略模块进行缓存管理记录更新;
读请求映射项查询步骤:读取注册的所述请求映射方法,根据所述请求映射方法进行逻辑块的缓存状态的映射项查询;
读请求映射步骤:根据所述映射项将所述读请求映射到目标设备,并将所述读请求重定向到所述目标设备进行处理,所述目标设备为数据源设备或者缓存设备。
20.根据权利要求10所述基于精简配置系统的块设备缓存方法,其特征在于,所述应用写请求处理步骤还包括:
写请求查询并更新缓存记录步骤:缓存接收到应用的写请求,在缓存数据中查询所述写请求访问的逻辑块的缓存记录,并通知所述缓存管理策略模块进行缓存管理记录更新;
写请求映射项查询步骤:读取注册的所述请求映射方法,根据所述请求映射方法进行逻辑块缓存状态的映射项查询;
写请求映射步骤:根据所述映射项将所述写请求映射到目标设备,并将所述写请求与元数据命令绑定,将所述写请求重定向到所述目标设备,所述元数据命令提交给所述精简配置模块和所述元数据管理模块进行处理。
CN201410219002.XA 2014-05-22 2014-05-22 一种基于精简配置系统的块设备缓存装置及其方法 Expired - Fee Related CN104035887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410219002.XA CN104035887B (zh) 2014-05-22 2014-05-22 一种基于精简配置系统的块设备缓存装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410219002.XA CN104035887B (zh) 2014-05-22 2014-05-22 一种基于精简配置系统的块设备缓存装置及其方法

Publications (2)

Publication Number Publication Date
CN104035887A true CN104035887A (zh) 2014-09-10
CN104035887B CN104035887B (zh) 2017-10-31

Family

ID=51466659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410219002.XA Expired - Fee Related CN104035887B (zh) 2014-05-22 2014-05-22 一种基于精简配置系统的块设备缓存装置及其方法

Country Status (1)

Country Link
CN (1) CN104035887B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528001A (zh) * 2016-12-05 2017-03-22 北京航空航天大学 一种基于非易失性存储器和软件raid的缓存系统
WO2017167056A1 (zh) * 2016-03-29 2017-10-05 阿里巴巴集团控股有限公司 一种虚拟机的数据存储方法和装置
CN108427647A (zh) * 2017-02-15 2018-08-21 三星电子株式会社 读取数据的方法以及混合存储器模块
CN109471843A (zh) * 2018-12-24 2019-03-15 郑州云海信息技术有限公司 一种元数据缓存方法、系统及相关装置
CN110008135A (zh) * 2018-01-05 2019-07-12 北京搜狗科技发展有限公司 一种信息处理方法、装置及电子设备
CN110213351A (zh) * 2019-05-17 2019-09-06 北京航空航天大学 一种面向广域高性能计算环境的动态自适应io负载均衡方法
CN110413226A (zh) * 2019-06-29 2019-11-05 苏州浪潮智能科技有限公司 一种存储池化容量利用方法,系统,电子设备及存储介质
CN111930707A (zh) * 2020-07-10 2020-11-13 江苏安超云软件有限公司 一种windows云迁移的盘符修正方法及系统
CN112162850A (zh) * 2020-09-03 2021-01-01 北京浪潮数据技术有限公司 一种内存申请方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090049320A1 (en) * 2007-08-14 2009-02-19 Dawkins William P System and Method for Managing Storage Device Capacity Usage
CN101689148A (zh) * 2008-05-29 2010-03-31 威睿公司 向存储硬件的存储操作卸载
CN101809551A (zh) * 2007-10-01 2010-08-18 国际商业机器公司 自动精简配置迁移和清理
CN103365781A (zh) * 2012-03-29 2013-10-23 国际商业机器公司 用于动态地重新配置存储系统的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090049320A1 (en) * 2007-08-14 2009-02-19 Dawkins William P System and Method for Managing Storage Device Capacity Usage
CN101809551A (zh) * 2007-10-01 2010-08-18 国际商业机器公司 自动精简配置迁移和清理
CN101689148A (zh) * 2008-05-29 2010-03-31 威睿公司 向存储硬件的存储操作卸载
CN103365781A (zh) * 2012-03-29 2013-10-23 国际商业机器公司 用于动态地重新配置存储系统的方法和设备

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239319B (zh) * 2016-03-29 2021-05-28 阿里巴巴集团控股有限公司 一种虚拟机的数据存储方法和装置
WO2017167056A1 (zh) * 2016-03-29 2017-10-05 阿里巴巴集团控股有限公司 一种虚拟机的数据存储方法和装置
CN107239319A (zh) * 2016-03-29 2017-10-10 阿里巴巴集团控股有限公司 一种虚拟机的数据存储方法和装置
TWI735542B (zh) * 2016-03-29 2021-08-11 香港商阿里巴巴集團服務有限公司 一種虛擬機器的資料儲存方法和裝置
CN106528001B (zh) * 2016-12-05 2019-08-23 北京航空航天大学 一种基于非易失性存储器和软件raid的缓存系统
CN106528001A (zh) * 2016-12-05 2017-03-22 北京航空航天大学 一种基于非易失性存储器和软件raid的缓存系统
CN108427647A (zh) * 2017-02-15 2018-08-21 三星电子株式会社 读取数据的方法以及混合存储器模块
CN108427647B (zh) * 2017-02-15 2023-08-08 三星电子株式会社 读取数据的方法以及混合存储器模块
CN110008135B (zh) * 2018-01-05 2024-01-30 北京搜狗科技发展有限公司 一种信息处理方法、装置及电子设备
CN110008135A (zh) * 2018-01-05 2019-07-12 北京搜狗科技发展有限公司 一种信息处理方法、装置及电子设备
CN109471843B (zh) * 2018-12-24 2021-08-10 郑州云海信息技术有限公司 一种元数据缓存方法、系统及相关装置
CN109471843A (zh) * 2018-12-24 2019-03-15 郑州云海信息技术有限公司 一种元数据缓存方法、系统及相关装置
CN110213351A (zh) * 2019-05-17 2019-09-06 北京航空航天大学 一种面向广域高性能计算环境的动态自适应io负载均衡方法
CN110413226A (zh) * 2019-06-29 2019-11-05 苏州浪潮智能科技有限公司 一种存储池化容量利用方法,系统,电子设备及存储介质
CN110413226B (zh) * 2019-06-29 2022-07-19 苏州浪潮智能科技有限公司 一种存储池化容量利用方法,系统,电子设备及存储介质
CN111930707A (zh) * 2020-07-10 2020-11-13 江苏安超云软件有限公司 一种windows云迁移的盘符修正方法及系统
CN111930707B (zh) * 2020-07-10 2022-08-02 江苏安超云软件有限公司 一种windows云迁移的盘符修正方法及系统
CN112162850A (zh) * 2020-09-03 2021-01-01 北京浪潮数据技术有限公司 一种内存申请方法、装置、设备和介质
CN112162850B (zh) * 2020-09-03 2023-12-22 北京浪潮数据技术有限公司 一种内存申请方法、装置、设备和介质

Also Published As

Publication number Publication date
CN104035887B (zh) 2017-10-31

Similar Documents

Publication Publication Date Title
CN104035887A (zh) 一种基于精简配置系统的块设备缓存装置及其方法
JP7046669B2 (ja) 逆キャッシュテーブルを用いるハードウェアベースのマップアクセラレーション
EP3301584B1 (en) Storage system, storage management device, storage device, hybrid storage device, and storage management method
CN101382873B (zh) 储存单元管理方法及系统
CN103942011B (zh) 一种差量快照系统及其使用方法
US9043560B2 (en) Distributed cache coherency protocol
CN103365793B (zh) 数据处理方法和系统
CN105164653B (zh) 属性字段的多核页表集合
CN109697016B (zh) 用于改进容器的存储性能的方法和装置
CN104166634A (zh) 一种固态盘系统中的映射表缓存管理方法
CN103365794B (zh) 数据处理方法、装置和系统
CN104636181A (zh) 用于迁移虚拟机的方法和系统
US10140031B2 (en) Hierarchical flash translation layer structure and method for designing the same
CN105917318A (zh) 用于实现基于ssd的i/o高速缓存的系统和方法
US8145870B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
US10061523B2 (en) Versioning storage devices and methods
US10664405B2 (en) In-memory distributed cache
US7721047B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
KR20170029594A (ko) 메모리 관리 방법 및 장치, 및 메모리 컨트롤러
US10565126B2 (en) Method and apparatus for two-layer copy-on-write
US9223799B1 (en) Lightweight metadata sharing protocol for location transparent file access
CN106775684A (zh) 一种基于新型非易失性存储器的磁盘缓存掉电恢复方法
CN109815168A (zh) 用于少标记缓冲器实现的系统和方法
Han et al. Remap-based inter-partition copy for arrayed solid-state drives
CN109213425A (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
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171031