ext4文件系统的磁盘布局是先把磁盘分成一个个相同大小的block块(每个block块的大小默认是4K),然后把这些block块合成一个个group。

group大小最大为256M(默认为256M),其计算公式:

Group_size = (blk_size*8)*blk_size=4096*8*4096= 32768*4096=128M

更详细一点如下,针对第一个group(即group0)而言:

Group

功能

占用块数

备注

Group0 padding

1024bytes

仅group0含有

ext4 super block

1 block

仅某些group含有

Group Descriptors

many blocks

仅某些group含有

Reserved GDT Blocks

many blocks

仅某些group含有

Data Block Bitmap

1 block

所有group均含有

inode Bitmap

1 block

所有group均含有

inode Table

many blocks

所有group均含有

Data Blocks

many 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 block默认为512个block,所以一个group中的文件多少为512*4096/256=8192个。

Datablock,(除去之前那么几类数据,剩余的block全部为data blocks)用于存放普通数据。

注:由于ext4系统引入了Flexible group的概念,本文可以理解为不支持flex_bg特性。

关于flex group分析,请阅本系列其他文章。

作者:Younger Liu,

本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可。

[ext4]磁盘布局 - group分析的更多相关文章

  1. [ext4]磁盘布局 - inode bitmap & table

    在[磁盘布局 group部分]已经介绍过ext4的整体布局,其中存在两个与inode有关的名称:inode bitmap和inode table. Inode bitmap,用于表示inode tab ...

  2. [ext4]01 磁盘布局 - block分析

    ext4文件系统最基本的分配单元是"block"(块). block是由一组连续的sectors来组成,其大小介于1k~4K之间,当然不可能是任意值,只能是2的整数次幂个secto ...

  3. [ext4] 磁盘布局 - extent tree

    传统的类Unix文件系统,比如Ext3,都是使用一个间接数据块映射表来记录每一个数据块的分配情况的.但是这种机制对于超大文件的存储是有缺陷的,特别是当对超大文件进行删除和截断操作时.映射表会对每一个数 ...

  4. [ext4]04 磁盘布局 - Meta Block Groups

    Meta Block Groups,可以翻译为元块组集. 如果不采用Meta Block Groups特性,在每个冗余备份的超级块的后面是一个完整的(包含所有块组描述符的)块组描述符表的备份.如前所述 ...

  5. Win10无法安装提示磁盘布局不受UEFI固件支持怎样解决

    微软在推出Win10系统以后,就向Win7和Win8.1系统用户提供了免费升级Win10系统的推送,但是用户在安装Win10系统的时候,却有一部分用户反映,遇到提示“无法安装Windows,因为这台电 ...

  6. ext2磁盘布局

    概述           本篇博客主要关注ext2文件系统的磁盘布局,即ext2会在格式化时将磁盘划分成什么样子.   ext2磁盘布局   任何Ext2分区中的第一个块从不受Ext2文件系统的管理, ...

  7. [ext4]03 磁盘布局 – Flexible group分析

    Flexible Block Groups (flex_bg),我称之为"弹性块组",是EXT4文件系统引入的一个feature. 所谓Flexible Block Groups, ...

  8. [ext4]07 磁盘布局 - 块/inode分配策略

    Ext4系统从设计上就认为数据局部性是文件系统的文件系统的一个理想品质. 在机械硬盘上,相关联的数据存放在相近的blocks上,可以使得在访问数据时减少磁头驱动器的移动距离,从而加快IO访问. 在SS ...

  9. [ext4]010 磁盘布局 - 如何查找inode的磁盘位置

    在linux系统中,任何一个文件,都有一个inode与其对应,也就是说,在一个文件系统中,一个文件都有唯一的ino来标示他,那么在ext4系统中,ino是如何确定的哪? 当我们新创建的文件或目录时,会 ...

随机推荐

  1. 谷歌开源图片压缩算法Guetzli实测体验报告

    谷歌大神又出开源新技术啦,这次是对JPEG格式的图片采用全新算法重新编码,输出的图片还是JPEG但是图片大小明显缩小,而质量不但没有损失,甚至还更加优化,速速来体验一把. 一.环境安装 下载谷歌开源软 ...

  2. 【树莓派】h2数据库操作相关

    之前在树莓派上面操作时候,遇到一些业务方面的bug,和团队中的同事经过多次尝试,但就是难以重现用户现场的问题. 但是问题却实实在在地发生,虽然并不是必然可重现的bug,但是也比较闹心: 发生了问题,也 ...

  3. 关于修改编JDK编译环境的问题

    最近从svn下拿的代码本地编译测试总是会出一个Unsupported major.minor version 51.0...的问题,出现这样的问题基本上都是因为JDK版本的问题,由于高版本JDK编译的 ...

  4. IIS7 / IIS7.5 URL 重写 HTTP 重定向到 HTTPS

    1.购买SSL证书,参考:http://www.cnblogs.com/yipu/p/3722135.html 2.IIS7 / IIS 7.5 下绑定 HTTPS 网站(购买Wildcard SSL ...

  5. 效率神器 Workflow 实例分享

    WorkflowShare Workflow实例分享,Github链接:WorkflowShare logo.jpg 苹果公司收购 Workflow 并将其完全免费,作为一款效率类 APP,Workf ...

  6. QConf简要搭建过程

    QConf的组件: ZooKeeper as the server, restore all configurations, so the limit data size of single conf ...

  7. HANA CDS与ABAP CDS

    如果你在网络或者SCN上面搜索CDS,即SAP的Core Data Services,你会很容易地找到类似“Core Data Services(CDS)是一个在SAP HANA中用于定义和消费富语义 ...

  8. web浏览器上传超大文件插件

    如今基于浏览器安装插件的时代已经过时,让人觉得比较low,基于非插件的文件上传大都有限制,给大家推荐一款插件,基于大文件切割原理上传的插件,解决大家的难题! 项目链接http://www.twinkl ...

  9. 老李案例分享:Weblogic性能优化案例

    老李案例分享:Weblogic性能优化案例 POPTEST的测试技术交流qq群:450192312 网站应用首页大小在130K左右,在之前的测试过程中,其百用户并发的平均响应能力在6.5秒,性能优化后 ...

  10. 老李教你性能测试监控工具nmon

    老李教你性能测试监控工具nmon   loadrunner的某些性能监控器不够强大,这就需要我们利用更好的工具进行监控,在项目中我们会用nmon工具作为辅助性能监控的工具,帮助我们进行性能分析,pop ...