Linux之inode
在说inode之前,先理解一下文件存储文件存储是储存在硬盘上的,硬盘上最小的存储单位是扇区,多个扇区组成“块”。“块”是文件存储的最小单位。在操作系统中读取文件是按快进行的;“块”最常见的大小是4KB,即连续8个扇区组成一个“块”。文件存储在“块”中,如果想找一个文件,就需要先找到这个文件的“元信息”(文件创建者,所有者,创建时间等)。而存储元信息的区域就是inode,中文名为“索引节点”。...
inode 是一个重要概念
是理解Unix/Linux文件系统和硬盘储存的基础。
在说inode之前,先理解一下文件存储:
文件存储是储存在硬盘上的,硬盘上最小的存储单位是扇区,多个扇区组成“块”。“块”是文件存储的最小单位。在操作系统中读取文件是按快进行的;“块”最常见的大小是4KB,即连续8 个扇区组成一个“块”。
文件存储在“块”中,如果想找一个文件,就需要先找到这个文件的“元信息”(文件创建者,所有者,创建时间等)。而存储元信息的区域就是inode,中文名为“索引节点”。
inode包含的内容
可以用 stat 文件名或目录名 来查看inode信息
inode包含如下信息:
File:文件名
Size:文件大小
Block:占用磁盘块数
Io Block:IO块大小
regular file:显示文件类型,这里为普通文件
Device:所在设备
Inode:inode号
Link:被链接次数
Access:访问权限
Uid:文件所有者及uid号
Gid:文件所在组及gid号
Access:文件最近一次访问时间
Modify:文件修改时间
Chang:文件改变时间
inode大小
inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。
一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或256字节。
inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。
假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
查看每个硬盘分区的inode总数和已经使用的数量,可以使用df -i命令。
使用inode识别文件
操作系统查找文件时,实际上有如下操作:
1.系统找到这个文件对应的 inode 号。
2.通过 inode 号,获取 inode 信息。
3.根据 inode 信息,找到文件数据所在的“块”,读出数据。
获取文件的 inode 号: ls -i
实际问题
在一台Linux服务器上自己创建的的/like分区 创建文件时,系统提示磁盘空间不足,但是 df -h 查看磁盘使用情况,显示磁盘空间还剩余10G。
出现这种情况的原因是:创建文件时,会给其分配inode号,一旦inode号使用完了,无论磁盘是否有剩余,都无法再创建文件。
解决方法:
删除/like分区的一部分文件,从而释放一部分/like分区的 inode 号
更多推荐
所有评论(0)