Ext4文件系统三种日志模式——journal、ordered、writeback

ext4文件系统深度解析:从磁盘布局到读写链路与故障排查 文件系统是操作系统存储管理的基石,其底层机制直接影响数据可靠性、读写性能与故障恢复效率。Linux默认的ext4文件系统通过超级块、块组、inode与目录项组织磁盘空间,借助extent树优化大文件映射,利用日志机制保障掉电一致性,并结合延迟分配提升连续写入性能。理解VFS、page cache与bio提交的完整IO链路,有助于诊断文件系统只读、空间无法释放、目录打不开等经典问题。无论是服务器运维、嵌入式Linux开发,还是应对技术面试,掌握ext4的物理解剖与运行原理,都是从“会用命令”进阶到“能解问题” 阅读详情
AI摘要

本文详细介绍了Linux ext4文件系统的三种日志模式:journal、ordered及writeback。journal模式提供全面的日志记录,但性能较低;ordered模式仅记录元数据日志,性能优于journal;writeback模式提供最佳性能,但数据一致性风险较高。

直接查看内核提供的说明文档,以 linux-4.4.4 为例:

linux-4.4.4\Documentation\filesystems\ext4.txt

在该说明文档中对ext4文件系统的三种日志模式进行了如下图1与图2所示的描述:

                                                               图1 

                                                                             图2

从上图的内容,可以看到这三种日志模式分别为:journal、ordered、writeback。其中带有 * 的ordered模式为默认的缺省模式。

1. journal

data=journal模式提供了完全的数据块和元数据快的日志,所有的数据都会被先写入到日志里,然后再写入磁盘(掉电非易失存储介质)上。在文件系统崩溃的时候,日志就可以进行重放,把数据和元数据带回到一个一致性的状态,journal模式性能是三种模式中最低的,因为所有的数据都需要日志来记录。这个模式不支持 allocation 以及 O_DIRECT。

2. ordered(*)

在data=ordered模式下,ext4文件系统只提供元数据的日志,但它逻辑上将与数据更改相关的元数据信息与数据块分组到一个称为事务的单元中。当需要把元数据写入到磁盘上的时候,与元数据关联的数据块会首先写入。也就是数据先落盘,再做元数据的日志。一般情况下,这种模式的性能会略逊色于 writeback 但是比 journal 模式要快的多。

3. writeback

在data=writeback模式下,当元数据提交到日志后,data可以直接被提交到磁盘。即会做元数据日志,数据不做日志,并且不保证数据比元数据先落盘。writeback是ext4提供的性能最好的模式。

ext4的日志部分的分析 在文件系统崩溃的时候,日志就可以进行重放,把数据和元数据带回到一个一致性的状态,journal 模式性能是三种模式中最低的,因为所有的数据都需要日志来记录。然后,与该数据相关的元数据被记录到日志中;:当元数据提交到日志后,data 可以直接被提交到磁盘,即会做元数据日志,数据不做日志,并且不保证数据比元数据先落盘,writeback 是 EXT4 提供的性能最好的模式。而对于有提交块的已完成事务,文件系统会根据日志中的记录,将相应的数据块和元数据重新写入到磁盘的实际位置,从而恢复文件系统的一致性状态。 阅读详情

相关推荐

Linux内核学习:EXT4文件JBD日志系统(Journaling Block Device)

目录 0 Ext4的日志模式 1 日志系统的作用 2 日志系统工作场景 3 JDB日志块设备 3.1JBD2的数据结构 3.1.1buffer_head 3.1.2handle 3.1.3 transaction 3.1.4 checkpoint 3.1.5kjournald 3.1.6 Journal 3.1.7journal_superblock 3.2 ...

Henry_Fordham——一个姓雪的程序员小哥哥 1万+

Ext4文件系统日志模式——journal、ordered、writeback

Journal is the lowest risk mode, writing both data and metadata to the journal before committing it to the filesystem. This ensures consistency of the file being written to, as well as the filesystem...

Blue summer的博客 5911

Linux挂载ext4根文件系统为journal模式

前面介绍了ext4文件系统的三种日志模式: https://blog.youkuaiyun.com/SweeNeil/article/details/88947690 除了默认的 ordered 模式,如果想设置为其他模式,例如 journal,该如何设置? 本文就来设置ext4文件系统的其他模式,以 journal 模式为例。 1、查看某一个磁盘对应的文件系统的日志方式 dmesg | grep...

SweeNeil 6252

关于android文件系统ext4模式ordered,journal,writeback

对于android的内部存储, 比如格式化为private模式,即sm partition disk private,默认这种格式化是不带日志的)但是可以更改vold的源代码里面的fs/ext4.cpp文件,注释掉cmd.push_back("-J");这句即可带上日志。(-J表示不带日志)这种情况下,会以ordered mode模式格式化。 在android 系统中ext4有三种模式:orde

柯伊柏 4849

ext4 Journal 机制深度拆解:从写前日志到 JBD2 事务恢复全解析

文件系统在宕机、断电时如何保证数据不损坏,是存储领域最基本也最难解决的问题。写前日志(Write-ahead Logging)正是应对这一挑战的核心设计:先将元数据变更意图写入日志,再改动磁盘结构,使崩溃后的恢复有据可依。JBD2 作为 ext4 的日志子系统,通过事务、描述块、提交块等机制实现这一目标,并支持 writeback、ordered、journal 三种日志模式,在性能与一致性之间提供不同取舍。其中默认的 ordered 模式确保提交事务前数据块已落盘,避免出现新元数据指向旧内容的错位。理解

weixin_33585822的博客 283

从EXT4日志模式到存储安全:一次dmesg日志引发的文件系统深度思考

文件系统日志是保障数据一致性的核心技术,其核心原理是在系统意外崩溃时,通过预写日志将文件系统快速恢复到一致状态。EXT4作为Linux主流文件系统,提供了journal、ordered和writeback三种日志模式,在数据安全与I/O性能之间做出不同权衡。ordered模式作为默认选项,通过确保用户数据先于元数据日志落盘,在防止元数据损坏导致文件系统崩溃的同时,兼顾了通用场景下的写入性能。这一机制对于构建可靠的服务器存储栈至关重要,尤其当文件系统部署在LVM或设备映射器等虚拟化存储层之上时。在实际工程中,

congbao6525的博客 397

ubuntu挂载ext4文件系统

挂载ext4文件系统

fakerth的博客 2715

Dify社区版多工作空间功能解锁:源码修改与多租户架构解析

多租户架构是现代SaaS平台实现数据隔离与资源管理的核心技术,其核心原理是通过租户模型将用户、应用和数据在逻辑上隔离。在AI应用开发平台中,这种架构能有效支持多团队、多项目并行开发,确保不同业务线的数据安全与独立迭代。Dify作为开源AI应用构建平台,其底层已设计完善的多租户模型,但社区版默认限制了单用户单工作空间。本文通过精准修改两处关键代码——账户初始化逻辑与系统功能开关,释放了平台固有的多工作空间管理能力。该方案无需改动数据库结构,直接利用现有RBAC权限体系,实现了类似企业版的**多租户隔离**体验

weixin_27059669的博客 1059

container 命名卷的 ext4 journal 模式(ordered、writeback、journal)怎么选?

在 Mac 上使用 container 创建命名卷(named volume)时,卷默认使用带日志(journaled)的 `ext4` 文件系统。`container volume create` 允许通过 `--opt journal=` 在创建时指定 journal 模式,可选 `ordered`、`writeback`、`journal` 三种取值,每种模式还可以追加 journal 大小

gitblog_00902的博客 608

二元交叉熵:分类模型概率校准的数学根基

二元交叉熵(BCE)是二分类任务中实现概率校准的核心损失函数,其本质源于最大似然估计与KL散度,确保模型输出具备真实可解释的概率意义。相比均方误差(MSE)或Hinge Loss,BCE强制优化预测分布与真实伯努利分布之间的信息差异,使p=0.8真正对应约80%的正例发生率,支撑风控、医疗、推荐等高信度场景的阈值决策。它不只影响训练收敛,更决定部署后概率的业务可信度——这正是Focal Loss等变体无法替代其基础地位的根本原因。理解BCE,就是理解分类模型如何从‘打分器’进化为‘概率契约签署者’。

congli3478的博客 1333

小红书UID泄露风险揭秘:如何防止你的手机号被社工库关联(附防护指南)

本文揭示了小红书UID泄露的严重风险,详细解析了UID与手机号关联后被社工库利用的完整链条。通过分析黑产的数据整合技术,提供从基础到进阶的防护策略,包括密码管理、账号隔离和应急响应措施,帮助用户有效防范个人信息泄露风险。

ol789012345的博客 1510

UBI及EXT4文件系统

UBIFS介绍: 由于超大容量NandFlash的普及,YAFFS等皆无法再去控制NandFlash的空间,于是在2006年由IBM与Nokia的工程师设计开发了UBI(UnsortedBlockImage)及其UBIFS文件系统,专门为了解决MTD(MemoryTechnologyDevice)设备所遇到的瓶颈。UBIFS可以认为是JFFS2文件系统的下一代产品。JFFS2运行在M...

发呆健将的博客 3615

电力电子技术进阶:从基础到实战的完整学习路径

本文系统阐述了电力电子技术从基础到实战的完整学习路径。首先解析了电力电子作为“电能魔术师”的核心作用,随后深入剖析了数学工具、电路电磁场与半导体器件三大基础支柱。文章重点讲解了DC-DC、DC-AC、AC-DC等核心变换拓扑,并探讨了从经典PID到现代模型预测控制(MPC)的控制策略。最后,分享了硬件设计、软件调试、电磁兼容(EMC)等实战经验与前沿趋势,为学习者提供了清晰的进阶指南。

weixin_29204205的博客 447

七:操作系统文件系统之日志文件系统

日志文件系统引入了一个特殊区域在磁盘上,称为日志 (Journal)或事务日志 (Transaction Log)。在对文件系统进行任何实际修改之前,文件系统会先将描述这些即将进行的修改的信息写入这个日志区域。这些信息被组织成事务 (Transactions)。一个事务代表一个逻辑上完整的操作单元,比如创建一个文件、删除一个文件、追加数据到文件等。写日志优先。在真正修改文件系统的主体结构(如 i-node 表、目录块、位图等)之前,先将打算进行的修改操作记录在日志中。

柳絮飘扬 770

GAN模型中的常见变体有哪些,如DCGAN、WGAN和CGAN等?

生成对抗网络(GAN)是一种强大的深度学习模型,它由生成器和判别器两个网络组成,通过对抗训练的方式实现生成数据的能力。随着研究的发展,出现了许多GAN的变体,每个变体都有其独特的改进和特点。

huidhsu的博客 2262

节省人力成本40%!仓储物流AI机器人调度系统实战案例(含路径规划算法与系统架构图)

首先,我们需要定义一个Node类self.x = x # 节点x坐标self.y = y # 节点y坐标self.g = g # 从起点到当前节点的实际成本(g值)self.h = h # 从当前节点到终点的启发式成本(h值)self.f = g + h # 总成本(f值)self.parent = None # 父节点(用于回溯路径)self.task_id = task_id # 任务IDself.priority = priority # 任务优先级(1=最高,5=最低)

小程序开发 950

Linux 文件管理-文件系统-ext2, ext3, ext4 文件系统之【不同存储系统间的差别】

本文转载自:https://blog.youkuaiyun.com/qwertyupoiuytr/article/details/70833690 感谢博主的辛勤付出  ext2 ext3 ext4 文件系统的区别: ext2为非日志文件系统,即在文件系统的运行期间不会记录写操作的日志,这就有一个很大的弊端,即文件系统只能单纯依靠Inode和Data Block的Bitmap来确定数据写入的状态。 我们先

xyz的专栏 1321

华为OD机试真题 新系统 2026-05-13 Python&JS语言 实现【查找能被整除的最大整数】

给定一个字符串和一个正整数,字符串由大小写字母和数字组成,要求从字符串中找出最大且能被给定正整数整除的数。

MISAYAONE的博客 224

架构设计:系统存储(4)——块存储方案(4)

上一节我们讨论了Ext3文件系统相对于Ext2文件系统最大的改进点——日志模式。但是Ext2文件系统中另外一个问题还没有做太多调整:因为存储大文件时Ext2/Ext3文件系统会启用二级、三级甚至四级间接指针建立Inode和data block的联系,这样的做法会降低文件系统上对大文件的读写能力。Ext4文件系统的细节文章就不再过多介绍了,因为系统存储这个专题到到现在已经从最底层硬件设备开始到阵列结构再到操作系统上的文件系统进行了说明,相信读者已经理解了为什么这种传统的存储方案被称为块存储方案了。

smart_an的专栏 1065

EXCEL VBA从入门到精通 前言

本书通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程,同时也介绍了常用的工具、资源、社区和协作平台等,方便读者进行进一步的学习和开发。我强烈推荐这本书给所有希望学习和掌握Excel VBA编程的读者。多样化的资源和工具介绍:本书介绍了丰富的工具和资源,包括官方文档、在线教程、代码库、论坛、博客等,方便读者进行进一步的学习和开发。详细的讲解和丰富的示例:本书从语法和对象开始讲解,通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程。第一节:什么是VBA 5。

1728

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ext4 原理篇(三):日志子系统 Journal 深度剖析 —— 如何保障数据一致性?

文件系统如何确保“删除一个文件”这个操作,不会因为突然断电而只完成了一半,导致空间泄露?又如何保证涉及多个数据块更新的操作,要么全部成功,要么全部失效?这些问题的本质是数据的一致性。ext4通过Journal(一套在真正改动磁盘结构前,先将“意图”记录在案的机制)。 ext4的Journal子系统兼顾了性能与可靠性,通过一套严谨的“先写日志、再写数据”的核心逻辑,从根源上解决了异常场景下的数据一致性问题。本文将深度拆解Journal的核心原理、工作流程、日志模式,以及它如何在异常中断时实现数据恢复。

qq_40529346的博客 497

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ext4日志机制详解:JBD2如何保证崩溃后数据一致性

文件系统在异常断电或系统崩溃后,如何避免数据损坏是存储领域的核心问题。早期ext2依赖e2fsck全盘扫描修复,在TB级分区上耗时漫长,无法满足在线业务需求。ext4借助JBD2框架实现了日志(Journal)机制,通过写前日志记录元数据变更,崩溃后按事务顺序重放,将恢复时间从O(容量)降至O(日志大小)。文章从数据一致性问题出发,剖析了JBD2的磁盘结构、内存对象、环形缓冲区,对比writeback、ordered、data三种模式,并重点关注ordered模式为何成为生产默认选择。同时讲解事务提交的完整

weixin_31240035的博客 286

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

深入解析ext4文件系统日志机制与优化实践

文件系统日志机制是现代存储系统的核心技术之一,其核心原理是通过预写日志(WAL)确保数据一致性。在机械硬盘时代,断电导致的文件系统损坏问题催生了日志文件系统的发展。ext4作为Linux主流文件系统,其日志子系统采用循环缓冲区设计,通过事务生命周期管理实现秒级故障恢复。该技术特别适用于数据库、金融交易等对数据一致性要求高的场景,通过三种日志模式(journal/ordered/writeback)实现性能与安全的平衡。日志设备分离和事务批处理等优化手段可显著提升IO性能,而metadata_csum等新特性

weixin_29758911的博客 250

什么是日志文件系统?断电时如何保证数据不丢

日志文件系统通过“预写日志”(WAL)机制,解决断电导致的文件系统不一致问题。在修改磁盘元数据前,先将操作记录写入连续的日志区,确保事务原子性。即使断电,重启后可依据日志重做或撤销未完成操作,实现快速恢复。Ext4 等现代文件系统利用环形日志、校验和与异步落盘,兼顾性能与可靠性,彻底告别漫长 fsck 检查。核心思想:先记账,再改账本。

qq_39241682的博客 181

ext4 mount option data mode: journal ordered writeback

ext4支持3种DATA模式,用来区分记录journal的行为。 ext4的journal类似于PostgreSQL的XLOG,可以用来做灾难恢复,以及确保数据的一致性。 文件在ext4中分两部分存储,一部分是文件的metadata,另一部分是data。 metadata和data的操作日志journal也是分开管理的。你可以让ext4记录meta...

weixin_34153893的博客 689
上一篇: Linux-mmap映射物理内存到用户空间
下一篇: Linux挂载ext4根文件系统为journal模式
SweeNeil
博客等级 码龄9年 251粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值