Linux

在執行時重新創建文件系統(需要更多 inode)

  • August 6, 2013

我在數據中心有一台帶有 3HDD 並執行 Debian Wheezy 的機器,其中一個我在 /data 上安裝了一個 ext4 文件系統,該文件系統已用完 inode(我在安裝時選擇了不合適的 inode 大小/有比預期的)。

將分區內容複製到另一個分區內容沒有問題,但我想知道在“生產環境”中我應該採取哪些預防措施來執行此過程(順便說一句沒什麼嚴重的)。

我需要避免重新啟動機器並使新的文件系統 -recreated- 在啟動時可掛載

謝謝!-羅德里戈

如果您無法添加/替換磁碟(在這種情況下,如果您使用 LVM,您可以增加您的 ext4 並因此增加其上的 inode 數量),您最好的路徑是:

  1. 將數據備份到具有足夠可用空間的其他分區(使用 tar(1),或者如果您需要最小化訪問數據的停機時間:rsync(1))
  2. 僅當您需要最小化停機時間時才執行此步驟:再次 rsync,然後關閉對該分區的訪問,再次執行 rsync(現在將很快,因為它只傳輸更改),並將您的數據目錄指向/符號連結到新的分區目錄,並且然後重新啟用對新(臨時)分區目錄的訪問。
  3. 用更多的 inode 重新格式化現在未使用的分區
  4. 恢復數據(如果您需要最大限度地減少停機時間,請使用 (2) 中的相同技巧)
  5. 刪除臨時 .tar.gz/rsync 目錄(或將其保留為免費備份)

在生產中,您將使用 LVM,因此您可以調整文件系統的大小(ext4 也會在調整大小時增加 inode)。而且你總是會在太多的 inode(或一般的空間)上犯錯,而不是太少。和/或使用具有動態 inode 而不是 ext4 的XFS 。

引用自:https://serverfault.com/questions/526714