Proxmox конвертация виртуальных машин в Proxmox.
Сегодня я решил описать процесс конвертации виртуальных машин VMware в Proxmox. Будут описаны шаги по конвертации виртуальных машин с ОС Windows и Linux.
Подготовка к конвертации.
Для конвертации нам потребуется сделать так, чтобы диск конвертируемой виртуальной машины был доступен хосту с Proxmox. Это можно осуществить несколькими способами: скопировать файл диска ВМ на хост Proxmox или подключив общее хранилище, доступное и хосту Proxmox и хосту VMware. Я буду использовать способ с общим хранилищем, подключенным к хостам по NFS. Переместим ВМ, которую собираемся конвертировать, на общее хранилище и выключим ее(можно делать и в обратной последовательности).
Proxmox конвертация виртуальной машины Windows.
Создадим на хосте Proxmox виртуальную машину с необходимыми настройками и ресурсами. Создайте два жестких диска, один IDE для системного диска, второй SCSI или Virtio, в зависимости от того, какой тип планируете использовать. Диск IDE должен присутствовать обязательно, иначе виртуальная машина не загрузится. Вот такая конфигурация получилась у меня:
Теперь переходим непосредственно к конвертации. В консоли хоста Proxmox выполним команду:
1 |
qemu-img convert -f vmdk </path/to/disk.vmdk> -O raw /mnt/pve/hdd1/images/101/disk0.raw -p |
В команде, естественно, укажите свои параметры.
Запустится процесс конвертации диска.
После завершения конвертации нужно изменить конфиг виртуальной машины. Для этого открываем в редакторе файл конфигурации ВМ(в нашем случае ВМ имеет ID 101):
1 |
nano /etc/pve/qemu-server/101.conf |
Если узел Proxmox находится в кластере, путь до файла конфигурации будет выглядеть так:
1 |
nano /etc/pve/nodes/<node-name>/qemu-server/101.conf |
В строке ide0 укажем наш сконвертированный диск:
Сохраните изменения. Теперь можно запустить виртуальную машину.
Настройка ВМ после конвертации.
После конвертации необходимо проделать следующие действия: удалить VMtools(если они установлены) и установить необходимые драйвера.
Удаление VMtools производится через стандартную оснастку «Программы и компоненты».
Перезагрузку после удаления можно отложить.
Для установки драйверов потребуется скачать и подключить к ВМ образ с драйверами. Скачать его можно из официального источника..
После подключения образа с драйверами, перейдите в него и запустите мастер установки драйверов, выбрав нужную разрядность:
Это самый простой способ установить необходимые драйвера. Также, не лишним будет установить гостевой агент из папки guest-agent.
Теперь нам нужно переключить системный диск с устаревшего контроллера IDE на Virtio. Для этого выключаем виртуальную машину и вносим изменения в конфиг файл, который мы уже редактировали. Приведем его к следующему виду:
Обратите внимание, что нужно указать первым загрузочным устройством наш системный диск. (Думаю, что загрузочный диск, всё же, лучше разместить на шине 0, поэтому нужно заменить в файле конфигурации virtio1 на virtio0).
Диски, созданные при создании ВМ, теперь можно удалить.
После этого можно включать виртуальную машину и использовать по назначению.
Proxmox конвертация виртуальной машины с Linux(CentOS).
Перед конвертацией ВМ удалим VMtools
Для удаления open-vm-tools выполните команду:
1 |
yum remove open-vm-tools |
Для удаления стандартных VMware Tools запустите скрипт:
1 |
/usr/bin/vmware-uninstall-tools.pl |
и установим qemu-agent.
1 |
yum install qemu-guest-agent |
Можно добавить необходимые драйвера.
1 |
dracut --force --add-drivers "virtio_balloon virtio_scsi virtio_console virtio_pci" |
Выключаем виртуальную машину. Переместите ее на диск, доступный Proxmox(если вы еще это не сделали).
Создадим на Proxmox виртуальную машину с нужными параметрами и диском небольшого объема(он будет удален впоследствии). Обратите внимание, если ВМ использовала UEFI, то и создаваемая ВМ должна быть такой же. Запомните ID созданной машины.
Конвертируем диск ВМ.
Подключаемся к консоли Proxmox и выполняем команду для конвертирования диска(911 — ID созданной ВМ):
1 |
qemu-img convert -f vmdk /mnt/pve/path/to/disk.vmdk -O raw /mnt/pve/hdd1/images/911/vm-911-disk0.raw -p |
После завершения конвертации открываем файл конфигурации ВМ
1 |
nano /etc/pve/qemu-server/911.conf |
и вместо диска, который мы создали при создании ВМ, указываем наш сконвертированный диск.
Proxmox настройка загрузки ВМ.
После этого запускаем виртуальную машину и грузимся в режиме восстановления(не забыв запомнить версию используемого ядра. У меня это 3.10.0-1062.1.2.el7.x86_64).
После логина вводим команду(укажите свою версию ядра):
1 |
dracut -f /boot/initramfs-3.10.0-1062.1.2.el7.x86_64.img 3.10.0-1062.1.2.el7.x86_64 |
Посмотреть доступные версии ядра можно с помощью команды:
1 |
ls /boot/ |
После завершения команды dracut, перезагрузите ВМ в стандартном режиме.
Ошибка при загрузке.
Если при включении ВМ вы видите такую картину:
то нужно зайти в БИОС ВМ, нажав клавишу F2 при загрузке виртуальной машины. Выбираем пункт Boot Maintenance Manager=>Boot Options=>Add Boot Options. Далее:
После выбираем EFI, потом пункт с названием вашей ОС(в нашем случае CentOS), выбираем из списка grubx64.efi
Даем ему описание, подтверждаем изменения
Потом изменяем Boot Order, ставим нашу опцию на первое место.
Сохраняем изменения и перезагружаем ВМ. Теперь можно приступать к действиям, описанным выше.
Настройка сети.
После конвертации в proxmox необходимо заново настроить сеть на виртуалке, т.к. сетевой адаптер сменился.
Раньше интерфейс на ВМ назывался ens160, а теперь eth0. Убедиться в этом можно, посмотрев названия интерфейсов:
1 |
ls /etc/sysconfig/network-scripts/ |
Можно скопировать настройки старого интерфейса:
1 |
cp /etc/sysconfig/network-scripts/ifcfg-ens160 /etc/sysconfig/network-scripts/ifcfg-eth0 |
После этого откройте скопированный файл в редакторе и измените там нужные параметры(имя, hardware address, device), и включите интерфейс:
1 |
ifup eth0 |
На этом конвертация виртуальной машины завершена. Машина готова к использованию. Про настройку сети самого хоста Proxmox можно прочитать в статье..
Конвертация ВМ из Proxmox в VMware.
Несколько слов об обратной конвертации. Я опишу вариант для ВМ с CentOS. Конвертация Proxmox в VMware производится на хосте Proxmox с помощью той же команды qemu-img Для конвертации ВМ из Proxmox нужно проделать аналогичные действия. Только при конвертации указать выходным форматом диска формат vmdk, используемый VMware.
1 |
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).
Теперь проделайте действия, описанные ранее.
Статья основана на моем личном опыте конвертации ВМ в Proxmox. Замечания, предложения, дополнения принимаются в комментариях))
qemu-img поставляется по умолчанию?
В proxmox 7.0 выдает, что нет такой команды
Отбой, непосредственно в консоли надо, по SSH не прокатывает, оказывается.
Да, команда поставляется по умолчанию.
Все действия, описанные в статье производились через SSH.