Импорт и экспорт в Hyper V это возможность копирование и переноса виртуальных машин. Эта возможность используется в тестовой среде, когда у нас есть образ или шаблон машины и для переноса с одного сервера на другой. Я так же слышал, что кто-то использует эту возможность как резервное копирование. Мы рассмотрим на примерах с GUI и в Powershell.
Если вы хотите создать шаблон виртуальной машины, то перед экспортом нужно сделать sysprep. Что бы просто перенести виртуальную машину Hyper V этого делать не надо.
Sysprep - это утилита сброса уникальных идентификаторов. Когда в одной сети находятся машины с одинаковыми идентификаторами могут быть ошибки и конфликты. После сброса идентификаторов нужно будет заново устанавливать те данные, которые требуются при первой установке Windows. Я бы крайне рекомендовал делать эту операцию во избежание проблем. Вы можете запустить эту команду из CMD:
%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe
Либо запустить файл sysprep.exe в этой папке:
C:\Windows\System32\Sysprep
И подтвердить действия с этими настройками:
После окончания работы утилиты компьютер выключится и его нельзя будет включать. Если вы его включите, то идентификаторы сгенерируются и операцию нужно будет проделывать заново.
Экспорт 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, что бы узнать какую машину экспортировать:
Get-VM
Что бы через консоль Powershell в Hyper V скопировать виртуальную машину, в базовом варианте, нужно сделать следующее:
Export-VM -Name 'CentOS' -Path 'C:\VMimported\'
Где:
- Name - имя ВМ, которую экспортируем
- Path - путь, где будет лежать копия виртуальной машины Hyper V
Так как мы можем выполнить клонирование и включенной машины, то у нас есть несколько способов манипулировании с памятью. Для этого есть ключ CaptuteLiveState, которого нет в версии Windows Server 2012 r2 и ниже, со значениями:
- CaptureSavedState - включает оперативную память
- CaptureDataConsistentState - используется Production checkpoint
- CaptureCrashConsistentState - память не сохраняется
По умолчанию используется CaptureSavedState.
Export-VM -Name 'CentOS' -Path 'C:\VMimported\' -CaptureLiveState CaptureCrashConsistentState
Для импорта есть три варианта сохранения идентификаторов, которые описывались выше.
Если вы решили импортировать ВМ, которая уже находиться в нужной папке и с сохранением идентификаторов сделайте так:
Import-VM -Path "C:\wii\CentOS\Virtual Machines\8EA3B8C0-611B-48EF-8344-392FA71D89B6.vmcx"
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.
Для импорта ВМ, с сохранением идентификаторов, но в новое место на диске выполните:
Import-VM -Path 'C:\VMimported\CentOS\Virtual Machines\8EA3B8C0-611B-48EF-8344-392FA71D89B6.vmcx' -VhdDestinationPath 'C:\NewPath\' -VirtualMachinePath 'C:\NewPath\' -Copy
Где:
- VhdDestinationPath - куда будет скопирован виртуальный диск Hyper V
- VirtualMachinePath - куда будут скопированы файлы конфигурации виртуально машины
- Copy - указывает, что это операция копирования
Дополнительные ключи:
- SnapshotFilePath - куда будут скопированы чекпоинты
- SmartPagingFilePath - куда будет скопирован файл подкачки
Можно не указывать каждый тип файлов, а просто указать файл конфигурации в Path и действие Copy - тогда ВМ будет скопирована в местоположение указанное в настройках Hyper V.
В случае копирования VM с генерированием нового идентификатора можно сделать так:
Import-VM -Path "C:\wii\CentOS\Virtual Machines\8EA3B8C0-611B-48EF-8344-392FA71D89B6.vmcx" -Copy -GenerateNewId
В этом случае все файлы будут перемещены в папку, которая была указана в настройках Hyper V. Операция клонирования выполнена.
...
Подписывайтесь на наш Telegram канал
Теги: #powershell