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

Как перенести виртуальные машины Virtualbox в виртуальные машины KVM в Linux

Вы решили перейти с Oracle VirtualBox на виртуальную машину на базе ядра? Большой! В этом пошаговом руководстве объясняется, как перенести виртуальные машины Virtualbox на виртуальные машины KVM в Linux.

Возможно, у вас есть несколько важных гостевых машин в VirtualBox. Вместо создания новых гостей KVM с той же конфигурацией вы можете легко преобразовать существующие машины Virtualbox в KVM, как описано здесь.

Миграция виртуальных машин Virtualbox в виртуальные машины KVM в Linux

Сначала отключите все работающие виртуальные машины в VirtualBox.

Для целей данного руководства я буду использовать виртуальные машины CentOS и FreeBSD, размещенные в VirtualBox.

Как вы, возможно, уже знаете, формат образа диска виртуальной машины KVM по умолчанию — .qcow2, а виртуальной машины Virtualbox — .vdi . .

Мы можем преобразовать файл образа диска VDI в qcow2 двумя способами. Мы можем напрямую преобразовать изображение vdi в формат qcow2.

Если по какой-либо причине это не работает, мы можем сначала преобразовать формат vdi в необработанный формат, а затем преобразовать необработанный формат в qcow2.

1. Преобразование формата изображения vdi в формат изображения qcow2.

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

ls CentOS\ 8\ Server/

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

CentOS 8 Server.vbox CentOS 8 Server.vbox-prev CentOS 8 Server.vdi Logs

Как вы, возможно, заметили, тип файла образа диска виртуальной машины CentOS — .vdi. Для тех, кому интересно: VDI — это собственный формат VirtualBox. VirtualBox использует этот формат по умолчанию, когда мы создаем новую виртуальную машину.

А вот тип файла образа диска FreeBSD:

$ ls FreeBSD\ 12/
FreeBSD-12.0-RELEASE-amd64.vhd freebsd12.qcow2 FreeBSD 12.vbox FreeBSD 12.vbox-prev Logs

Здесь тип файла образа диска freebsd — .vhd. VHD — это собственный формат Microsoft Virtual PC.

Обе виртуальные машины я создал в VirtualBox. Но Virtualbox использовал формат .vdi для CentOS и формат .vhd для FreeBSD.

VirtualBox очень хорошо поддерживает форматы VDI и VHD. Оба типа изображений можно легко преобразовать в формат qcow2.

Теперь давайте вернемся к теме — как преобразовать образы дисков машины Virtualbox в тип образа диска, поддерживаемый KVM, с помощью команды "qemu-img"?

Ну, это легко! Команда qemu-img используется для преобразования образов дисков виртуальных машин в различные форматы, включая qcow2, raw, vdi, vhd и vmdk.

Чтобы преобразовать изображение vdi в изображение qcow2 с помощью команды qemu-img, выполните:

qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi -O qcow2 centos8.qcow2

Приведенная выше команда преобразует данный файл vdi в формат qcow2.

Здесь мы использовали -O qcow2, чтобы явно указать формат вывода. Конечно, вам не нужно явно указывать формат вывода, а просто указать формат ввода и вывода, как показано ниже:

qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi centos8.qcow2

Но это создаст изображение большего размера.

Аналогичным образом вы можете преобразовать файл изображения vhd в изображение qcow2 с помощью следующей команды:

qemu-img convert FreeBSD\ 12/FreeBSD-12.0-RELEASE-amd64.vhd -O qcow2 freebsd12.qcow2

Преобразование формата изображения vdi в формат изображения qcow2 в Linux

Вот как мы переносим виртуальные машины Virtualbox на виртуальные машины KVM.

Теперь перейдите к разделу Создание виртуальной машины KVM из образа Qcow2, приведенному ниже, чтобы узнать, как создать новую виртуальную машину KVM с использованием образов Qcow2.

На всякий случай, если описанный выше метод не работает (что очень маловероятно), вы можете использовать следующий метод для преобразования изображений vdi в изображения qcow2.

2. Преобразуйте vdi в формат необработанного изображения, а затем в формат изображения qcow2.

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

vboxmanage list hdds

Или,

VBoxManage list hdds

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

UUID:           ecfb6d5c-aa10-4ffc-b40c-b871f0404da8
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/sk/VirtualBox VMs/CentOS 8 Server/CentOS 8 Server.vdi
Storage format: VDI
Capacity:       20480 MBytes
Encryption:     disabled

UUID:           34a5709f-188c-4040-98f9-6093628c3d88
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/sk/VirtualBox VMs/Ubuntu 20.04 Server/Ubuntu 20.04 Server.vdi
Storage format: VDI
Capacity:       20480 MBytes
Encryption:     disabled

Получение списка сведений об образах дисков виртуальных боксов в Linux

Как видите, у меня есть две виртуальные машины VirtualBox.

Теперь я собираюсь преобразовать образ диска машины CentOS 8 в необработанный формат диска с помощью команды vboxmanage:

vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img

Или,

VBoxManage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img

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

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e

Изображение RAW слишком велико для использования. В моем случае изображение RAW в десять раз больше изображения Qcow2.

du -h CentOS_8_Server.img 
21G CentOS_8_Server.img

Итак, давайте преобразуем формат изображения RAW в формат диска KVM, то есть сжатый qcow2, с помощью команды qemu-img:

qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2

Миграция виртуальных машин virtualbox в виртуальные машины KVM

Сделанный! Мы преобразовали формат образа диска Virtualbox VDI в формат образа KVM qcow2.

Проверьте размер изображения Qcow2:

du -h CentOS_8_Server.qcow2 
2.1G CentOS_8_Server.qcow2

Видеть? Qcow2 намного меньше изображения RAW.

3. Создайте виртуальную машину KVM из образа Qcow2.

Теперь вы можете создать новый экземпляр KVM, импортировав файл образа виртуального диска из командной строки или используя любое графическое приложение для управления KVM, например Virt-manager или Cockpit веб-консоль.

Для получения более подробной информации обратитесь к следующему руководству:

  • Как создать виртуальную машину KVM с использованием образа Qcow2

Поиск неисправностей

Иногда вы могли удалить виртуальный диск, не освободив его должным образом из медиа-менеджера Virtualbox.

Когда вы попытаетесь создать новый образ оперативной памяти из того же файла VDI, вы получите сообщение об ошибке типа - "жесткий диск с UUID уже существует".

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

  • Исправить проблему «жесткий диск с UUID уже существует» в VirtualBox

Заключение

В этом руководстве мы увидели, как перенести виртуальные машины Virtualbox на виртуальные машины KVM в Linux. Мы также рассмотрели, как создать новый экземпляр KVM, импортировав файл изображения Qcow2.

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

  • Как импортировать изображение QCOW2 в Proxmox

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