[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就不会初始化. 延迟块组初始化特性特性可以减少格式化耗时. 延迟块组初 ...
随机推荐
- (转载)一个生动的NIO描述
原文地址:http://blog.csdn.net/zhouhl_cn/article/details/6568119 传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大 ...
- Jackson注解学习参考(转)
转:http://wong-john.iteye.com/blog/1753402 以下内容摘录.翻译自https://github.com/FasterXML/jackson-annotations ...
- 通过composer管理工具安装laravel
当安装好composer管理工具后,将composer的bin目录添加至环境变量中(PATH),方便在任意目录下执行composer命令. 方法1:我们通过laravel工具安装laravel 首先, ...
- Dive in python Chapter4 实例
def info(object,spacing=10,collapse=1): """Print methods and doc strings. Takes modul ...
- (转)Zabbix Agent-Windows平台配置指导
原地址:http://blog.itpub.net/26739940/viewspace-1169538/ zabbix是一个CS结构的监控系统,支持ping,snmp等很多的监控,但是大部分 ...
- 一次安装rpcbind失败引发的思考
问题: yum install rpcbind -y 出现如下错误: Error -.el6.x86_64 error: %pre(rpcbind--.el6.x86_64) scriptlet fa ...
- Redis中的master-slave&sentinel
redis安装 解压完成后可以看到INSTALL和README.md文件,查看以获取更多有用信息. 在README文件中可以获取到软件的安装步骤.以下安装步骤基于此. #step1 进入文件夹,执行编 ...
- python之数据结构链表实现方式
#!/usr/bin/env python # --------------------------------------- # author : Geng Jie # email : gengji ...
- PBXCp Error
在项目开发中遇到了报PBXcp Error错误 然后我用快捷键清理了下项目中的缓存,直接错误警告消除 多次清理缓存,我编译时用的Xcode 8.1 问题是资源文件中的nib文件找不到,有时能找到 ,有 ...
- iOS 关于js与OC相互调用的那些事
最近项目上使用js调用OC,OC再次调用JS,再次在JS页面上面回显数据. 项目中使用的是WKWebview,加载网路的URL,其实就是使用WK加载出来的H5网页,在项目中用的是H5网页有个识别按钮, ...