分类: LINUX
2017-02-17 11:06:16
ext3:
1).ext3文件系统采用32bit的块地址索引空间;
2)在inode条目中,引用一个块空间符号需要4byte的大小;
3)对于一个inode来说,设计了12个直接指针索引,一个间接指针索引,一个双间接指针索引,以及一个三间接指针索引
附ext3文件系统中inode内部结构图:
ext4:
1).ext4文件系统采用48bit的块地址索引空间;
2).在inode条目中,不在是使用指针索引的方式来进行与block的映射,而是采用extent来替代指针;此前在ext3中的15个
指针被替换成5个extent,一个extent占用3byte空间;一个extent描述了一组连续的block,当不够用时extent依旧可以采
用间接指针的索引,但没有个数限制。
ext3:
1).最大支持的文件大小
首先要知道,在linux文件系统,一个block的大小可以为1k,2k,4k,当block的大小为4k时为最大。在linux系统中,每一个文件都要使用一个inode号,因此要想计算出单个文件所支持的最大空间,只要知道inode中能够引用多少个block,而block取最大值4k的时候计算出来的值就是所能支持的单个文件的最大空间。
从上面的硬性规定中可以看出:
a.一个inode支持12个直接指针,因此就表示了12个block
b.一个inode支持一个间接指针,也就是一个指针指向了一个block块,将该block块作为指向最终block的直接指针,这里是一个block为4K,指向一个block要占用4byte的空间,因此一个block的间接指针可以指向4K/4byte的block,即2^10
c.双间接指针最终则指向:2^10*2^10=2^20 个block
d.三间接指针最终执行:2^10*2^10*2^10=2^30 个block
ext3最大文件大小:(12+2^10+2^20+2^30)x4KByte/1024/1024/1024=4TB
ext3最大分区大小:2^32*4K/1024/1024/1024=16TB
inode 使用率也需要监控,特别是非常多的小文件
1K 文件最大1T
2K 文件最大2T
4K 文件最大4T
3)最大磁盘容量
对于整块磁盘而言,因为存在MBR区域,而MBR中有64byte的空间只能表示4个分区,每个分区16btye来表示,因此对于ext3文件系统支持的最大分区为16TB,那最大系统磁盘容量为:16TB*4=64TB
MBR的组成 0柱面 0磁头 1扇区(512B)
0000-0088
|
Master Boot Record
主引导程序
|
主引导
程序
|
0089-01BD
|
出错信息数据区
|
数据区
|
01BE-01CD
|
分区项1(16字节)
|
分区表
|
01CE-01DD
|
分区项2(16字节)
|
|
01DE-01ED
|
分区项3(16字节)
|
|
01EE-01FD
|
分区项4(16字节)
|
|
01FE
|
55
|
结束标志
|
01FF
|
AA
|
|
ext4:
1)单个文件的最大空间
由于ext4默认不再使用指针的形式做block映射,而是使用extent来管理所能描述的block个数,。但一致的说法是,单个文件可大16TB,相当于ext3的最大分区大小.
2)最大分区大小(即文件系统大小)
ext4使用48bit的块地址索引空间,因此在block为4k的情况下,大小为:
2^48*4KByte=1EB=1024PB=1024*1024TB
超过16TB分区可以分,但是格式化成ext4 需要安装新版本的mkfs软件
3)最大磁盘容量
根据ext3的分析结论可知:1EB*4=4EB