CN111984604B - 一种减少日志结构文件系统碎片的方法及闪存存储系统 - Google Patents
一种减少日志结构文件系统碎片的方法及闪存存储系统 Download PDFInfo
- Publication number
- CN111984604B CN111984604B CN202010811619.6A CN202010811619A CN111984604B CN 111984604 B CN111984604 B CN 111984604B CN 202010811619 A CN202010811619 A CN 202010811619A CN 111984604 B CN111984604 B CN 111984604B
- Authority
- CN
- China
- Prior art keywords
- file
- log
- temporary
- data block
- flash memory
- 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
- 239000012634 fragment Substances 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000005055 memory storage Effects 0.000 title claims abstract description 16
- 238000013467 fragmentation Methods 0.000 claims description 31
- 238000006062 fragmentation reaction Methods 0.000 claims description 31
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 238000004064 recycling Methods 0.000 claims description 6
- 230000002688 persistence Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 description 11
- 230000011218 segmentation Effects 0.000 description 8
- 238000000926 separation method Methods 0.000 description 8
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1724—Details of de-fragmentation performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Abstract
本发明公开了一种减少日志结构文件系统碎片的方法及闪存存储系统,属于计算机信息存储领域,包括:将目标数据块写入日志结构文件系统时,提取文件特征,以识别该文件是否为临时写文件;若是,则为目标数据块设置类型标记后,将其写入预先分配的临时逻辑日志段;否则,根据目标数据块的冷热属性设置类型标记后,将其写入相应的逻辑日志段;在提交的块请求和环形缓冲区的数据项中都加上类型标记,并为不同类型的数据分别创建请求队列;在将请求队列中的数据写入闪存介质时,为不同类型的数据分配独立的物理地址,使同一物理日志段中的数据类型相同。本发明能够有效减少日志结构文件系统中的碎片,并协同管理逻辑碎片和物理碎片,提高存储系统性能。
Description
技术领域
本发明属于计算机信息存储领域,更具体地,涉及一种减少日志结构文件系统碎片的方法及闪存存储系统。
背景技术
大数据时代,闪存凭借其低功耗、低访问延迟的优势逐渐取代传统磁盘成为主流的存储设备。闪存友好型文件系统F2FS(flash friendly file system),基于其将随机写转换为顺序写的日志结构写方式,是一种广泛使用的日志结构文件系统。然而,因为文件数据频繁地创建、更新和删除,文件系统会产生严重的逻辑碎片,F2FS做垃圾回收以得到空闲空间,此外闪存存储设备产生物理碎片,这严重降低整个闪存存储系统的性能,缩短闪存寿命。总之,有效地减少逻辑碎片和物理碎片是闪存存储系统中关键的部分。逻辑碎片是指逻辑层的碎片,包括逻辑层文件碎片和逻辑层空闲空间碎片。同理,物理碎片是指物理层的碎片,包括物理层文件碎片和物理层空闲空间碎片。
目前的减少碎片的方法主要分为两种:碎片产生前的碎片避免和碎片产生后的碎片整理。避免碎片产生的技术有块组划分、空间预留和延迟数据分配。块组划分技术中,文件系统将一段连续空间组织为一个块组,用来存储同一目录下的文件或同一个文件的数据、元数据,对磁盘上的碎片较为有效。空间预留为单个文件预留一段连续空间,文件后续数据写到预留空间中,对不同的文件系统,空间预留技术优化碎片的效果不同。延迟分配技术在写请求到达时暂不分配地址,而是在数据写回或同步时分配地址,尽量将同一个文件的数据分配到相邻的逻辑地址。碎片整理方案,有Sato在“Ext4 online defragmentation”中提出的基于数据迁移的整理方案,在文件系统空闲时遍历系统中的文件并做一次数据迁移,将同一目录下的文件及同一个文件的数据复制到连续空间;Hahn等人在“ImprovingFile System Performance of Mobile Storage Systems Using a DecoupledDefragmenter”中提出基于映射表重映射和提高闪存并行性的碎片整理方案,将逻辑碎片的数据复制迁移转换为闪存转换层中映射表逻辑地址的改变,在物理碎片非常严重时,在闪存中复制数据迁移,提高闪存并行性;邓傲松在“闪存友好型文件系统性能优化技术的设计”中提出的多级阈值同步技术,根据无效数据块的数量判断系统的碎片化程度,动态地决定数据异地写还是就地写;Park等人在“File Defragmentation Scheme for aLog-Structured File System”提出在垃圾回收时,将牺牲段中的有效数据根据文件进行聚合的技术。
总的来说,上述减少碎片的方法,一定程度上可以改善日志结构文件系统的碎片问题,但是仍存在改进的空间,并且碎片整理的数据复制会引入大量读写,增加开销,危害闪存寿命。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种减少日志结构文件系统碎片的方法及闪存存储系统,其目的在于,有效减少日志结构文件系统中的碎片,以提高闪存存储系统的性能。
为实现上述目的,按照本发明的一个方面,提供了一种减少日志结构文件系统碎片的方法,包括:
将目标数据块写入日志结构文件系统时,提取目标数据块所属文件的特征,并基于所提取的特征识别文件是否为临时写文件;
若目标数据块所属文件是临时写文件,则为目标数据块设置类型标记后,将目标数据块写入预先分配的临时逻辑日志段;若目标数据块所属文件不是临时写文件,则根据目标数据块的冷热属性,为目标数据块设置类型标记后,将目标数据块写入相应的逻辑日志段;
其中,数据块的类型标记用于指示数据块写入日志结构文件系统后,所属逻辑日志段的类型。
临时写文件会与其他文件混合在一起写入日志结构文件系统,会存在临时写文件的碎片,而临时写文件会被快速删除,又会造成逻辑空间碎片;本发明在将数据块写入日志结构文件系统时,识别临时写文件,并将属于临时写文件的数据块写入单独的临时逻辑日志段中,一方面,能够将临时写文件的数据与其他文件的数据分离,有效减少文件碎片,另一方面,临时逻辑日志段中的数据很大概率上会一起失效,因此,能够有效减少逻辑空间碎片。
进一步地,本发明提供的减少日志结构文件系统碎片的方法,还包括:
在日志结构文件系统向通用块层提交块请求时,在块请求中添加类型标记;
在通用块层将块请求提交至闪存设备的闪存转换层,以将被请求的数据块添加到闪存转换层的环形缓冲区的同时,为环形缓冲区的数据项添加类型标记,并为每一类型的数据项分别创建一个请求队列;
在将请求队列中的数据写入闪存设备的闪存介质时,为不同类型的数据分配独立的物理地址,使得各物理日志段中写入的数据类型相同;
其中,块请求的类型标记、被请求数据块的类型标记以及该数据块在环形缓冲区中对应的数据项的类型标记一致。
因为F2FS中不同的逻辑日志段交叉地提交块请求,而通用块层对上层的块请求统一处理,闪存转换层的存在导致文件系统层的语义不能传递到底层存储器件;本发明在日志结构文件系统向通用块层提交块请求时,以及通用块层将块请求提交至闪存设备的闪存转换层时,会在块请求以及环形缓冲区中的数据项中添加与数据块一致的类型标记,并且会根据类型标记为不同类型的数据分别构造请求队列,为不同类型的数据分配独立的物理地址,由此能够将日志结构文件系统的语义信息传递到闪存设备;对于日志结构文件系统中的单个逻辑日志段,提交的块请求地址是连续的,闪存转换层的物理页地址也是连续的,因此,本发明通过将不同类型的数据写入不同的物理日志段,能够将连续的逻辑地址映射到连续的物理地址,在减少逻辑碎片产生的同时,减少了物理碎片的产生。
进一步地,将请求队列中的数据写入闪存设备的闪存介质时,分配的物理日志段的数量等于待写入数据及其元数据所关联的逻辑日志段的数量。
本发明在将闪存转换层的请求队列中的数据写入闪存介质时,分配的物理日志段的数量等于逻辑日志段的数量,在基于数据类型将数据写入物理日志段的基础上,能够保证将连续的逻辑地址映射到连续的物理地址。
进一步地,本发明提供的减少日志结构文件系统碎片的方法,还包括:
采用如下步骤对闪存介质进行垃圾回收:
将待回收的物理日志段中的有效数据读取出来,设置相应的类型标记后,将其写入环形缓冲区;
回收待回收的物理日志段的存储空间。
本发明在对物理空间进行垃圾回收的过程中,将待回收的物理日志段中的有效数据写入环形缓冲区时,会先设置相应的类型标记,由此能够保证这些数据被迁移至相应类型的物理日志段中。
进一步地,在一些实施例中,文件的特征包括文件的生命周期,并且基于所提取的特征识别文件是否为临时写文件,包括:
判断文件的生命周期是否小于预设的第一阈值,若是,则判定文件为临时写文件;若否,则判定文件不是临时写文件。
临时写文件具有生命周期短的特性,本发明以文件生命周期作为识别临时写文件的特征,能够准确识别出临时写文件,实现临时写文件数据与其他文件数据的分离。
进一步地,在一些实施例中,文件的特征包括文件的创建删除频率,并且基于所提取的特征识别文件是否为临时写文件,包括:
判断文件的创建删除频率是否高于预设的第二阈值,若是,则判定文件为临时写文件;若否,则判定文件不是临时写文件。
临时写文件具有频繁创建删除的特性,本发明以文件的创建删除频率作为识别临时写文件的特征,能够准确识别出临时写文件,实现临时写文件数据与其他文件数据的分离。
进一步地,在一些实施例中,文件的特征包括文件的后缀名,并且基于所提取的特征识别文件是否为临时文件,包括:
在预设的临时写文件后缀名列表中查找文件的后缀名,若查找成功,则判定文件为临时写文件;若查找不成功,则判定文件不是临时写文件。
临时写文件多为固定类型的文件,例如日志文件,而这些文件可以通过文件后缀名直接区分,并且相比于其他特征,文件后缀名容易获得;本发明以文件后缀名作为识别临时写文件的特征,能够准确、高效地识别出临时写文件,实现临时写文件数据与其他文件数据的分离。
进一步地,本发明提供的减少日志结构文件系统碎片的方法,还包括:
在持久化临时逻辑日志段时,依次提交缓存数据、临时逻辑日志段的元数据和文件系统元数据,之后等待持久化;
在恢复临时逻辑日志段时,按照所选择的恢复模式为临时逻辑日志段分配数据结构并初始化,然后读取临时逻辑日志段元数据,随其他逻辑日志段读入内存并激活。
基于上述对临时逻辑日志段的持久化和恢复操作,本发明能够保证日志段信息的一致性。
按照本发明的另一个方面,提供了一种闪存存储系统,包括:日志结构文件系统、通用块层和闪存设备;
日志结构文件系统包括:临时写文件识别模块和逻辑日志段分配模块;
临时写文件识别模块,用于将目标数据块写入日志结构文件系统时,提取目标数据块所属文件的特征,并基于所提取的特征识别文件是否为临时写文件;
逻辑日志段分配模块,用于在目标数据块所属文件是临时写文件时,为目标数据块设置类型标记后,将目标数据块写入预先分配的临时逻辑日志段;逻辑日志段分配模块,还用于在目标数据块所属文件不是临时写文件时,根据目标数据块的冷热属性,为目标数据块设置类型标记后,将目标数据块写入相应的逻辑日志段;
其中,数据块的类型标记用于指示数据块写入日志结构文件系统后,所属逻辑日志段的类型。
进一步地,日志结构文件系统还包括:第一标记模块,用于在日志结构文件系统向通用块层提交块请求时,在块请求中添加类型标记;
闪存设备的闪存转换层包括:第二标记模块、请求队列创建模块以及物理日志段分配模块;
第二标记模块,用于在通用块层将块请求提交至闪存设备的闪存转换层,以将被请求的数据块添加到闪存转换层的环形缓冲区的同时,为环形缓冲区的数据项添加类型标记;
请求队列创建模块,用于为环形缓冲区中的每一类型的数据项分别创建一个请求队列;
物理日志段分配模块,用于在将请求队列中的数据写入闪存设备的闪存介质时,为不同类型的数据分配独立的物理地址,使得各物理日志段中写入的数据类型相同;
其中,块请求的类型标记、被请求数据块的类型标记以及该数据块在环形缓冲区中对应的数据项的类型标记一致。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明在将数据块写入日志结构文件系统时,识别临时写文件,并将属于临时写文件的数据块写入单独的临时逻辑日志段中,能够实现临时写文件数据与其他文件数据的分离,有效减少临时写文件碎片和逻辑空间碎片。
(2)本发明在日志结构文件系统向通用块层提交块请求时,以及通用块层将块请求提交至闪存设备的闪存转换层时,会在块请求以及环形缓冲区中的数据项中添加与数据块一致的类型标记,并且会根据类型标记为不同类型的数据分别构造请求队列,为不同类型的数据分配独立的物理地址,能够将日志结构文件系统的语义信息传递到闪存设备,并将连续的逻辑地址映射到连续的物理地址,从而在减少逻辑碎片产生的同时,减少了物理碎片的产生。
(3)本发明基于闪存特性,协同地管理逻辑碎片和物理碎片,在协同地减少逻辑层和物理层碎片的同时,使得文件数据在逻辑层和物理层分布得更加连续,文件读写产生更少的块请求和更有效的请求队列,因此,能有效地减少垃圾回收,提升闪存存储系统的性能。
附图说明
图1为本发明实施例提供的减少日志结构文件系统碎片的方法示意图;
图2为本发明实施例提供的临时写数据分离方法示意图;
图3为本发明实施例提供的地址分段映射方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了进一步减少日志结构文件系统中的碎片,本发明提供了一种减少日志结构文件系统碎片的方法及闪存存储系统,其整体思路在于:在日志结构文件系统中分离临时写数据,以减少逻辑碎片;在闪存设备的闪存转换层通过地址分段映射,减少物理碎片;通过逻辑层的分离临时写数据和物理层的地址分段映射,协同地管理逻辑碎片和物理碎片,从碎片产生的源头上减少碎片。
以下为实施例。
实施例1:
一种减少日志结构文件系统碎片的方法,如图1所示,包括:在逻辑层分离临时写数据,具体包括如下步骤:
将目标数据块写入日志结构文件系统时,提取目标数据块所属文件的特征,并基于所提取的特征识别文件是否为临时写文件;
若目标数据块所属文件是临时写文件,则为目标数据块设置类型标记后,将目标数据块写入预先分配的临时逻辑日志段;若目标数据块所属文件不是临时写文件,则根据目标数据块的冷热属性,为目标数据块设置类型标记后,将目标数据块写入相应的逻辑日志段;
其中,数据块的类型标记用于指示数据块写入日志结构文件系统后,所属逻辑日志段的类型;
在传统的日志结构文件系统中,根据数据的热度,会将数据划分为冷数据、温数据和热数据,并将不同类型的数据存储到不同的逻辑日志段中;本实施例在这三种类型的逻辑日志段之外,分配额外的临时逻辑日志段,用于写入临时写文件的数据,能够在文件系统中分离临时写数据,避免临时写文件与其他文件混合在一起写入日志结构文件系统,有效减少文件碎片;
临时写文件具有生命周期短、频繁创建删除等特点,从而临时逻辑日志段中的数据,很大概率上会一起失效,因此,本实施例在文件系统中分离临时写数据,并将临时写数据聚集到临时逻辑日志段中,能够有效减少逻辑空间碎片。
文件的后缀名能够反映文件的写特征,例如,wav音频文件属于只读文件,txt属于更新写文件等,临时写文件多为固定类型的文件,例如日志文件,而这些文件可以通过文件后缀名直接区分,并且相比于其他特征,文件后缀名容易获得;具体地,将具有哪些后缀名的文件识别为临时写文件,可以通过ftrace收集负载运行后的数据集并进行分析后得出;
作为一种可选的实施方式,本实施例中,文件的特征包括文件的后缀名,并且如图2所示,基于所提取的特征识别文件是否为临时文件,包括:
在预设的临时写文件后缀名列表中查找文件的后缀名,若查找成功,则判定文件为临时写文件;若查找不成功,则判定文件不是临时写文件;
可选地,本实施例中,临时写文件后缀名列表中的后缀名包括:“.log”、“.wal”和“.tmp”,后缀名在该列表中的文件,会被识别为临时写文件,并且数据会被写入临时逻辑日志段中;未被识别为临时写文件的文件,其中的数据,则会依据其冷热属性,相应地写入冷数据段、温数据段或热数据段中;数据块在写入逻辑日志段之前,会相应地在数据块的类型标记中记录该逻辑日志段的类型;
本实施例以文件后缀名作为识别临时写文件的特征,能够准确、高效地识别出临时写文件,实现临时写文件数据与其他文件数据的分离。
本实施例在识别文件类型,并分配相应的逻辑日志段的同时,会更新相应的元数据,主要包含逻辑日志段的有效位图和有效块数,记录活跃段数据块所述情况的segmentsummary area(SSA),以及文件的直接索引节点。
为了保证日志信息的一致性,本实施例还包括:
在持久化临时逻辑日志段时,依次提交缓存数据、临时逻辑日志段的元数据和文件系统元数据,之后等待持久化;
在恢复临时逻辑日志段时,按照所选择的恢复模式为临时逻辑日志段分配数据结构并初始化,然后读取临时逻辑日志段元数据,随其他逻辑日志段读入内存并激活。
现有的碎片解决方案或只优化逻辑碎片,或只优化物理碎片,或分开优化逻辑碎片与物理碎片,鲜少考虑闪存存储系统中基于闪存特性的逻辑碎片和物理碎片的协同管理,为了协同管理逻辑碎片和物理碎片,如图1所示,本实施例还包括:在物理层地址分段映射,具体包括以下步骤:
在日志结构文件系统向通用块层提交块请求时,在块请求中添加类型标记;
在通用块层将块请求提交至闪存设备的闪存转换层,以将被请求的数据块添加到闪存转换层的环形缓冲区的同时,为环形缓冲区的数据项添加类型标记,并为每一类型的数据项分别创建一个请求队列;在LightNVM中,闪存转换层被叫做pblk,具体可参考“TheLinux Open-Channel SSD Subsystem”,不失一般性地,本实施例中,闪存设备为开放通道固态盘,闪存转换层为pblk;
在将请求队列中的数据写入闪存设备的闪存介质时,为不同类型的数据分配独立的物理地址,使得各物理日志段中写入的数据类型相同;具体地,将请求队列中的数据写入闪存设备的闪存介质时,分配的物理日志段的数量等于待写入数据及其元数据所关联的逻辑日志段的数量;
其中,块请求的类型标记、被请求数据块的类型标记以及该数据块在环形缓冲区中对应的数据项的类型标记一致;
本实施例中,在物理层地址分段映射的过程如图3所示;
pblk是以line为单位进行地址分配的,line是一段连续的物理地址空间;pblk目前针对所有的环形缓冲区中的数据,只有一个line提供物理地址的分配,直到这个line被填满才会进行替换;本实施例对此作出了改进,同时创建多个活跃的line,以用不同的物理日志段映射文件系统中不同的逻辑日志段;从空闲的物理日志段中选取相应数量的物理日志段,作为活跃的物理日志段,确认每个活跃的物理日志段处于空闲状态,然后分配并初始化活跃物理日志段的数据结构。
本实施例通过物理层地址分段映射,将F2FS的元数据区当作一个活跃日志段,文件的所有写操作看作多个活跃日志段同时向通用块层提交写请求,闪存转换层用一段连续的物理区域对应一个活跃日志段,通过标记识别不同的请求,活跃日志段的数据写入相应的物理区域,记录逻辑地址与物理页之间的映射关系;
为了在对物理存储空间进行垃圾回收时,保证被迁移数据从待回收的物理日志段写入闪存转换层的环形缓冲区后,能够被迁移到相应类型的物理日志段,本实施例中,在闪存可用空间不足或系统空闲时,采用如下步骤对闪存介质进行垃圾回收:
将待回收的物理日志段中的有效数据读取出来,设置相应的类型标记后,将其写入环形缓冲区;
回收待回收的物理日志段的存储空间。
本实施例能够将日志结构文件系统的语义信息传递到闪存设备,并将连续的逻辑地址映射到连续的物理地址,在减少逻辑碎片产生的同时,减少了物理碎片的产生。
总体而言,本实施例通过在逻辑层分离临时写数据,有效减小了逻辑碎片;通过在物理层地址分段映射,有效减少了物理碎片;本实施例通过在逻辑层分离临时写数据与在物理层地址分段映射相结合,协同地管理逻辑碎片和物理碎片,在协同地减少逻辑层和物理层碎片的同时,使得文件数据在逻辑层和物理层分布得更加连续,文件读写产生更少的块请求和更有效的请求队列,因此,能有效地减少垃圾回收,提升闪存存储系统的性能。
实施例2:
一种减少日志结构文件系统碎片的方法,本实施例与上述实施例1类似,所不同之处在于,本实施例中,文件的特征包括文件的生命周期,并且基于所提取的特征识别文件是否为临时写文件,包括:
判断文件的生命周期是否小于预设的第一阈值,若是,则判定文件为临时写文件;若否,则判定文件不是临时写文件。
临时写文件具有生命周期短的特性,本实施例以文件生命周期作为识别临时写文件的特征,能够准确识别出临时写文件,实现临时写文件数据与其他文件数据的分离;第一阈值的具体取值,可通过ftrace收集负载运行后的数据集并进行分析后得出。
实施例3:
一种减少日志结构文件系统碎片的方法,本实施例与上述实施例1类似,所不同之处在于,本实施例中,文件的特征包括文件的创建删除频率,并且基于所提取的特征识别文件是否为临时写文件,包括:
判断文件的创建删除频率是否高于预设的第二阈值,若是,则判定文件为临时写文件;若否,则判定文件不是临时写文件。
临时写文件具有频繁创建删除的特性,本发明以文件的创建删除频率作为识别临时写文件的特征,能够准确识别出临时写文件,实现临时写文件数据与其他文件数据的分离;第二阈值的具体取值,可通过ftrace收集负载运行后的数据集并进行分析后得出。
实施例4:
一种闪存存储系统,包括:日志结构文件系统、通用块层和闪存设备;
日志结构文件系统包括:临时写文件识别模块和逻辑日志段分配模块;
临时写文件识别模块,用于将目标数据块写入日志结构文件系统时,提取目标数据块所属文件的特征,并基于所提取的特征识别文件是否为临时写文件;
逻辑日志段分配模块,用于在目标数据块所属文件是临时写文件时,为目标数据块设置类型标记后,将目标数据块写入预先分配的临时逻辑日志段;逻辑日志段分配模块,还用于在目标数据块所属文件不是临时写文件时,根据目标数据块的冷热属性,为目标数据块设置类型标记后,将目标数据块写入相应的逻辑日志段;
其中,数据块的类型标记用于指示数据块写入日志结构文件系统后,所属逻辑日志段的类型;
日志结构文件系统还包括:第一标记模块,用于在日志结构文件系统向通用块层提交块请求时,在块请求中添加类型标记;
闪存设备的闪存转换层包括:第二标记模块、请求队列创建模块以及物理日志段分配模块;
第二标记模块,用于在通用块层将块请求提交至闪存设备的闪存转换层,以将被请求的数据块添加到闪存转换层的环形缓冲区的同时,为环形缓冲区的数据项添加类型标记;
请求队列创建模块,用于为环形缓冲区中的每一类型的数据项分别创建一个请求队列;
物理日志段分配模块,用于在将请求队列中的数据写入闪存设备的闪存介质时,为不同类型的数据分配独立的物理地址,使得各物理日志段中写入的数据类型相同;
其中,块请求的类型标记、被请求数据块的类型标记以及该数据块在环形缓冲区中对应的数据项的类型标记一致;
本实施例中,各模块的具体实施方式,可参考上述方法实施例中的描述,在此将不作复述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种减少日志结构文件系统碎片的方法,其特征在于,包括:
将目标数据块写入日志结构文件系统时,提取所述目标数据块所属文件的特征,并基于所提取的特征识别所述文件是否为临时写文件;
若所述目标数据块所属文件是临时写文件,则为所述目标数据块设置类型标记后,将所述目标数据块写入预先分配的临时逻辑日志段;若所述目标数据块所属文件不是临时写文件,则根据所述目标数据块的冷热属性,为所述目标数据块设置类型标记后,将所述目标数据块写入相应的逻辑日志段;
其中,数据块的类型标记用于指示数据块写入所述日志结构文件系统后,所属逻辑日志段的类型;
所述的减少日志结构文件系统碎片的方法,还包括:
在日志结构文件系统向通用块层提交块请求时,在块请求中添加类型标记;
在所述通用块层将块请求提交至闪存设备的闪存转换层,以将被请求的数据块添加到所述闪存转换层的环形缓冲区的同时,为所述环形缓冲区的数据项添加类型标记,并为每一类型的数据项分别创建一个请求队列;
在将请求队列中的数据写入所述闪存设备的闪存介质时,为不同类型的数据分配独立的物理地址,使得各物理日志段中写入的数据类型相同;
其中,块请求的类型标记、被请求数据块的类型标记以及该数据块在所述环形缓冲区中对应的数据项的类型标记一致。
2.如权利要求1所述的减少日志结构文件系统碎片的方法,其特征在于,将请求队列中的数据写入所述闪存设备的闪存介质时,分配的物理日志段的数量等于待写入数据及其元数据所关联的逻辑日志段的数量。
3.如权利要求1所述的减少日志结构文件系统碎片的方法,其特征在于,还包括:
采用如下步骤对闪存介质进行垃圾回收:
将待回收的物理日志段中的有效数据读取出来,设置相应的类型标记后,将其写入所述环形缓冲区;
回收所述待回收的物理日志段的存储空间。
4.如权利要求1-3任一项所述的减少日志结构文件系统碎片的方法,其特征在于,文件的特征包括文件的生命周期,并且基于所提取的特征识别所述文件是否为临时写文件,包括:
判断文件的生命周期是否小于预设的第一阈值,若是,则判定文件为临时写文件;若否,则判定文件不是临时写文件。
5.如权利要求1-3任一项所述的减少日志结构文件系统碎片的方法,其特征在于,文件的特征包括文件的创建删除频率,并且基于所提取的特征识别所述文件是否为临时写文件,包括:
判断文件的创建删除频率是否高于预设的第二阈值,若是,则判定文件为临时写文件;若否,则判定文件不是临时写文件。
6.如权利要求1-3任一项所述的减少日志结构文件系统碎片的方法,其特征在于,文件的特征包括文件的后缀名,并且基于所提取的特征识别所述文件是否为临时文件,包括:
在预设的临时写文件后缀名列表中查找文件的后缀名,若查找成功,则判定文件为临时写文件;若查找不成功,则判定文件不是临时写文件。
7.如权利要求1-3任一项所述的减少日志结构文件系统碎片的方法,其特征在于,还包括:
在持久化所述临时逻辑日志段时,依次提交缓存数据、所述临时逻辑日志段的元数据和文件系统元数据,之后等待持久化;
在恢复所述临时逻辑日志段时,按照所选择的恢复模式为临时逻辑日志段分配数据结构并初始化,然后读取临时逻辑日志段元数据,随其他逻辑日志段读入内存并激活。
8.一种闪存存储系统,其特征在于,包括:日志结构文件系统、通用块层和闪存设备;
所述日志结构文件系统包括:临时写文件识别模块和逻辑日志段分配模块;
所述临时写文件识别模块,用于将目标数据块写入日志结构文件系统时,提取所述目标数据块所属文件的特征,并基于所提取的特征识别所述文件是否为临时写文件;
所述逻辑日志段分配模块,用于在所述目标数据块所属文件是临时写文件时,为所述目标数据块设置类型标记后,将所述目标数据块写入预先分配的临时逻辑日志段;所述逻辑日志段分配模块,还用于在所述目标数据块所属文件不是临时写文件时,根据所述目标数据块的冷热属性,为所述目标数据块设置类型标记后,将所述目标数据块写入相应的逻辑日志段;
其中,数据块的类型标记用于指示数据块写入所述日志结构文件系统后,所属逻辑日志段的类型;
所述日志结构文件系统还包括:第一标记模块,用于在所述日志结构文件系统向所述通用块层提交块请求时,在块请求中添加类型标记;
所述闪存设备的闪存转换层包括:第二标记模块、请求队列创建模块以及物理日志段分配模块;
所述第二标记模块,用于在所述通用块层将块请求提交至闪存设备的闪存转换层,以将被请求的数据块添加到所述闪存转换层的环形缓冲区的同时,为所述环形缓冲区的数据项添加类型标记;
所述请求队列创建模块,用于为所述环形缓冲区中的每一类型的数据项分别创建一个请求队列;
所述物理日志段分配模块,用于在将请求队列中的数据写入所述闪存设备的闪存介质时,为不同类型的数据分配独立的物理地址,使得各物理日志段中写入的数据类型相同;
其中,块请求的类型标记、被请求数据块的类型标记以及该数据块在所述环形缓冲区中对应的数据项的类型标记一致。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010811619.6A CN111984604B (zh) | 2020-08-13 | 2020-08-13 | 一种减少日志结构文件系统碎片的方法及闪存存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010811619.6A CN111984604B (zh) | 2020-08-13 | 2020-08-13 | 一种减少日志结构文件系统碎片的方法及闪存存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984604A CN111984604A (zh) | 2020-11-24 |
CN111984604B true CN111984604B (zh) | 2024-03-19 |
Family
ID=73435384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010811619.6A Active CN111984604B (zh) | 2020-08-13 | 2020-08-13 | 一种减少日志结构文件系统碎片的方法及闪存存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984604B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113093997B (zh) * | 2021-04-19 | 2021-09-28 | 深圳市安信达存储技术有限公司 | 一种基于Host Based FTL架构分离数据的方法 |
TWI829363B (zh) * | 2022-09-26 | 2024-01-11 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473150A (zh) * | 2013-08-28 | 2013-12-25 | 华中科技大学 | 一种用于数据去重系统中的碎片重写方法 |
CN106815152A (zh) * | 2016-12-27 | 2017-06-09 | 华中科技大学 | 一种优化页级闪存转换层的方法 |
CN106844491A (zh) * | 2016-12-26 | 2017-06-13 | 中国石油天然气集团公司 | 一种临时数据的写入、读取方法及写入、读取装置 |
CN110554999A (zh) * | 2018-05-31 | 2019-12-10 | 华为技术有限公司 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
CN111309267A (zh) * | 2020-02-26 | 2020-06-19 | Oppo广东移动通信有限公司 | 存储空间的分配方法、装置、存储设备及存储介质 |
-
2020
- 2020-08-13 CN CN202010811619.6A patent/CN111984604B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473150A (zh) * | 2013-08-28 | 2013-12-25 | 华中科技大学 | 一种用于数据去重系统中的碎片重写方法 |
CN106844491A (zh) * | 2016-12-26 | 2017-06-13 | 中国石油天然气集团公司 | 一种临时数据的写入、读取方法及写入、读取装置 |
CN106815152A (zh) * | 2016-12-27 | 2017-06-09 | 华中科技大学 | 一种优化页级闪存转换层的方法 |
CN110554999A (zh) * | 2018-05-31 | 2019-12-10 | 华为技术有限公司 | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 |
CN111309267A (zh) * | 2020-02-26 | 2020-06-19 | Oppo广东移动通信有限公司 | 存储空间的分配方法、装置、存储设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
ARS: Reducing F2FS Fragmentation for Smartphones using Decision Trees;Lihua Yang等;2020 Design, Automation & Test in Europe Conference & Exhibition (DATE);20200615;第1061-1066页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111984604A (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010300B2 (en) | Optimized record lookups | |
CN110825748B (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
US11347443B2 (en) | Multi-tier storage using multiple file sets | |
US8161240B2 (en) | Cache management | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN108604165B (zh) | 存储装置 | |
CN112395212B (zh) | 减少键值分离存储系统的垃圾回收和写放大的方法及系统 | |
CN110119425A (zh) | 固态驱动器、分布式数据存储系统和利用键值存储的方法 | |
CN111026329B (zh) | 基于主机管理瓦记录磁盘的键值存储系统及数据处理方法 | |
CN112346666B (zh) | 基于ocssd的键值存储系统的写、块粒度压缩合并方法和系统 | |
CN109446117B (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
CN111984604B (zh) | 一种减少日志结构文件系统碎片的方法及闪存存储系统 | |
KR101017067B1 (ko) | 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법 | |
CN105718206A (zh) | 能够感知raid的闪存转换层及其实现方法 | |
CN109783398A (zh) | 一种基于相关感知页面级ftl固态硬盘性能优化方法 | |
CN114546296B (zh) | 一种基于zns固态硬盘的全闪存系统和地址映射方法 | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
US10078467B2 (en) | Storage device, computer readable recording medium, and storage device control method | |
US11397706B2 (en) | System and method for reducing read amplification of archival storage using proactive consolidation | |
US20240020014A1 (en) | Method for Writing Data to Solid-State Drive | |
CN111078143B (zh) | 基于段映射进行数据布局和调度的混合存储方法及系统 | |
CN111443874A (zh) | 基于内容感知的固态盘内存缓存管理方法、设备及固态盘 | |
WO2022262381A1 (zh) | 一种数据压缩方法及装置 | |
CN110389706B (zh) | 一种指纹回收方法以及存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |