磁盤 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 數量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM