Filesystems

如何將根文件系統 (ext4) 替換為 LVM 中具有更多 inode 的新文件系統?

  • May 15, 2014

我有一些系統已經在 SLES 10 上的集群中執行了十多年(現在已經過了 EOL)。我們正在遷移到 CentOS 6 64 位。我完成了所有工作,但最終數據同步,你瞧,令人驚訝的是,我的磁碟空間用完了……除了它在 inode 表中,而不是原始容量。ReiserFS(在 SLES 盒子上使用)沒有強制執行限制 - 事實上,我什至不知道有多少 inode 正在使用,因為它不僅不強制執行,甚至不跟踪/報告它們。我可以用單線得到那個號碼,沒問題。

我的問題可能主要圍繞 LVM。那是我的弱點。我對使用它非常陌生,自 1993 年以來主要使用原始設備。

我擁有的是一台帶有邏輯卷組的新機器,其中包含一個交換分區和作為兩個卷的根文件系統。這是一個驚人的 100GB,但它需要有超過 650 萬個 inode ……我用完了大約 640 萬個。

我完全理解我需要製作一個全新的 ext4 文件系統,因為你根本無法增加 inode 數量。

我在 VMWare 下工作,這有幫助。我可以根據需要簡單地添加/刪除虛擬驅動器。

我想基本上將根文件系統替換為對我們的使用具有更好的 inode 比率的文件系統。我不確定的是如何處理其中的 LVM 部分,以及實際的“在不恢復文件系統的情況下恢復數據”

$$ i.e., the part which holds the inode table, etc. $$本身。我基本上需要將數據保存到備用虛擬驅動器,根據需要重新格式化根分區,然後恢復驅動器。在知識方面,LVM 妨礙了我。我已經在某種程度上熟悉了 lvcreate、lvchange 等,但我可以逐個描述哪些工具可以正確使用來處理整個文件系統(它是一個文件系統,所有文件系統都駐留在 /,因此它包括 /dev 等)就備份和恢復而言,尤其是 LVM 換出。 如果它有助於編寫命令等,假設 vg_webserver4c6 作為邏輯卷組,lv_root 和 lv_swap 作為邏輯卷名。lv_root 是問題孩子。

非常感謝任何幫助 - 越詳細越好!

謝謝!

  1. 使用 tar 或 rsync 備份整個文件系統。無需包含 /dev/、/proc 或 /sys:它們是在引導時創建的。
  2. 不需要使用任何 lv 命令,因為你不需要調整 lv_root 的大小,你只需要重新創建具有 1000 萬個 inode 的文件系統:

mkfs.ext4 -N 10000000 / 3. 使用 tar 或 rsync 恢復文件 4. 修復你的引導載入程序(重新執行 grub-install)

就是這樣。

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