Как сделать экспорт виртуальной машины vmware

Обновлено: 05.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 необходимый для полноценной работы гостевой системы.

VMware

Переходим на нужный нам хост, открываем вкладку VMs, нажимаем кнопку VM Templates.

vmware

vCenter не умеет экспортировать и импортировать шаблоны, но он может это делать с виртуальными машинами. Выбираем шаблон и конвертируем его в виртуальную машину. Action > New VM from This Template.

vmware

Открывается мастер создания виртуальной машины из шаблона. Указываем название виртуальной машины и выбираем расположение. NEXT.

vmware

Выбираем хранилище. NEXT.

vmware

Выбираем опции, я не ставлю галки. NEXT.

vmware

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

vmware

Дожидаемся окончания процесса клонирования, переключаемся на созданную виртуальную машину. Actions > Template > Export OVF Template.

vmware

Открывается мастер экспорта OVF шаблона. Указываем название, я оставляю старое. OK.

vmware

vmware

vmware

Экспорт завершён. Созданный клон можно удалить.

Импорт OVF

Выбираем хост. Actions > Deploy OVF Template.

vmware

Открывается мастер импорта OVF шаблона. Выбираем Local file и нажимаем кнопку для загрузки файлов шаблона.

vmware

Выделяем все файлы OVF шаблона. Open.

vmware

У меня выбрано три файла. NEXT.

vmware

Шаблон будет импортирован как виртуальная машина. Указываем её название, выбираем расположение виртуальной машины. NEXT.

vmware

Проверяем детали шаблона. NEXT.

vmware

Выбираем хранилище. NEXT.

vmware

Настраиваем сеть. NEXT.

vmware

vmware

Начинается импорт OVF шаблона в виртуальную машину.

vmware

Дожидаемся окончания импорта, переключаемся на новую виртуальную машину. Actions > Template > Convert to Template.

vmware

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

Возникла задача переноса ряда виртуальных машин из точки А в точку Б.

Навскидку вспомнились следующие варианты:

  1. копирование каталога с ВМ на внешний носитель;
  2. экспорт ВМ в OVA/OVF;
  3. бэкап в Veeam B&R.

Как мне казалось, третий вариант круче всех, так как там сжатие, дедупликация и все такое ;).

Второй от первого практически не отличался, разве что некоторым удобством за счет одного файла вместо папки…

Решил проверить экспериментом.

  1. Копирование каталога с ВМ — время не оценивал.
  2. Делаем экспорт виртуальной машины в OVA. Размер – 8,54Гб, время – 15,5 минут.
    Вау, эта штука умеет немного сжимать VMDK. Не знал!
  3. Делаем операцию Veeam Zip с параметрами по умолчанию (сжатие – оптимальное): размер – 9,25ГБ, время – 6,25 минут.
    Фу, хуже чем стандартный механизм VMware. Разве что быстрее вдвое.
  4. Делаем операцию Veeam Zip с экстремальным сжатием: размер – 7,91ГБ, время – 6,5 минут.

Повторяем итерацию на линуксовой машинке с тонкими дисками. Так как это апплайнс циски, то точный объем внутри неизвестен.

2. Экспорт в OVA занимает 5,5 минут. Объем файла — 1,25Гб.

3. Veeam Zip с оптимальным сжатием: 1,21Гб за 6,75 минут.

4. Veeam Zip с экстремальным сжатием: 872Мб за 6,5 минут

Выводы

Можно объединить несколько виртуальных машин в vAPP и разом экспортировать/импортировать. Так как заодно еще немного уменьшится занимаемый размер, то этот вариант из бесплатных мне нравится больше!

date

27.07.2021

user

itpro

directory

Hyper-V, PowerShell, Windows Server 2016, Виртуализация

comments

комментариев 6

В Hyper-V в отличии от VMWare нет встроенной функции клонирования виртуальной машины (клонирование есть только в Virtual Machine Manager). Чтобы создать полную копию существующей ВМ придется использовать функцию импорта/экспорта. В этой статье мы рассмотрим, как клонировать виртуальную машину в Hyper-V через импорт/экспорт через графический интерфейс Hyper-V Manager, PowerShell и Windows Admin Center (WAC).

При клонировании виртуальных машин с Windows не забывайте о том, что после клонирования ВМ у ее копии будет такой же SID. Для сброса SID нужно использовать утилиту sysprep. Если вы создали эталонный образ Windows, то перед клонированием на нем нужно выполнить команду:

%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe

ВМ будет выключена и при следующей загрузке как оригинальной ВМ, так и ее клона для Windows будет сгенерирован новый SID. Также нежелательно клонировать ВМ, включенные в домен Active Directory.

Экспорт/импорт ВМ из консоли Hyper-V Manager

Сначала нужно экспортировать ВМ в отдельный каталог.

Запустите консоль Hyper-V manager, выберите ВМ и в контекстном меню выберите Export.

Начиная с версии Hyper-V в Windows Server 2012 R2 (в том числе в Free Hyper-V Server) вы можете экспортировать даже запущенные виртуальные машины без их остановки.

экспорт виртуальной машины через hyper-v manager

Укажите каталог, в который нужно экспортировать виртуальную машину.

каталог в который поместить копию ВМ

Статус экспорта ВМ будет отображен в строке состояния ВМ в консоли Hyper-V.

exporting VM в консоли hyper-v

Начиная с Hyper-V в Windows Server 2012 R2 вы можете экспортировать конкретный снимок (checkpoint) виртуальной машины. Для этого достаточно выбрать нужны снимок в дереве Checkpoints и выбрать Export.

экспорт снимка ВМ в hyper-v

Чтобы импортировать ВМ щелкните в консоли Hyper-V Manager по имени хоста и выберите Import Virtual Machine.

запустить Import Virtual Machine в консоли hyper-v

Затем нужно указать путь к каталогу, в котором находятся папки с файлами импортируемой ВМ. При импорте ВМ в Hyper-V предлагается 3 варианта регистрации ВМ на хосте:

  • Register the virtual machine in-place (use the existing unique ID) —зарегистрировать ВМ в каталоге с импортируемыми файлами, ID ВМ сохраняется;
  • Restore the virtual machine (use the existing unique ID) — скопировать файлы ВМ в другой каталог, сохранить исходный идентификатор ВМ;
  • Copy the virtual machine (create a new unique ID) — скопировать ВМ в другую каталог и сгенерировать новый ID.

копировать ВМ Hyper-V и сгенерировать новый ID

У каждой ВМ на хосте Hyper-V есть идентификатор ID, который должен быть уникальным в рамках хоста. Если вы импортируете, клонируете ВМ на другой хост, ID ВМ менять не обязательно.

Если вы попробуете импортировать ВМ с дублирующим ID, появится ошибка:

Чтобы создать клон ВМ с новым ID мы выбрали 3 вариант. Мастер предложит указать в каких каталогах нужно разместить файлы ВМ. По умолчанию, используются каталоги, заданные в настройках хоста Hyper-V.

указать каталог, в котором хранить файлы ВМ

Затем укажите каталог для хранения виртуальных дисков vhdx ВМ.

каталога для vhdx файлов ВМ hyper-v

После этого новая клонированная виртуальная машина появится в консоли Hyper-V.

Клонирование ВМ через экспорт/импорт в Hyper-V с помощью PowerShell

Рассмотрим, как клонировать виртуальную машину Hyper-V через импорт/экспорт из консоли PowerShell.

Для экспорта ВМ воспользуйтесь такой командой:

Export-VM -Name win10 -Path 'C:\VHD\export'

Export-VM в hyper-v с помощью powershell

Если вы хотите экспортировать запущенную ВМ, вы можете использовать параметр CaptuteLiveState, в котором определяется как нужно копировать оперативную память ВМ. Доступны три опции

  • CaptureSavedState – экспортировать оперативную память (по-умолчанию);
  • CaptureDataConsistentState – экспортировать состояние ВМ из Production checkpoint;
  • CaptureCrashConsistentState – не сохранять содержимое памяти.

Export-VM -Name win10 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState

Если вы хотите экспортировать состояние ВМ в определеном снимке, нужно указать его имя.

Сначала выведите список снимков для указанной ВМ:

Get-VMSnapshot -VMName win10

Затем выполните экспорт нужного снимка по его имени:

Export-VMSnapshot -Name “win10 - (2/17/2021 - 9:52:20 PM) Standard” -VMName win10 -Path 'C:\VHD\export'

Export-VMSnapshot

После завершения экспорта ВМ вы можете импортировать ее. Если нужно зарегистрировать ВМ по месту хранения файлов, выполните команду:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines\1117A061-0B50-4BC2-850C-88CCD4C114FB.vmcx"

В параметре Path указываем расположение vmcx файла конфигурации ВМ (формат vmcx заменил XML формат конфигурационных файлов ВМ в Hyper-V Server 2016). Для копирования ВМ в другой каталог с тем же ID используйте параметр Copy. Чтобы сгенерировать нового идентификатор ВМ, используйте параметр GenerateNewId:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines\1117A061-0B50-4BC2-850C-88CCD4C114FB.vmcx" -VhdDestinationPath "C:\VHD\win10_2" -VirtualMachinePath "C:\VHD\win10_2"

В параметре VhdDestinationPath указывается каталог, куда нужно скопировать VHDX файлы ВМ, а в параметре VirtualMachinePath — каталог конфигурационных файлов ВМ. Если эти параметры не задать, файлы ВМ будут скопированы в дефолтный каталог, указанный в настройках хоста Hyper-V (C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\).

Также можно указать каталоги для хранения чекпоинтов ( SnapshotFilePath ) и файла подкачки ( SmartPagingFilePath ).

import-vm командлет powershell

Обратите внимание, что клонированная ВМ появилась в консоли Hyper-V с оригинальным именем. Переименуем новую ВМ, но сначала нужно получить ее ID:

get-vm | select VMNAME,VMId

Как вы видите в консоли есть две ВМ с одинаковым именем и разными ID. Нужно переименовать ВМ с ID, который отличается от ID импортируемой ВМ. Скопируйте ID новой ВМ и переименуйте ее:

переименовать виртуальную манину hyper-v из powershell

Затем для удобства можно переименовать виртуальный жесткий диск.

Get-VHD -VMId 24ad8934-f650-46f6-9caa-2a3b79b79bd5| Select Path | Rename-Item -NewName win10_2.vhdx
Remove-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerLocation 0 -ControllerNumber 0
Add-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -Path "C:\VHD\win10_2\win10_2.vhdx"

Изменим MAC адрес виртуального адаптера (можно указать новый статический MAC или настроить динамическое получение MAC адреса).

Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2

изменить имя виртуальных дисков ВМ hyper-v

Прежде, чем подключить новую ВМ в сеть, желательно переименовать ее и изменить IP адрес на новый (если используется DHCP адресация, этот шаг можно пропустить). В данном случае мы можем подключиться к новой ВМ через PowerShell Direct с помощью командлета Invoke-Command или Enter-PSSession:

Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias “Ethernet” -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.31.50 -InterfaceAlias “Ethernet” -AddressFamily IPv4 -PrefixLength 24
Restart-Computer

Клонирование виртуальных машин Hyper-V через Windows Admin Center

Возможно клонировать ВМ Hyper-V напрямую без промежуточного экспорта/импорта появилась в Windows Admin Center v2009.

Запустите WAC, выберите раздел Virtual Machines, выберите ВМ -> Manage -> Clone.

Windows Admin Center клонировать виртулаьную машину

Затем нужно указать имя новой ВМ и каталог, в который нужно поместить ее файлы.

wac клонирование виртуальной машины с sysprep

Обратите внимание, что мастере клонирования есть опция “I have already run sysprep on my VM”. Если вы не выполнили генерализацию образа с помощью Sysprep, и не включили эту опцию, Hyper-V создаст снапшот исходной ВМ, выполните ее Sysprep и склонирует в новую (исходная ВМ будет несколько раз перезагружена и не доступна для работы). После этого исходная ВМ будет возвращена в первоначальное состояние, а снапшот удален.

Windows Admin Center - pre-sysprep снимок при клонировании

Дождитесь окончания клонирования ВМ. Новой ВМ автоматически будет присвоен новый ID.

клонирование виртуальной машины hyper-v

Предыдущая статья Следующая статья

page

page

page

Включаем поддержку SR-IOV для виртуальных машин Hyper-V

Низкая скорость сети на хосте Hyper-V с Windows Server 2019

Установка VMWare ESXi в виртуальную машину Windows Hyper-V

Маршрутизация между разными IP подсетями в Hyper-V

А какие есть бесплатные способы сделать клон ВМ из ESXi в Hyper-V?

Из приличных был StarWind V2V Converter, вроде это функционал там бесплатные. можно еще тулзой disk2vhd

Очень интересует последний способ, спасибо за него! Я поставил Windows Admin Center, она отлично встала на Windows Server 2022, я попробовал клонировать Windows 10 (заведено 2 юзера, оба админы).
Вот какую ошибку получаю:

Подробная информация об уведомлении
Ошибка
Не удалось клонировать виртуальную машину

00:43:25
Источник
Перейти в Виртуальные машины
Тип
Ошибка

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