我有一些系統已經在 SLES 10 上的叢集中運行了十多年(現在已經 EOL 很久了)。我們正在遷移到 CentOS 6 64 位元。我完成了所有工作,但最後的資料同步,你瞧,令人驚訝的是,我用完了磁碟空間......除了它在索引節點表中,而不是原始容量。 ReiserFS(在 SLES 盒子上使用)沒有強制執行限制 - 事實上,我什至不知道有多少 inode 正在使用,因為它不僅不強制執行,甚至不追蹤/報告它們。我可以用一句話得到這個號碼,沒問題。
我的問題可能主要圍繞在 LVM。這是我的弱點。我只是對它的使用還很陌生,自 1993 年以來主要使用原始設備。
我擁有的是一台帶有邏輯卷組的新機器,其中包含交換分區和根文件系統作為兩個卷。這是一個巨大的 100GB,但它需要遠遠超過 650 萬個 inode...我用完了大約 640 萬個。
我完全理解我需要製作一個全新的 ext4 檔案系統,因為你根本無法增加 inode 計數。
我在 VMWare 下工作,這很有幫助。我可以根據需要簡單地新增/刪除虛擬磁碟機。
我想基本上將根檔案系統替換為具有更好索引節點比率以供我們使用的系統。我不確定的是如何處理其中的 LVM 部分,以及實際的“在不恢復文件系統 [即保存 inode 表等的部分] 本身的情況下恢復數據”。需要重新格式化根分割區,然後復原磁碟機,LVM 在某種程度上已經熟悉了lvcreate、lvchange 等,但是。在/ 上,因此它包括/dev 等),就備份和還原而言,尤其是LVM 換出。
如果有助於編寫命令等,請假設 vg_webserver4c6 作為邏輯磁碟區群組,並假設 lv_root 和 lv_swap 作為邏輯磁碟區名稱。 lv_root 是有問題的孩子。
非常感謝任何幫助 - 越詳細越好!
謝謝!
答案1
使用 tar 或 rsync 來備份整個檔案系統。無需包含 /dev/、/proc 或 /sys:這些是在引導時建立的。
不需要使用任何 lv 指令,因為你不需要調整 lv_root 的大小,你只需要重新建立具有 1000 萬個 inode 的檔案系統:
mkfs.ext4 -N 10000000 /
使用 tar 或 rsync 恢復文件
修復引導程式(重新運行 grub-install)
就是這樣。