Конвертировать vmware в hyper v

Обновлено: 06.07.2024

Конвертируем виртуальные машины VMWare в Hyper-V и обратно.

Работая с виртуализацией периодически возникает потребность в переносе виртуальных машин с одного типа гипервизора на другой. Так как каждая система виртуализации работает со своими форматами, то просто так перенести машину не удастся, потребуется преобразовать ее в формат нужного гипервизора. Сегодня мы расскажем, как это сделать для двух наиболее популярных систем виртуализации VMWare и Hyper-V.

Любая виртуальная машина, вне зависимости от платформы, состоит из двух основных частей: собственно, виртуальной машины - текстового или XML-файла с описанием ее конфигурации и виртуального жесткого диска. Переносить саму виртуальную машину не имеет никакого смысла, мы же не переносим железо, если нам надо запустить систему на другом ПК, достаточно перенести виртуальный диск.

Форматы виртуальных дисков у разных гипервизоров также различны, однако это не представляет сложности - достаточно использовать специализированное ПО для конвертации. Единственная тонкость - гостевая ОС должна поддерживаться обоими типами гипервизора. В противном случае придется предпринимать дополнительные меры для обеспечения нормальной работы, однако эта тема выходит за рамки данной статьи.

Рассмотрим процесс на реальном примере. Один наш клиент приобрел коробочную версию "Мегаплан", который разработчики распространяют весьма оригинальным способом: в виде образа виртуальной машины формата Open Virtualization Format (OVF), который поддерживают VMWare и VirtualBox. Собственно, внутри виртуалки содержится Ubuntu 12.04 с настроенным веб-сервером, СУБД и прочими компонентами необходимыми для работы "Мегаплана", который представляет собой обычное веб-приложение. При этом лицензионное соглашение запрещает доступ к гостевой ОС.

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

vmware-to-hyper-v-001.jpg

Если с VMWare это не составляет особых проблем, OVF импортируют все ее продукты "из коробки", то владельцам Hyper-V повезло меньше, импорт OVF возможен только через модуль к System Center - Virtual Machine Manager. Поэтому придется идти другим путем - конвертацией виртуальной машины формата VMWare.

Для первоначального развертывания воспользуемся любым продуктом VMWare, с помощью которого произведем импорт OVF файла в виртуальную машину. Затем, не запуская ее, внимательно изучим настройки, особенно в той части, которые касаются выделяемых ресурсов и сети.

vmware-to-hyper-v-002.jpg

Если виртуальная машина уже работала на платформе VMWare (как чаще всего и бывает), то удаляем из нее VMWare Tools и выключаем машину.

Теперь можно приступать к конвертации виртуального диска. Для этого воспользуемся бесплатной утилитой StarWind V2V Converter. Ее интерфейс и использование предельно просты. Выберем исходный виртуальный диск (файл с расширением vmdk).

vmware-to-hyper-v-003.jpg

Как видим, это расширяемый диск размером 97,7 ГБ, теперь выберем необходимый формат, для Hyper-V это формат MS Virtual PC. Нам доступны два варианта диска: расширяемый (growable) и pre-allocated, когда место выделяется на диске сразу. Нас интересует первый вариант.

vmware-to-hyper-v-004.jpg

По окончании конвертации в папке с виртуальной машиной появится второй файл виртуального диска в формате Hyper-V.

vmware-to-hyper-v-005.jpg

Его следует скопировать отсюда и разместить в хранилище виртуальных дисков Hyper-V.

vmware-to-hyper-v-006.jpg

Теперь создадим новую виртуальную машину Hyper-V первого поколения и в опциях выбора жесткого диска укажем на сконвертированный файл.

vmware-to-hyper-v-007.jpg

После создания перейдем к настройкам и выделим ресурсы согласно тем требованиям, которые были в настройках машины в VMWare, при этом указанные там параметры не догма, руководствуйтесь здравым смыслом и собственной оценкой необходимых ресурсов.

vmware-to-hyper-v-011.jpg

В появившемся мастере выберите Преобразовать, укажите формат (VHDX) и тип (расширяемый) диска, а также его имя и расположение:

vmware-to-hyper-v-012.jpg

После нажатия на кнопку Готово начнется процесс преобразования диска, что может занять продолжительное время и потребовать дисковых ресурсов, поэтому лучше всего выполнять это действие в нерабочее время.

По окончании преобразования еще раз заходим в свойства жесткого диска и выбираем там VHDX образ, подтверждаем изменения и запускаем виртуальную машину. Убедившись, что все работает нормально, старый VHD диск можно удалить.

Конвертация Hyper-V виртуальных машин в VMWare производится аналогичным образом. Конвертируем виртуальный диск в VMDK, если использовался диск формата VHDX, то предварительно его следует преобразовать в VHD средствами Hyper-V аналогично тому как мы делали выше. Затем создаем в VMWare виртуальную машину для используемой гостевой системы с идентичными параметрами и в настройках диска указываем использовать сконвертитрованый нами VMDK диск. После запуска виртуальной машины не забываем установить пакет VMWare Tools необходимый для полноценной работы гостевой системы.


Периодически я слышу от практикующих инженеров странное: VMDK, VHD и VHDX – абсолютно разные форматы виртуальных дисков, чуть ли не закрытые, а конвертировать из одного в другое – долго и больно. Сегодня наглядно покажу, что это не так, разберу, как эти форматы соотносятся друг с другом и как делать быструю конвертацию при миграции с Hyper-V на VMware и обратно.

Немного теории. C точки зрения свойств, виртуальные диски делятся на два типа:

  • тонкие (thin disk, dynamic disk) и
  • толстые (thick disk, fixed disk). Все остальное — разностные, thick provisioned lazy- zeroed – лишь вариации на тему.

Форматы дисков

RAW – «сырой» образ любого диска. Это обычный контейнер, который не содержит никаких специфических заголовков и футеров и представляет образ диска «как есть». Если мы откроем такой образ HEX-редактором, то сразу увидим заголовки GPT/MBR и/или файловой системы. Точно такой же образ получается через команду dd в Linux. RAW в этом плане абсолютно честен с нами.



Начало файла RAW.



Конец файла RAW.

VMDK. VMware ESXi – обыкновенный RAW, где геометрия диска описывается в обычном текстовом файле-описателе (дескрипторе). Именно его имя мы видим в vSphere Console, когда подключаем виртуальный диск к виртуальной машине или просматриваем содержимое каталога на Datastore. VMware ESXi ничего не делает с образом. Совсем. Диск покоится себе и расширяется по мере необходимости. В лучших традициях VMware формат описателя очень простой:


И он не только простой, но и функциональный: достаточно сделать пометки в файле-описателе, чтобы расширить виртуальный диск до каких угодно поддерживаемых значений. Это позволяет заполнить диски нулями или пометить его как тонкий, без необходимости держать информацию о геометрии в заголовках диска.

Ниже представлены некоторые стандартные значения всех разделов дескриптора:

Описание всех значений можно посмотреть в спецификации формата: VMware Virtual Disk Format 1.1

VHD. Толстый VHD – тот же самый RAW, но с 512-байтным футером, где описывается геометрия диска. Какого-то отдельного файла-описателя у виртуальной машины Microsoft Hyper-V нет. Описание геометрии диска занимает 4 байта. Собственно, отсюда ограничение на размер диска в 2 Тб.



Футер. Последние 512 байт диска.

Самое интересное, что если создать файл-описатель и подсунуть в ESXi VHD-диск с футером, то гипервизор VMware проигнорирует этот футер и примет VHD как родной.

При Storage vMotion с конвертацией диска в тонкий он просто отрежет этот футер, и на выходе мы получим тот же RAW без нулей в конце. А при конвертации в толстый диск – честный RAW. Это я и собираюсь продемонстрировать чуть позже.

VHDX. Вся информация о геометрии диска хранится в первых 4096 Кбайтах виртуального диска – в области заголовка.



Общая схема толстого диска VHDX.

Что представляет из себя эта область? В ней содержатся две копии заголовков со своими логами, BAT и область метаданных общие.



Логическая структура заголовка диска.

В единицу времени только одна копия заголовка активна. Это обеспечивает определенный уровень отказоустойчивости заголовка в случае незапланированных прерываний операций чтения/записи. После каждой операции I/O копия реплицируется, и происходит переключение на нее.



Макет области заголовка.

Для конвертации VHDX в RAW нам всего-то нужно отрезать первые 4096 KB.



Начало данных на 5 МБ.

Внимательный читатель, конечно же, скажет: ок, Женька, а слабо RAW конвертнуть в VHDX? На что я отвечу: зависит от файловой системы и от того, насколько она позволяет записывать данные в начало файла. Вручную на файловой системе NTFS это можно сделать, сместив в MFT начало файла на 4 Мб вперед и дописав в это место заголовок.

По этому же принципу работает утилита vhdxtool.exe. Однако при этом преобразовании мы не получим красивую картинку в виде 4 Мбайт заголовка и RAW. Диск будет виден и даже будет корректно работать как VHDX, но будет и много «мусора» из нулей, появившихся из-за манипуляций со смещениями (offsets). Диск будет не оптимизирован. ВМ с таким диском рекомендуется смигрировать на другой том или оптимизировать через командлеты Convert-VHD или Optimize-VHD. Если этого не сделать, диск будет занимать больше места, чем должен, и, возможно, медленнее работать.

Однако в сценариях миграции с VMware на Hyper-V эта утилита незаменима, так как позволяет провести преобразование на месте, без необходимости побайтового считывания исходного диска и создания рядом копии. Все шероховатости будут сглажены при первом же Storage Live Migration.

Вывод: толстые диски форматов VMDK, VHD, VHDX на деле мало чем отличаются друг от друга. В их основе RAW c различными добавками. Тем же HEX-редактором или функциями ОС для работы с файловой системой мы можем за пару секунд превратить 10 Тб VMDK или VHDХ в диск целевого гипервизора.

Давайте на практике посмотрим, как VMware Exsi справится с VHD.

    В качестве примера я создал образ Windows Server с помощью Convert-WindowsImage с инъекцией драйверов VMware и параметрами:

  • OS Version: Windows Server 2019 Standard,
  • Disk Type: Fixed,
  • Disk Layout: GPT,
  • Disk Size: 30GB.

Если не хочется фокусов, то можно воспользоваться инструментами ниже.

Исходный формат
Целевой формат
Инструменты
Пример команды
VHD
VHDX
vhdxtool.exe
vhdxtool upgrade -f <имя файла>.vhd
VMDK (RAW)
VHD
vhdtool.exe
vhdtool /convert <имя файла flat>.vmdk
VMDK (RAW)
VHDX
vhdtool.exe
vhdxtool.exe
vhdtool /convert <имя файла flat>.vmdk

Подведем итоги. Различные форматы толстых виртуальных дисков не такие уж разные. В основе всего RAW с различными “добавками”.

Конвертация форматов виртуальных дисков — это не страшно, и, как я показал, иногда можно обходиться даже без нее.

Основной профит всего этого — сокращение времени миграции с Hyper-V на VMware и обратно и времени простоя ВМ при миграции. В DataLine мы такое практикуем с простоем ВМ менее 30 минут. Рекорд же — 40 секунд простоя ВМ при миграции между гипервизорами.

Только помните, что при миграции между разными гипервизорами одной конвертации недостаточно. Как минимум нужно предварительно поставить компоненты интеграции целевого гипервизора, удалить или отключить запуск компонентов исходного гипервизора, удалить виртуальные устройства исходного гипервизора и т.д. Но это уже совсем другая история, о которой я тоже могу рассказать.

Поддержка этой версии Virtual Machine Manager (VMM) прекращена. Рекомендуем перейти на VMM 2019.

В этой статье описано, как преобразовать в узлы Hyper-V виртуальные машины VMware в структуре System Center Virtual Machine Manager (VMM).

Вы можете преобразовать виртуальные машины с помощью мастера Преобразовать виртуальную машину.

VMM 2019 UR3 поддерживает преобразование виртуальных машин VMWare в Hyper-V и Azure Stack HCI 20H2. Дополнительные сведения о поддержке Azure Stack HCI 20H2.

Мастер преобразования виртуальных машин. Этот мастер можно использовать в консоли VMM. Этот метод имеет ряд ограничений.

  • См. подробнее о требованиях к системе для поддерживаемых версий vSphere (ESXi).
  • Нельзя преобразовывать рабочие станции VMware.
  • Нельзя преобразовывать виртуальные машины с виртуальными жесткими дисками, подключенными к шине IDE.
  • Оперативное преобразование не поддерживается. Необходимо выключать виртуальные машины VMware.
  • Должны поддерживаться антивирусные программы.
  • Средства VMware необходимо удалить из операционной системы виртуальной машины.

В настоящее время есть два способа преобразования виртуальных машин VMWare в узлы Hyper-V.

  • Мастер преобразования виртуальных машин. Этот мастер можно использовать в консоли VMM. Этот метод имеет ряд ограничений.
    • См. подробнее о требованиях к системе для поддерживаемых версий vSphere (ESXi).
    • Нельзя преобразовывать рабочие станции VMware.
    • Нельзя преобразовывать виртуальные машины с виртуальными жесткими дисками, подключенными к шине IDE.
    • Оперативное преобразование не поддерживается. Необходимо выключать виртуальные машины VMware.
    • Должны поддерживаться антивирусные программы.
    • Средства VMware необходимо удалить из операционной системы виртуальной машины.

    Служба Azure Site Recovery сейчас не поддерживает прямое преобразование из VMware в Hyper-V. Дополнительные сведения о том, как проголосовать за реализацию этого решения.

    Преобразование с помощью мастера

    1. Щелкните Виртуальные машины (VM) и службы > Главная > Создать > Создать виртуальные машины > Преобразовать виртуальную машину.
    2. На странице Мастер преобразования виртуальной машины > Выбор источника нажмите кнопку Обзор, а затем на странице Выбор источника виртуальной машины выберите виртуальные машины VMware, которые нужно преобразовать.
    3. На странице Указание удостоверения виртуальной машины измените имя и описание машины требуемым образом.
    4. На странице Конфигурация виртуальной машины укажите число процессоров и параметры памяти.
    5. В окне Выбор узла выберите узел Hyper-V или Azure Stack HCI (применимо в VMM 2019 UR3 и более поздних версий) для размещения. На странице Выбор пути настройте место хранения файлов виртуальной машины на узле. Указаны пути виртуальной машины по умолчанию.
    6. На странице Выбор сетей выберите логическую сеть, виртуальную сеть и виртуальную локальную сеть, если это необходимо. В списке приводятся сети, настроенные в физических адаптерах узла.
    7. На странице Добавить свойства настройте параметры. На странице Сводка проверьте параметры и при необходимости установите флажок Запустить виртуальную машину после развертывания. Чтобы начать преобразование, нажмите кнопку Создать. Проверьте, была ли виртуальная машина преобразована, выбрав Виртуальные машины (VM) и службы > Главная > Показать > Виртуальные машины.

    Преобразование виртуальной машины на основе EFI в виртуальную машину Hyper-V поколения 2

    System Center VMM позволяет переносить виртуальные машины VMware на основе EFI в виртуальные машины Hyper-V. Если вы перенесете виртуальные машины VMware на платформу Microsoft Hyper-V, для них будут действовать все преимущества и новые возможности поколения 2.

    В выпуск VMM 1801 входит мастер преобразования виртуальной машины, который предлагает миграцию исходя из типа встроенного ПО (BIOS или EFI) и правильно выбирает поколение виртуальной машины Hyper-V.

    • Виртуальные машины на основе BIOS преобразуются в виртуальные машины Hyper-V поколения 1.
    • Виртуальные машины на основе EFI преобразуются в виртуальные машины Hyper-V поколения 2.

    Перед началом работы

    Выполните указанные ниже предварительные требования.

    1. Виртуальные машины VMware с типом встроенного ПО EFI.
    2. Узлы VMware ESXi, добавленные в System Center VMM.

    Процесс преобразования

    Чтобы выполнить преобразование, следуйте приведенной выше процедуре, и на шаге 4 выберите Поколение 2.

    Настройка преобразования виртуальной машины в виртуальную машину поколения 2

    После преобразования вы можете проверить, что в результате получена виртуальная машина поколения 2, как показано на следующем рисунке:

    Рассмотрим, как можно сконвертировать виртуальную машину VMware для запуска на сервере Hyper-V с помощью инструмента Microsoft Virtual Machine Converter (MVMC).

    Microsoft Virtual Machine Converter 3.0

    Microsoft Virtual Machine Converter 3.0

    Конвертацию ВМ можно выполнить с помощью графического интерфейса, но мне кажется более удобным и масштабируемым способ конвертации виртуальной машины VMware в Hyper-V с помощью PowerShell.

    Конвертация виртуального диска из формата VMware (vmdk) в формат Hyper-V (vhd)

    Выключите виртуальную машину на VMWare и скопируйте файлы машины на сервер (возможно стоит сразу скопировать файлы на сервер с установленной ролью Hyper-V, где в дальнейшем нужно будет запустить ВМ).

    Откройте консоль PowerShell с правами администратора и импортируйте модуль MVMC:

    Import-Module "C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1"

    Import-Module-MvmcCmdlet.psd1

    Чтобы запустить конвертацию, выполните команду
    ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "C:\temp\vm\testvm1.vmdk" -DestinationLiteralPath "C:\Hyper-V\Virtual hard disks\testvm1" -VhdType DynamicHardDisk -VhdFormat Vhd

    Как вы видите, мы указали исходный файл vmdk, каталог, в который нужно поместить сконвертированный файл для Hyper-V, тип виртуального диска (vhd или vhdx) и формат диска (FixedHarddisk или DynamicHarddisk).

    Примечание. Диск ВМ на сервер VMware представляет собой 2 файла – один с разрешением flat.vmdk (большого размера – это сами данные на диске) и небольшой vmdk (содержит конфигурацию виртуального диска). При конвертировании диска с помощью MvmcVirtualHardDisk нужно указывать именно vmdk файл. При попытке сконвертировать -flat.vmdk появится ошибка.

    ConvertTo-MvmcVirtualHardDisk : No suitable drive was found at path .

    ConvertTo-MvmcVirtualHardDisk : No suitable drive was found at path

    ConvertTo-MvmcVirtualHardDisk

    Конвертирование виртуальных дисков может занять довольно длительное время в зависимости от их размера

    После окончания конвертации появится такая табличка.


    Создаем виртуальную машину Hyper-V из VHD файла

    Теперь из полученного VHD файла нужно создать новую виртуальную машину на сервере Hyper-V.

    Откройте Hyper-V Manager и в панели действий выберите New ->Virtual Machine​.

    New ->Virtual Machine

    Затем как обычно, с помощью мастера, создайте новую виртуальную машину Hyper-V. Единственное отличие – на этапе подключения виртуального диска вместо создания нового диска, нужно выбрать пункт Use an existing virtual hard disk и указать путь к полученному после конвертации vhd файлу

    select-vhd

    ​ Теперь можно включить ВМ и после загрузки ОС не забыть установить компоненты интеграции (Integration Services).


    Перенос виртуальной машины VMware на Hyper-V - мой опыт переноса виртуальной машины с VMware Workstation на Hyper-V.

    Предисловие

    Знаю VMware очень плохо и пока знать лучше и не собираюсь. Нельзя сказать, что горжусь этим, но точно не стыжусь - мой выбор Hyper-V, делаю ставку на него, особенно в свете выхода бесплатного HVS. MS решила "порвать всех" в нише гипервизоров и пока ей это удается.

    Итак, есть машина CentOS под VMware Workstation 12.5, работает она только при залогиненном пользователе, как только выходишь с сервера - машина выключается. Кто-то наверное посмеётся - "да это просто решается, нужно всего лишь прикрутить 33 костыля и всё сразу заработает", но мне это неинтересно. К тому же VMware насоздавала каких-то сетевых подключений, разбираться что это - мне тоже не хочется. Сервер тупит, в Server Manager его обновление происходит дольше всего. Значит переносим в Hyper-V, VMware киляем.

    Перенос

    Сначала нужно удалить VMware Tools.

    После этого смотрим в свойствах машины как точно называется файл диска, поскольку у VMware Workstation диск - это не один файл, а целая куча файлов и качаем утилиту V2V Converter. Для скачивания потребуется создать учетную запись и подтвердить e-mail, процедура мутноватая, после чего приходит письмо со ссылкой для скачивания.

    Далее выключаем машину, указываем файл диска VM, формат создаваемого файла - MS Virtual PC growable image, место назначения файла и его название. Время конвертирования файла зависит от размера файла жесткого диска, а скорость конвертации составляет где-то 10-12MB/s, у меня по крайней мере было так - то есть довольно долго (для машины с диском 300Gb+).

    Затем копируем получившийся файл vhd, кстати, размер его получился где-то на 5% меньше чем изначальный суммарный vmdk, на хост Hyper-V и создаём там машину 1 поколения со схожими параметрами, нелишним будет указать MAC со старой машины. В процессе создания машины указываем получившийся диск.

    К счастью больше ничего делать не нужно.

    Вариант 2

    Всё как и в первом случае, но непосредственно конвертацию диска выполняем с помощью VirtualBox.

    И выполняем конвертацию:



    Проверка

    После того как машина загрузится хорошей вещью будет проверить свободную память:

    Проверить загрузку машины, а именно пункт load average, напомню, что эта группа значений показывает загрузку за последние 1, 5, 15 минут соответственно, а цифра 1 - обозначает 100% загрузку CPU (при наличии 1 ядра, при 2 ядрах 100% это уже 2 и так далее; несложно посчитать загрузку - поделить данную цифру на количество ядер и умножить на 100%):

    Перенос виртуальной машины VMware на Hyper-V

    И соответственно по результатам оставить или же добавить ресурсов машине.

    Читайте также: