Миграция виртуальных машин с Hyper-V на Proxmox VE

Миграция виртуальных машин с Hyper-V на Proxmox VE 

— задача с нюансами. Главная сложность в том, что платформы используют разные форматы дисков: Hyper-V работает с VHD/VHDX, а Proxmox — с QCOW2 или RAW.

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

📝 Подготовка: Ключевой этап для Windows ВМ

Этот этап критически важен для Windows-машин. Если его пропустить, виртуальная машина после переноса может не загрузиться или работать нестабильно.

Установите VirtIO-драйверы
: Это драйверы для виртуальных устройств (дисков, сетевых карт), которые использует Proxmox.
  • Скачайте последний ISO-образ с драйверами с официального сайта Proxmox.
  • Подключите этот ISO как DVD-привод к вашей работающей ВМ в Hyper-V.
  • Запустите внутри ВМ файл virtio-win-gt-x64.msi из корня ISO и установите все компоненты.
Установите QEMU Guest Agent: Эта программа улучшает управление ВМ и взаимодействие с хостом.
Тот же ISO-образ в папке guest-agent содержит установщик qemu-ga-x86_64.msi. Установите его.
После установки проверьте в PowerShell статус: Get-Service QEMU-GA. Должно быть Running.
Удалите контрольные точки (Checkpoints): Все снимки состояния ВМ (файлы .avhdx) должны быть удалены и объединены с основным диском. В противном случае, миграция, скорее всего, завершится ошибкой.
Запишите настройки сети: Обязательно запишите текущий IP-адрес, маску, шлюз и DNS-сервера. После миграции сетевые настройки могут сбиться.
Определите поколение ВМ:

  • Generation 1 использует Legacy BIOS.
  • Generation 2 использует UEFI.
  • Эта информация понадобится при создании новой ВМ в Proxmox.

⚙️ Основной метод: Ручная миграция (Самый надежный)

Этот метод дает полный контроль над процессом и подходит для любых ВМ.

Шаг 1: Экспорт ВМ из Hyper-V

  • Откройте Hyper-V Manager, найдите нужную ВМ, нажмите на нее правой кнопкой мыши и выберите Export....
  • Укажите папку для экспорта. В этой папке будут все файлы ВМ, включая файл виртуального диска (.vhdx).

Шаг 2: Копирование файла диска на хост Proxmox

Скопируйте файл .vhdx (обычно лежит в папке Virtual Hard Disks внутри экспортированной ВМ) на ваш сервер Proxmox. Можно использовать scp, rsync или WinSCP.

Шаг 3: Конвертация диска в формат QCOW2

  • Войдите в оболочку (shell) вашего сервера Proxmox.
  • Выполните команду для конвертации. Укажите пути к исходному .vhdx и целевому .qcow2 файлу:
    bash
    qemu-img convert -O qcow2 /путь/к/файлу.vhdx /путь/к/новому-файлу.qcow2
    Важно: Для повышения производительности рекомендуется размещать файл .qcow2 в директории хранения Proxmox (например, /var/lib/vz/images/).

Шаг 4: Создание ВМ в Proxmox и подключение диска


  • В веб-интерфейсе Proxmox нажмите Create VM.
  • На вкладке General задайте имя и ID.
  • На вкладке OS выберите Do not use any media.
  • На вкладке System выберите правильный BIOS (seabios для Generation 1 или OVMF для Generation 2).
  • На вкладке Disks удалите предлагаемый по умолчанию диск (нажмите на корзину).
  • Настройте CPU, Memory и Network, максимально приблизив их к настройкам исходной ВМ в Hyper-V.
  • Важно: Убедитесь, что на последнем шаге НЕ отмечена галочка Start after created. Нажмите Finish.
  • Теперь подключите сконвертированный диск к новой ВМ. Выполните в shell Proxmox команду (замените <ID_ВМ> на ID созданной ВМ, а <путь_к_файлу.qcow2> — на фактический путь):
bash
qm set <ID_ВМ> --scsi0 local-lvm:0,import-from=<путь_к_файлу.qcow2>

Или, если файл уже лежит в хранилище, можно сначала выполнить qm rescan, а затем добавить диск через веб-интерфейс.

Шаг 5: Первый запуск и установка драйверов
Запустите ВМ. Windows должна обнаружить новое оборудование и попросить драйверы. Укажите ей тот же ISO-образ с VirtIO-драйверами, который вы использовали при подготовке.

🛠️ Альтернативные методы

  • Встроенный мастер импорта Proxmox: Появился в новых версиях. Позволяет импортировать ВМ напрямую из расшаренной по SMB папки с VHDX-файлами через веб-интерфейс Proxmox.
  • Скрипт hv2pve: Существует инструмент на GitHub, который автоматизирует процесс. Он использует PowerShell для экспорта ВМ из Hyper-V и переносит их в Proxmox. Требует настройки и подходит для пакетной миграции.
  • Сторонние решения: Существуют коммерческие продукты (например, Vinchin Backup & Recovery, StarWind V2V Converter), которые предлагают более простые и часто графические интерфейсы для миграции.

💎 Заключение и важные советы

Миграция с Hyper-V на Proxmox — процесс, требующий внимания, но вполне выполнимый.

  • Планируйте "холодную" миграцию: Описанный выше ручной метод требует, чтобы виртуальная машина была выключена. Это гарантирует целостность данных.
  • Всегда делайте резервную копию: Перед началом любых манипуляций создайте полную резервную копию вашей ВМ в Hyper-V. Это позволит вам откатиться назад в случае ошибки.
  • Проверяйте на тестовой ВМ: Прежде чем мигрировать критические сервисы, потренируйтесь на какой-нибудь тестовой машине.