Linux文件系统:inode、日志、数据分配与碎片处理
1. inode详解
1.1 inode的定义
inode是index-node的缩写,是磁盘上一个256字节的块,用于存储文件的相关数据。这些数据包括文件大小、文件所属用户和组的ID、文件模式(即访问权限),以及三个时间戳,分别记录文件最后一次访问、修改的时间,以及inode本身数据最后一次修改的时间。
1.2 inode与文件访问
inode的元数据中不包含文件名。对文件的访问是通过目录项进行的,目录项本身就是文件名,并且包含一个指向inode的指针,该指针的值就是inode号。在一个文件系统中,每个inode都有一个唯一的ID号,但同一计算机甚至同一硬盘上的其他文件系统中的inode可能具有相同的inode号。
1.3 间接节点
对于存在严重碎片的文件,需要使用间接节点。间接节点是文件系统中的一个普通数据块,仅用于描述数据,而不用于存储元数据,因此可以支持超过15个条目。例如,一个4K的块大小可以支持512个4字节的间接节点,这样一个文件就可以有12(直接) + 512(间接) = 524个数据区域。
1.4 不同文件系统的数据指针形式
在Minix和EXT1到EXT3文件系统中,数据指针以数据区域或块的列表形式存在。而在EXT4文件系统中,inode列出了属于文件的数据区域,数据区域是属于文件的连续数据块列表,一个文件可能由多个数据区域组成。
graph LR
A[文件] --> B[目录项]
B
超级会员免费看
订阅专栏 解锁全文

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



