Linux索引節點(inode)用滿導致的一次故障

tolywang發表於2007-12-01
一、發現問題:
  在一臺配置較低的Linux伺服器(記憶體、硬碟比較小)的/data分割槽內建立檔案時,系統提示磁碟空間不足,用df -h命令檢視了一下磁碟使用情況,發現/data分割槽只使用了66%,還有12G的剩餘空間,按理說不會出現這種問題。



  二、分析問題:
  後來用df -i檢視了一下/data分割槽的索引節點(inode),發現已經用滿(IUsed=100%),導致系統無法建立新目錄和檔案。
  
點選在新視窗中瀏覽此圖片

   inode譯成中文就是索引節點,每個儲存裝置(例如硬碟)或儲存裝置的分割槽被格式化為檔案系統後,應該有兩部份,一部份是inode,另一部份是 Block,Block是用來儲存資料用的。而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小、屬主、歸屬的使用者組、讀寫許可權等。 inode為每個檔案進行資訊索引,所以就有了inode的數值。作業系統根據指令,能通過inode值最快的找到相對應的檔案。

  而這臺伺服器的Block雖然還有剩餘,但inode已經用滿,因此在建立新目錄或檔案時,系統提示磁碟空間不足

三、查詢原因:
  /data/cache目錄中存在數量非常多的小位元組快取檔案,佔用的Block不多,但是佔用了大量的inode。

  四、解決方案:
  1、刪除/data/cache目錄中的部分檔案,釋放出/data分割槽的一部分inode。

  2、用軟
連線將空閒分割槽/opt中的newcache目錄連線到/data/cache,使用/opt分割槽的inode來緩解/data分割槽inode不足的問題:
  ln -s /opt/newcache /data/cache

  3、更換伺服器,用高配置的伺服器替換低配置的伺服器。很多時候用錢去解決問題比用技術更有效,堆在我辦公桌上5臺
全新的 DELL PowerEdge 1950 伺服器即將運往IDC機房。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-85070/,如需轉載,請註明出處,否則將追究法律責任。

相關文章