В недавно вышедшей версии гипервизора 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.
Укажите название подключение, имя (IP) хоста ESXi и учетную запись для доступа к нему (обычно root). Включите опцию Skip Certificate Verification, чтобы игнорировать сертификат VMware хоста.
Перед импортом нужно выполнить ряд предварительных действия на исходной ВМ. В случае виртуальной машины VMware с гостевой ОС Windows:
- Удалить компоненты VMWare Tools в гостевой ОС. Вы можете с помощью PowerShell можно удалить компоненты VMWare Tools в Windows:
msiexec.exe /x (Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -eq 'VMware Tools'}).LocalPackage
- Скачать ISO образ и установить набор драйверов и компонентов интеграции VirtIO
- Запомните текущие настройки сетевых интерфейсов (если используется статический IP адрес). При миграции может быть создан новый сетевой интерфейс, а старый стать скрытым (как удалить скрытый сетевой адаптер в Windows). Настроить старый IP адрес на новом адаптере придется вручную.
- Рекомендуется выключить исходную ВМ (возможна и живая миграция запущенной ВМ, но она будет выполняться дольше).
- Удалите снапшоты (если это применимо). При наличии снапшотов миграция выполняется заметно дольше.
Затем выберите на хосте ESXi ВМ, которую вы хотите смигрировать в Proxmox и нажмите Import.
Далее укажите настройки новой виртуальной машины на Proxmox, куда будет выполнена миграция. По умолчанию мастер копирует настройки vCPU, RAM и имя ВМ. Выберите хранилище Proxmox, в которое нужно поместить новую ВМ и формат виртуального диска. Несмотря на то, что Proxmox поддерживает формат VMDK, желательно использовать нативный формат виртуальных дисков (qcow2 или raw).
На вкладке Advanced нужно добавить поддержку контроллера VirtIO SCSI, а в качестве виртуального сетевого адаптера выбрать VirtIO paravirtualized вместо vmxnet3.
Нажать кнопку Import чтобы начать копирование файлов виртуальной машины.
После окончания переноса ВМ нужно сделать ряд дополнительных шагов. По умолчанию после миграция у ВМ для подключения дисков используется sata контроллер. Если сразу подключить его через VirtIO SCSI контроллер, гостевая Windows не загрузится.
Поэтому сначала нужно к ВМ временно добавить небольшой 1Гб диск, подключенный через SCSI контроллер.
Также на вкладке Options нужно разрешить использовать QEMU Guest Agent.
Запустите виртуальную машину. Дождитесь, когда гостевая Windows загрузится (будут автоматически установлены драйвера для SCSI контроллера). После этого выключите ВМ.
Выберите временный диск, отключите и удалите его. Затем выберите в настройка ВМ основной диск, нажмите Detach.
Статус диска изменится на Unused. Подключите диск через SCSI VirtIO single контроллер. Временный 1 Гб диск можно удалить.
Затем на вкладке Options отредактируйте порядок загрузки (boot order). Выберите ваш SCSI диск в качестве первичного загрузочного устройства.
Затем включите ВМ, убедитесь, что Windows загрузилась и проверьте (и измените, если нужно) настройки сетевого адаптера.
Ручной перенос виртуальных машин с VMware ESXi на Proxmox
В предыдущих версиях Proxmox можно было вручную перенести виртуальны машины с хоста ESXi с помощью:
- Импорта экспортированной ВМ в формате OVF. Для этого на хосте ESXi выполяется конвертация ВМ в формат шаблона OVF. Затем этот файл нужно скопировать на Proxmox и импортировать в виртуальную машину командой:
qm importovf {vmid} {VM name}.ovf {target storage}
- Ручное создание ВМ в Proxmox, копирование виртуального диска (VMDK) на хранилище, доступное в Proxmox. После этого диск можно подключить к нужной ВМ.
Рассмотрим подробнее второй способ переноса VMDK на Proxmox.
- Создайте новую ВМ на Proxmox с нужными характеристиками
- Включите SSH доступ на ESXi
- Определите местонахождение файлов ВМ на хосте ESXi. Скопируйте полный путь к ВМ из веб интерфейса vSphere (в формате /vmfs/volumes/{volume_id})
- Скопируйте
*.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/ - Затем импортируйте скопированные диски в ВМ на Proxmox командой:
qm disk import {target VMID} {vmdk file} {target storage}
Например:
qm disk import 103 win-app01.vmdk ZFS100
- Выполните дополнительные шаги, чтобы подключить новые диск в ВМ через SCSI контроллер (описаны выше).
- Отключите исходную ВМ и включите новую на хосте Proxmox.
Итак, мы рассмотрели особенности миграции виртуальных машин Windows с VMware ESXi на Proxmox.