ルートファイルシステム (ext4) を、LVM 内のより多くの inode を持つ新しいものに置き換えるにはどうすればよいでしょうか?

ルートファイルシステム (ext4) を、LVM 内のより多くの inode を持つ新しいものに置き換えるにはどうすればよいでしょうか?

SLES 10 (すでに EOL を過ぎています) のクラスターで 10 年以上稼働しているシステムがいくつかあります。CentOS 6 64 ビットに移行しています。最終データ同期以外はすべて完了しましたが、なんとディスク容量が不足していました... ただし、これは inode テーブル内の値であり、生の容量ではありません。ReiserFS (SLES ボックスで使用) は制限を強制しませんでした。実際、強制しないだけでなく、追跡/報告もしないために、使用されている inode の数さえわかりません。その数はワンライナーで問題なく取得できます。

私の問題は、おそらく LVM に大きく関係しています。そこが私の弱点です。私は LVM の使用にかなり慣れていないだけで、1993 年以来、主に RAW デバイスを使ってきました。

私が持っているのは、論理ボリューム グループを持つ新しいマシンで、スワップ パーティションとルート ファイル システムを 2 つのボリュームとして含んでいます。これは 100 GB という途方もない容量ですが、650 万個を超える i ノードが必要です... 640 万個ほど使い果たしました。

inode の数をまったく増やすことはできないため、完全に新しい ext4 ファイルシステムを作成する必要があることは十分に理解しています。

私は VMWare で作業しているので、便利です。必要に応じて仮想ドライブを簡単に追加/削除できます。

基本的に、ルート ファイルシステムを、用途に適した inode 比率のものに置き換えたいと考えています。不明なのは、これの LVM 部分と、実際の「ファイルシステム (つまり、inode テーブルなどを保持する部分) 自体を復元せずにデータを復元する」ことです。基本的に、データを予備の仮想ドライブに取得し、必要に応じてルート パーティションを再フォーマットしてから、ドライブを復元する必要があります。知識の面で、LVM が邪魔になっています。lvcreate、lvchange などについてはある程度理解していますが、バックアップと復元、特に LVM スワップアウトに関して、ファイルシステム全体 (すべてが / に存在する 1 つのファイルシステムなので、/dev などが含まれます) を適切に処理するためにどのツールを使用するかについて、詳細な説明が必要です。

コマンドなどを書くときに役立つ場合は、論理ボリューム グループとして vg_webserver4c6、論理ボリューム名として lv_root と lv_swap を想定してください。 lv_root が問題児です。

どのようなご助力でも大歓迎です。詳細であればあるほど助かります。

ありがとう!

答え1

  1. tar または rsync を使用してファイルシステム全体をバックアップします。/dev/、/proc、または /sys を含める必要はありません。これらは起動時に作成されます。

  2. lv_root のサイズを変更する必要がないため、lv コマンドを使用する必要はありません。1000 万個の inode を持つファイルシステムを再作成するだけです。

    mkfs.ext4 -N 10000000 /

  3. tarまたはrsyncを使用してファイルを復元します

  4. ブートローダーを修正する(grub-installを再実行)

それでおしまい。

関連情報