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. QT 的使用及编写代码遇到的问题和解决方法

    QT 中将 QString 转化为 const char * 的问题 我开始的代码是这样的: QString qstr = "abcdef"; const char * cc = ...

  2. virtual dom的实践

    最近基于virtual dom 写了一个小框架-aoy. aoy是一个轻量级的mvvm框架,基于Virtual DOM.虽然现在看起来很单薄,但我做了完善的单元测试,可以放心使用.aoy的原理可以说和 ...

  3. 关于统一资源标志符URL的理解

    URL由三部分构成 A:B:C A:URL使用的领域 B:在此领域的类型名称 C:标识资源的具体位置 C可以是一个绝对路径,也可以是端口号加上资源名称,总之是可以唯一标示资源的标识 例: 在网址中 S ...

  4. cuda编程学习5——波纹ripple

    /共有DIM×DIM个像素,每个像素对应一个线程dim3 blocks(DIM/16,DIM/16);//2维dim3 threads(16,16);//2维kernel<<<blo ...

  5. (转)Nginx + uwsgi + web.py + MySQLdb

    一.背景知识: Web服务器上有多种方式运行Python: 传统上的CGI方式:基本已被淘汰 mod_python的模块方式:仍在广泛使用,但生产环境中也被逐步淘汰 uwsgi方式:目前生产环境下最受 ...

  6. 用async 解放你的大脑

    在js中,代码嵌套和代码回调非常常见,不仅编写麻烦而且异常反人类.让我等码农很是头痛 function () {     function () {         function () {     ...

  7. Windows 10 Creaters Update 画中画模式和窗口高斯模糊

    在Windows 10 Creaters Update中,可以给窗口设置高斯模糊了,只要几行代码! <Grid Loaded="Grid_Loaded"> <Gr ...

  8. strtol函数 将字符串转换为相应进制的整数

    转自http://hi.baidu.com/qwpsmile/blog/item/9bc44efa4f41018a9f514637.html +----------------+|      strt ...

  9. 程序猿 tensorflow 入门开发及人工智能实战

    tensorflow 中文文档: http://www.tensorfly.cn http://wiki.jikexueyuan.com/project/tensorflow-zh/ tensorfl ...

  10. sqlcmd的使用小结

    据说,超过80M的sql文件是不能在查询分析器中执行的(可能是运行得太慢,也可能查询分析器就不能容载如此多的语句). 那么就有了sqlcmd命令: 首先进入cmd窗口,便可进行以下操作 1.登录sql ...