一种提高EXT4文件系统读写速率的方法与流程

文档序号:22041770发布日期:2020-08-28 18:12阅读:1114来源:国知局
一种提高EXT4文件系统读写速率的方法与流程

本发明涉及文件系统技术领域,具体为一种提高ext4文件系统读写速率的方法。



背景技术:

为了解决老式文件系统(如fat32文件系统)异常掉电情况下数据可能无法恢复问题诞生了日志型文件系统。日志型文件系统会在存储介质上开辟一块日志区域(日志对于文件系统来说是一段存储介质的逻辑地址),在更新文件系统数据前,首先把要做的变更记录到日志区域,然后才去更新相应的文件系统数据,这样文件系统异常的时候,可以通过日志区域的信息,实现文件系统数据恢复。

ext4文件系统是linux操作系统下最常用的一种日志型文件系统,从ext2、ext3文件系统经过多年的发展而来,通过日志信息能够恢复文件系统数据。ext4文件系统支持根据用户需求采用多种模式的日志记录,writeback模式、ordered模式和journal模式。

writeback模式:元数据(文件系统的管理信息包括超级块、块组描述符、索引节点块、间接寻址块、数据块位图块、索引节点位图块)提交到日志后,数据可以直接被提交到存储介质。即元数据会做日志,数据不做日志,并且不保证数据比元数据先落盘。writeback是ext4文件系统提供的性能最好的模式。

ordered模式:只提供元数据的日志,但它逻辑上将与数据更改相关的元数据信息与数据块分组到一个称为事务的单元中。当需要把元数据写入到存储介质上的时候,与元数据关联的数据块会首先写入。也就是数据先落盘,再做元数据的日志。这种模式的性能会略逊色于writeback但是比journal模式要快的多,ext4文件系统默认为ordered模式,也是目前应用最广泛的。

journal模式:元数据和数据都会被先写入到日志,在文件系统崩溃的时候,日志就可以进行重放,把数据和元数据带回一致状态,journal模式在三种模式可靠性最高,但性能最低,因为所有的数据都需要日志来记录。

选择最可靠的journal模式就意味着所有数据都会当做日志先写一次,再写数据,这会带来带宽降低1倍(数据被写了两次),为解决上述问题,本发明提供了一种提高ext4文件系统读写速率的方法。



技术实现要素:

本发明的目的在于提供一种提高ext4文件系统读写速率的方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:一种提高ext4文件系统读写速率的方法,包括ext4文件系统和闪存转换层管理算法,在ext4文件系统和闪存转换层管理算法之间增加日志通信通道,日志通信忽略逻辑地址,直接与闪存转换层进行命令交互,其具体流程包括以下步骤:

s1:从ext4文件系统中将待修改的文件数据读取到内存;

s2:将内存中的数据按实际需求进行修改,形成最终的待写数据;

s3:ext4文件系统通过写日志命令将待写数据以及对应的逻辑地址传送给闪存转换层;

s4:闪存转换层收到写日志命令后通过逻辑物理映射表找到一个物理空块;

s5:闪存转换层将待写数据全部写入到该物理空块;

s6:闪存转换层修改逻辑物理映射表,将ext4文件系统传送下来的逻辑地址与物理空块对应;

s7:闪存转换层将ext4文件系统传送下来的逻辑地址对应的原始物理块擦除。

s8:闪存转换层发送写日志完成命令给ext4文件系统,ext4文件系统可以开始其他文件操作;

作为优选,所述s1中的文件系统中为xfs型文件系统、jfs型文件系统或btrfs日志型文件系统中的一种或几种。

作为优选,所述ext4文件系统为linux操作系统下的一种日志型文件系统。

与现有技术相比,本发明的有益效果是:一种方法将ssd闪存转换层管理算法应用于ext4文件系统的日志,将二者融合起来形成一种高可靠、高性能并存的文件系统,能够运行在最可靠的journal模式并不影响文件系统性能;该发明的思想理念同样适用于xfs、jfs、btrfs等其他日志型文件系统。

附图说明

图1为本发明ftl与ext4文件系统的关系。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明提供一种技术方案:一种提高ext4文件系统读写速率的方法,包括ext4文件系统和闪存转换层管理算法,在ext4文件系统和闪存转换层管理算法之间增加日志通信通道,日志通信忽略逻辑地址,直接与闪存转换层进行命令交互,其具体流程包括以下步骤:

s1:从ext4文件系统中将待修改的文件数据读取到内存;

s2:将内存中的数据按实际需求进行修改,形成最终的待写数据;

s3:ext4文件系统通过写日志命令将待写数据以及对应的逻辑地址传送给闪存转换层;

s4:闪存转换层收到写日志命令后通过逻辑物理映射表找到一个物理空块;

s5:闪存转换层将待写数据全部写入到该物理空块;

s6:闪存转换层修改逻辑物理映射表,将ext4文件系统传送下来的逻辑地址与物理空块对应;

s7:闪存转换层将ext4文件系统传送下来的逻辑地址对应的原始物理块擦除;

s8:闪存转换层发送写日志完成命令给ext4文件系统,ext4文件系统可以开始其他文件操作。

其中,所述s1中的文件系统中为xfs型文件系统、jfs型文件系统或btrfs日志型文件系统中的一种或几种。

其中,所述ext4文件系统为linux操作系统下的一种日志型文件系统。

实施例:在ext4文件系统和闪存转换层管理算法之间增加日志通信通道,ext4文件系统写日志忽略逻辑地址,直接与闪存转换层进行命令交互,写到ssd的物理地址,以ext4文件系统需要对某个文件进行修改为例,其具体流程包括以下步骤:

s1:从ext4文件系统中将待修改的文件数据读取到内存;

s2:将内存中的数据按实际需求进行修改,形成最终的待写数据;

s3:ext4文件系统通过写日志命令将待写数据以及对应的逻辑地址传送给闪存转换层;

s4:闪存转换层收到写日志命令后通过逻辑物理映射表找到一个物理空块;

s5:闪存转换层将待写数据全部写入到该物理空块;

s6:闪存转换层修改逻辑物理映射表,将ext4文件系统传送下来的逻辑地址与物理空块对应;

s7:闪存转换层将ext4文件系统传送下来的逻辑地址对应的原始物理块擦除。

s8:闪存转换层发送写日志完成命令给ext4文件系统,ext4文件系统可以开始其他文件操作。

当从系统故障中恢复时,分以下两种情况:

s1-s5之间发生系统故障,文件系统还未与物理地址建立关系,会忽略本次修改,此时文件系统保持系统故障发生前的一致状态;

s6-s8之间发生系统故障,日志已经全部写入ssd并且文件系统已经与物理地址建立关系,ext4文件系统发送日志查询命令给闪存转换层,ext4文件系统得到日志信息后,通过日志重放,将逻辑物理映射表更新,此时文件系统也能保持一致的状态。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1