EatSmartシステム部ブログ

ウェブサイトの開発や運営に関する情報です。

CentOSのパーティション拡張

普段自分が使っていない社内用のサーバーに、とあるシステムをセットアップしようと思いログインしていろいろ見ていた所、HDDが500Gのうち450Gが/homeに割り当てられて、ほとんど使われていないという事が判明しました。

幸いにもLVMで構築されているので、今後色々と使う事も考え、パーティションのレイアウトを変更することにしました。

/homeの切り離し

まずは/homeを縮小するので、/homeをumountするために、OSをdisk起動する必要があります。

起動diskは、以前本番サーバーの障害時に使って便利だったSystemRescueCDを使います。SystemRescueCDは色々と必要なプログラムがはじめから入っているので、とても便利です。

CD-ROMに焼いたSystemRescueCDで起動をします。

LVMパーティションの縮小

縮小の手順としては、ファイルシステムのチェック、ファイルシステムのサイズ変更、LVMパーティションの縮小となります。

/dev/mapper/vg_chromium-lv_homeというパーティションを96Gにする場合、以下のようになります。

root@sysresccd /root % e2fsck -f /dev/mapper/vg_chromium-lv_home

root@sysresccd /root % resize2fs /dev/mapper/vg_chromium-lv_home 96G

root@sysresccd /root % lvreduce -L 96G /dev/mapper/vg_chromium-lv_home

LVMの拡張はmountされた状態でも可能なので、この時点で再度OSを通常起動しました。

縮小した結果、パーティション構成は以下のようになりました。

# fdisk -l

ディスク /dev/sda: 500.1 GB, 500107862016 バイト

ディスク /dev/mapper/vg_chromium-lv_root: 53.7 GB, 53687091200 バイト

ディスク /dev/mapper/vg_chromium-lv_swap: 4127 MB, 4127195136 バイト

ディスク /dev/mapper/vg_chromium-lv_home: 103.1 GB, 103079215104 バイト

LVMパーティションの拡張

次に、/dev/mapper/vg_chromium-lv_rootを拡張します。今後拡張する余地も残し、まずは192Gに設定して200G程度は残しておこうと思います。

LVMパーティションの拡張、ファイルシステムのサイズ変更の手順で行います。

# lvextend -L 192G /dev/mapper/vg_chromium-lv_root
Extending logical volume lv_root to 192.00 GiB
Logical volume lv_root successfully resized

# resize2fs /dev/mapper/vg_chromium-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/vg_chromium-lv_root is mounted on /; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 12
Performing an on-line resize of /dev/mapper/vg_chromium-lv_root to 50331648 (4k) blocks.
The filesystem on /dev/mapper/vg_chromium-lv_root is now 50331648 blocks long.

最終的に、LVMのパーティション構成は以下のようになりました。

# lvdisplay
--- Logical volume ---
LV Path /dev/vg_chromium/lv_root
LV Name lv_root
VG Name vg_chromium

LV Size 192.00 GiB

--- Logical volume ---

LV Path /dev/vg_chromium/lv_home
LV Name lv_home
VG Name vg_chromium

LV Size 96.00 GiB

--- Logical volume ---

LV Path /dev/vg_chromium/lv_swap
LV Name lv_swap
VG Name vg_chromium

LV Size 3.84 GiB

ディスク容量としては

# df -Th
Filesystem Type Size Used Avail Use% マウント位置
/dev/mapper/vg_chromium-lv_root
ext4 189G 36G 144G 20% /
tmpfs tmpfs 1.9G 666M 1.3G 35% /dev/shm
/dev/sda1 ext4 485M 53M 407M 12% /boot
/dev/mapper/vg_chromium-lv_home
ext4 95G 11G 80G 12% /home

となりました。

案外簡単にパーティションのサイズを変える事ができました。