1个文件对于一个inode?
1个大文件 inode 如何与 块联系起来?
文件名与inode的关系,怎么联系起来。
1个大文件 inode 如何与 块联系起来?
===========================================================================================================================
来自:https://blog.51cto.com/mingyang/1580314
1.硬性规定
ext3:
1).ext3文件系统采用32bit的块地址索引空间;
2)在inode条目中,引用一个块空间符号需要4byte的大小;
3)对于一个inode来说,设计了12个直接指针索引,一个间接指针索引,一个双间接指针索引,以及一个三间接指针索引
注:
a.这些规定都是文件系统自身的程序代码所决定的,也就是说这是开发时就设计好的,没有为什么,只有是什么;对于其它文件系统也是一样;
b.所谓双间接指针索引和三间接指针索引指的是两级结构和三级结构,相当于linux中的根文件系统目录树一样;
附ext3文件系统中inode内部结构图:
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
因此最终的block的个数为:12+2^10+2^20+2^30
则最终的大小为:(12+2^10+2^20+2^30)x4KByte
则换算成TB的大小为:(12+2^10+2^20+2^30)x4KByte/1024/1024/1024=4TB
到此,可知ext3文件系统,在block为4K的时候,其支持的单个文件大小为最大,最大为4TB。
注:当然这是理论值,在业界应该都知道实际值与理论值总是会有点偏差,但无伤大雅
以下来自:https://blog.csdn.net/qq_22613757/article/details/83833903
- 最近在看ext4系统的extent相关内容
- 对于文件系统,每个文件会对应一系列磁盘块,通过在inode中有序的存放磁盘块号,也就保存下了<文件逻辑块号, 磁盘块号>的映射关系
- 一个文件的逻辑块号必然是连续的,而磁盘块号则不必连续
- 通常一个block大小为4KB,所以一个比较大的文件,就需要存相当多的块号——而这是一个十分笨拙的办法
- 对于很大的文件,有一种解决办法就是间接存放块号,也就是说inode中有部分块号指向的block不是存放这个file的数据,而是存放块号——即一种间接寻址的逻辑。通常会包括三级,一部分直接指向文件的数据块,一部分指向存有块号的块,一部分指向存有“存有块号的块的块号”的块,哈哈
- 而ext4采用的办法是使用extent来保存<文件逻辑块号, 磁盘块号>的映射关系:一个extent对应一系列连续的块号,故可以想到,一个extent最基本的几个域有——文件逻辑块号,起始磁盘块号,块数量
- ext4中一个inode可以直接存放4个extent
- 对于很大的文件,ext4采用extent_tree的方式,其本质同样是一种间接寻址的关系
===========================================================================================================================
文件名与inode的关系,怎么联系起来。:
===========================================================================================================================
来自:https://blog.csdn.net/qq_22613757/article/details/83833903
标题从文件名到磁盘块
- 前面有提到,inode存放文件元数据,但是并没有存放filename——那么ext4是如何把一个filename和一个inode绑定在一起呢?
- 也就是说存在一个filename和inode号之间的对应关系,而这个关系也是存放在一个文件里——目录文件。如根目录 / 就是一个文件,这个文件也对应一个inode,文件的数据就是根目录下的文件名和对应的inode号
===========================================================================================================================
文件十问:
https://mp.weixin.qq.com/s/pOKjwl3ONPMPSRF6RSmvaw
参考:
标签:文件,ext4,10,几个,问题,间接,inode,block,指针 From: https://www.cnblogs.com/rebrobot/p/16876516.html