Proxmox Конвертация виртуальных машин из vmware и обратно

  • Михаил
  • 12 мин. на прочтение
  • 164
  • 21 Nov 2022
  • 21 Nov 2022

Сегодня я решил описать процесс конвертации виртуальных машин VMware в Proxmox. Будут описаны шаги по конвертации виртуальных машин с ОС Windows и Linux.

Подготовка к конвертации.

Для конвертации нам потребуется сделать так, чтобы диск конвертируемой виртуальной машины был доступен хосту с Proxmox. Это можно осуществить несколькими способами: скопировать файл диска ВМ на хост Proxmox или подключив общее хранилище, доступное и хосту Proxmox и хосту VMware. Я буду использовать способ с общим хранилищем, подключенным к хостам по NFS. Переместим ВМ, которую собираемся конвертировать, на общее хранилище и выключим ее(можно делать и в обратной последовательности).

Proxmox конвертация виртуальной машины Windows.

Создадим на хосте Proxmox виртуальную машину с необходимыми настройками и ресурсами. Создайте два жестких диска, один IDE для системного диска, второй SCSI или Virtio, в зависимости от того, какой тип планируете использовать. Диск IDE должен присутствовать обязательно, иначе виртуальная машина не загрузится. Вот такая конфигурация получилась у меня:

proxmox конвертация вкладка Конфигурация ВМ в GUI Proxmox

Теперь переходим непосредственно к конвертации. В консоли хоста Proxmox выполним команду:

qemu-img convert -f vmdk </path/to/disk.vmdk> -O raw /mnt/pve/hdd1/images/101/disk0.raw -p

В команде, естественно, укажите свои параметры.

Запустится процесс конвертации диска.

Proxmox конвертация. Конвертация диска в cli proxmox

После завершения конвертации нужно изменить конфиг виртуальной машины. Для этого открываем в редакторе файл конфигурации ВМ(в нашем случае ВМ имеет ID 101):

nano /etc/pve/nano /etc/pve/qemu-server/101.confqemu-server/101.conf

Если узел Proxmox находится в кластере, путь до файла конфигурации будет выглядеть так:

nano /etc/pve/nodes/<node-name>/qemu-server/101.conf
Proxmox конвертация. Файл конфигурации ВМ в cli proxmox

В строке ide0 укажем наш сконвертированный диск:

proxmox конвертация. Измененный файл конфига ВМ.

Сохраните изменения. Теперь можно запустить виртуальную машину.

Настройка ВМ после конвертации.

После конвертации необходимо проделать следующие действия: удалить VMtools(если они установлены) и установить необходимые драйвера.

Удаление VMtools производится через стандартную оснастку «Программы и компоненты».

Proxmox конвертация. Удаление VMtools в Windows.

Перезагрузку после удаления можно отложить.

Для установки драйверов потребуется скачать и подключить к ВМ образ с драйверами. Скачать его можно из официального источника..

После подключения образа с драйверами, перейдите в него и запустите мастер установки драйверов, выбрав нужную разрядность:

Еще:  Как выгрузить список виртуальных машин VMware.

Установка драйверов.

Это самый простой способ установить необходимые драйвера. Также, не лишним будет установить гостевой агент из папки guest-agent.

Теперь нам нужно переключить системный диск с устаревшего контроллера IDE на Virtio. Для этого выключаем виртуальную машину и вносим изменения в конфиг файл, который мы уже редактировали. Приведем его к следующему виду:

virtio

Обратите внимание, что нужно указать первым загрузочным устройством наш системный диск. (Думаю, что загрузочный диск, всё же, лучше разместить на шине 0, поэтому нужно заменить в файле конфигурации virtio1 на virtio0).

Диски, созданные при создании ВМ, теперь можно удалить.

После этого можно включать виртуальную машину и использовать по назначению.

Proxmox конвертация виртуальной машины с Linux(CentOS).

Перед конвертацией ВМ удалим VMtools

Для удаления open-vm-tools выполните команду:

yum remove open-vm-tools

Для удаления стандартных VMware Tools запустите скрипт:

/usr/bin/vmware-uninstall-tools.pl

и установим qemu-agent.

yum install qemu-guest-agent

Можно добавить необходимые драйвера.

dracut --force --add-drivers "virtio_balloon virtio_scsi virtio_console virtio_pci"

Выключаем виртуальную машину. Переместите ее на диск, доступный Proxmox(если вы еще это не сделали).

Создадим на Proxmox виртуальную машину с нужными параметрами и диском небольшого объема(он будет удален впоследствии). Обратите внимание, если ВМ использовала UEFI, то и создаваемая ВМ должна быть такой же. Запомните ID созданной машины.

VM config

Конвертируем диск ВМ.

Подключаемся к консоли Proxmox и выполняем команду для конвертирования диска(911 — ID созданной ВМ):

qemu-img convert -f vmdk /mnt/pve/path/to/disk.vmdk -O raw /mnt/pve/hdd1/images/911/vm-911-disk0.raw -p

После завершения конвертации открываем файл конфигурации ВМ

nano /etc/pve/qemu-server/911.conf

и вместо диска, который мы создали при создании ВМ, указываем наш сконвертированный диск.

VM config

Proxmox настройка загрузки ВМ.

После этого запускаем виртуальную машину и грузимся в режиме восстановления(не забыв запомнить версию используемого ядра. У меня это 3.10.0-1062.1.2.el7.x86_64).

boot rescue mode

После логина вводим команду(укажите свою версию ядра):

dracut -f /boot/initramfs-3.10.0-1062.1.2.el7.x86_64.img 3.10.0-1062.1.2.el7.x86_64

Посмотреть доступные версии ядра можно с помощью команды:

ls /boot/

После завершения команды dracut, перезагрузите ВМ в стандартном режиме.

Ошибка при загрузке.

Если при включении ВМ вы видите такую картину:

boot failed

то нужно зайти в БИОС ВМ, нажав клавишу F2 при загрузке виртуальной машины. Выбираем пункт Boot Maintenance Manager=>Boot Options=>Add Boot Options.  Далее:

Еще:  Как создать виртуальную машину VMware

add boot option volume

После выбираем EFI, потом пункт с названием вашей ОС(в нашем случае CentOS), выбираем из списка grubx64.efi

select grubx64.efi

Даем ему описание, подтверждаем изменения

commit changes

Потом изменяем Boot Order, ставим нашу опцию на первое место.

boot order

Сохраняем изменения и перезагружаем ВМ. Теперь можно приступать к действиям, описанным выше.

Настройка сети.

После конвертации в proxmox необходимо заново настроить сеть на виртуалке, т.к. сетевой адаптер сменился.

ip a

Раньше интерфейс на ВМ назывался ens160, а теперь eth0. Убедиться в этом можно, посмотрев названия интерфейсов:

ls /etc/sysconfig/network-scripts/

Можно скопировать настройки старого интерфейса:

cp /etc/sysconfig/network-scripts/ifcfg-ens160 /etc/sysconfig/network-scripts/ifcfg-eth0

После этого откройте скопированный файл в редакторе и измените там нужные параметры(имя, hardware address, device), и включите интерфейс:

ifup eth0

На этом конвертация виртуальной машины завершена. Машина готова к использованию. Про настройку сети самого хоста Proxmox можно прочитать в статье.

Конвертация ВМ из Proxmox в VMware.

Несколько слов об обратной конвертации. Я опишу вариант для ВМ с CentOS. Конвертация Proxmox в VMware производится на хосте Proxmox с помощью той же команды qemu-img   Для конвертации ВМ из Proxmox нужно проделать аналогичные действия. Только при конвертации указать выходным форматом диска формат vmdk, используемый VMware.

qemu-img convert -f  raw /mnt/pve/hdd1/images/911/vm-911-disk0.raw -O vmdk /mnt/pve/path/to/disk.vmdk -p

Переместите диск на хранилище хоста esxi.

Создайте на хосте esxi виртуальную машину с нужными параметрами. Можно создать диск размером 1GB с типом адаптера LSI Logic Parallel scsi controller. После этого добавьте сконвертированный диск в ВМ, выбрав на этапе добавления опцию Add existing disk. Этот диск будет добавлен с типом шины IDE. Подключитесь к хосту esxi по ssh.

Откройте в редакторе файл сконвертированного диска /vmfs/volumes/datastore/disk.vmdk.

Измените строчку ddb.adapterType = »ide» на ddb.adapterType = »lsilogic». Сохраните файл.

После этого удалите диск из конфигурации ВМ(не с диска!!!) Снова добавьте этот диск в ВМ, только уже с контроллером scsi. Если сконвертированный диск будет загрузочным, то переместите его на шину scsi 0:0(перед этим убрав оттуда или удалив совсем диск размером 1GB).

Теперь проделайте действия, описанные ранее.

Статья сперта с fun-admin