ext4文件系统最基本的分配单元是“block”(块)。

block是由一组连续的sectors来组成,其大小介于1k~4K之间,当然不可能是任意值,只能是2的整数次幂个sectors。然后连续的blocks再组成group。Block的大小是在mkfs时指定的,默认是4K。

默认情况下,系统可以含有2^32个blocks,到那时如果开启“64bit”特性,可以支持2^64个blocks。

其相关指标见下图:

Item

32-bit mode

1KiB

2KiB

4KiB

64KiB

Blocks

2^32

2^32

2^32

2^32

Inodes

2^32

2^32

2^32

2^32

File System Size

4TiB

8TiB

16TiB

256PiB

Blocks Per Block Group

8,192

16,384

32,768

524,288

Inodes Per Block Group

8,192

16,384

32,768

524,288

Block Group Size

8MiB

32MiB

128MiB

32GiB

Blocks Per File, Extents

2^32

2^32

2^32

2^32

Blocks Per File, Block Maps

16,843,020

134,480,396

1,074,791,436

4,398,314,962,956

File Size, Extents

4TiB

8TiB

16TiB

256TiB

File Size, Block Maps

16GiB

256GiB

4TiB

256PiB

注:一直未搞懂block size什么时候可以取到64K;

特性“64bit”开启后,(mkfs.ext4-O 64bit /dev/sdc)

Item

64-bit mode

1KiB

2KiB

4KiB

64KiB

Blocks

2^64

2^64

2^64

2^64

Inodes

2^32

2^32

2^32

2^32

File System Size

16ZiB

32ZiB

64ZiB

1YiB

Blocks Per Block Group

8,192

16,384

32,768

524,288

Inodes Per Block Group

8,192

16,384

32,768

524,288

Block Group Size

8MiB

32MiB

128MiB

32GiB

Blocks Per File,Extents

2^32

2^32

2^32

2^32

Blocks Per File,Block Maps

16,843,020

134,480,396

1,074,791,436

4,398,314,962,956

File Size, Extents

4TiB

8TiB

16TiB

256TiB

File Size, Block Maps

16GiB

256GiB

4TiB

256PiB

注:一直未搞懂block size什么时候可以取到64K;

作者:Younger Liu

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

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

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

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

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

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

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

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

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

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

  5. [ext4]08 磁盘布局 - CheckSums

    从2012年开始,Ext4和jbd2的元数据中都开始加入checksums.特性标识是metadata_csum.Checksum算法是在super_block中指定: struct ext4_sup ...

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

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

  7. [ext4]06 磁盘布局 - 特殊inode

    Ext4预留了一些inode做特殊特性使用,见下表: inode Purpose 0 不存在,Ext4中不存在inode 0. 1 存放损坏的数据块链表 2 根目录 3 User quota. 用户q ...

  8. [ext4]09 磁盘布局 - superblock备份机制

    如果sparse_super特性flag被设置(即开启了sparse_super特性),那么super_block和组描述符的副本只会保存在group索引为0或3.5.7的整数幂. 如果没有设置spa ...

  9. [ext4]05 磁盘布局 - 延迟块组初始化

    延迟块组初始化,Ext4的新特性.如果对应的特性标识uninit_bg置位,那么inode bitmap和inode tables就不会初始化. 延迟块组初始化特性特性可以减少格式化耗时. 延迟块组初 ...

随机推荐

  1. Go语言并发机制初探

    Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序.Go 语言内置了 goroutine 机制,使用goroutine可以快速地开发并发程序, 更好的利用多核处理器资源.这篇文章学习 g ...

  2. Redis命令总结及其基础知识讲述

    1.redis的不同之处 Redis拥有其他数据库不具备的数据结构,又拥有内存存储(这使得redis的速度非常快),远程操作(使得redis可以与多个客户端和服务器进行连接).持久化(使得服务器可以在 ...

  3. Java标准注释配置

    eclipse中java文件头注释格式设置 windows->preferences->java->Code Templates->comments->Type-> ...

  4. quartz笔记

    首先网络上的很多教程经常有错(信息过载了),其主要原因是版本发生了变化,例如quartz1和2之间还是有不少差别的,导致查找资料的人浪费了不少时间.所以无论教程如何写,都建议读者首先学习官网的教程,如 ...

  5. 实验楼-3-Linux用户及用户组

    获得自己用户名 $ who am i $ whoami pts/0 : 伪终端/序号 root操作:sudo Firstly,知道当前登录用户的密码:Secondly,当前用户在sudo用户组 添加新 ...

  6. 开始学习yii2第一天

    今天在朋友圈看到一条转发,内容是根据招聘网站的要求,列举了需要一个php工程师具体需要哪些技能 框架要求是yii2 出现的最多 已经出来工作了快半个月了,感觉工资还是少的可怜,而且我也好想去张江, 所 ...

  7. oracle删除字段中的空格、回车及指定字符

    create or replace procedure PROC_test is --Description:删除字段中的指定字符(回车chr(13).换行chr(10)) --By LiChao - ...

  8. 第4章Zabbix监控实践

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...

  9. (转)Java并发编程:并发容器之ConcurrentHashMap

    下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能.因为 ...

  10. ORA-00918: 未明确定义列

    ORA-00918: 未明确定义列 出现问题原因及解决办法. --正常写,结果带上表名的字段在处理后表头名称相同,在进行下一次嵌套时就会出现问题  select au.userxm,au01.user ...