最近在架设spnfs过程中发现。在client上创立文件,文件名以及目录关系都能够在MDS上体现进去。文件内容则存储在DS上。但DS上的文件名却都是由数字组成的。命名形式为:inode.xxxx. 对于inode,Sam刚开始认为是kernel的node概念。起初查了一下,发现如同有误差。于是学习之。
在Linux下,应用mkfs.ext3 时,有不少选项和inode无关。如:
[-i bytes-per-inode]
[-I inode-size]
[-N number-of-inodes]
那inode是做什么用的呢?inode记录档案(文件或目录)的属性、及该档案搁置在哪一个Block之内的信息。
每个档案都会占用到至多一个 inode。而当咱们Linux零碎要找到这个档案时,他会先去搜查inode table找到这个档案的属性及数据搁置的地区,而后再到数据库去找到数据寄存的Block进而将数据取出。
一个 partition格式化为一个filesystem之后,他肯定会有inode table与data area两个区块,一个用来记录档案的信息与该档案搁置的block区块,一个用来记录档案的内容。
Linux 在读取数据的时候,是先查问 inode table 以失去数据是放在那个 Block 外面,而后再去该 Block 外面读取真正的数据内容。block 是咱们在格式化硬盘的时候规定进去的一个值,这个 block 是由 2 的 n 次方个sector(扇区,大小为512byte) 所集结而成的,假如 block 布局为 4KBytes,则因为一个 inode 与一个block 最多均只纪录一个档案,所以如果一个档案有 0.1 K bytes 。然而,因为你的 block为 4K bytes 。你就会有 3.9 Kbytes 的空间“节约掉”!所以,当你在格式化硬盘的时候,请千万留神到您的零碎的应用范畴。
1、 当 block 越小 ( 最小为 0.5K ) 、inodes 越多,可利用空间越多,然而大档案写入效率较差:适宜档案数量多然而
档案容量小的零碎,例如 BBS 或者新闻群组 news 这方面的服务之零碎;
2、 当 block 越大 ( 最大可到 16 * 0.5K 以上 ) 、 inodes 数越少,大档案写入效率较佳,但节约的空间较多:适宜档案容量大的零碎。
inode table是data area的索引表。
参考链接:
2 Ways to check inode in Linux