我们都知道,磁盘是最典型的块设备,不管是机械硬盘还是固态硬盘,存取的最小单位一般是扇区(sector)。在磁盘上,所有的扇区是按照顺序排列的,就好像积木整齐的堆积在一起,这些积木都按照顺序进行编号,但是这样还远远不够。我们需要用这些积木组建房屋、街道,最终变成一个城市,需要通过一定的方式管理这些积木,才不至于让这些积木乱套,并且合理充分的使用他们。
本文主要分析EXT4文件系统的磁盘组织方式,尝试搞清楚EXT4文件系统如何管理一大堆积木的。
关于EXT4文件系统的几个问题
- EXT4文件系统最大可以管理多大的分区?
- EXT4文件系统如何找到一块空闲的空间?
先把问题放在这里,尝试后面进行分析。
磁盘布局
EXT4文件系统的标准磁盘布局与EXT2/3 没有什么不同,如图1,最开始的部分是引导块,记录了文件系统分区的一些基本信息,在CentOS上查看,一般站占用2KB的空间。剩余的部分通过块组的方式进行组织,块组的基本形式如图1-b中所示,不过块组的组织方式要比这复杂很多,下文中进行详细分析。
图 1 EXT4文件系统标准磁盘布局
块组 - Block Group
我们注意到,扇区(Sector)、块(