09-27 什么是inode

inode(

即index node,索引节点)是类Unix OS中保存文件系统中的对象元数据的数据结构

所谓“文件系统中的对象”,是个非常广义的概念,毕竟Linux中几乎一切都是文件,包括普通文件、目录、设备、管道、Socket等等。inode就用来保存这些东西的元数据,不包括具体的数据,也不包含文件名。具体来讲,inode中主要存储以下这些元数据:

• inode编号
• 文件大小
• 占用的块数目与块大小
• 文件类型(普通文件、目录、管道,etc.)
• 存储该文件的设备号
• 链接数目
• 读、写、执行权限
• 拥有者的用户ID和组ID
• 文件的最近访问、数据最近修改时间
• inode最近修改时间

其中,inode编号相当于这个结构中的“主键”,也就是说操作系统用inode编号唯一标识一个文件。利用stat命令可以查看元数据信息,如下图所示。通过ls -i也可以仅查看一个或一批文件的inode编号。

inode存储的元数据也是要占用文件系统空间的,每个inode的大小一般是128B或者256B,这可以通过查询superblock信息的dumpe2fs命令查到。

inode size一项即是,图中为256B
Linux在格式化硬盘分区(即初始化文件系统)时,就会将inode的区域(称为inode table)与文件数据的区域分开,一般每1KB或2KB数据分配一个inode编号。也就是说,每个分区的inode总数从格式化之后就固定了,因此有可能会出现存储空间没有占满,但因为小文件太多而耗尽了inode的情况

利用df -i命令可以查看inode数量方面的信息,如下图所示。

猜你喜欢

转载自blog.csdn.net/weixin_46400833/article/details/108841473