Блог

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

Приобрести Windows Server можно у нас в каталоге от 1090 ₽

Скачать оригинальные дистрибутивы Windows Server можно у нас на сайте.

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

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

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

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

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

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

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

2. Укажите каталог, в который нужно экспортировать ВМ.

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

Экспорт ВМ часто используют как простейший метод создания резервных копий на Hyper-V.

4. Вы также можете экспортировать конкретный снимок (checkpoint) виртуальной машины. Для этого выберите нужный снимок в дереве Checkpoints и выберите Export.

Импорт ВМ

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

1. Укажите путь к каталогу с файлами импортируемой ВМ.

2. При импорте Hyper-V предложит три варианта регистрации ВМ на хосте:

Register the virtual machine in-place — зарегистрировать ВМ, используя существующий уникальный ID.

Restore the virtual machine — скопировать файлы ВМ в новый каталог, сохранив исходный идентификатор.

Copy the virtual machine — скопировать ВМ в новый каталог с генерацией нового ID.

3. Чтобы создать клон ВМ с новым ID, выберите третий вариант. После этого вам нужно будет указать каталоги для хранения файлов ВМ и виртуальных дисков (VHDX).

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

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

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

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

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

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

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"

Чтобы создать клон ВМ с новым ID, используйте параметр 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 ).

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

get-vm | select VMNAME,VMId

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

get-vm | Where-Object {$_.VMId -eq "24ad8934-f650-46f6-9caa-2a3b79b79bd5"} | Rename-VM -NewName win10_2

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

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.

1. Запустите Windows Admin Center (WAC), выберите раздел Virtual Machines, затем выберите нужную ВМ и нажмите Manage -> Clone.

2. Укажите имя новой ВМ и каталог для хранения ее файлов.

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

При клонировании любых ВМ, с гостевыми ОС, отличными от Windows, всегда включайте эту опцию.

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

Теперь вы знаете, как клонировать виртуальные машины Hyper-V с помощью консоли Hyper-V Manager, PowerShell и Windows Admin Center. Эти методы позволяют гибко управлять виртуальной инфраструктурой и обеспечивать высокую скорость развертывания виртуальных машин на разных хостах.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии