LVMを拡張/縮小してswapとrootの容量を変更してみる

GUIをカチカチ何も考えずインストールをしたら、「/」配下が以下の通り2.8Gと悲惨な状況になっておりましたので変更した時のメモです。うっかりこのような状態にならないようにするのが一番です。

LVM容量確認

root@localhost:~# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/localhost--vg-root  2.9G  2.8G     0 100% /
none                        4.0K     0  4.0K   0% /sys/fs/cgroup
udev                         32G  4.0K   32G   1% /dev
tmpfs                       6.3G  828K  6.3G   1% /run
none                        5.0M     0  5.0M   0% /run/lock
none                         32G     0   32G   0% /run/shm
none                        100M     0  100M   0% /run/user
/dev/sda2                   237M  100M  125M  45% /boot
overflow                    1.0M  244K  780K  24% /tmp
/dev/sda1                   511M  3.4M  508M   1% /boot/efi

もう少し状況を確認してみます。swapに60Gを超える容量が割り当てられています・・・。

root@localhost:~# pvdisplay -C
  PV         VG       Fmt  Attr PSize  PFree
  /dev/sda3  localhost-vg lvm2 a--  67.01g 52.00m
root@localhost:~# vgdisplay -C
  VG       #PV #LV #SN Attr   VSize  VFree
  localhost-vg   1   2   0 wz--n- 67.01g 52.00m
root@localhost:~# lvdisplay -C
  LV     VG       Attr      LSize  Pool Origin Data%  Move Log Copy%  Convert
  root   localhost-vg -wi-ao---  2.98g
  swap_1 localhost-vg -wi-ao--- 63.98g

一応、swapの使用量を確認してみます。
はい。使ってません。

root@localhost:~# free -m
             total       used       free     shared    buffers     cached
Mem:         64410       4033      60377          1         92        625
-/+ buffers/cache:       3315      61095
Swap:        65511          0      65511

Swapの容量を縮小する

swapoffを実行した後にlvreduceコマンドで6Gまで減らします。

root@localhost:~# swapoff /dev/mapper/*-swap_1
root@localhost:~# lvreduce -L 6G /dev/mapper/*-swap_1
  WARNING: Reducing active logical volume to 6.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce swap_1? [y/n]: y
  Reducing logical volume swap_1 to 6.00 GiB
  Logical volume swap_1 successfully resized

mkswapとswaponは忘れずに実施しておきます。

root@localhost:~# sudo mkswap /dev/mapper/*-swap_1
mkswap: /dev/mapper/localhost--vg-swap_1: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
スワップ空間バージョン1を設定します、サイズ = 6291452 KiB
ラベルはありません, UUID=664fce65-c98a-411d-ac03-46272376d962
root@localhost:~# swapon /dev/mapper/*-swap_1

再度lvdisplayで確認します。

root@localhost:~# lvdisplay -C
  LV     VG       Attr      LSize Pool Origin Data%  Move Log Copy%  Convert
  root   localhost-vg -wi-ao--- 2.98g
  swap_1 localhost-vg -wi-ao--- 6.00g

Swapの容量を拡張する

逆にswapに割り当てる容量を拡張する場合の手順も記載しておきます。

root@localhost:~# swapoff /dev/mapper/*-swap_1
root@localhost:~# lvextent -L 6.78G /dev/mapper/*-swap_1
sudo: lvextent: command not found
root@localhost:~# lvextend -L 6.78G /dev/mapper/*-swap_1
  Rounding size to boundary between physical extents: 6.78 GiB
  Extending logical volume swap_1 to 6.78 GiB
  Logical volume swap_1 successfully resized
root@localhost:~# mkswap /dev/mapper/*-swap_1
mkswap: /dev/mapper/localhost--vg-swap_1: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
スワップ空間バージョン1を設定します、サイズ = 7110652 KiB
ラベルはありません, UUID=08b93cee-90b5-4453-bda8-18636ecd8707
root@localhost:~# swapon /dev/mapper/*-swap_1
root@localhost:~#
root@localhost:~# lvdisplay -C
  LV     VG       Attr      LSize Pool Origin Data%  Move Log Copy%  Convert
  root   localhost-vg -wi-ao--- 2.98g
  swap_1 localhost-vg -wi-ao--- 6.78g

RootのLVMを拡張する

lvdisplayとvgdisplayの出力を貼付けます。vsdisplayの「Alloc PE / Size」と「Free PE / Size」を確認すると全体での使用量と空きが確認しやすいです。

root@localhost:~# lvdisplay /dev/mapper/localhost--vg-root
  --- Logical volume ---
  LV Path                /dev/localhost-vg/root
  LV Name                root
  VG Name                localhost-vg
  LV UUID                zHuvCp-zYAA-rIgW-MGZS-aIZc-CQUR-YS8Hsm
  LV Write Access        read/write
  LV Creation host, time localhost, 2015-02-11 12:09:30 +0900
  LV Status              available
  # open                 1
  LV Size                2.98 GiB
  Current LE             763
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

root@localhost:~# vgdisplay
  --- Volume group ---
  VG Name               localhost-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               67.01 GiB
  PE Size               4.00 MiB
  Total PE              17154
  Alloc PE / Size       2499 / 9.76 GiB
  Free  PE / Size       14655 / 57.25 GiB
  VG UUID               1eU1wO-Vmgb-YIgM-TGp7-JA6G-3DxH-DJkrQu

先ほどのswapと同様に空き容量分の57.25Gを拡張してみます。

root@localhost:~#  lvextend -L +57.25G /dev/mapper/localhost--vg-root
  Extending logical volume root to 60.23 GiB
  Insufficient free space: 14656 extents needed, but only 14655 available
root@localhost:~# lvextend -L +57.24G /dev/mapper/localhost--vg-root
  Rounding size to boundary between physical extents: 57.24 GiB
  Extending logical volume root to 60.22 GiB
  Logical volume root successfully resized

再度、vgdisplayを見ると分かるのですが、MiB単位で残り容量が存在します。この場合は再度+4Mを実施するのですが、最初から+100%でextendを実施することも可能なためこの手間を省く事ができます。

root@localhost:~# lvdisplay /dev/mapper/localhost--vg-root
  --- Logical volume ---
  LV Path                /dev/localhost-vg/root
  LV Name                root
  VG Name                localhost-vg
  LV UUID                zHuvCp-zYAA-rIgW-MGZS-aIZc-CQUR-YS8Hsm
  LV Write Access        read/write
  LV Creation host, time localhost, 2015-02-11 12:09:30 +0900
  LV Status              available
  # open                 1
  LV Size                60.22 GiB
  Current LE             15417
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

root@localhost:~# vgdisplay
  --- Volume group ---
  VG Name               localhost-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               67.01 GiB
  PE Size               4.00 MiB
  Total PE              17154
  Alloc PE / Size       17153 / 67.00 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               1eU1wO-Vmgb-YIgM-TGp7-JA6G-3DxH-DJkrQu

LVMを拡張した後はresize2fsコマンドでファイルシステムも拡張します。

root@localhost:~# resize2fs /dev/mapper/localhost--vg-root

シェアして頂けると嬉しいです。
参考になったという方がいれば是非お願いしますm(_ _ )m
モチベーション維持の観点で非常に励みになります。

このエントリーをはてなブックマークに追加

プロのための Linuxシステム構築・運用技術 (Software Design plus)

プロのための Linuxシステム構築・運用技術 (Software Design plus)

Linuxコマンドブック ビギナーズ 第4版 (コマンドブックシリーズ)

Linuxコマンドブック ビギナーズ 第4版 (コマンドブックシリーズ)