ext4磁盘镜像结构分布(转)

大体上看,ext4文件系统的磁盘布局与前面介绍的xfs有些类似,它同样是先把磁盘分成一个个相同大小的block块(每个block块的大小默认是4K),然后把这些block块逻辑上合成多个group组,每个group组内的布局基本一致,除了第一个group组(即group 0)前面有1024字节的保留空间外。

功用 占用块数
Group 0 Padding 1024 bytes
ext4 Super Block 1 block
Group Descriptors many blocks
Reserved GDT Blocks many blocks
Data Block Bitmap 1 block
inode Bitmap 1 block
inode Table many blocks
Data Blocks many more blocks

只有group 0的Super block块前面才会保留1024字节用作它用(比如启动引导等),而后面的group组的Super block块是从偏移0开始的。另外,其它group的Super block块等信息只是为了冗余而备份,以便在磁盘损坏时而进行修复。太多的备份也是不必要的,所以也只有部分后续group块(比如第7,25,……)才有个拷贝备份,而其它没有Super block块等拷贝的group组第0块block为Data Block Bitmap block块。

1
2
3
4
5
6
7
8
9
10
11
[root@localhost sdd]# hexdump -C -s 0 -n 4096 /dev/sdd1
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400  00 00 04 00 a9 fe 0f 00  bb cc 00 00 5b b6 0f 00  |............[...|
00000410  f5 ff 03 00 00 00 00 00  02 00 00 00 02 00 00 00  |................|
*
[root@localhost sdd]# hexdump -C -s 134217728 -n 4096 /dev/sdd1
08000000  00 00 04 00 a9 fe 0f 00  bb cc 00 00 5b b6 0f 00  |............[...|
08000010  f5 ff 03 00 00 00 00 00  02 00 00 00 02 00 00 00  |................|
*
[root@localhost sdd]#

Super block块不用多说,用于保存分区以及本group内的相关重要信息。

Group Descriptors block块(即是GDT块)用于存储每一个group组的Data Block Bitmap block、inode Bitmap block、inode Table block所在的位置、当前空闲块数,inode数以及使用的目录数等信息。未开启64bit特性的ext4文件系统,一个group组描述符大小为32字节,开启64bit特性的ext4文件系统,一个group组描述符大小为64字节。一个4KB的block块可以管理128个未开启64bit特性的group组。

Reserved GDT block块为文件系统的扩容而保留未来Group Descriptors block使用的块。

Data Block Bitmap block块用于描述本group组(即对应所在的group组)内各个block块的使用状态,一个bit位对应标识一个block块,如果该bit为0,则表示对应block块为空闲状态,否则表示为使用状态或其它(比如物理上不存在,发生在最后一个group组最靠后的位置)。如果一个block块大小为4K,那么可以映射标识4*1024*8=32768个block块的使用状态;由于一个group只有一个Data Block Bitmap block块,所以一个group组最大为32768*4KB=128MB。

inode Bitmap block块描述本group组(即对应所在的group组)内inode的使用状态,同样是一个bit位对应标识一个inode,如果该bit为0,则表示对应inode为空闲状态,否则表示为使用状态。4K大小的block块可以映射标识4*1024*8=32768个inode,即是一个group组最多只有32768个inode。

inode Table block块用于存储本group组内的所有inode的实际信息,多个inode可共用一块block块。

顾名思义,Data block块存储文件数据等信息。

完全参考链接:https://ext4.wiki.kernel.org/articles/e/x/t/Ext4_Disk_Layout_aecb.html

转载请保留地址:http://lenky.info/2012/02/02/ext4%e6%96%87%e4%bb%b6%e7%b3%bb%e7%bb%9f%e7%9a%84%e7%a3%81%e7%9b%98%e5%b8%83%e5%b1%80/或 http://lenky.info/?p=996

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值