2024年4月19日发(作者:)
前述:Linux系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分区不可
太大也不可以太小,太大会导致磁盘容量的浪费,太小会导致产生的文件无法存储的问题。
在Linux里面文件是由两部分数据组成,一部分是metadata,另一部分是data。那么这些
数据都存放在文件系统的什么地方呢?这就让我们必须得了解文件系统的Inode与Block的
基本原理了,而Linux最传统的磁盘文件系统使用的是Ext2,所以我们了解下它的内部原理。
第一部分:磁盘的组成和分区(基础)
磁盘的机械部分:
1、圆形的盘片(主要记录数据的部分)
2、机械手臂与机械手臂上的磁头(可读写盘片上的数据)
3、主轴马达,可以转动盘片,让机械手臂的磁头在盘片上读写数据
磁盘的基本概念
1、扇区是最小的物理存储单元(512bytes)
2、将扇区组成一个园,那就是柱面,柱面是分区的最小单位
3、第一个扇区最重要,里面有硬盘的主引导程序(MBR)占446bytes和分区表(partision
tables)占64bytes。
4、目前流行的家用硬盘接口SATA和服务器硬盘接口SAS。
磁盘分区部分:
1、主分区和扩展分区最多可以有4个(硬盘的限制)
2、扩展分区最多只能有一个(操作系统限制)
3、逻辑分区是由扩展分区分化出来的分区
4、主分区和逻辑分区的内容可以被格式化,而扩展分区无法格式化
第二部分:文件系统的基本特性
我们都知道硬盘分区后都是需要格式化,之后操作系统才能使用该分区,为什么呢?这是
因为各种操作系统的文件的属性和权限并不相同的,为了能够存放这些文件,因此将分区格
式化,以成为操作系统能利用的系统格式。
文件系统通常会将两部分的数据分别放在不同的块,权限与属性放置到inode中,实际的
数据放置到 data block块中,另外还有一个超级块(superblock)会记录整个文件系统的整
体信息,包括inode和block的总量、使用量、剩余量,以及文件系统的格式与信息。inode
会记录文件的属性,一个文件会占用一个inode,同时会记录文件的数据所在的block号码,
block实际会记录文件的内容,若文件太大,会占用多个block。
第三部分:Linux的Ext2文件系统
1、data block(数据块)
data block是用来放置文件内容的地方,在Ext2文件系统下支持的block的大小为1KB、
2KB和4KB。在格式化的时候,block的大小就被确定了,并且每个block都会有编号,以方
便inode记录。
原则上,block的大小与数量在格式化是不能再改变了(除非重新格式化);每个block内
最多只能放置一个文件的数据,存在以下两种情况,一种是文件大于1个block则会占用多
个block,另外一种是文件小于block,则block的剩余空间就不会再被使用了(磁盘空间的
浪费)。
那既然上述说的大的block可能会导致严重的磁盘容量浪费,但是block设定为最小1K
呢?那么对于大的文件来说会占用数量更多的block,而inode要记录更过的block的号码,
此时又会到时文件系统的不良读写的性能。
因此,在系统进行格式化之前,要想好文件系统的预计使用情况,目前流行为4K。
2、inode
inode的主要内容是记录文件的属性以及该文件的实际数据是放在那几号的block内。
inode记录文件数据有以下内容:
a、该文件的访问模式(r/w/x)
b、该文件的所有者与组(owner/group)
c、该文件的大小
d、该文件的时间戳(atime、ctime、mtime)
e、定义文件属性的标志
f、该文件真正内容的指向(pointer)
其实inode的数量以及大小在格式化的时候就已经被固定了,除了以上还有其它的特性
如下:
每个inode的大小为128bytes,每个文件都仅会占用一个inode,因此文件系统能够创建的
文件的数量是与inode的数量相关的。
系统读取文件时需要先找到inode,并且分析inode所记录的权限与用户是否符合,若
符合才能继续读取block的内容。
第四部分:inode的结构示意图
首先,inode需要记录的数据非常的多,但偏偏只有128bytes,而inode记录一个block
号码就要花掉4bytes,一个inode如果不记录其他数据的化,最多也只能记录32个block
号码。假如一个文件的大小为4GB且每个block为4KB时,那么至少也要100万个block号
码,那么按照上面所说的一个inode对应32个block号码,就需要至少32000个inode,
这时会需要更多的inode,我们也没有那么多的inode,因此我们的系统就有了inode记录
block号码的12个直接,1个间接,1个双间接,1个三间接的记录区。
下面我们通过上述inode的结构图,来分析下内部原理。


发布评论