Увеличение размера диска виртуальной машины 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