您的位置:首页 > 其它

[ext4]磁盘布局 - group分析

2014-03-13 19:37 197 查看
        ext4文件系统的磁盘布局是先把磁盘分成一个个相同大小的block块(每个block块的大小默认是4K),然后把这些block块合成一个个group。        group大小最大为128M(默认为128M),其计算公式:                Group_size = (blk_size*8)*blk_size=4096*8*4096= 32768*4096=128M        更详细一点如下,针对第一个group(即group0)而言:
Group
功能占用块数备注
Group0 padding1024bytes仅group0含有
ext4 super block1 block仅某些group含有
Group Descriptorsmany blocks仅某些group含有
Reserved GDT Blocksmany blocks仅某些group含有
Data Block Bitmap1 block所有group均含有
inode Bitmap1 block所有group均含有
inode Tablemany blocks所有group均含有
Data Blocksmany more blocks所有group均含有
        Group0最前面的1024bytes用作它用(比如启动引导等),当然也只有group0中的前1024bytes是保留的,其他任何的group都不会保留。        Ext4 super block大小大约为0x2D0(即720)bytes,如果block块大小为2K或4K,那么super block将存放在第一个block(索引为0)中;如果block块为1K,则super block将存放在第二个block(索引为1)中;如果block块为512bytes(很少设置为这个值了),则super block将存放在第三、四个block(索引为2,3)中。        Group Descriptors blocks(简称GDBs):每一个描述符的大小64byte,GDBs所占用block多少是与卷的大小有关的。        Reserved GDT Blocks(简称RGDTBs),为卷扩容预留的空间。        需要注意的是:superblock有备份机制(关于超级块的备份机制,请阅本系列相关文章),超级块备份时,GDBs数据也是会备份的。而GDBs和RGDTBs一般共计128个blocks。关于flexgroup分析,        Data block bitmap:用于描述本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:用于描述本group(即对应所在的group)内inodetable中各个inode项的使用状态,一个bit位对应标识一个inode项,如果该bit为0,则表示对应inode table的inode项为空闲状态,否则表示为使用状态。Inode bitmap在每个group中均占用一个block,每个group中可创建文件多少就是由inode bitmap决定的,4K大小的block块可以映射标识4096*8=32768个inode,即是一个group组最多只有32768个inode。,。        Inode table:用于存放inode数据,一个inode数据大小为256bytes,inode table默认为512个block,所以一个group中的文件多少默认为512*4096/256=8192个。        Data block(除去之前那么几类数据,剩余的block全部为data blocks)用于存放普通数据。        注:由于ext4系统引入了Flexible group的概念,本文可以理解为不支持flex_bg特性。        关于flex group分析,请阅本系列其他文章。
作者:Younger Liu,本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: