innode表:优化磁盘空间

innode表:优化磁盘空间,第1张

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

文件系统中block可能连续可能不连续,怎么找到这些block块呢?扫描一次block有可能比较久,扫描一次是否存储起来?文件系统索引innode横空出世了。除此之外还存储了文件的类型、权限、文件所有者、大小、时间戳等元数据信息。每一个inode占用128字节或256字节。

现在又出现问题了, 一个文件系统中可以说有无数多个文件 , 每一个文件都对应一个inode , 难道每一个仅128字节的inode都要单独占用一个block进行存储吗 ?这太浪费空间了。

所以更优的方法是将多个inode合并存储在block中,对于128字节的inode,一个block存储8个inode,对于256字节的inode,一个block存储4个inode。这就使得每个存储inode的块都不浪费。

在ext文件系统上,将这些物理上存储inode的block组合起来,在逻辑上形成一张inode表(inode table)来记录所有的inode。

举个例子,每一个家庭都要向派出所登记户口信息,通过户口本可以知道家庭住址,而每个镇或街道的派出所将本镇或本街道的所有户口整合在一起,要查找某一户地址时,在派出所就能快速查找到。inode table就是这里的派出所。它的内容如下图所示。

再细细一思考,就能发现一个大的文件系统仍将占用大量的块来存储inode,想要找到其中的一个inode记录也需要不小的开销,尽管它们已经形成了一张逻辑上的表,但扛不住表太大记录太多。那么如何快速找到inode,这同样是需要优化的,优化的方法是将文件系统的block进行分组划分,每个组中都存有本组inode table范围、bmap等。

题主是否想询问“innode和文件是一一对应吗”?是。inode译成中文是索引节点,是用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。文件名是inode号的别称,文件和inode为了便于用户识别文件,是一一对应的关系。各个分区的innode有限,一个文件需要对应一个innode,为了防止产生大量的小文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12051907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存