沉淀、分享、成长,让自己和他人都能有所收获!😄
📢今天我们深入到EXT底层的数据结构细节,来理解Ext特殊的块组。
可以先回顾上一篇的讲解:理解Ext文件系统
一、每个块组中存储块数量的确定
想想学校中同一个年级为什么要分成不同的班?主要是因为人数太多的话,一个班主任就管不过来了。
文件系统也与之类似,每个块组中会有一个存储块(数据位图)负责标记本组内所有存储块的使用状态,这个存储块就类似于学校里一个班的班主任。所以,一个块组中存储块的数量是由数据位图的标记范围来确定的。
位图结构是一个比特数组,每个比特用于标记一个存储块的使用状态,所以,一个存储块包含多少比特,那么一个存储块就最多包含多少个存储块。而存储块的大小是在创建文件系统的时候由系统管理员指定的,可以是 1 KB、2 KB 或者 4 KB,一旦这个大小确定了,每个块组中的存储块数量就确定了。
拿 256 GB 的存储空间为例,如果使用默认 4 KB 的存储块大小。那么一个数据位图块可以有 8 * 4 KB = 32 KB 个比特,可以标记 32 KB 个存储块。所以,Ext2 文件系统就会把每 32 KB 个存储块划分为一个块组,每个块组的总容量为 32 KB * 4 KB = 128 MB,整个 256 GB 的存储空间会被分成大约 2048 个块组。
本文深入讲解Ext文件系统,探讨每个块组的存储块数量确定、超级块与组描述符、数据位图与索引位图、索引节点(inode)以及日志功能。解释了位图结构如何标记存储块状态,块组的组织形式,以及如何通过多级索引节点存储大文件。还介绍了日志功能如何确保文件系统元数据一致性,但不保证数据完整性。
订阅专栏 解锁全文
402

被折叠的 条评论
为什么被折叠?



