Поиск по сайту:

Увеличение размера диска виртуальной машины KVM в Linux

Изменение размера диска виртуальной машины KVM с помощью инструмента командной строки Virt-resize в Linux

В этом кратком руководстве объясняется, что такое инструмент командной строки Virt-resize и как можно увеличить или увеличить размер диска виртуальной машины KVM с помощью инструмента Virt-resize в Linux.

Введение

На днях я заметил, что на одной из моих виртуальных машин KVM не хватает места на диске. Я не мог установить новые приложения или сохранить файлы из-за нехватки места на диске.

Чтобы решить эту проблему, я просто увеличил размер диска виртуальной машины KVM с помощью команды virt-size. Я лично протестировал приведенные ниже шаги, чтобы увеличить размер диска виртуальной машины CentOS 8 KVM, и все сработало как положено.

Что такое инструмент Virt-resize?

Virt-resize — это инструмент командной строки для изменения размера диска виртуальной машины. Используя virt-resize, мы можем увеличить или уменьшить размер диска виртуальной машины.

Мы также можем удалить разделы внутри виртуального диска с помощью команды virt-resize. Обратите внимание, что virt изменяет размер живых машин. Гостевые системы следует отключить перед изменением размера их образов дисков.

Чтобы увеличить размер диска виртуальной машины, мы сначала создаем образ диска большего размера, чем исходный образ. Затем мы копируем исходное изображение в конечное и, наконец, изменяем его размер.

Установите Virt-resize в Linux

Virt-resize является частью пакета libguestfs-tools. Чтобы установить пакет libguestfs-tools в Debian, Ubuntu и его производных, запустите:

sudo apt install libguestfs-tools

Чтобы установить пакет libguestfs-tools в Fedora, RHEL и его клонах, запустите:

sudo dnf install libguestfs-tools

В Fedora 34 пакет guestfs-tools предоставляет инструмент virt-resize. Итак, если вы используете Fedora 34, установите пакет guestfs-tools, как показано ниже:

sudo dnf install guestfs-tools

Теперь давайте посмотрим, как увеличить размер диска виртуальной машины с помощью команды virt-resize.

Увеличьте размер диска виртуальной машины KVM в Linux

Для целей данного руководства я буду использовать образ диска виртуальной машины CentOS 8 с именем centos8.qcow2. Я сохранил этот маг в своем текущем рабочем каталоге. Вы можете использовать команду virsh dumpxml, чтобы найти образ диска, размер которого вы хотите изменить.

Пример:

virsh dumpxml centos8

Замените centos8 на имя вашей виртуальной машины в приведенной выше команде.

Найдя образ диска, размер которого вы хотите изменить, проверьте детали раздела внутри этого образа диска. Чтобы распечатать сведения о разделах и их размер образа диска, запустите:

virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2 

Пример вывода:

 Name       Type       MBR  Size  Parent
 /dev/sda1  partition  83   1.0G  /dev/sda
 /dev/sda2  partition  8e   19G   /dev/sda
 /dev/sda   device     -    20G   -

Отображение текущих разделов и их размеров с помощью команды virt-filesystems в Linux

Как вы можете видеть в приведенном выше выводе, мой образ диска имеет только два раздела, а именно: /dev/sda1 размером 1 ГБ и /dev/sda2 размером 19 ГБ. Общий размер образа диска составляет 20 ГБ.

Теперь мы будем,

  • увеличить общий размер образа диска с 20 ГБ до 30 ГБ,
  • увеличьте размер первого раздела /dev/sda1 с 1,0 ГБ до 1,5 ГБ,
  • Разверните второй раздел /dev/sda2, чтобы заполнить оставшееся пространство.

Virt-resize не может изменить размер образов дисков на месте. Кроме того, Virt-resize не следует использовать на работающих виртуальных машинах. Прежде чем изменять размер образа диска, выключите виртуальную машину и создайте резервную копию исходного образа диска.

mv centos8.qcow2 centos8.qcow2.backup

Приведенная выше команда переименует текущий образ диска с именем centos8.qcow2 в centos8.qcow2.backup.

Создайте новый образ диска с тем же именем и размером 30 ГБ с помощью команды:

qemu-img create -f qcow2 -o preallocation=metadata centos8.qcow2 30G

Пример вывода:

Formatting 'centos8.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16

Убедитесь, что размер вновь созданного диска составляет 30 ГБ:

virt-filesystems --long --parts --blkdevs -h -a centos8.qcow2

Пример вывода:

Name      Type    MBR  Size  Parent
 /dev/sda  device  -    30G   -

Создайте новый образ виртуального диска с помощью команды qemu-img.

Теперь увеличьте размер образа диска виртуальной машины KVM с помощью команды:

virt-resize --resize /dev/sda1=+500M --expand /dev/sda2 centos8.qcow2.backup centos8.qcow2

Здесь,

  • --resize /dev/sda1=+500M — увеличивает размер раздела /dev/sda1 до 500 МБ.
  • --expand /dev/sda2 — изменяет размер раздела /dev/sda2, чтобы заполнить все оставшееся пространство. В моем случае его размер будет изменен с 19,0G на 28,5G.
  • centos8.qcow2.backup — это исходный входной образ диска.
  • centos8.qcow2 — это вновь созданный образ выходного диска.

Пример вывода приведенной выше команды:

[   0.0] Examining centos8.qcow2.backup
 
 Summary of changes:
 /dev/sda1: This partition will be resized from 1.0G to 1.5G.  The 
 filesystem ext4 on /dev/sda1 will be expanded using the ‘resize2fs’ 
 method.
 /dev/sda2: This partition will be resized from 19.0G to 28.5G.  The LVM PV 
 on /dev/sda2 will be expanded using the ‘pvresize’ method.
 
 [   4.2] Setting up initial partition table on centos8.qcow2
 [   5.6] Copying /dev/sda1
  100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
 [   9.7] Copying /dev/sda2
  100% ⟦▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒⟧ 00:00
 [  45.1] Expanding /dev/sda1 using the ‘resize2fs’ method
 [  45.3] Expanding /dev/sda2 using the ‘pvresize’ method
 Resize operation completed with no errors.  Before deleting the old disk, 
 carefully check that the resized disk boots and works correctly.

Увеличьте размер диска виртуальной машины KVM.

Проверьте разделы и их размеры с помощью команды virt-filesystems:

virt-filesystems --long -h --all -a centos8.qcow2

Пример вывода:

 Name          Type        VFS   Label  MBR  Size  Parent
 /dev/sda1     filesystem  ext4  -      -    1.4G  -
 /dev/cl/root  filesystem  xfs   -      -    17G   -
 /dev/cl/swap  filesystem  swap  -      -    2.0G  -
 /dev/cl/root  lv          -     -      -    17G   /dev/cl
 /dev/cl/swap  lv          -     -      -    2.0G  /dev/cl
 /dev/cl       vg          -     -      -    29G   /dev/sda2
 /dev/sda2     pv          -     -      -    29G   -
 /dev/sda1     partition   -     -      83   1.5G  /dev/sda
 /dev/sda2     partition   -     -      8e   29G   /dev/sda
 /dev/sda      device      -     -      -    30G   -

Распечатайте разделы и их размеры на диске виртуальной машины KVM с помощью команды virt-filesystems.

Как вы видите в приведенном выше выводе, размер моего образа KVM-диска CentOS8 был изменен с 20 ГБ до 30 ГБ.

Теперь загрузите виртуальную машину с новым образом диска. Вы также можете создать новую виртуальную машину, используя образ Qcow2, как описано по следующей ссылке.

  • Создание виртуальной машины KVM с использованием образа Qcow2 в Linux

Если все работает без проблем, тщательно проверьте, все ли ваши данные существуют. Если все в порядке, удалите старый резервный диск.

Если с новым диском возникли какие-либо проблемы, выключите виртуальную машину и переименуйте резервный диск в исходное имя. Повторите внимательно описанные выше действия еще раз. Не забудьте сделать резервную копию данных и образа диска.

Ресурс:

  • Виртуальное изменение размера веб-сайта

Связанное чтение:

  • Доступ к образам дисков виртуальных машин и их изменение с помощью Libguestfs
  • Как спасти виртуальные машины с помощью Virt-Rescue

Статьи по данной тематике