Самостоятельная миграция с помощью virt-v2v

Описание

В руководстве показан один из способов самостоятельной миграции виртуальной машины с VMware ESXi 6.7 в SIM-Cloud. Утилита virt-v2v преобразует системный диск и добавляет VirtIO-драйверы, необходимые гостевой ОС Windows для работы на KVM. Дополнительные диски с данными переносятся без такой обработки.

Используйте готовый образ SIM-V2V или разверните собственный сервер Linux с virt-v2v. Операция требует навыков администрирования Linux, Windows, VMware и SIM-Cloud.

Предупреждение

Перед миграцией создайте проверенную резервную копию исходной машины. Команды dd записывают данные непосредственно на блочное устройство; ошибка в имени диска необратимо уничтожит его содержимое.

Подготовка к миграции

Для системного диска Windows:

  1. Удалите VMware Tools из гостевой ОС.

  2. Корректно выключите виртуальную машину. Копирование работающей машины может привести к несогласованному состоянию данных.

  3. Убедитесь, что на ESXi разрешён доступ для выбранной учётной записи и что сервер миграции может подключиться к нему по сети.

Linux обычно не требует внедрения VirtIO-драйверов. Для дополнительного диска с данными также достаточно получить образ raw и записать его на облачный диск подходящего размера.

Ознакомьтесь с разделами Быстрый старт, Подключение диска и Отключение диска.

Запуск SIM-V2V

  1. Создайте инстанс из образа SIM-V2V. Рекомендуется конфигурация не менее 2 vCPU и 4 ГБ RAM. Данные для первого входа в исходный подготовленный образ: пользователь root, пароль sim-v2v.

  2. Сразу после входа замените пароль.

  3. Создайте и подключите дополнительный диск типа gs1 для рабочих файлов. Его объём должен включать исходные и преобразованные образы. Для образа 200 ГБ предусмотрите около 500 ГБ рабочего пространства.

  4. Создайте файловую систему и смонтируйте диск в /data по инструкции Подключение дополнительного диска.

Копирование дисков из VMware ESXi

Перейдите в рабочий каталог:

cd /data

Скопируйте выключенную виртуальную машину:

virt-v2v-copy-to-local -ic esx://user_esxi@esxi.example.net VM_NAME

При запросе введите пароль пользователя ESXi. Для подробной диагностики добавьте параметры -v -x.

Если ESXi использует недоверенный самоподписанный сертификат, после проверки адреса сервера можно явно отключить проверку для этой операции:

virt-v2v-copy-to-local -ic 'esx://user_esxi@esxi.example.net/?no_verify=1' VM_NAME -v -x

Предупреждение

no_verify=1 отключает проверку подлинности сервера и повышает риск атаки посредника. Используйте его только в доверенной сети и после независимой проверки адреса ESXi.

Проверьте полученные файлы:

ls -lh /data
qemu-img info /data/VM_NAME-disk1

В примере virt-v2v-copy-to-local создаёт образы дисков в формате raw и XML-описание виртуальной машины. Время копирования зависит от размера дисков и пропускной способности соединения.

Конвертация системного диска

Для Windows преобразуйте только системный диск:

virt-v2v -i disk /data/VM_NAME-disk1 -o local -os /data

Утилита определит версию Windows, установит подходящие VirtIO-драйверы и создаст новый файл, например VM_NAME-disk1-sda. Проверьте его:

ls -lh /data/VM_NAME-disk1-sda
qemu-img info /data/VM_NAME-disk1-sda

Предупреждение об отсутствии драйвера QXL допустимо: система будет использовать базовый VGA-драйвер. Не устанавливайте QXL из старого комплекта образа, если он вызывает перевёрнутое или зеркальное изображение консоли.

Дополнительные диски уже имеют формат raw и не требуют запуска virt-v2v.

Копирование образов на облачные диски

  1. Для каждого образа создайте пустой диск SIM-Cloud. Его размер должен быть не меньше значения virtual size из qemu-img info.

  2. Подключите диск к инстансу SIM-V2V и определите имя нового устройства:

    fdisk -l
    
  3. Ещё раз сопоставьте размер и имя. Запишите системный образ, например, на /dev/vdc:

    dd if=/data/VM_NAME-disk1-sda of=/dev/vdc bs=32M status=progress conv=fsync
    
  4. Для дополнительного диска используйте исходный raw-файл:

    dd if=/data/VM_NAME-disk2 of=/dev/vdd bs=32M status=progress conv=fsync
    
  5. После завершения выполните sync, отключите диски средствами SIM-Cloud и пометьте системный диск как Bootable через OpenStack CLI:

    openstack volume set --bootable <SYSTEM_VOLUME_ID>
    

Запуск перенесённого инстанса

  1. Запустите новый инстанс из подготовленного системного диска.

  2. Выберите подходящий тип, сеть и группы безопасности.

  3. После успешной загрузки подключите перенесённые диски с данными.

  4. Проверьте IP-адреса, маршруты, DNS, системное время, службы, приложения и лицензии. Сетевые параметры в SIM-Cloud отличаются от исходной среды.

Установка драйверов в Windows

После первого запуска откройте Device Manager. Для устройств без драйверов выберите Update driverBrowse my computer for driversLet me pick from a list и установите соответствующий драйвер из стабильного комплекта VirtIO.

../../_images/virtio_driver_1.png

Для сетевого контроллера выберите Red Hat VirtIO Ethernet Adapter.

../../_images/virtio_driver_5.png

Подтвердите доверие программному обеспечению Red Hat и завершите установку.

../../_images/virtio_driver_7.png

Аналогично установите VirtIO Balloon Driver для PCI-устройства.

../../_images/virtio_driver_9.png

После установки драйверов установите QEMU Guest Agent (qemu-ga-x64.msi из каталога guest-agent официального стабильного образа VirtIO). Перезагрузите Windows и убедитесь, что в диспетчере устройств нет неизвестных устройств.

Создание собственного сервера миграции

Вместо SIM-V2V можно использовать совместимый сервер Linux. Для старого окружения CentOS 7 последовательность установки выглядела так:

yum update -y
yum install virt-v2v xorriso -y
wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install virtio-win -y

Проверьте версии пакетов и источник репозитория перед использованием: CentOS 7 и приведённый комплект драйверов устарели. Для новой миграции предпочтительнее актуальный поддерживаемый дистрибутив и стабильный VirtIO ISO из официального репозитория Fedora.

Если конкретные драйверы QXL вызывают проблемы с консолью, создайте копию ISO без каталогов qxl и qxldod и укажите её virt-v2v. Не изменяйте единственный исходный образ драйверов и документируйте версию использованного комплекта.

После переноса выполните полный функциональный тест сервера: загрузку ОС, доступность дисков, сеть, службы, приложения, резервное копирование и лицензии. Переключайте рабочую нагрузку только после успешной проверки.