首页 > 其他分享 >ext4 几个问题

ext4 几个问题

时间:2022-11-10 11:34:27浏览次数:40  
标签:文件 ext4 10 几个 问题 间接 inode block 指针

 

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

相关文章