Как расширить/увеличить размер диска виртуальной машины KVM (VM)
Как я могу расширить / увеличить / увеличить виртуальный диск в KVM? Я лично использую KVM для всех проектов по виртуализации Linux. Иногда мне нужно расширить или добавить дисковое пространство для моей работающей виртуальной машины (гостевой), чтобы удовлетворить растущие требования к программному обеспечению. KVM использует QEMU, который поддерживает несколько типов изображений, среди которых raw, cow, qcow, qcow2, vmdk, vdi и т.д.
«Собственный» и наиболее гибкий тип - это qcow2, который поддерживает копирование при записи, шифрование, сжатие и снимки виртуальной машины.
Шаг 1: выключить виртуальную машину
Прежде чем вы сможете расширить виртуальный диск вашей гостевой машины, вы должны сначала выключить его.$ sudo virsh list
Id Name State
-----------------------
4 rhel8 running
Если ваш гостевой компьютер находится в рабочем состоянии, выключите его, используя его идентификатор или имя.
$ sudo virsh shutdown rhel8 Domain rhel8 is being shutdown
Прежде чем приступить к управлению дисками, убедитесь, что он действительно отключен.
$ sudo virsh list
Id Name State
--------------------
Шаг 2: Расширение диска гостевой ОС
Найдите путь к вашей гостевой ОС.$ sudo virsh domblklist rhel8
Target Source
-----------------------------------------------
vda /var/lib/libvirt/images/rhel8.qcow2
sda -
OR use:
$ sudo virsh dumpxml rhel8 | egrep 'disk type' -A 5
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/rhel8.qcow2'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
--
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='sda' bus='sata'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
Вы можете получить ту же информацию из GUI Virtual Machine Manager . Мой виртуальный диск находится в ‘/var/lib/libvirt/images/rhel8.qcow2‘.
$ sudo qemu-img info /var/lib/libvirt/images/rhel8.qcow2
image: /var/lib/libvirt/images/rhel8.qcow2
file format: qcow2
virtual size: 30G (42949672960 bytes)
disk size: 2.0G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: true
refcount bits: 16
corrupt: false
Шаг 3: Расширение гостевой виртуальной машины
Так как мы знаем местоположение диска нашей виртуальной машины, давайте расширим его до желаемой емкости.sudo qemu-img resize /var/lib/libvirt/images/rhel8.qcow2 +10G
Обратите внимание, что qemu-img не может изменить размер изображения со снимками. Сначала вам нужно будет удалить все снимки виртуальных машин. Смотрите этот пример:
$ sudo virsh snapshot-list rhel8
Name Creation Time State
--------------------------------------------------
snapshot1 2019-04-16 08:54:24 +0300 shutoff
$ sudo virsh snapshot-delete --domain rhel8 --snapshotname snapshot1
Domain snapshot snapshot1 deleted
$ sudo virsh snapshot-list rhel8
Name Creation Time State
-------------------------------
Затем расширите диск, используя ` + 'перед объемом диска
$ sudo qemu-img resize /var/lib/libvirt/images/rhel8.qcow2 +10G Image resized.
Вы также можете изменить размер с помощью команды virsh. Это требует, чтобы домен был запущен..
$ sudo qemu-img info /var/lib/libvirt/images/rhel8.qcow2 image: /var/lib/libvirt/images/rhel8.qcow2 file format: qcow2 virtual size: 30G (42949672960 bytes) disk size: 2.0G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: true refcount bits: 16 corrupt: false $ sudo virsh start rhel8 $ sudo virsh blockresize rhel8 /var/lib/libvirt/images/rhel8.qcow2 40G Block device '/var/lib/libvirt/images/rhel8.qcow2' is resized
Подтвердите размер диска с помощью команды fdisk.
$ sudo fdisk -l /var/lib/libvirt/images/rhel8.qcow2 Disk /var/lib/libvirt/images/rhel8.qcow2: 30.2 GiB, 32399818752 bytes, 63280896 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
Шаг 4: Расширить раздел VM
Теперь включите виртуальную машину$ sudo virsh start rhel8 Domain rhel8 started
SSH к вашей виртуальной машине от имени пользователя root или от имени пользователя sudo.
$ ssh rhel8 Last login: Fri Apr 19 06:11:19 2019 from 192.168.122.1 [[email protected] ~]$
Проверьте новую разметку диска.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 40G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 29G 0 part ├─rhel-root 253:0 0 26.9G 0 lvm / └─rhel-swap 253:1 0 2.1G 0 lvm [SWAP]
Общая емкость моей виртуальной машины сейчас
40GB
составляет 30 ГБ . Чтобы расширить раздел ОС, обратитесь к руководствам ниже.
Изменение размера виртуального диска KVM/QEMU/VirtualBox
При необходимости расширения размера виртуального диска в формате qcow2,
используемом в системах виртуализации KVM и QEMU, можно обойтись без
клонирования и создания нового образа.
Завершаем работу виртуальной машины, связанной с изменяемым дисковым образом.
Увеличиваем размер образа. В случае использования KVM/QEMU:
qemu-img resize vm.qcow2 +5GB
В случае использования VirtualBox, потребуется дополнительный шаг с
промежуточным преобразованием VDI в qcow2 или raw-формат:
qemu-img convert -f vdi -O qcow2 vm.vdi vm.qcow2
qemu-img resize vm.qcow2 +5G
qemu-img convert -f qcow2 -O vdi vm.qcow2 vm.vdi
Другой вариант с использованием штатной утилиты VBoxManage:
VBoxManage internalcommands converttoraw vm.vdi vm.raw
qemu-img resize vm.raw +5G
VBoxManage convertfromraw --format VDI --variant Standard vm.raw vm.vdi
Также можно создать новый большой VDI-раздел и клонировать в него старое содержимое:
VBoxManage clonehd --existing old.vdi new.vdi
Для задействования появившегося свободного пространства, необходимо расширить
размер связанной с дисковым образом файловой системы. Для расширения ФС проще
всего воспользоваться приложением gparted.
Скачиваем из сети Live-дистрибутив Parted Magic или SystemRescueCd.
Загружаем Live-дистрибутив в новой виртуальной машине, не забыв присоединить к
ней изменяемый дисковый образ.
После загрузки запускаем gparted, выбираем виртуальный диск и видим в хвосте
нераспределенную область. Кликаем правой кнопкой мыши на имеющейся ФС и
выбираем "Resize/Move", следуя дальнейшим подсказкам в интерфейсе.
После завершения расширения размера, загружаем изначальную виртуальную машину и
запускаем утилиту fsck для проверки раздела, размер которого был изменен:
sudo fsck /dev/sda1
Большое спасибо! То что надо было!
ОтветитьУдалить