Windows hyper v перенос виртуальной машины

Перенос физической Windows системы в виртуальную среду Hyper-V

В данной заметке мы поговорим о том, как перенести работающую физическую систему Windows, будь то серверная или десктопная, на виртуальный сервер Hyper-V при помощи утилиты Disk2VHD. Данная программ является частью набора ПО для диагностики и администрирования ОС на базе MS Windows от Sysinternals, о чем говорится в данной статье. Эти утилиты доступны как для загрузки, так и в качестве live-версии.

Перенос физической Windows системы в виртуальную среду с помощью Disk2VHD

Очень удобно, когда есть возможность освободить физический сервер или рабочую станцию, перенеся ее содержимое в целости и сохранности в виртуальную среду. Данная операция называется Physical-to-Virtual, P2V. Таким образом, повысится отказоустойчивость, гибкость развертывания и обслуживания сервисов.

Используя Disk2VHD, мы создаем образ работающей системы (без ее остановки), записанный в виртуальный жесткий диск формата VHD. Подключив его к гипервизору, в нашем случае Hyper-V, мы получим полную копию работающей физической системы (со всеми установленными приложениями, настройками и ролями) в виртуальной среде.

Стоит отметить – программа Disk2VHD бесплатна, проста в использовании, не требует установки, поддерживает запуск из командной строки и обслуживает большинство современных ОС MS Windows.

Создание образа происходит следующим образом:

Сейчас лучше выбирать формат .VHDX, т.к. он в полной мере поддерживается всеми версиями Hyper-V. Если на системном диске есть скрытый раздел – его нужно обязательно скопировать.

Работа данной утилиты в командной строке:

Выполнится конвертация диска С, а таким образом – все диска на сервере:

Подключение образа, как было сказано, ранее доступно в Hyper-V. Выполняется следующим образом – подключаемся в Hyper-V Manager, создаем новую виртуальную машину, указываем нужные характеристики (CPU, RAM, LAN), а в качестве жесткого диска – созданный нами диск в формате .VHDX.

Далее запускаем виртуальную машину. Необходимо выполнить установку драйверов. В Windows Server 2012 это выполняется автоматически. В нашем случае используется более ранняя версия серверной ОС (Win SRV 2003), поэтому необходимо запустить вручную интеграцию драйверов:

После этого потребуется перезагрузка.

По завершению которой мы получим полноценный работающий сервер. Единственное, что потребуется сделать (в некоторых случаях) – настройка сетевых адаптеров.

Как видим, процесс миграции физических серверов в виртуальную среду с помощью Disk2VHD не вызывает никаких трудностей и рекомендован к использованию.

Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter

Импорт и экспорт в Hyperv или перенос виртуальных машин

10 сентября 2019

Импорт и экспорт в Hyper V это возможность копирование и переноса виртуальных машин. Эта возможность используется в тестовой среде, когда у нас есть образ или шаблон машины и для переноса с одного сервера на другой. Я так же слышал, что кто-то использует эту возможность как резервное копирование. Мы рассмотрим на примерах с GUI и в Powershell.

Если вы хотите создать шаблон виртуальной машины, то перед экспортом нужно сделать sysprep. Что бы просто перенести виртуальную машину Hyper V этого делать не надо.

Sysprep — это утилита сброса уникальных идентификаторов. Когда в одной сети находятся машины с одинаковыми идентификаторами могут быть ошибки и конфликты. После сброса идентификаторов нужно будет заново устанавливать те данные, которые требуются при первой установке Windows. Я бы крайне рекомендовал делать эту операцию во избежание проблем. Вы можете запустить эту команду из CMD:

Читайте также:  Windows form calculator c

Либо запустить файл sysprep.exe в этой папке:

И подтвердить действия с этими настройками:

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

Экспорт Hyper V

Теперь выполним экспорт виртуальной машины Hyper V, в этот момент ВМ может быть включена. Нажмите на нее правой кнопкой и найдите кнопку экспорта:

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

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

Импорт Hyper V

Что бы выполнить в Hyper V импорт виртуальной машины нажмите следующую кнопку:

После стартового окна нам нужно будет выбрать папку, куда мы экспортировали ВМ:

Проверяем, что имя ВМ совпадает с той, которую мы хотим импортировать:

На следующем окне у нас появляется три возможных пункта клонирования виртуальной машины Hyper V. Так как ВМ тоже имеет уникальные идентификаторы этот пункт очень важен:

  • Регистрировать виртуальную машину по мету (Register the virtual machine in-place) — если файлы ВМ уже находятся там, где они должны и вы не планируете переносить их в новое место. Это может быть ВМ с подключенной флешки или iSCSI диска. В этом случае уникальный идентификатор не генерируется.
  • Восстановить виртуальную машину (Restore the virtual machine) — в отличие от предыдущего пункта все файлы переносятся в новое место, которые вы укажете в следующем окне. Уникальный идентификатор так же остается прежним.
  • Копировать виртуальную машину (Copy the virtual machine) — копирует ВМ с новым сгенерированным идентификатором. В следующем окне нужно будет указать куда копировать эти файлы. Этот случай используется когда мы используем шаблон ВМ.

Если в этот момент уже работает ВМ с этим идентификатором, то мы получим ошибку:

The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.

Ошибка загрузки конфигурации виртуальной машины hyper v

Я выполню копирование машины, но остальные варианты аналогичны:

В случае с копированием мы можем выбрать новое расположение файлов чекпоинтов, конфигураций и кэша либо использовать установленное по умолчанию:

В этом окне выбирается расположение диска:

В этой ВМ адаптер подключен к другому коммутатору и его не существует на этом хосте гипервизора. Проверка коммутаторов идет по именам и если раньше коммутатор, на этом же хосте, назывался ‘Ext 1’, а затем был удален или переименован на ‘Ext 01’ вы тоже получите ошибку. Можно выбрать новый коммутатор или пропустить этот шаг:

На последнем шаге мы проверяем введенные данные и нажимаем кнопку подтверждения:

После этого ВМ импортируется и вам может понадобится подключиться к коммутатору и переименовать ее.

В обоих случаях вам нужно зайти в настройки ВМ:

Для переименовывания машины нужно зайти на вкладку «Имя»:

Если сетевых адаптеров у ВМ нет, то нужно зайти во вкладку добавления устройств и добавить сетевой адаптер:

А затем подключить к коммутатору:

После этого в Hyper V виртуальная машина будет подключена и ее можно запускать.

Экспорт и импорт виртуальной машины Hyper V в Powershell

Все команды имеют ключ ComputerName, а значит перенос виртуальной машины Hyper V может делаться на удаленном компьютере.

Получим список ВМ Hyper V, что бы узнать какую машину экспортировать:

Что бы через консоль Powershell в Hyper V скопировать виртуальную машину, в базовом варианте, нужно сделать следующее:

  • Name — имя ВМ, которую экспортируем
  • Path — путь, где будет лежать копия виртуальной машины Hyper V
Читайте также:  Microsoft обновила windows update

Так как мы можем выполнить клонирование и включенной машины, то у нас есть несколько способов манипулировании с памятью. Для этого есть ключ CaptuteLiveState, которого нет в версии Windows Server 2012 r2 и ниже, со значениями:

  • CaptureSavedState — включает оперативную память
  • CaptureDataConsistentState — используется Production checkpoint
  • CaptureCrashConsistentState — память не сохраняется

По умолчанию используется CaptureSavedState.

Для импорта есть три варианта сохранения идентификаторов, которые описывались выше.

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

VMCX — это файл, который лежит в папке «Virtual Machines» экспортированной ВМ. Если виртуальная машина с этим идентификатором уже есть в Hyper V вы получите ошибку:

Import-VM : Failed to create virtual machine. The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.

Для импорта ВМ, с сохранением идентификаторов, но в новое место на диске выполните:

  • VhdDestinationPath — куда будет скопирован виртуальный диск Hyper V
  • VirtualMachinePath — куда будут скопированы файлы конфигурации виртуально машины
  • Copy — указывает, что это операция копирования
  • SnapshotFilePath — куда будут скопированы чекпоинты
  • SmartPagingFilePath — куда будет скопирован файл подкачки

Можно не указывать каждый тип файлов, а просто указать файл конфигурации в Path и действие Copy — тогда ВМ будет скопирована в местоположение указанное в настройках Hyper V.

В случае копирования VM с генерированием нового идентификатора можно сделать так:

В этом случае все файлы будут перемещены в папку, которая была указана в настройках Hyper V. Операция клонирования выполнена.

Клонирование, импорт и экспорт виртуальных машин в Hyper-V

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

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

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

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

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

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

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

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

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

Затем нужно указать путь к каталогу, в котором находятся папки с файлами импортируемой ВМ. При импорте ВМ в 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.

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

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

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

Читайте также:  Ensure that your linux distro has working kvm module

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

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

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

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

Export-VM -Name win10 -Path ‘C:\VHD\export’

Если вы хотите экспортировать запущенную ВМ, вы можете использовать параметр 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’

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

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\).

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

get-vm | select VMNAME,VMId

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

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

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

Прежде, чем подключить новую ВМ в сеть, желательно переименовать ее и изменить 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.

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

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

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

Оцените статью