美文网首页
inode:文件系统block的索引

inode:文件系统block的索引

作者: robot_test_boy | 来源:发表于2021-10-17 08:35 被阅读0次

摘取自骏马金龙的第4章ext文件系统机制原理剖析

文件系统的block大小一般是1KB、2KB或4KB。

如果存储的1个文件占用了大量的block读取时会如何?假如block大小为1KB,仅仅存储一个10M的文件就需要10240个block,而且这些blocks很可能在位置上是不连续在一起的(不相邻),读取该文件时难道要从前向后扫描整个文件系统的块,然后找出属于该文件的块吗?显然是不应该这么做的,因为太慢太傻瓜式了。再考虑一下,读取一个只占用1个block的文件,难道只读取一个block就结束了吗?并不是,仍然是扫描整个文件系统的所有block,因为它不知道什么时候扫描到,扫描到了它也不知道这个文件是不是已经完整而不需要再扫描其他的block。

另外,每个文件都有属性(如权限、大小、时间戳等),这些属性的元数据存储在哪里呢?难道也和文件的数据部分存储在块中吗?如果一个文件占用多个block那是不是每个属于该文件的block都要存储一份文件元数据?但是如果不在每个block中存储元数据文件系统又怎么知道某一个block是不是属于该文件呢?但是显然,每个数据block中都存储一份元数据太浪费空间。

文件系统设计者当然知道这样的存储方式很不理想,所以需要优化存储方式。如何优化?对于这种类似的问题的解决方法是使用索引,通过扫描索引找到对应的数据,而且索引可以存储部分数据。

在文件系统上索引技术具体化为索引节点(index node),在索引节点上存储的部分数据即为文件的属性元数据及其他少量信息。一般来说索引占用的空间相比其索引的文件数据而言占用的空间就小得多,扫描它比扫描整个数据要快得多,否则索引就没有存在的意义。这样一来就解决了前面所有的问题。

inode中存储了什么信息呢?inode中存储了inode号(注:inode中并未存储inode num,但为了方便理解,这里暂时认为它存储了inode号)、文件类型、权限、文件所有者、大小、时间戳元数据信息,最重要的是存储了指向属于该文件block的指针,读取inode就可以找到属于该文件的block,进而读取这些block并获得该文件的数据。我们暂且将这个inode记录中指向文件data block的指针称之为block指针。先留个疑问:如何查看ext2/ext3/ext4各个文件系统中inode包含的信息?

一般inode大小为128字节或256字节,相比那些MB或GB计算的文件数据而言小得多的多,但也要知道可能一个文件大小小于inode大小,例如只占用1个字节的文件。

相关文章

  • inode:文件系统block的索引

    摘取自骏马金龙的第4章ext文件系统机制原理剖析[https://www.cnblogs.com/f-ck-nee...

  • centos7-文件系统基本结构

    文件系统基本结构 超级块(super block)记录整个文件系统的信息,包括 block 与 inode 的总量...

  • linux-09-文件系统管理

    1.文件系统的特性 super block(超级块):记录整个文件系统的信息,包括 block 与 inode 的...

  • Linux下磁盘的挂载与卸载

    Linux下每个文件系统都有独立的inode,block,super block等信息,这个文件系统要挂载到目录树...

  • 知识点小结

    一、文件名通配符 二、inode索引节点号 inode (index node )表中包含文件系统所有文件列表一个...

  • linux系列11-文件系统Ext

    EXT2/EXT3/4文件系统索引式文件系统 结构 superblock:记录此文件系统的整体信息,包括inode...

  • 文件类型以及查找命令

    inode和block特点 inode默认内存是256个字节在文件系统中是唯一的。 一个文件至少要占用一个inod...

  • linux学习笔记三

    文件组成 linux文件系统的运行和操作系统的文件组成有关,文件系统会将文件权限,属性放在inode(索引节点)中...

  • linux笔记--软链接与硬链接

    inode与block block由sector(扇区)组成,是最小的文件存取单位,用来存放数据。 inode(索...

  • day 16 操作系统文件属性/正则符号

    find的使用 文件属性--文件索引概念 inode block 文件属性--硬链接数 硬链接 软连接 系统正则符...

网友评论

      本文标题:inode:文件系统block的索引

      本文链接:https://www.haomeiwen.com/subject/pyfvoltx.html