web-dev-qa-db-ja.com

CentOS / RHEL Ext4LVM割り当てのバランスを取り直す

私たちの企業標準はCentOS(LVMを好むようです)であり、私は主に非LVMのバックグラウンドから来ているので、この問題で新しい境地を開拓しています。

古いマシンをログサーバーとして継承し、CentOSを再インストールする必要がありました。マザーボード上のEHCIに問題があるため(通常のインストールDVDまたはLiveCD GUIインストールのいずれかを介して)、CentOS6.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. /を2573981-Mブロックに増やし、/homeを200001-Mブロックに減らす必要がある場合、再起動せずにこれを実行できますか?その場合、これを実行するための特定のコマンドシーケンスは何ですか? ?
  2. 専用の/varパーティションを追加したい場合、完全に再インストールせずにどのように追加すればよいですか?
3
Mike Pennington

/を2573981-Mブロックに増やし、/ homeを200001-Mブロックに減らす必要がある場合、再起動せずにこれを実行できますか?その場合、これを実行するための特定のコマンドシーケンスは何ですか?

約280GBの空き容量があり、そのうち50GBが「/」に割り当てられ、230GBが/homeに割り当てられています。これは使用可能なすべてのスペースを表すため、最初に何かを解放する必要があります。ここにいくつかのオプションがあります:

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

  • アンマウント/home

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

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

    # mke2fs -j -m0 /dev/vg_livecd/lv_home
    
  • そして、/homeを再マウントします:

    # mount /home
    

破棄するのではなく、shrink/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よりも少し減らしたことに気付くでしょう。これは、同じように数えているかどうか思い出せないので、少し小刻みに動く部屋を残そうとしているからです。

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

  • ルート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にマウントします。

    #umount/mnt#mount/var

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

5
larsks

検討中:

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

AFAIC、私はネットインストール/キックスタートを試みて、必要な構成を一度に再現可能な方法で取得しようと思います。

私の2カラット

1
Silopolis