自己建个网站要多少钱,个人cms网站,谁能分享个小网站啊,wordpress数据库删除1、前言
熟悉Linux操作系统的都应该或多或少的了解或者使用过Ext4文件系统。 接下来#xff0c;会简单介绍Ext4文件系统的一些特性和工作原理。
2、常用概念
在介绍Ext文件系统之前#xff0c;先简单描述一些相关概念。 块(Block)#xff1a;Ext文件系统存储分配的基本单…1、前言
熟悉Linux操作系统的都应该或多或少的了解或者使用过Ext4文件系统。 接下来会简单介绍Ext4文件系统的一些特性和工作原理。
2、常用概念
在介绍Ext文件系统之前先简单描述一些相关概念。 块(Block)Ext文件系统存储分配的基本单位。块是由多个簇构成的集合大小在1KB和64KB之间。默认情况下块大小4KB。 默认情况下文件系统最多可以管理232块。但是当指定64位特性时最多可以管理264块。 块组(Block Group)多个块联合在一起称之为块组。每个块组中都存储着本块组的超级块、组描述符、块位图和索引节点位图。 超级块(Super Block)超级块记录整个文件系统的大量信息如数据块个数、inode个数、支持的特性、管理信息等。 组描述符(Group Descriptors)文件系统每一个块组都对应有一个块组描述符它是块组中的第二个内容。组描述符记录了位图和inode表的位置信息。 块位图(Block Bitmap)/索引节点位图(Inode Bitmap)块位图跟踪块组中数据块使用情况。Inode位图跟踪块组中Inode使用情况。每个位图一个数据块每一位用0或1表示一个块组中数据块或inode表中inode的使用情况。 索引节点表(Inode Table)用于存储文件的Inode信息。
3、磁盘分布
EXT4文件系统的标准磁盘布局如下
4、常用特性
4.1 sparse super
从上一章节中可以看出超级块和组描述符在每一个块组中都存在冗余备份。而这种方式虽然保证了文件系统的稳健性但无疑造成了磁盘空间的浪费。因此Ext4提供了2种超级块冗余备份的方式。
RO_COMPAT_SPARSE_SUPER 超级块和组描述符的冗余备份仅存放在编号为0或3、5、7的幂次方的块组中。COMPAT_SPARSE_SUPER2 只提供了2个超级块的冗余备份分别位于block group 1和最后一个block group。
4.2 flex bg
开启灵活块组特性(INCOMPAT_FLEX_BG)后文件系统会将多个连续块组的块位图、Inode位图和inode表合并到一起从而有效减少磁盘寻道时间。
Flex_bg中块组的个数存储在超级块中默认灵活块组中的块组数 16。下图为开启flex bg和sparse super后的磁盘结构。 4.3 meta bg
通常在每个冗余备份的超级块的后面是一个完整的包含所有块组描述符的块组描述符表的备份。
这样会产生一个限制按照块大小4096组块大小128M 2^27 组块描述符64计算一个块组最多可以管理2^27 / 64 2^21组块即文件系统最大支持256TB。
使用元块组Meta元组特性每个块组都包含该块组自己的描述符的冗余备份。目前 Ext4最大支持的是48bits block寻址方式所以最大卷大小为2 ^ 48 个block一个块组128MB因而可以创建2 ^ 33个块组。下图为开启meta bg和sparse super后的磁盘结构。 注意meta bg和flex bg特性可以同时使用。 5、工作方式
说到Ext文件系统的工作方式之前首先要说到的就是Inode。那么Inode究竟是什么呢
inode 索引节点
记录文件的权限、属性和数据所在块block的号码每个文件都有且仅有一个的inode每个inode都有自己的编号可以把inode简单地理解为文档索引。
在linux中无论文件还是文件夹都通过inode来管理。 举个例子当我们想要查看某个文件的内容时
首先要读取根目录**(Inode 2)根据直接/间接块寻址(Direct/Indirect Block Addressing)或者扩展树(Extent Tree)的方式解析inode.i_block**内容。根据文件夹布局是**经典线性布局(Linear Classic Directories)还是hash树(Hash Tree Directories)**布局遍历根目录下的所有inode和文件名当找到匹配的文件夹名后在打开匹配文件夹的inode继续遍历反复执行直到找到对应的文件。找到文件后按照同样的方式解析inode.i_block获取文件内容。