KVM上の仮想マシンのディスクサイズの増やし方(LVM)
最近はコンテナ主流ですが、まだまだホスト型の仮想マシンも利用します。(主に検証用)
適当に作った仮想マシンを再利用とかしていると、ディスク容量が足りなくなることがよくあるので、増やし方をメモしておきます。
まずは仮想マシンの作り方
virt-install --connect=qemu:///system -n Fedora30 -r 4096 --disk path=/var/lib/libvirt/qemu/fedora30.img,size=32,format=qcow2 --vcpus=4 --os-type linux --network network=default --nographics --extra-args=--extra-args='ks=file:/fedora-ks.cfg console=tty0 console=ttyS0,115200n8' --location /data/Resource/Fedora-Server-dvd-x86_64-30-1.2.iso
こんな感じでテキストインストールです。 普通にやると、 /dev/mapper/fedora-rootが/にマウントされており、この/を拡張可能となります。
ディスク/パーティションサイズの増やし方
の流れです
QEMUイメージの拡張
# qemu-img info /var/lib/libvirt/qemu/fedora30.img
image: /var/lib/libvirt/qemu/fedora30.img
file format: qcow2
virtual size: 64G (68719476736 bytes)
disk size: 29G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
# file /var/lib/libvirt/qemu/fedora30.img
/var/lib/libvirt/qemu/fedora30.img: QEMU QCOW Image (v3), 68719476736 bytes
拡張
# qemu-img resize /var/lib/libvirt/qemu/fedora30.img +5G
Image resized.
# qemu-img info /var/lib/libvirt/qemu/fedora30.img
image: /var/lib/libvirt/qemu/fedora30.img
file format: qcow2
virtual size: 69G (74088185856 bytes)
disk size: 29G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
これで、ディスクの拡張ができました。この増やした分のサイズを仮想マシンに適用していきます。
パーティションサイズ拡張
まずはディスクのパーティションの拡張です。
# parted /dev/sda
(parted) p
モデル: ATA QEMU HARDDISK (scsi)
ディスク /dev/sda: 74.1GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 68.0GB 66.9GB primary lvm
(parted) resizepart 2 100%
(parted) p
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 74.1GB 73.0GB primary lvm
LVM物理ボリューム拡張
パーティションが拡張されたので、その上のLVM物理ボリュームの拡張です
# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name fedora
PV Size <62.33 GiB / not usable 3.85 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 15955
Free PE 0
Allocated PE 15955
PV UUID Yq9YcH-V4rM-QHFf-5gyR-tUh8-0PmE-y4Vwt3
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 fedora lvm2 a-- 62.32g 0
# pvresize /dev/sda2
Physical volume "/dev/sda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 fedora lvm2 a-- <68.00g 5.67g
# pvsisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name fedora
PV Size <68.00 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 17407
Free PE 1452
Allocated PE 15955
PV UUID Yq9YcH-V4rM-QHFf-5gyR-tUh8-0PmE-y4Vwt3
Freeのところを増やすことができました。
LVM論理ボリューム拡張
拡張した物理ボリューム上の論理ボリュームの拡張です。今回はrootしか切ってないので全部利用します
# lvdisplay
--- Logical volume ---
LV Path /dev/fedora/swap
LV Name swap
VG Name fedora
LV UUID CrBKUg-42Pr-l3PM-g0w8-atOG-CgvK-WPI7r6
LV Write Access read/write
LV Creation host, time localhost, 2019-06-03 15:55:13 +0900
LV Status available
# open 2
LV Size 3.20 GiB
Current LE 820
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/fedora/root
LV Name root
VG Name fedora
LV UUID QBQwNS-q36Z-Rg2Y-9kTh-uwRA-2Nfn-llxArG
LV Write Access read/write
LV Creation host, time localhost, 2019-06-03 15:55:13 +0900
LV Status available
# open 1
LV Size 59.12 GiB
Current LE 15135
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
# lvextend -l +100%FREE /dev/sda2fedrora/root
Size of logical volume fedora/root changed from 59.12 GiB (15135 extents) to 64.79 GiB (16587extents).
Logical volume fedora/root successfully resized.
# lvdisplay
--- Logical volume ---
LV Path /dev/fedora/swap
LV Name swap
VG Name fedora
LV UUID CrBKUg-42Pr-l3PM-g0w8-atOG-CgvK-WPI7r6
LV Write Access read/write
LV Creation host, time localhost, 2019-06-03 15:55:13 +0900
LV Status available
# open 2
LV Size 3.20 GiB
Current LE 820
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
--- Logical volume ---
LV Path /dev/fedora/root
LV Name root
VG Name fedora
LV UUID QBQwNS-q36Z-Rg2Y-9kTh-uwRA-2Nfn-llxArG
LV Write Access read/write
LV Creation host, time localhost, 2019-06-03 15:55:13 +0900
LV Status available
# open 1
LV Size 64.79 GiB
Current LE 16587
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
論理ボリュームも拡張できました。ただこの状態でdfでチェックしても増えていません。 ファイルシステムも拡張してあげる必要があります。 今回はxfsのため、以下のコマンドです
# xfs_growfs /
meta-data=/dev/mapper/fedora-root isize=512 agcount=16, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=0
data = bsize=4096 blocks=15498240, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 15498240 to 16985088
# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/fedora-root 65G 28G 38G 42% /
これで無事に拡張できたのではないかと思います。正直結構面倒ではありますが、kernelとか大きいビルドをするときは、割とディスク容量が足りなくなることがあるので、メモっておくと使う機会は割りとあります。