7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能

如果新建一个文件或目录时,文件系统的处理就要用到block bitmap与inode bitmap。想要新增一个文件,此时文件系统的行为是:


1. 先确定使用者对于欲新增文件的目录是否具有 w 与 x 的权限,若有的话才能新增;


2. 根据 inode bitmap 找到没有使用的 inode 号码,并将新文件的权限/属性写入;


3. 根据 block bitmap 找到没有使用中的 block 号码,并将实际的数据写入 block 中,且更新 inode 的 block 指向数据;


4. 将刚刚写入的 inode 与 block 数据同步更新 inode bitmap 与 block bitmap,并更新superblock 的内容。


一般来说,我们将 inode table 与 data block 称为数据存放区域,至于其他例如 superblock、block bitmap 与 inode bitmap 等区段就被称为 metadata (中介数据) ,因为 superblock,inode bitmap 及 block bitmap 的数据是经常变动的,每次新增、移除、编辑时都可能会影响到这三个部分的数据,因此才被称为中介数据。


数据的不一致 (Inconsistent) 状态


在一般正常的情况下,上述的新增动作当然可以顺利的完成。但是如果有个万一怎么办? 例如你的文件在写入文件系统时,因为不知名原因导致系统中断(例如突然的停电啊、 系统核心发生错误啊~等等的怪事发生时),所以写入的数据仅有 inode table 及 data block 而已,最后一个同步更新中介数据的步骤并没有做完,此时就会发生 metadata 的内容与实际数据存放区产生不一致 (Inconsistent) 的情况了。


既然有不一致当然就得要克服!在早期的 Ext2 文件系统中,如果发生这个问题, 那么系统在重新开机的时候,就会借由 Superblock 当中记录的 valid bit (是否有挂载) 与 filesystemstate (clean 与否) 等状态来判断是否强制进行数据一致性的检查!若有需要检查时则以e2fsck 这支程序来进行的。


日志式文件系统 (Journaling filesystem)


1. 预备:当系统要写入一个文件时,会先在日志记录区块中纪录某个文件准备要写入的信息;


2. 实际写入:开始写入文件的权限与数据;开始更新 metadata 的数据;


3. 结束:完成数据与 metadata 的更新后,在日志记录区块当中完成该文件的纪录。


日志式文件的功能:数据的记录过程中发生了问题,那么系统只要去检查日志记录区块,就可以知道哪个文件发生了问题,针对该问题做一致性的检查,不必对整块filesystem去检查,这样就可以达到快速修复filesystem的能力。


ext3/ext4 是ext2 的升级版本,并且可向下相容 ext2 版本。所以建议直接使用ext4这个filesystem。


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
8天前
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
37 2
|
7月前
|
存储 SQL Oracle
|
8月前
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
931 28
|
7月前
|
运维 监控 虚拟化
除了实时性能监控,Hyper-V还支持日志记录和警报功能你知道吗?
Hyper-V不仅支持实时性能监控,还具备强大的日志记录和警报功能。通过事件查看器可访问详细的日志文件,涵盖虚拟机管理、配置及Hypervisor事件,帮助故障排查和性能分析。警报功能支持预定义和自定义规则,可通过多种方式通知管理员,确保及时响应问题,保障虚拟化环境的稳定运行。
|
11月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
352 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
10月前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
254 7
|
10月前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
314 1
|
10月前
|
存储 SQL 关系型数据库
【赵渝强老师】PostgreSQL的运行日志文件
PostgreSQL的物理存储结构包括数据文件、日志文件等。运行日志默认未开启,需配置`postgresql.conf`文件中的相关参数如`log_destination`、`log_directory`等,以记录数据库状态、错误信息等。示例配置中启用了CSV格式日志,便于管理和分析。通过创建表操作,可查看生成的日志文件,了解具体日志内容。
295 3
|
11月前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
187 4

热门文章

最新文章