
私たちの会社の標準は 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つの質問:
/
1M ブロックを 257398 個に増やし、1M ブロックを 20000 個に減らす必要がある場合/home
、再起動せずにこれを行うことはできますか。また、できる場合、これを行うための具体的なコマンド シーケンスは何ですか。- 専用パーティションを追加したい場合
/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