Fork me on GitHub

磁盘 inodes 不足 Free inodes is less than 20% on volume

一、问题

最近在遇到这个报错:

Free inodes is less than 20% on volume /

二、问题原因

其实是服务器上的文件数过多。

三、解决办法

查找每个目录下面的文件数 for i in /*; do echo $i; find $i |wc-l ;done
然后看看哪个目录下面的文件比较多,然后删除一些没有作用的文件。

查看磁盘总的 inodes 数。

使用命令:df -i

四、扩展

什么是 inodes

是一个数据结构在unix 系统里面,类似一个文件系统对象,像一个文件或者是一个目录。

每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有inode和Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

inodes 里面存储了什么?

每个索引节点都存储对象数据的属性和对应的磁盘块位置。对象数据的属性包含元数据(上次更改的时间、访问、修改的时间)和所有者等。

inodes 的大小取决于什么,一个磁盘的 inodes 是多大?

每个文件都有一个 inode,一个inodes至少需要占用1kb,当一个磁盘为100G 时,可以设置的最大 indoes 数是:104,857,600‬。 可以在 初始化磁盘的时候进行指定。

如何查看df -i

centos6 查看inodes信息 dumpe2fs

(软连接和硬链接)

1、symbolic links(软链接)

[root@20191021XB7ILNP test]# ls -i  djx 
131089 djx
[root@20191021XB7ILNP test]# ln -s  /opt/test/djx     symbolic_djx 
[root@20191021XB7ILNP test]# ls -i  symbolic_djx 
131087 symbolic_djx

软链接就是一个普通文件,只是数据块内容有点特殊(指向源文件)。软链接有着自己的 inode 号以及用户数据块。

2、hard link(硬链接)

[root@20191021XB7ILNP test]# ls -i  djx 
131089 djx
[root@20191021XB7ILNP test]# ln   /opt/test/djx     hard_djx
[root@20191021XB7ILNP test]# ls -i  hard_djx  
131089 hard_djx

创建好一个文件里面对应硬链接文件。使用 hard link 链接文件时,磁盘空间的 inode 数目不会改变! hard link 是在某个目录下的 block 多写入一个关连数据而已,既不会增加 inode 也不会耗用 block 数量。

posted @ 2020-02-01 18:21  自由早晚乱余生  阅读(3356)  评论(0编辑  收藏  举报