Где hyper v хранит файлы

Обновлено: 06.07.2024

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

НЕ ПЛОДИТЕ ВИРТУАЛЬНЫЕ СУЩНОСТИ!

Первый хинт, и достаточно очевидный -не создавайте ненужных виртуальных машин и не оставляйте их запущенными! Процесс VMMS.exe постоянно проверяет статус всех виртуальных машин, в том числе и без каких-либо активных процессов, помимо ОС запущенных на них. Таким образом, на данный процесс тратятся дорогие ресурсы.

Далее, задумайтесь, сколько виртуальных коммутаторов у вас создано – подумайте, в каком случае вы можете просто использовать VLAN или другие механизмы сегментирования для логического разделения сети между виртуальными машинами. Причина такая же как и в предыдущем случае – VMMS.exe постоянно проверяет состояние виртуальных свитчей и тратит ресурсы!

Настройте антивирус так, чтобы он не проверял Hyper-V процессы и директории, так как такое ПО как антивирус постоянно производит I/O операции для файлов, и, соответственно, может отобрать ресурс у процессов, выполняемых между виртуальными машинами. То есть:

  • Процессы Hyper-V - VMMS.exe и VMWP.exe
  • Папки с виртуальными машинами - файлы с виртуальными жесткими дисками и файлы конфигурации
  • Папки со снэпшотами-V - снэпшоты и чекпоинты

ИСПОЛЬЗУЙТЕ ОФИЦИАЛЬНО ПОДДЕРЖИВАЕМЫ ГОСТЕВЫЕ ОС – БУДЕТ БЫСТРЕЕ!

Кроме того, старайтесь хранить виртуальные машины, которые не поддерживают установку Integration Services на отдельном сервере Hyper-V. Если это невозможно – используйте отдельный виртуальный свитч. Дело в том, что они используют совершенно разные механизмы общения с оригинальной системой – коммуникации через VMBUS и коммуникации через эмуляцию. Эмуляция быстрее, но возможна только при установленных Integration Services.

Старайтесь использовать виртуальные машины Generation Type 2 (второго поколения), которые загружаются с помощью SCSI контроллера, вместо IDE (SCSI быстрее). Кроме того, машины второго поколения используют VMBUS и VSP/VSC архитектуру на boot уровне, что улучшает общую производительность.

ВНИМАТЕЛЬНЕЕ ОТНОСИТЕСЬ К РАСПОЛОЖЕНИЮ ВИРТУАЛЬНЫХ МАШИН!

Не храните виртуальные машины на одном жестком диске вместе с системными файлами и файлами гипервизора – опять же из-за того, что ОС занимает свою долю в операциях ввода-ввывода, и у жесткого диска легко не может хватить производительности для задач, выполняемых на виртуальных машинах. Соответственно, всегда изменяйте папку хранения виртуальных машин по умолчанию на что-то иное. Изначально, путь выглядит так:C:\ProgramData\Windows\Hyper-V\Virtual Machines

Если возможно – используйте для каждой виртуальной машины разные тома. Наличие нескольких виртуальных машин на одном логическом томе также повышает количество производимых I/O операций.

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

Старайтесь использовать SCSi контроллеры для виртуальных жестких дисков – выиграйте по скорости. Для приложений вроде SQL лучше хранить логи и сами данные на разных SCSi разделах

При создании виртуальной машины лучше используйте виртуальные жесткие диски фиксированного размера – это так же даст прирост производительности.

В ОБЩЕМ О РЕСУРСАХ

В то же время, рекомендуется использовать динамически аллоцируемую оперативную память. Однако, для некоторых приложений также лучше будет использовать изначально большой объем фиксированной ОЗУ – но это применимо только к узкому ряду приложений, вроде Sharepoint.

Старайтесь использовать Windows Server Core Operating System, так как там нет графической оболочки, система потребляет меньше ресурсов.

Если же вы используете обычный Windows с обычным, всем очень хорошо знакомым GUI всегда закрывайте другие окна, приложения и так далее – все, что хотя бы теоретически может повлиять на производительность.

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

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

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

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

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

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

экспорт hyper v

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

Экспорт Hyper V

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

экспорт hyper v

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

копирование hyper v

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

Импорт 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

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

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

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

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

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

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

hyper v скопировать машину

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

скопировать виртуальную машину hyper v

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

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

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

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

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

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

Добавить сетевой адаптер Hyper V

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

Подключение виртуальной машины к коммутатору Hyper V

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

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

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

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

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

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

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

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

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

Export VM powershell Hyper V

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

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

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. Операция клонирования выполнена.

image

Как я уже обещал – продолжаю «евангелировать» и пишу очередную статью про Hyper-V. На этот раз речь пойдет о работе Hyper-V с устройствами хранения данных – сиречь жесткими дисками и всякими внешними СХД.

Где виртуальные машины могут хранить данные?

Диски виртуальных машин могут храниться как на локальных жестких дисках сервера, так и на внешних СХД (SAN).

На схеме используется DAS. На диске Disk2, смонтированном в хостовой системе как диск Y:, создан файл VM1.vhd, который, в свою очередь, смонтирован в виртуальной машине и используется ей в качестве диска C:. А Disk3 подключается к виртуальной машине напрямую, и в гостевой ОС с ним можно работать как с диском D:. В хостовой же ОС Disk3 находится в состоянии Offline, и зайти на него не получится.
Посмотрим теперь, какие варианты имеются при использовании SAN.

Самый «классический» вариант – LUN 1 презентуется серверу, монтируется в хостовой ОС, к примеру, как диск Z:, на нем уже создается VHD, который, в свою очередь, используется виртуальной машиной. Примерно как в сказке – «игла в яйце, яйцо в утке, утка в зайце, и т.д.».
Второй вариант – LUN 2 презентуется серверу, но в хостовой ОС он не монтируется, а подключается как pass-through-диск к виртуальной машине.
Кроме этого, если SAN построена на базе протокола iSCSI – LUN может быть смонтирован внутри виртуальной машины с помощью программного iSCSI-инициатора, запущенного внутри гостевой ОС. К сожалению, FibreChannel-LUN’ы присоединить подобным образом не получится – в Hyper-V нет виртуального FC-HBA.

Виртуальные контроллеры

Итак, начнем с того, что виртуальная машина, точно так же, как и настоящий компьютер, имеет свои виртуальные жесткие диски и виртуальные контроллеры жестких дисков. Контроллеры эти бывают всего двух типов: IDE и SCSI. В чем же разница между ними?
Во-первых, в отличие от IDE, SCSI-контроллер является полностью синтетическим устройством, и потому для своей работы требует установки компонент интеграции. Поэтому использовать его можно лишь в тех гостевых ОС, которые их поддерживают (напоминаю, что это – только MS Windows, а так же RHEL и SLES). По этой же причине гостевая операционная система может загружаться только с IDE-устройства. Основным отличием между виртуальными IDE и SCSI-контроллерами является количество устройств, способных через этот контроллер работать. IDE-контроллеров в виртуальной машине может быть два, и к каждому может быть подключено максимум по два виртуальных диска. SCSI-контроллеров может быть четыре, и к каждому контроллеру можно подключить до 64 виртуальных дисков, то есть всего виртуальная машина может иметь 260 виртуальных дисков (4 IDE + 4*64 SCSI). Надо так же помнить, что хотя реальные SCSI-диски работают быстрее, чем IDE — это не совсем верно для виртуальной среды. В среде Hyper-V R2 при установленных компонентах интеграции виртуальные IDE- и SCSI-диски работают одинаково быстро, и производительность определяется только физической дисковой подсистемой.

Виртуальные диски

Посмотрим теперь, какими могут быть сами жесткие диски у виртуальных машин. Начнем с того, что Hyper-V поддерживает как виртуальные жесткие диски, представляемые в виде файлов .VHD, так и прямое подключение дисков к виртуальной машине (так называемые pass-through-диски).
Виртуальные диски представляют из себя файлы особого формата (VHD). Формат этот первоначально был разработан компанией Connectix, а затем, после приобретения оной корпорацией Microsoft – начал использоваться в продуктах виртуализации от MS – VirtualPC, Virtual Server, а ныне – Hyper-V. На данный момент, в ОС Windows 7 и Windows Server 2008 R2 файлы VHD поддерживаются на уровне ОС и могут монтироваться в самой системе как диски. Более того, сама ОС может быть установлена на VHD и загружаться с него. Формат VHD в настоящее время полностью открыт, и существует множество стороннего ПО (например, от компании Paragon), позволяющая работать с VHD, а так же диски VHD поддерживаются в некоторых продуктах Citrix. Виртуальные диски бывают трех типов: фиксированного размера, динамические и дифференциальные.
Динамические виртуальные диски представляют из себя VHD-файл, который увеличивается в размере по мере записи на него. Динамический диск в процессе работы может быть сжат за счет удаления неиспользуемых блоков, которые остаются при удалении данных с VHD. Использование динамических дисков позволяет наиболее рационально использовать дисковое пространство, но использовать их в production-среде не рекомендуется из-за возможного падения производительности.
Виртуальные диски фиксированного размера представляют собой файл, содержащий набор блоков, представляемый виртуальной машине в качестве диска. Размер виртуального диска задается при его создании, и на жестком диске сервера создается файл VHD соответствующего размера. Процесс создания может занять некоторое время, в зависимости от размера диска. Использование дисков фиксированного размера предпочтительней, чем динамических по двум причинам. Во-первых, поскольку динамический диск расширяется постепенно, VHD-файл может фрагментироваться, что повлияет на производительность. VHD фиксированного размера сразу же занимает все необходимое ему пространство, и потому не фрагментируется в процессе работы. Во-вторых, может сложиться ситуация, что место на физическом диске закончится, и динамическим дискам будет некуда «расти», и это может привести к сбоям в работе виртуальных машин.
Дифференциальный диск — всегда имеет «родительский» VHD. Чтение при этом может осуществляться как с «родительского», так и с самого дифференциального VHD, но запись идет только в дифференциальный VHD, «родительский» остается при этом без изменений. Таковы, например, AVHD-диски, создаваемые при снапшотах виртуальной машины. Подробнее о снапшотах – см. мою предыдущую статью. Так же дифференциальные VHD можно использовать в тестовой среде, когда необходимо поднять несколько виртуальных машин с примерно одинаковым содержимым жестких дисков (к примеру – с установленной ОС). Использовать дифференциальные диски в production-среде не рекомендуется во-первых из-за снижения производительности (вместо чтения из одного VHD приходится читать из нескольких), а во-вторых – из-за снижения надежности (повреждение родительского VHD приводит к повреждению всех дифференциальных).
Максимальный размер виртуальных дисков, как фиксированных, так и динамических, равен 2 терабайтам (или 2040 гигабайтам).
Pass-through-диски – это подключение физических дисков напрямую к виртуальной машине без создания VHD-файлов. Это могут быть как разделы на локальных жестких дисках, так и презентованный серверу LUN от внешней системы хранения (SAN). Для хостовой же ОС диск, после монтирования к виртуальной машине, переходит в состояние «Offline», то есть прямой доступ к диску прекращается. В качестве pass-through-дисков не могут использоваться примонтированные VHD, а так же они не поддерживают снапшоты на уровне виртуальных машин.
Размер pass-through-дисков не ограничен 2 терабайтами.
Иногда возникают вопросы: что же лучше использовать – VHD или pass-through-диски? Некоторые считают, что VHD работают медленнее, но это неправда. Исследования показали, что в Winodws Server 2008 R2 VHD и pass-through-диски работают с одинаковой скоростью. Подробнее о замерах можно почитать официальный документ.

На этом я пожалуй закончу, следующая статья будет рассказывать о работе виртуальных машин с сетью. Если будут какие-либо вопросы по теме статьи — как обычно, милости прошу в комментарии.

date

27.07.2021

directory

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

comments

комментария 4

В 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.

Многие используют экспорт ВМ как простейшее средство бэкапа ВМ на 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"

Также можно указать каталоги для хранения чекпоинтов ( 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, всегда включайте эту опцию.

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

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

Как работать с родным гипервизором Windows Hyper-V , поставляемым в серверной линии системы и отдельных выпусках клиентских версий 8.1 и 10, в плане каких-то движений виртуальных машин? Когда нам нужно перенести машины в другое место на компьютере или на другой компьютер, добавить машины в диспетчер после переустановки хостовой Windows, сделать машину-клон. Для всех этих случаев гипервизор предусматривает функционал экспорта-импорта машин.

А в реализации Hyper-V в Windows 10 можем воспользоваться ещё и альтернативным функционалом экспорта-импорта машин посредством сжатого файла VMCZ . Давайте же подробнее рассмотрим эти возможности Hyper-V.

Hyper-V

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

В файле VMCZ по типу архива в сжатом состоянии хранятся все данные машины – её конфигурационные файлы, файл виртуального диска, снимки контрольных точек. И, соответственно, этот способ экспорта-импорта машин Hyper-V хорош для переноса их на другой компьютер. Для импорта машины из этого файла нам просто нужно запустить двойным кликом мыши файл VMCZ , это, по сути, самораспаковывающийся архив.

Файл VMCZ

Откроется форма импорта, которая добавит машину в диспетчер Hyper-V. Но так будет только в идеале. Эта не новая функция, она появилась после одного из обновлений Windows 10 ещё в 2017 году, но на момент написания статьи она ещё плохо проработана и сбоит. Работай эта функция идеально, во многих случаях она была бы лучшим решением переноса машин на другие компьютеры, нежели классическая функция экспорта-импорта машин. Пока же последняя - это единственное стабильное решение в этом плане.

Функция экспорта-импорта машин Hyper-V

Экспорт машин

Т.е. содержимое экспорта – это точные копии файлов машины, разложенные по папкам, как и её исходные файлы.

Содержимое экспорта

А классический импорт машин – это не извлечение данных из посредничающего файла-архива, а добавление машины по пути хранения её файлов в окно диспетчера Hyper-V. При этом функция импорта является универсальным решением и для переноса машин, и для их копирования, и для их перерегистрации в диспетчере после удаления оттуда или переустановки хостовой Windows. Рассмотрим эти операции.

Перенос машин Hyper-V

Если необходимо перенести машину Hyper-V в другое место на диске, можем просто удалить машину из окна диспетчера Hyper-V и с помощью обычного проводника Windows перенести файлы машины куда нам надо. Ну а если машину перенести надо на другой компьютер, можем упаковать её файлы в обычный архив и извлечь его на другом компьютере. А вот если мы захотим перенести или скопировать машину не в её текущем состоянии, а в состоянии, запечатлённом в снимке контрольной точки, мы это сможем сделать только путём экспорта контрольной точки в диспетчере Hyper-V.

Экспорт контрольной точки

После запуска операции экспорта указываем путь, куда будут сохранены файлы машины, и жмём «Экспорт».

Экспорт

Переместив в нужное место файлы оригинальной виртуальной машины или экспортировав снимок её контрольной точки, запускаем функцию импорта на панели операций диспетчера Hyper-V.

Жмём «Далее».

Импорт виртуальной машины

Указываем путь хранения перемещённых или экспортированных файлов машины.

Путь хранения

Если мы указали путь общей папки хранения машин, то выбираем какую-то конкретную машину.

Выбор виртуальной машины

Выбираем тип импорта - регистрация машины по месту.

Жмём «Готово».

Сводка

Всё – машина импортирована.

Машина импортирована

Перерегистрация машин Hyper-V

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

Копирование машин Hyper-V

Импорт машин Hyper-V одновременно является и функционалом по их копированию. Если нам нужно создать клон точный машины, мы не сможем поступить так, как с перемещением - просто взять и в проводнике скопировать файлы машины, а потом перерегистрировать её. У клона должен быть свой уникальный идентификатор оборудования, чтобы иметь собственный внутренний IP в сети. Запускаем функцию импорта, указываем папку хранения исходной машины, из которой мы хотим сделать клон.

Выбор папки

Жмём «Далее».

Выбор виртуальной машины

На этапе выбора типа импорта выбираем копирование машины.

Копирование машины

Создаём на диске папку для файлов клона и прописываем эти пути на следующем этапе мастера импорта.

Мастер импорта

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

Выбор папок хранилища

Жмём «Готово».

Завершение работы мастера

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

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