Моя шпаргалка :)

Мануалы и настройки => Proxmox => Тема начата: George от Май 13, 2025, 04:47

Название: Перенос виртуальной машины с гипервизора VMware (ESX) на Proxmox
Отправлено: George от Май 13, 2025, 04:47
В жизни бывает, когда сталкиваешься с тем, что раньше никогда не приходилось делать. Вот и я столкнулся с proxmox. Году в 2021 я его попробовал, развернул 3 ноды, поднял на них 11 windows. Но при попытке выключить ноду, мою витруалку не мигрировало, как в vmware, а выключило и включило на другой ноде. После этого я слегка потерял интерес к данной системе. Но жизнь снова столкнула нас. Нашел в инете статью и сохранил себе

Мы рассмотрим один из способов переноса виртуальной машины с гипервизора VMware в Proxmox — экспорт шаблона ovf с последующим его импортом на новый гипервизор. Для выполнения задачи будет использоваться утилита ovftool, которую мы установим на хост Proxmox.

Подробнее про миграцию серверов в Proxmox можно почитать на официальном сайте гипервизора.


Установка ovftool

Утилита ovftool нужна для экспорта виртуальной машины VMware в шаблон ovf. Она может быть установлена простой распаковкой архива в любой каталог компьютера или сервера. Мы будем устанавливать ovftool на гипервизор Proxmox.

Первым делом переходим на страницу загрузки утилиты и копируем ссылку на последнюю версию архива:
скачать естественно нельзя, я приложу файл, скачанный мной в мае 2025
Копируем ссылку для скачивания архива ovftool

Используя данную ссылку, загружаем архив, подключившись к Proxmox по SSH:

Загружаем соответственно, через winscp, поскольку нельзя скачать и с proxmox тоже

curl -sOL https://vdc-download.vmware.com/vmwb-repository/dcr-public/2ee5a010-babf-450b-ab53-fb2fa4de79af/2a136212-2f83-4f5d-a419-232f34dc08cf/VMware-ovftool-4.4.3-18663434-lin.x86_64.zip
Распаковываем скачанный архив:

unzip VMware-ovftool-*.zip

Переносим распакованный каталог в папку /opt:

mv ovftool /opt/
ovftool установлен. Можно переходить к экспорту/импорту машины.
[нет. Надо еще права задать на исполнение. Я через winscp дал из всей папке[/i]

Перенос виртуальной машины
Синтаксис для экспорта виртуальной машины следующий:

/opt/ovftool/ovftool vi://<user>:<password>@<vm_host>/<vm_folder>/<vm_name> <path/to/export>
* где:

user — имя пользователя, под которым мы подключаемся к гипервизору.
password — пароль пользователя. Если не задать, то будет запрошен интерактивно.
vm_host — имя гипервизора, с которого мы будем экспортировать виртуальную машину.
vm_folder — каталог, в котором находится виртуальная машина.
vm_name — имя виртуальной машины.
path/to/export — путь, где будет сохранен каталог, в котором будет экспортирован шаблон выгруженной виртуальной машины.
Предположим, что нам нужно перенести виртуальную машину win11 с гипервизора esxi1.cloud-life.site. Команда будет такой:
/opt/ovftool/ovftool vi://root@esxi1.cloud-life.site /win11 ./
* импорт будет выполнен в текущий каталог, где мы находимся при выполнении команды ovftool. В нем будет создан каталог по имени машины (в нашем случае, win11), а в нем будут размещены файлы экспортированной машины.

ЦитироватьУ команды ovftool есть много полезных опций. Наиболее полезны noSSLVerify и powerOffSource:

/opt/ovftool/ovftool --noSSLVerify --powerOffSource vi://root@esxi1.cloud-life.site/win11 ./

* noSSLVerify — не выполняет проверку сертификата. Удобно, если у нас самоподписанный сертификат на хосте vmware. powerOffSource — автоматически выключит виртуальную машину, если она включена (включенную машину нельзя экспортировать).

Начнется процесс экспорта-импорта. Он займет какое-то время — просто ждем. Как было сказано выше, в текущем каталоге будет создана папка с именем переносимой виртуальной машины.

Теперь можно создать новую виртуальную машину на Proxmox из шаблона ovf. Синтаксис следующий:
qm importovf <VMID> ./<vm_name>/<vm_name>.ovf <pve_storage>
* где:

<VMID> — идентификатор для создаваемой виртуальной машины (должен быть уникальным для гипервизора или его кластера).
./<vm_name>/<vm_name>.ovf — путь до выгруженного ovf файла.
<pve_storage> — имя хранилища Proxmox.
Например:

qm importovf 333 ./win11/win11.ovf ssd1
* в данном примере будет создана виртуальная машина с идентификатором 333 на хранилище ssd1.

Готово. Перенос виртуальной машины из VMware в Proxmox по простому сценарию выполнен.

Действия после переноса
После того, как у нас все получилось и виртуальная машина создана на гипервизоре Proxmox, рекомендую выполнить удаление гостевой утилиты vmware и установить гостевую систему Proxmox. Также нам понадобится настроить сеть.

Добавление сетевого адаптера
Импортированная виртуальная машина будет создана без сетевого интерфейса. Его проще всего добавить в веб-инструменте управления Proxmox.

Для этого переходимо к созданной машине - Hardware - Add - Network Device.

Смена утилит гостевой операционной системы
Нам необходимо сначала удалить утилиту для VMware, после установить и запустить утилиту qemu.

Удаление гостевой утилиты VMware
Как правило, устанавливается либо родная утилита, либо open-vm-tools. В зависимости от этого, наши действия будут различаться.

1. Для удаления родной утилиты достаточно ввести команду:

/usr/bin/vmware-uninstall-tools.pl
Если система вернет ошибку, то переходим ко второму варианту.

2. Сначала остановим службу vmtoolsd:
systemctl disable vmtoolsd --now
После удалим open-vm-tools. В зависимости от используемой системы это выполняется разными командами.

а) Deb (Ubuntu / Debian / Astra Linux):

apt purge open-vm-tools
б) RPM (Rocky Linux / РЕД ОС / CentOS):

yum erase open-vm-tools
Установка гостевой утилиты Proxmox (qemu)
В зависимости от типа Linux команды будут отличаться.

а) DEB-based (Ubuntu / Debian / Astra Linux):

apt update
apt install qemu-guest-agent
б) RPM (Rocky Linux / РЕД ОС / CentOS):

yum install qemu-guest-agent
Установка завершена.

Для запуска сервиса выполняем:
systemctl enable qemu-guest-agent --now
В сводке виртуальной машины мы теперь можем увидеть информацию об IP-адресе, которая получена при помощи гостевого агента.

Создание шаблона
Если нам нужно создать шаблон из импортированной виртуальной машины, вводим:

qm template 333На этом моменте я перестал читать, и удивился, почему не грузится. Решение простое - тип контроллера устанавливаем VmwareParavirtualх. Другой вариант - ниже, я не пробовал

Решение возможных проблем
Рассмотрим в данном разделе проблемы, с которыми столкнулся я.

Dracut: /dev/disk/by-uuid does not exist
Система не грузится на импортированной виртуальной машине, выдавая ошибку загрузки. Сообщения могут быть разные, например:

dracut warning: /dev/disk/by-uuid/xxxx does not exist

Причина: в перенесенной системе нет нужных драйверов для дискового контроллера, как правило, scsi.

Решение: мы можем изменить настройку виртуальной машины на использование контроллера sata. Как правило, это решает проблему и позволяет загрузить виртуальную машину.

Изменения нужно внести в конфигурационном файле виртуальной машины

vi /etc/pve/qemu-server/<VMID>.conf
Необходимо заменить scsi0 на sata0.

Это можно сделать одной командой sed. Например, для нашей перенесенной машины:

sed -i 's/scsi0/sata0/' /etc/pve/qemu-server/333.conf