概要
KVMゲストOSの稼働領域(システム領域、物理領域)の使用率が大きくなり、仮想ディスクの拡張だけでは対応できない場合には、物理ディスクの追加が必要になるかと思います。その際、KVMゲストOSを停止することなくディスクの追加ができるか否かを検証してみました。なお、ここでの稼働領域は全体で1つのLVMで管理しているものとします。
検証環境
KVMゲストOSのLVM構成
- ボリューム・グループ名 = rhel-guest
--- Volume group ---
VG Name rhel-guest
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <7.00 GiB
PE Size 4.00 MiB
Total PE 1791
Alloc PE / Size 1791 / <7.00 GiB
Free PE / Size 0 / 0
VG UUID P55ADp-oozF-zJZf-IrE0-s3C2-vPrS-aKx8D4
- 論理ボリューム名 = guest
--- Logical volume ---
LV Path /dev/rhel-guest/guest
LV Name guest
VG Name rhel-guest
LV UUID c4cdBv-JUul-UuwI-kk1p-i4mD-QMnm-1mhLsN
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2022-04-23 12:30:04 +0900
LV Status available
# open 0
LV Size <7.00 GiB
Current LE 1791
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
検証準備
今回、追加するディスクのパーティションは、下記の/dev/nvme0n3p1とします。
[root@localhost ~]# ll /dev/nvme0n3*
brw-rw----. 1 root disk 259, 5 4月 24 09:48 /dev/nvme0n3
brw-rw----. 1 root disk 259, 7 4月 24 09:48 /dev/nvme0n3p1
物理ボリュームの作成、及び、論理ボリュームのマウントまでは、KVMゲストOSを起動するまでに実施しておきます。現在の論理ボリュームのサイズは6.9G、使用率は36%となっています。
[root@localhost ~]# pvcreate /dev/nvme0n3p1
Physical volume "/dev/nvme0n3p1" successfully created.
[root@localhost ~]# mount /dev/rhel-guest/guest /var/lib/libvirt/images/
[root@localhost ~]# df -hT
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 18M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs 17G 11G 6.1G 65% /
/dev/nvme0n1p1 xfs 1014M 436M 579M 43% /boot
tmpfs tmpfs 371M 12K 371M 1% /run/user/42
tmpfs tmpfs 371M 4.0K 371M 1% /run/user/1000
/dev/mapper/rhel--guest-guest ext4 6.9G 2.3G 4.2G 36% /var/lib/libvirt/images
検証実施
- KVMゲストOSの起動
[root@localhost ~]# virsh start test-vm1 --console
ドメイン test-vm1 が起動されました
ドメイン test-vm1 に接続しました
エスケープ文字は ^] です
:
:
CentOS Linux 7 (Core)
Kernel 3.10.0-1160.62.1.el7.x86_64 on an x86_64
test-vm1 login:
- 物理ボリュームをボリューム・グループ(rhel-guest)に追加
[root@localhost ~]# vgextend rhel-guest /dev/nvme0n3p1
Volume group "rhel-guest" successfully extended
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name rhel-guest
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 12.99 GiB
PE Size 4.00 MiB
Total PE 3326
Alloc PE / Size 1791 / <7.00 GiB
Free PE / Size 1535 / <6.00 GiB
VG UUID P55ADp-oozF-zJZf-IrE0-s3C2-vPrS-aKx8D4
物理ディスク(/dev/nvme0n3p1)を追加したことで、新たにFree PE /Sizeが増えました。これを使用して論理ボリュームのサイズを拡張します。
[root@localhost ~]# lvresize -l +1535 /dev/rhel-guest/guest
Size of logical volume rhel-guest/guest changed from <7.00 GiB (1791 extents) to 12.99 GiB (3326 extents).
Logical volume rhel-guest/guest successfully resized.
続けて、ファイルシステムのサイズを拡張します。
[root@localhost ~]# resize2fs /dev/rhel-guest/guest
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/rhel-guest/guest is mounted on /var/lib/libvirt/images; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/rhel-guest/guest is now 3405824 (4k) blocks long.
途中でエラーを出力することもなく、動的にサイズ拡張が実施できました。拡張されたファイルシステムのサイズを確認します。
→拡張後のファイルシステムのサイズは13G、使用率は19%と変化しています。
[root@localhost ~]# df -hT
ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 18M 1.8G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root xfs 17G 11G 6.1G 65% /
/dev/nvme0n1p1 xfs 1014M 436M 579M 43% /boot
tmpfs tmpfs 371M 12K 371M 1% /run/user/42
tmpfs tmpfs 371M 4.0K 371M 1% /run/user/1000
/dev/mapper/rhel--guest-guest ext4 13G 2.3G 9.9G 19% /var/lib/libvirt/images
KVMゲストOSの状態も見ておきます。
[root@localhost ~]# virsh list --all
Id 名前 状態
-------------------------
1 test-vm1 実行中
[root@localhost ~]# virsh console test-vm1
ドメイン test-vm1 に接続しました
エスケープ文字は ^] です
CentOS Linux 7 (Core)
Kernel 3.10.0-1160.62.1.el7.x86_64 on an x86_64
test-vm1 login: root
パスワード:
最終ログイン: Sun Apr 24 09:55:49 ttyS0 上
[root@test-vm1 ~]#
KVMゲストOSにも問題なくログオンできました。結果として、KVMゲストOSを停止することなく、KVMゲストOSの稼働領域の動的サイズ拡張ができることがわかりました。