Бывает (часто бывает) нужно увеличить объем диска в виртуальной машине QEMU-KVM. Это конкретный пример для конкретных условий:
Диск в виртуальной машине при разметке использует LVM и XFS
Смотрим имя виртуалки:
~]# virsh list
Id Name State
----------------------------------------------------
1 test1 running
2 test2 running
3 test3 running
Будем увеличивать для test2. Ее надо выключить.
~]# virsh shutdown test2
Domain test2 is being shutdown
Проверяем, что потухла
~]# virsh list
Id Name State
----------------------------------------------------
1 test1 running
3 test3 running
~]# virsh list --all
Id Name State
----------------------------------------------------
1 test1 running
3 test3 running
- test2 shut off
Ищем какой диск используется
~]# virsh domblklist test2
Target Source
------------------------------------------------
vda /var/lib/libvirt/images/test2.qcow2
hda -
Получаем, что диск виртуальной машины находится тут /var/lib/libvirt/images/test2.qcow2
Сейчас у него объем 10Gbyte
~]# qemu-img info /var/lib/libvirt/images/test2.qcow2
image: /var/lib/libvirt/images/test2.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 10G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
Добавлю ему еще 5Gb
~]# qemu-img resize /var/lib/libvirt/images/test2.qcow2 +5G
Image resized.
~]# qemu-img info /var/lib/libvirt/images/test2.qcow2
image: /var/lib/libvirt/images/test2.qcow2
file format: qcow2
virtual size: 15G (16106127360 bytes)
disk size: 10G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
Если есть снепшоты, то не получится сделать так. Сначала придется удалить их.
~]# virsh start test2
Domain test2 started
Заходим в виртуальную машину, смотрим диски
~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 15G 0 disk
|-vda1 252:1 0 1G 0 part /boot
`-vda2 252:2 0 9G 0 part
|-cs_test2-root 253:0 0 8G 0 lvm /
`-cs_test2-swap 253:1 0 1G 0 lvm [SWAP]
Система стоит на /dev/vda2
~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 cs_test2 lvm2 a-- <9.00g 0
Есть такая утилита - growpart, поставить можно так
~]# yum -y install cloud-utils-growpart
или так
~]# apt install cloud-guest-utils
Увеличиваем размер партиции
~]# growpart /dev/vda 2
CHANGED: partition=2 start=2099200 old: size=18872320 end=20971520 new: size=29358047 end=31457247
~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 15G 0 disk
|-vda1 252:1 0 1G 0 part /boot
`-vda2 252:2 0 14G 0 part
|-cs_test2-root 253:0 0 8G 0 lvm /
`-cs_test2-swap 253:1 0 1G 0 lvm [SWAP]
Увеличиваем размер раздела
~]# pvresize /dev/vda2
Physical volume "/dev/vda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
Проверяем размер группы
~]# vgs
VG #PV #LV #SN Attr VSize VFree
cs_test2 1 2 0 wz--n- <14.00g 5.00g
И параметры разделов
~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 970M 0 970M 0% /dev
tmpfs tmpfs 989M 0 989M 0% /dev/shm
tmpfs tmpfs 989M 8.6M 980M 1% /run
tmpfs tmpfs 989M 0 989M 0% /sys/fs/cgroup
/dev/mapper/cs_test2-root xfs 8.0G 5.0G 3.1G 62% /
/dev/vda1 xfs 1014M 220M 795M 22% /boot
tmpfs tmpfs 198M 0 198M 0% /run/user/0
Увеличиваем нужный раздел
~]# lvextend -r -l +100%FREE /dev/cs_test2/root
Size of logical volume cs_test2/root changed from <8.00 GiB (2047 extents) to <13.00 GiB (3327 extents).
Logical volume cs_test2/root successfully resized.
meta-data=/dev/mapper/cs_test2-root isize=512 agcount=4, agsize=524032 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=2096128, 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 2096128 to 3406848
Сравниваем с тем, что было
~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 970M 0 970M 0% /dev
tmpfs tmpfs 989M 0 989M 0% /dev/shm
tmpfs tmpfs 989M 8.6M 980M 1% /run
tmpfs tmpfs 989M 0 989M 0% /sys/fs/cgroup
/dev/mapper/cs_test2-root xfs 13G 5.0G 8.1G 39% /
/dev/vda1 xfs 1014M 220M 795M 22% /boot
tmpfs tmpfs 198M 0 198M 0% /run/user/0
Было 8Gbyte, стало 13Gbyte
Ви маєте увійти під своїм обліковим записом