CN103473184A - 文件系统的缓存方法及系统 - Google Patents
文件系统的缓存方法及系统 Download PDFInfo
- Publication number
- CN103473184A CN103473184A CN201310331403XA CN201310331403A CN103473184A CN 103473184 A CN103473184 A CN 103473184A CN 201310331403X A CN201310331403X A CN 201310331403XA CN 201310331403 A CN201310331403 A CN 201310331403A CN 103473184 A CN103473184 A CN 103473184A
- Authority
- CN
- China
- Prior art keywords
- file system
- data
- metadata
- buffer memory
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 239000007787 solid Substances 0.000 claims abstract description 12
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
Images
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 (8)
1.一种文件系统的缓存方法,通过固态硬盘实现,其特征在于,所述方法包括:
配置所述文件系统的元数据的逻辑地址范围;
获取所述文件系统所在的块设备的IO;
判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交;
若所述IO的地址范围与所述元数据的逻辑地址范围有相交,则缓存所述IO的数据。
2.根据权利要求1所述的文件系统的缓存方法,其特征在于,所述配置所述文件系统的元数据的逻辑地址范围步骤包括:
通过第三方工具获取所述文件系统的元数据地址范围;
记录所述文件系统的元数据地址范围。
3.根据权利要求1所述的文件系统的缓存方法,其特征在于,所述获取所述文件系统所在的块设备的IO的步骤包括:
通过修改内核中所述块设备的驱动来获取所述IO。
4.根据权利要求1所述的文件系统的缓存方法,其特征在于,所述若所述IO的地址范围与所述元数据的逻辑地址范围有相交,则缓存所述IO的数据的步骤包括:
若所述IO携带的为数据的写命令,则直接将所述数据写入缓存;
若所述IO携带的为数据的读命令,且在缓存中命中所述数据,则直接返回IO;
若所述IO携带的为数据的读命令,且在缓存中未命中所述数据,则将所述IO派发到所述块设备,所述IO返回时将所述数据复制,并将所述复制的数据写入到所述缓存。
5.一种文件系统的缓存系统,通过固态硬盘实现,其特征在于,所述缓存系统包括:
元数据配置模块,用于配置所述文件系统的元数据的逻辑地址范围;
IO获取模块,用于获取所述文件系统所在的块设备的IO;
地址判断模块,用于判断所述IO的地址范围与所述元数据的逻辑地址范围是否有相交;
数据缓存模块,用于所述IO的地址范围与所述元数据的逻辑地址范围有相交时,缓存所述IO的数据。
6.根据权利要求5所述的文件系统的缓存系统,其特征在于,所述缓存系统进一步包括,文件系统分析模块,用于通过第三方工具获取所述文件系统的元数据地址范围;
所述元数据配置模块进一步用于记录所述文件系统的元数据地址范围。
7.根据权利要求5所述的文件系统的缓存系统,其特征在于,所述IO获取模块进一步用于通过修改内核中所述块设备的驱动来获取所述IO。
8.根据权利要求5所述的文件系统的缓存系统,其特征在于,
若所述IO携带的为数据的写命令,则数据缓存模块直接将所述数据写入缓存;
若所述IO携带的为数据的读命令,且在缓存中命中所述数据,则直接返回IO;
若所述IO携带的为数据的读命令,且在缓存中未命中所述数据,则将所述IO派发到所述块设备,所述IO返回时将所述数据复制,所述数据缓存模块将所述复制的数据写入到所述缓存。
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 true CN103473184A (zh) | 2013-12-25 |
| CN103473184B 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) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107797759A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 访问缓存信息的方法、装置与驱动器 |
Citations (4)
| 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 | 弗森-艾奥公司 | 用于将数据高速缓存在固态存储设备上的装置、系统和方法 |
| US20120246643A1 (en) * | 2011-03-23 | 2012-09-27 | Lei Chang | File system for storage area network |
-
2013
- 2013-08-01 CN CN201310331403.XA patent/CN103473184B/zh not_active Expired - Fee Related
Patent Citations (4)
| 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 | 华为技术有限公司 | 分布式文件系统 |
| US20120246643A1 (en) * | 2011-03-23 | 2012-09-27 | Lei Chang | File system for storage area network |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107797759A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 访问缓存信息的方法、装置与驱动器 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN103473184B (zh) | 2016-08-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11868257B2 (en) | Cache write overlap handling | |
| US11314437B2 (en) | Cluster based hard drive SMR optimization | |
| US8914557B2 (en) | Optimizing write and wear performance for a memory | |
| CN105808163B (zh) | 一种访问叠瓦式磁记录smr硬盘的方法及服务器 | |
| KR101663066B1 (ko) | 하이브리드 디바이스에서의 고체 상태 메모리 커맨드 큐 | |
| CN105183374B (zh) | 一种数据读写方法以及主板 | |
| KR20210096133A (ko) | 구역화된 네임스페이스들에서의 기록 커맨드들의 유지 | |
| CN103761056A (zh) | 一种视频监控应用中流式数据的存储方法 | |
| CN106569732B (zh) | 数据迁移方法及装置 | |
| CN109814811B (zh) | 一种减小NVMe SSD响应延迟影响高速数据存储设备写入速度的方法 | |
| US20160224260A1 (en) | Logical block address mapping for hard disk drives | |
| US9213646B1 (en) | Cache data value tracking | |
| CN103985393B (zh) | 一种多光盘数据并行管理方法及装置 | |
| CN107608625B (zh) | 一种提升固存储设备读性能的方法 | |
| CN106646408B (zh) | 集回波信号采集与回放为一体的雷达回波模拟系统及方法 | |
| CN112799595B (zh) | 数据处理方法、设备及存储介质 | |
| CN102012873B (zh) | Nand闪存的缓存系统及缓存方法 | |
| US10169160B2 (en) | Database batch update method, data redo/undo log producing method and memory storage apparatus | |
| Suthar et al. | An approach to data recovery from solid state drive: cyber forensics | |
| CN103473184A (zh) | 文件系统的缓存方法及系统 | |
| CN110515861A (zh) | 处理刷写命令的存储设备及其方法 | |
| US9842622B1 (en) | Data storage device having improved read failure tolerance | |
| Yang et al. | A shingle-aware persistent cache management scheme for DM-SMR disks | |
| US9390751B1 (en) | Reducing overcounting of track-level damage caused by adjacent-track and far-track interference | |
| TWI805937B (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 | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160810 |
|
| CF01 | Termination of patent right due to non-payment of annual fee |