[ext4]01 磁盘布局 - block分析
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分析的更多相关文章
- [ext4]04 磁盘布局 - Meta Block Groups
Meta Block Groups,可以翻译为元块组集. 如果不采用Meta Block Groups特性,在每个冗余备份的超级块的后面是一个完整的(包含所有块组描述符的)块组描述符表的备份.如前所述 ...
- [ext4]磁盘布局 - group分析
ext4文件系统的磁盘布局是先把磁盘分成一个个相同大小的block块(每个block块的大小默认是4K),然后把这些block块合成一个个group. group大小最大为256M(默认为256M), ...
- [ext4]03 磁盘布局 – Flexible group分析
Flexible Block Groups (flex_bg),我称之为"弹性块组",是EXT4文件系统引入的一个feature. 所谓Flexible Block Groups, ...
- [ext4]010 磁盘布局 - 如何查找inode的磁盘位置
在linux系统中,任何一个文件,都有一个inode与其对应,也就是说,在一个文件系统中,一个文件都有唯一的ino来标示他,那么在ext4系统中,ino是如何确定的哪? 当我们新创建的文件或目录时,会 ...
- [ext4]08 磁盘布局 - CheckSums
从2012年开始,Ext4和jbd2的元数据中都开始加入checksums.特性标识是metadata_csum.Checksum算法是在super_block中指定: struct ext4_sup ...
- [ext4]07 磁盘布局 - 块/inode分配策略
Ext4系统从设计上就认为数据局部性是文件系统的文件系统的一个理想品质. 在机械硬盘上,相关联的数据存放在相近的blocks上,可以使得在访问数据时减少磁头驱动器的移动距离,从而加快IO访问. 在SS ...
- [ext4]06 磁盘布局 - 特殊inode
Ext4预留了一些inode做特殊特性使用,见下表: inode Purpose 0 不存在,Ext4中不存在inode 0. 1 存放损坏的数据块链表 2 根目录 3 User quota. 用户q ...
- [ext4]09 磁盘布局 - superblock备份机制
如果sparse_super特性flag被设置(即开启了sparse_super特性),那么super_block和组描述符的副本只会保存在group索引为0或3.5.7的整数幂. 如果没有设置spa ...
- [ext4]05 磁盘布局 - 延迟块组初始化
延迟块组初始化,Ext4的新特性.如果对应的特性标识uninit_bg置位,那么inode bitmap和inode tables就不会初始化. 延迟块组初始化特性特性可以减少格式化耗时. 延迟块组初 ...
随机推荐
- React 进修之路(2)
生命周期 React中的组件被看成是一个有生命的个体,因此赋予了声明周期的概念,就是为了定义组件所处的状态 React中组件共分三大周期,11个阶段 创建期(少年,成长)组件创建时候进入的时期 get ...
- Visual Studio 2015创建ASP.NET5项目“DNX SDK version 'dnx-clr-win-x86.1.0.0-beta5' 无法安装的错误
使用asp.net5建立web application时遇到DNX SDK版本 “dnx-clr-win-x86.1.0.0-beta5”无法安装的错误 解决办法: 运行cmd: 1.输入: @pow ...
- css3 的 calc()函数在布局中的使用----头部高度固定,页面正好占满一屏
最近项目遇到一个布局需求,头部高度固定,页面需要刚好占满一屏幕. 如下示意图: 方法:使用calc .wrap{ position: relative; margin-left: 24px; marg ...
- [译]Selenium Python文档:八、附录:FAQ常见问题
另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions 8.1.怎样使用ChromeDriver ...
- iOS开发之layoutSubviews
当发生下面两种情况该方法会被调用: (1)一个控件的frame发生改变的时候. (2)布局子控件的时候 一般在这里布局内部的子控件(设置子控件的frame) 例如: - (void)layoutSub ...
- 配置linux实现路由功能
说明: 主机1是内网的数据存储服务器,只有一块网卡10.0.0.2: 主机2是web服务器,有两块网卡,一块面向内网10.0.0.3,一块面向外网192.168.220.136: (因为是在虚拟机的环 ...
- 如何给sublime text3安装汉化包?so easy 哦
这是我本人亲身测试过的,肯定有效,没用的话怪我咯. 首先安装package control,然后安装汉化包即可,很简单哦!!! 1.安装package control:打开sublime,使用快捷键: ...
- 安装IPython攻略
由于对python自带的idle不太满意,看到有介绍说ipython不错,于是想装一个试试. 机器上该装的扩展包都已经装好了,比如setuptools,matplotlib,环境变量配置,所以安装起来 ...
- API的文档自动生成——基于CDIF的SOA基本能力
当前,作为大部分移动app和云服务后台之间的标准连接方式,REST API已经得到了绝大部分开发者的认可和广泛的应用.近年来,在新兴API经济模式逐渐兴起,许多厂商纷纷将自己的后台业务能力作为REST ...
- 现代3D图形编程学习-你好,三角形(译)
你好,三角形 传统的入门教程在介绍编程语言的时候,通常从"Hello,World!"的程序开始.这样的程序拥有最简单的能够直接输出"Hello, World!" ...