CN103473184B - 文件系统的缓存方法及系统 - Google Patents

文件系统的缓存方法及系统 Download PDF

Info

Publication number
CN103473184B
CN103473184B CN201310331403.XA CN201310331403A CN103473184B CN 103473184 B CN103473184 B CN 103473184B CN 201310331403 A CN201310331403 A CN 201310331403A CN 103473184 B CN103473184 B CN 103473184B
Authority
CN
China
Prior art keywords
data
file system
metadata
caching
ranges
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.)
Expired - Fee Related
Application number
CN201310331403.XA
Other languages
English (en)
Other versions
CN103473184A (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.)
Ramaxel Technology Shenzhen Co Ltd
Original Assignee
Ramaxel Technology Shenzhen 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 Ramaxel Technology Shenzhen Co Ltd filed Critical Ramaxel Technology Shenzhen Co Ltd
Priority to CN201310331403.XA priority Critical patent/CN103473184B/zh
Publication of CN103473184A publication Critical patent/CN103473184A/zh
Application granted granted Critical
Publication of CN103473184B publication Critical patent/CN103473184B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明适用于储存技术领域,提供了一种文件系统的缓存方法,通过固态硬盘实现,所述方法包括:配置所述文件系统的元数据的逻辑地址范围;获取所述文件系统所在的块设备的所有IO;判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交;若所述IO的地址范围与所述元数据的逻辑地址范围有相交,则缓存所述IO的数据。本发明还相应的提供一种文件系统的缓存系统。借此,本发明可确定对捕获的IO数据是否需要缓存,从而加速文件系统的IO处理速度。

Description

文件系统的缓存方法及系统
技术领域
本发明涉及存储技术领域,尤其涉及一种文件系统的缓存方法及系统。
背景技术
固态硬盘(SSD)采用闪存作为存储介质,读取速度相对机械硬盘更快。固态硬盘不用磁头,寻道时间几乎为0。持续写入的速度非常惊人,不仅仅体现在持续读写上,随机读写速度也是极快,最常见的7200转机械硬盘的寻道时间一般为12-14毫秒,而固态硬盘可以轻易达到0.1毫秒甚至更低!
SSD在存储市场得到了广泛的应用,其应用模式除了作为机械硬盘的代替,还可以将SSD作为缓存,通常是作为块设备(块设备的基本特征是每个块都能独立于其它块而读写,磁盘是最常见的块设备)的缓存。但在这种模式下,何种数据需要存储在SSD中是个难题,究其原因是针对块设备的缓存失去了应用上下文,无法准确发现“热点”数据。
在文件系统中,metadata记录了文件系统的信息以及文件的信息,这些信息会被文件系统频繁访问,这会导致大量随机IO,对于机械硬盘而言,大量的随机寻道时间将严重影响磁盘系统,从而导致基于文件系统的应用IO反映迟钝。
综上可知,现有的文件缓存方法及系统,在实际使用上显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种文件系统的缓存方法及系统,可确定对捕获的IO数据是否需要缓存,从而加速文件系统的IO处理速度。
为了实现上述目的,本发明提供一种文件系统的缓存方法,通过固态硬盘实现,所述方法包括:
配置所述文件系统的元数据的逻辑地址范围;
获取所述文件系统所在的块设备的IO;
判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交;
若所述IO的地址范围与所述元数据的逻辑地址范围有相交,则缓存所述IO的数据。
根据本发明的文件系统的缓存方法,所述配置所述文件系统的元数据的逻辑地址范围步骤包括:
通过第三方工具获取所述文件系统的元数据地址范围;
记录所述文件系统的元数据地址范围。
根据本发明的文件系统的缓存方法,所述获取所述文件系统所在的块设备的所有IO的步骤包括:
通过修改内核中所述块设备的驱动来获取所述IO。
根据本发明的文件系统的缓存方法,所述若所述IO的地址范围与所述元数据的逻辑地址范围有相交,则缓存所述IO的数据的步骤包括:
若所述IO携带的为数据的写命令,则直接将所述数据写入缓存;
若所述IO携带的为数据的读命令,且在缓存中命中所述数据,则直接返回IO;
若所述IO携带的为数据的读命令,且在缓存中未命中所述数据,则将所述IO派发到所述块设备,所述IO返回时将所述数据复制,并将所述复制的数据写入到所述缓存。
本发明还提供一种文件系统的缓存系统,通过固态硬盘实现,所述缓存系统包括:
元数据配置模块,用于配置所述文件系统的元数据的逻辑地址范围;
IO获取模块,用于获取所述文件系统所在的块设备的IO;
地址判断模块,用于判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交;
数据缓存模块,用于所述IO的地址范围与所述元数据的逻辑地址范围有相交时,缓存所述IO的数据。
根据本发明的文件系统的缓存系统,缓存系统进一步包括,文件系统分析模块,用于通过第三方工具获取所述文件系统的元数据地址范围;
所述元数据配置模块进一步用于记录所述文件系统的元数据地址范围。
根据本发明的文件系统的缓存系统,所述IO获取模块进一步用于通过修改内核中所述块设备的驱动来获取所述IO。
根据本发明的文件系统的缓存系统,若所述IO携带的为数据的写命令,则数据缓存模块直接将所述数据写入缓存;
若所述IO携带的为数据的读命令,且在缓存中命中所述数据,则直接返回IO;
若所述IO携带的为数据的读命令,且在缓存中未命中所述数据,则将所述IO派发到所述块设备,所述IO返回时将所述数据复制,所述数据缓存模块将所述复制的数据写入到所述缓存。
本发明通过将固态硬盘作为缓存结构,其可以分析获取块设备中文件系统的元数据逻辑地址范围,当文件系统具有IO命令时,获取文件系统所在的块设备的该IO,并判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交,若有相交,则将IO数据缓存,否则直接将IO派发到块设备,借此,本发明可以确定对捕获的IO数据是否需要缓存,从而加速文件系统的IO处理速度。
附图说明
图1是本发明一实施例的缓存系统的结构示意图;
图2是本发明一实施例的文件系统的缓存方法流程图;
图3是本发明另一实施例的IO处理流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,本发明提供了一种文件系统的缓存系统,该缓存系统100通过固态硬盘(SSD)实现,其至少包括:
元数据配置模块10,用于配置所述文件系统的元数据的逻辑地址范围。
优选的是,本发明可以通过元数据配置模块10对文件系统的元数据直接配置逻辑地址范围,也可以通过预设一文件系统分析模块11分析获取文件系统的元数据逻辑地址范围后,再通过元数据配置模块10记录该元数据的逻辑地址范围。具体的,文件系统分析模块11可通过第三方工具如winHex、dumpe2fs等获取所述文件系统的元数据地址范围。
IO获取模块20,用于获取所述文件系统所在的块设备的IO。
本发明通过修改内核中原块设备的驱动来实现捕获IO,以linux操作系统为例:通过open原设备文件得到设备对应的gendisk,然后通过更改gendisk中的request_queue中的make_request_fn函数地址即可实现。
地址判断模块30,用于判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交,若是,则交由数据缓存模块40处理,否则直接将IO派送到块设备执行。
数据缓存模块40,用于所述IO的地址范围与所述元数据的逻辑地址范围有相交时,缓存所述IO的数据。
具体的,若所述IO携带的为数据的写命令,则数据缓存模块直接将所述数据写入缓存;若所述IO携带的为数据的读命令,且在缓存中命中所述数据,则直接返回IO;若所述IO携带的为数据的读命令,且在缓存中未命中所述数据,则将所述IO派发到所述块设备,所述IO返回时将所述数据复制,所述数据缓存模块将所述复制的数据写入到所述缓存。
本发明的具体应用中,可以将使用热度较高的数据自动写入到缓存,在下一次接收相应数据的IO读/写命令时,可以直接从缓存中获取该数据,加速文件系统对IO的处理速度。
参见图2,本发明提供了一种文件系统的缓存方法,其通过如图1所示的系统100实现,系统100是基于固态硬盘的构架,该方法包括:
步骤S201,配置所述文件系统的元数据的逻辑地址范围。
本发明可以对文件系统的元数据直接配置逻辑地址范围,也可以通过预设分析获取文件系统的元数据逻辑地址范围后,再记录该元数据的逻辑地址范围。具体的,对于文件系统的元数据逻辑地址可通过第三方工具如winHex、dumpe2fs等实现。
步骤S202,获取所述文件系统所在的块设备的IO。
本发明通过修改内核中原块设备的驱动来实现捕获IO,以linux操作系统为例:通过open原设备文件得到设备对应的gendisk,然后通过更改gendisk中的request_queue中的make_request_fn函数地址即可实现。
步骤S203,判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交,若是,则执行步骤S204,否则执行步骤S205。
步骤S204,缓存所述IO的数据。
步骤S205,将所述IO派送到块设备处理。
本发明的具体应用中,可以将使用热度较高的数据自动写入到缓存,在下一次接收相应数据的IO读/写命令时,可以直接从缓存中获取该数据,加速文件系统对IO的处理速度。
参见图3,是本发明一实施例提供的IO处理流程,其包括:
步骤S301,判断IO的地址范围与元数据的逻辑地址范围是否有相交,若是,则执行步骤S302,否则执行步骤S305。
步骤S302,判断IO是否为读命令,若是则执行步骤S303,否则判定该数据为写命令,并执行步骤S304。
步骤S303,判断所述IO的读命令数据是否在缓存中命中,若是则返回IO命令,否则执行步骤S305。
步骤S304,将IO命令数据写入缓存中。
步骤S305,将IO数据重定向到目标设备。
更进一步的,步骤S305之后还包括:所述IO返回时将所述数据复制,并将所述复制的数据写入到缓存中。借此,再次接收到相同数据的IO读命令时,可以直接命中该数据,提高IO速度。
综上所述,本发明通过将固态硬盘作为缓存结构,其可以分析获取块设备中文件系统的元数据逻辑地址范围,当文件系统具有IO命令时,获取文件系统所在的块设备的该IO,并判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交,若有相交,则将IO数据缓存,否则直接将IO派发到块设备,借此,本发明可以确定对捕获的IO数据是否需要缓存,从而加速文件系统的IO处理速度。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (6)

1.一种文件系统的缓存方法,通过固态硬盘实现,其特征在于,所述方法包括:
配置所述文件系统的元数据的逻辑地址范围;
获取所述文件系统所在的块设备的IO;
判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交;
若所述IO的地址范围与所述元数据的逻辑地址范围有相交,则缓存所述IO的数据;
所述配置所述文件系统的元数据的逻辑地址范围步骤包括:
通过第三方工具获取所述文件系统的元数据地址范围;
记录所述文件系统的元数据地址范围;或
对所述文件系统的所述元数据直接配置逻辑地址范围。
2.根据权利要求1所述的文件系统的缓存方法,其特征在于,所述获取所述文件系统所在的块设备的IO的步骤包括:
通过修改内核中所述块设备的驱动来获取所述IO。
3.根据权利要求1所述的文件系统的缓存方法,其特征在于,所述若所述IO的地址范围与所述元数据的逻辑地址范围有相交,则缓存所述IO的数据的步骤包括:
若所述IO携带的为数据的写命令,则直接将所述数据写入缓存;
若所述IO携带的为数据的读命令,且在缓存中命中所述数据,则直接返回IO;
若所述IO携带的为数据的读命令,且在缓存中未命中所述数据,则将所述IO派发到所述块设备,所述IO返回时将所述数据复制,并将所述复制的数据写入到所述缓存。
4.一种文件系统的缓存系统,通过固态硬盘实现,其特征在于,所述缓存系统包括:
元数据配置模块,用于配置所述文件系统的元数据的逻辑地址范围;
IO获取模块,用于获取所述文件系统所在的块设备的IO;
地址判断模块,用于判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交;数据缓存模块,用于所述IO的地址范围与所述元数据的逻辑地址范围有相交时,缓存所述IO的数据;
文件系统分析模块,用于通过第三方工具获取所述文件系统的元数据地址范围;
所述元数据配置模块进一步用于记录所述文件系统的元数据地址范围;
所述元数据配置模块对所述文件系统的所述元数据直接配置逻辑地址范围。
5.根据权利要求4所述的文件系统的缓存系统,其特征在于,所述IO获取模块进一步用于通过修改内核中所述块设备的驱动来获取所述IO。
6.根据权利要求4所述的文件系统的缓存系统,其特征在于,
若所述IO携带的为数据的写命令,则数据缓存模块直接将所述数据写入缓存;
若所述IO携带的为数据的读命令,且在缓存中命中所述数据,则直接返回IO;
若所述IO携带的为数据的读命令,且在缓存中未命中所述数据,则将所述IO派发到所述块设备,所述IO返回时将所述数据复制,所述数据缓存模块将所述复制的数据写入到所述缓存。
CN201310331403.XA 2013-08-01 2013-08-01 文件系统的缓存方法及系统 Expired - Fee Related CN103473184B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310331403.XA CN103473184B (zh) 2013-08-01 2013-08-01 文件系统的缓存方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310331403.XA CN103473184B (zh) 2013-08-01 2013-08-01 文件系统的缓存方法及系统

Publications (2)

Publication Number Publication Date
CN103473184A CN103473184A (zh) 2013-12-25
CN103473184B true CN103473184B (zh) 2016-08-10

Family

ID=49798046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310331403.XA Expired - Fee Related CN103473184B (zh) 2013-08-01 2013-08-01 文件系统的缓存方法及系统

Country Status (1)

Country Link
CN (1) CN103473184B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107797759B (zh) * 2016-09-05 2021-05-18 北京忆恒创源科技有限公司 访问缓存信息的方法、装置与驱动器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766853A (zh) * 2004-10-28 2006-05-03 国际商业机器公司 使用锁定高速缓冲存储器用于直接存入的系统和方法
CN102024044A (zh) * 2010-12-08 2011-04-20 华为技术有限公司 分布式文件系统
CN102696010A (zh) * 2009-09-08 2012-09-26 弗森-艾奥公司 用于将数据高速缓存在固态存储设备上的装置、系统和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693230B (zh) * 2011-03-23 2015-12-09 伊姆西公司 用于存储区域网络的文件系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1766853A (zh) * 2004-10-28 2006-05-03 国际商业机器公司 使用锁定高速缓冲存储器用于直接存入的系统和方法
CN102696010A (zh) * 2009-09-08 2012-09-26 弗森-艾奥公司 用于将数据高速缓存在固态存储设备上的装置、系统和方法
CN102024044A (zh) * 2010-12-08 2011-04-20 华为技术有限公司 分布式文件系统

Also Published As

Publication number Publication date
CN103473184A (zh) 2013-12-25

Similar Documents

Publication Publication Date Title
US11868257B2 (en) Cache write overlap handling
KR102584018B1 (ko) 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법
CN105159622B (zh) 一种减小ssd读写io时延的方法与系统
US9348747B2 (en) Solid state memory command queue in hybrid device
US20160092361A1 (en) Caching technologies employing data compression
US9069474B2 (en) Retention based defecting in a hybrid memory system
CN105183374B (zh) 一种数据读写方法以及主板
CN103543955A (zh) 利用固态硬盘作为设备读缓存的方法、系统及固态硬盘
AU2006331830A1 (en) Optimizing write and wear performance for a memory
CN106569732B (zh) 数据迁移方法及装置
CN112799595B (zh) 数据处理方法、设备及存储介质
CN112130769B (zh) 一种机械硬盘数据处理方法、装置、设备及介质
US20260023689A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages
CN110321081B (zh) 一种闪存读缓存的方法及其系统
CN103473184B (zh) 文件系统的缓存方法及系统
US10031689B2 (en) Stream management for storage devices
Liu et al. Raf: A random access first cache management to improve SSD-based disk cache
CN103049395B (zh) 缓存存储设备数据的方法及其系统
CN110515861A (zh) 处理刷写命令的存储设备及其方法
US10268386B2 (en) Data storage device including temporary storage locations
JP2003241904A5 (zh)
US9785563B1 (en) Read command processing for data storage system based on previous writes
JP5953245B2 (ja) 情報処理システム
CN103777900A (zh) 一种分区重映射访问磁盘阵列的方法
KR101831126B1 (ko) 스토리지 내의 데이터 처리 장치의 제어 방법

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160810