CentOS / RHEL Ext4 LVM 割り当ての再バランス

CentOS / RHEL Ext4 LVM 割り当ての再バランス

私たちの会社の標準は CentOS (LVM を好むようです) ですが、私は主に非 LVM のバックグラウンドを持っているので、この問題については新しい分野に踏み込んでいます。

古いマシンをログ サーバーとして引き継いだので、CentOS を再インストールする必要がありました。マザーボード上の EHCI の問題 (通常のインストール DVD 経由または LiveCD GUI インストール経由) のため、CentOS 6.3 をインストールできる唯一の方法は、LiveCD テキスト インストールでした。LiveCD テキスト インストールでは、ディスク上に独自のパーティション設定を行うことができず、LVM のみがインストールされ、ログ サーバーのスペース割り当てが不適切でした...

[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m

[mpenning@someHost ~]$ df -m
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
                         50397      2167     47719   5% /
tmpfs                     1850         0      1850   0% /dev/shm
/dev/md127p1               485        65       395  15% /boot
/dev/mapper/vg_livecd-lv_home
                        227001       188    215283   1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
  --- Volume group ---
  VG Name               vg_livecd
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               278.96 GiB
  PE Size               4.00 MiB
  Total PE              71415
  Alloc PE / Size       71415 / 278.96 GiB
  Free  PE / Size       0 / 0
  VG UUID               8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU

[mpenning@someHost ~]$

2つの質問:

  1. /1M ブロックを 257398 個に増やし、1M ブロックを 20000 個に減らす必要がある場合/home、再起動せずにこれを行うことはできますか。また、できる場合、これを行うための具体的なコマンド シーケンスは何ですか。
  2. 専用パーティションを追加したい場合/var、完全な再インストールを行わずにどうすればいいでしょうか?

答え1

/ を 257398 個の 1M ブロックに増やし、/home を 20000 個の 1M ブロックに減らす必要がある場合、再起動せずにこれを行うことはできますか。また、できる場合、これを行うための具体的なコマンド シーケンスは何ですか。

使用可能なスペースは約 280 GB あり、そのうち 50 GB が '/' に割り当てられ、230 GB が に割り当てられています/home。これが使用可能なスペースのすべてであるため、最初に何かを解放する必要があります。いくつかのオプションを以下に示します。

にデータを何も配置していない場合は/home、既存のファイルシステムを破棄して適切なサイズで再作成するのが最も簡単です。

  • アンマウント/home:

    # umount /home
    
  • 論理ボリューム (LV) のサイズを 20 GB に減らします。

    # lvreduce -L 20G /dev/vg_livecd/lv_home
    
  • ファイルシステムを再作成します/home

    # mke2fs -j -m0 /dev/vg_livecd/lv_home
    
  • そして再び乗車します/home:

    # mount /home
    

可能です縮む /homeを破棄するのではなく、次のようにします。ただし、これは少し難しい場合があります。

  • アンマウント/home:

    # umount /home
    
  • fsckファイルシステム。これはおそらく次のステップで必要になります。

    # fsck /dev/vg_livecd/lv_home
    
  • ファイルシステムのサイズを変更します。

    # resize2fs /dev/vg_livecd/lv_home 19G
    
  • LVを下げる:

    # lvreduce -L 20G /dev/vg_livecd/lv_home
    

ファイルシステムを LV よりも少し減らしたことに気付くでしょう。これは、同じ方法でカウントされているかどうかを覚えておくことができないため、少し余裕を持たせるようにしたためです。

どちらの場合でも、この時点でボリューム グループには約 210 GB の空き領域があります。これで、ルート ファイル システムのサイズを増やすことができます。

  • ルート LV のサイズを増やします。

    # lvresize -L260G /dev/vg_livecd/lv_root
    
  • ファイルシステムのサイズを増やします。

    # resize2fs /dev/vg_livecd/lv_root
    

この回答では丸めを使用しているため、260G よりわずかに小さい数値を使用する必要があることに注意してください。また、LVM ユーティリティの最新バージョンには、ファイルシステムのサイズを変更する機能が含まれていますが、私はそれらのオプションが利用可能になる前からこれを行ってきたので、その動作を正確に知っているとは言えません。

専用の /var パーティションを追加したい場合、完全な再インストールを行わずにどうすればいいでしょうか?

まず、おそらくこれをシングルユーザー モードで実行する必要があります。そうしないと、実行中のプロセスでファイルが開かれ、/var置き換えが困難になる可能性があります。そうは言っても...

もう一度、空き容量が必要になります。前の手順で空き容量をすべて使い切るのではなく、数 GB の空き容量を残しておけば、次の操作を実行できます。

  • 新しい論理ボリュームを作成します。

    # lvcreate -n lv_var -L 10G /dev/vg0
    
  • 新しいファイルシステムを作成します。

    # mke2fs -j -m0 /dev/vg_livecd/lv_var
    
  • 次の行を追加して、/etc/fstab新しい LV をマウントするように編集します。/var

    /dev/vg_livcde/lv_var /var ext4 defaults 1 2
    

    ただし、まだマウントしないでください。

  • 新しいファイルシステムを便利な場所にマウントします。

    # mount /dev/vg_livecd/lv_var /mnt
    
  • 次の内容をコピーします/var:

    # rsync -a /var/ /mnt/
    
  • /var名前を変更し/var.oldて新しいディレクトリを作成します:

    # mv /var /var.old
    # mkdir /var
    
  • 新しい LV を次の場所にマウントします/var:

    # /mnt をアンマウント # /var をマウント

  • 起動を続けます。すべてが正しく動作していることを確認したら、 を削除できます/var.old

答え2

考慮する点:

  • 醜いVGの名前
  • ユースケースに対する不適切なスペース割り当てと、larsks によって詳細に説明されている手順の負担
  • 再インストールが必要な場合、これをすべてやり直さなければならないという事実

私の知る限りでは、ネットインストール/キックスタートを試して、必要な構成を 1 回で再現可能な方法で取得します。

私の2cts

関連情報