文件系统中的块大小和索引节点大小

时间:2018-08-19 18:29:17

标签: filesystems

我正在阅读“ Dominic Giampaolo”撰写的“ Practical Filesystem design”一书。

两个重要的概念是

  1. 块:文件系统的最小可读或可写内存单元。

  2. Inode:Inode是一个区域,用于存储有关文件的数据,并存储有关构成文件的块的存储位置的数据。

作者陈述了通过将一些块地址直接存储在i-node中而引入的简单性。然后,他提到“ i节点的大小”与i节点映射的数据量之间所要权衡的问题。

因此,他提到i节点的大小最好是块大小的偶数除数。

如何推理以上陈述?有任何计算支持这一点吗?

1 个答案:

答案 0 :(得分:0)

由于所有读/写操作都在块级进行,因此将您的inode对齐并占据整个块可确保您的读/写不会浪费。 如果一个块是4096字节,但一个inode只是4000字节,则可以: 1.我们的inode是按块对齐的:效率不高,因为我们总是浪费每个块96个字节。 2.我们的inode并不是块对齐的:效率不高,因为当我们想读取一个inode时,我们经常需要读取两个块-并且它们中的任何一个都不会100%被inode数据占用。

在以下情况下,我们保持高效: 1. inode的大小等于块的大小(1:1比率) 2.索引节点的大小是块大小的精确倍数(比率为1:n) 3.块的大小是索引节点大小的精确倍数(比率为n:1)