Перенос (миграция) виртуальных машин с VMware ESXi на Proxmox

В недавно вышедшей версии гипервизора Proxmox VE 8.2 появился встроенный мастер для прямого импорта виртуальных машин с хостов VMware ESXi. В этой статье мы рассмотрим несколько сценарий переноса (миграций) ВМ с ESXi (vCenter) на хост Proxmox.

Импорт виртуальных машин в Proxmox из ESXi

Рассмотрим, как перенести настроенную ВМ с хоста ESXi на Proxmox.

Основные ограничения:

  • Поддерживается импорт ВМ с ESXi с 6.5 до 8 версий
  • Не поддерживается импорт дисков ВМ с хранилища vSAN
  • Если у исходной ВМ есть снапшоты, импорт выполняется значительно медленнее
  • Также производительность импорта снижается при копировании ВМ через vCenter. Поэтому предпочтительнее использовать прямое подключение к ESXi.

Добавьте в Proxmox хост ESXi (или vCenter) в качестве хранилища: Datacenter -> Storage -> Add -> ESXi .

Подключить ESXi хранилище в Proxmox

Укажите название подключение, имя (IP) хоста ESXi и учетную запись для доступа к нему (обычно root ). Включите опцию Skip Certificate Verification , чтобы игнорировать сертификат VMware хоста.

Параметры подключение к ESXi

Перед импортом нужно выполнить ряд предварительных действия на исходной ВМ. В случае виртуальной машины VMware с гостевой ОС Windows:

  • Удалить компоненты VMWare Tools в гостевой ОС. Вы можете с помощью PowerShell можно удалить компоненты VMWare Tools в Windows:
    msiexec.exe /x (Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -eq 'VMware Tools'}).LocalPackage
    PowerShell: удалить VMtools в виртуалной машине
  • Скачать ISO образ и установить набор драйверов и компонентов интеграции VirtIO Установить Virtio гостевые драйверы в WIndows
  • Запомните текущие настройки сетевых интерфейсов (если используется статический IP адрес). При миграции может быть создан новый сетевой интерфейс, а старый стать скрытым ( как удалить скрытый сетевой адаптер в Windows ). Настроить старый IP адрес на новом адаптере придется вручную.
  • Рекомендуется выключить исходную ВМ (возможна и живая миграция запущенной ВМ, но она будет выполняться дольше).
  • Удалите снапшоты (если это применимо). При наличии снапшотов миграция выполняется заметно дольше.

Затем выберите на хосте ESXi ВМ, которую вы хотите смигрировать в Proxmox и нажмите Import .

Импорт ВМ из esxi в Proxmox

Далее укажите настройки новой виртуальной машины на Proxmox, куда будет выполнена миграция. По умолчанию мастер копирует настройки vCPU, RAM и имя ВМ. Выберите хранилище Proxmox, в которое нужно поместить новую ВМ и формат виртуального диска. Несмотря на то, что Proxmox поддерживает формат VMDK, желательно использовать нативный формат виртуальных дисков (qcow2 или raw).

Настройки новой ВМ в proxmox

На вкладке Advanced нужно добавить поддержку контроллера VirtIO SCSI , а в качестве виртуального сетевого адаптера выбрать VirtIO paravirtualized вместо vmxnet3.

Proxmox: изменить тип контроллера на SCSI и сетевой адаптер на VirtIO

Нажать кнопку Import чтобы начать копирование файлов виртуальной машины.

перенос ВМ из VMware в Proxmox

После окончания переноса ВМ нужно сделать ряд дополнительных шагов. По умолчанию после миграция у ВМ для подключения дисков используется sata контроллер. Если сразу подключить его через VirtIO SCSI контроллер, гостевая Windows не загрузится.

Поэтому сначала нужно к ВМ временно добавить небольшой 1Гб диск, подключенный через SCSI контроллер.

Добавить SCSI диск в Proxmox

Также на вкладке Options нужно разрешить использовать QEMU Guest Agent.

Установить QEMU Guest Agent в ВМ

Запустите виртуальную машину. Дождитесь, когда гостевая Windows загрузится (будут автоматически установлены драйвера для SCSI контроллера). После этого выключите ВМ.

Выберите временный диск, отключите и удалите его. Затем выберите в настройка ВМ основной диск, нажмите Detach.

Подключить диск через SCSI контроллер в ВМ proxmox

Статус диска изменится на Unused. Подключите диск через SCSI VirtIO single контроллер. Временный 1 Гб диск можно удалить.

Подключить диск через SCSI VirtIO single контроллер

Затем на вкладке Options отредактируйте порядок загрузки (boot order). Выберите ваш SCSI диск в качестве первичного загрузочного устройства.

Изменить порядок загрузки ВМ с sata на scsi

Затем включите ВМ, убедитесь, что Windows загрузилась и проверьте (и измените, если нужно) настройки сетевого адаптера.

Ручной перенос виртуальных машин с VMware ESXi на Proxmox

В предыдущих версиях Proxmox можно было вручную перенести виртуальны машины с хоста ESXi с помощью:

  • Импорта экспортированной ВМ в формате OVF. Для этого на хосте ESXi выполяется конвертация ВМ в формат шаблона OVF. Затем этот файл нужно скопировать на Proxmox и импортировать в виртуальную машину командой:
    qm importovf {vmid} {VM name}.ovf {target storage}
    VMware - экспорт в OVF формат
  • Ручное создание ВМ в Proxmox, копирование виртуального диска (VMDK) на хранилище, доступное в Proxmox. После этого диск можно подключить к нужной ВМ.

Рассмотрим подробнее второй способ переноса VMDK на Proxmox.

  1. Создайте новую ВМ на Proxmox с нужными характеристиками
  2. Включите SSH доступ на ESXi
  3. Определите местонахождение файлов ВМ на хосте ESXi. Скопируйте полный путь к ВМ из веб интерфейса vSphere (в формате /vmfs/volumes/{volume_id} ) Путь к хранилищу на VMFS
  4. Скопируйте *.VMDK и *-flat.VMDK файла с хоста ESXi в хранилище Proxmox с помощью scp: scp -v [email protected] :/vmfs/volumes/{volume_id}/win-app01/win-app01-flat.vmdk /ZFS100/
    scp -v [email protected] :/vmfs/volumes/{volume_id}/win-app01/win-app01.vmdk /ZFS100/

    scp - скопировать VMDK файл с ESXi на Proxmox

  5. Затем импортируйте скопированные диски в ВМ на Proxmox командой: qm disk import {target VMID} {vmdk file} {target storage}
    Например:
    qm disk import 103 win-app01.vmdk ZFS100
    qm disk import - импорт VMDK диска в виртуальную машину Proxmox
  6. Выполните дополнительные шаги, чтобы подключить новые диск в ВМ через SCSI контроллер (описаны выше).
  7. Отключите исходную ВМ и включите новую на хосте Proxmox.

Итак, мы рассмотрели особенности миграции виртуальных машин Windows с VMware ESXi на Proxmox.

EnglishRussianUkrainian