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

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

Hyper-V: Клонируем виртуальную машину

Windows Server 2008 Hyper-V не имеет опции для создания клона существующей виртуальной машины. Однако, это не ознаечает что это невозможно или что это сложно сделать. В действительности такая возможность есть и она довольно проста в применении.

Существуют два способа клонировать виртуальную машину в Hyper-V.

1. Использовать функцию эскпорта/импорта виртуальных машин
2. Скопировать виртуальный жесткий диск и создать новую виртуальную машину с этим диском.

1. Используем функцию эспорта/импорта в Hyper-V

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

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

Находясь Hyper-V Manager, нажмите правой кнопкой на нужную виртуальную машину и выберите Export. Укажите куда будет импортирована виртуальная машина. При этом важно знать, что когда вы будете импортировать виртуальную машину обратно, само местоположение виртуальной машины и её виртуального диска будут указывать на данное место.

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

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

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

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

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

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

Вадно указать именно директорию экспортированной машины, а не одну из её поддиректорий.

После того как виртуальная машина импортирована, вы можете изменить её настройки, к примеру IP адрес, имя хоста и т.д.

2. Копируем VHD и создаем новую виртуальную машину

Постовой

Источник

Экспорт и импорт виртуальных машин

применимо к: Windows Server 2022, Windows 10, Windows Server 2016, Microsoft Hyper-V Server 2016, Windows server 2019, Microsoft Hyper-V server 2019

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

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

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

Использование диспетчера Hyper-V

Чтобы экспортировать виртуальную машину:

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

Выберите место хранения экспортируемых файлов и нажмите кнопку Экспорт.

После завершения экспорта можно просмотреть все экспортированные файлы в расположении экспорта.

Использование PowerShell

Откройте сеанс от имени администратора и выполните команду, как показано ниже, после замены и пути виртуальной машины <> :

Дополнительные сведения см. в разделе Export-VM.

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

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

Мастер импорта виртуальных машин также помогает устранить несовместимости, которые могут существовать при переходе с одного узла на другой. Обычно это различие в физическом оборудовании, таком как память, виртуальные коммутаторы и виртуальные процессоры.

Импорт с помощью диспетчера Hyper-V

Чтобы импортировать виртуальную машину, выполните следующие действия.

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

Щелкните Далее.

Выберите папку, содержащую экспортированные файлы, и нажмите кнопку Далее.

Выберите виртуальную машину для импорта.

Выберите тип импорта и нажмите кнопку Далее. (Описание см. в разделе типы импортаниже.)

Нажмите кнопку Готово.

Импорт с помощью PowerShell

Регистрация на месте

Этот тип импорта использует файлы, где они хранятся во время импорта, и хранит идентификатор виртуальной машины. Следующая команда показывает пример файла импорта. Выполните аналогичную команду со своими собственными значениями.

Восстановить

Чтобы импортировать виртуальную машину, указав собственный путь к файлам виртуальной машины, выполните команду, подобную следующей, заменив примеры значениями.

Импортировать как копию

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

Дополнительные сведения см. в статье Импорт-виртуальная машина.

Типы импорта

Hyper-V предлагает три типа импорта:

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

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

Источник

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

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

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

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

Почему защита персональных данных по-прежнему важна

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

Скачать SE

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

Оптимизация

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

Не приходит обновление до 11

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

Не устанавливается

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

Механизм экспорта-импорта в гипервизоре Hyper-V предназначен для перемещения виртуальных машин с одного компьютера или сервера на другой. Экспорт – это, по сути, копирование виртуальной машины с полным сохранением ее конфигурации. При экспорте копируется виртуальный жесткий диск, настройки оборудования, сохраненный момент работы гостевой ОС, созданные контрольные точки (снапшоты).

Механизм экспорта-импорта Hyper-V также можно использовать для создания на том же сервере или на том же компьютере виртуальной машины-клона для тестирования и взаимодействия с виртуальной машиной-оригиналом. Машина-клон может получить другой ID (идентификатор), другой внутренний IP-адрес в сети Hyper-V, вследствие чего, по сути, не будет ничем отличаться от виртуальных машин, созданных с нуля.

Ниже рассмотрим процесс экспорта-импорта виртуальной машины на примере Hyper-V, входящего в состав Windows 10, детальнее.

Рассматриваемые вопросы:

1. Экспорт виртуальной машины

Одним из преимуществ новой версии Hyper-V, вошедшей в состав Windows Server 2012 R2, клиентских систем Windows 8.1 и 10, является способность осуществлять некоторые ресурсоемкие задачи, в частности, экспорт на лету, в процессе работы виртуальной машины, без ее остановки, даже без приостановки. Экспорт осуществляется в фоновом режиме, он проходит не быстро, поскольку задействует небольшое количество системных ресурсов, оставляя пользователю возможность работать с виртуальной машиной дальше.

Как осуществляется экспорт виртуальной машины? Выбираем в диспетчере Hyper-V нужную виртуальную машину, вызываем контекстное меню. Нам нужна команда «Экспорт».

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

Далее используем кнопку обзора и указываем путь хранения файлов экспорта. Жмем «Экспорт».

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

2. Экспорт снимка виртуальной машины

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

Чтобы осуществить экспорт виртуальной машины из контрольной точки, выбираем в диспетчере Hyper-V и машину, и контрольную точку. На последней вызываем контекстное меню и выбираем «Экспорт».

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

3. Надежность формата экспорта Hyper-V

Экспорт виртуальной машины Hyper-V осуществляется не в какой-нибудь отдельный сжатый формат файла, куда помещаются и виртуальный жесткий диск, и файлы конфигурации, и сохраненное состояние гостевой ОС, как, например, это предлагается механизмом экспорта-импорта в программе VirtualBox. В случае с виртуальными машинами VirtualBox экспорт-импорт возможен при участии посредника – файла формата OVA. При повреждении этого файла импорт виртуальной машины VirtualBox может не состояться. А вот в случае с Hyper-V экспорт виртуальной машины означает полное копирование виртуального жесткого диска в исходном его формате – VHDX (или VHD).

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

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

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

Экспортированную виртуальную машину в дальнейшем можно импортировать в совместимой версии Hyper-V в составе серверных редакций Windows и клиентских Windows 8.1 и 10.

Для импорта виртуальной машины выбираем соответствующую функцию в диспетчере Hyper-V.

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

Жмем «Далее» в окне приветствия мастера.

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

В следующем окне используем кнопку обзора и указываем путь к папке с экспортированной виртуальной машиной. Жмем «Далее».

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

Выбираем нужную виртуальную машину, если в указанной папке их несколько. Жмем «Далее».

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

Затем нужно сделать выбор, как будет импортирована виртуальная машина. Если таковая перенесена с другого сервера или компьютера, можно использовать первый тип импорта, предусматривающий ее регистрацию с использованием исходного идентификатора. Этот вариант регистрирует виртуальную машину в той же папке, где хранятся файлы ее экспорта, следовательно, не будет затрачено время на копирование файлов.

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

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

В нашем случае имеет место быть копирование виртуальной машины, это третий тип импорта. Жмем «Далее».

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

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

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

В нашем случае просто допишем в пути (через слеш) создание отдельной папки «Копия». Жмем «Далее».

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

Этот же путь укажем и для файла VHDX, чтобы все находилось в одном месте. Жмем «Далее».

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

Завершающий этап мастера – сводка данных импорта. Жмем «Готово».

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

Теперь в нашем случае в диспетчере Hyper-V имеется две одинаковые виртуальные машины. Они с разными идентификаторами, но у них одно и то же название. Сменим название только что импортированной виртуальной машины.

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

Все – процесс импорта осуществлен. Импортированную виртуальную машину можно запускать и тестировать.

Источник

Заметки об ИТ

В процессе развертывания тестового стенда возникла потребность клонирования виртуальных машин. У меня есть одна виртуальная машина с предустановленной на ней Windows Server 2012 R2. Задача заключается в том, чтобы скопировать виртуальную машину. При этом, соответвтенно, в новой копии должен быть свой уникальный UID и MAC адрес для сетевой карты. Клонирование виртуальных машин в Hyper-V происходит через процедуру экспорта-импорта. Данная задача может быть выполнена как через GUI оснастки «Hyper-V manager» так и с помощью командлетов PowerShell.

Клонирование виртуальных машин Hyper-V из оснастки «Hyper-V Manager»

Выбрав виртуальную машину, которая будет клонирована, жмем правой кнопкой мыши и в открывшемся диалоговом окне выбираем «Export». Аналогичное действие можно произвести и из панели действий, в случае если она включена.

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

Далее будет предложено выбрать каталог в который будет осуществлять экспортирование. И, собственно, это все действия, которые потребуется предпринять ля экспорта виртуальной машины. Состояние процесса экспорта будет отражено в графе «Status» выбранной виртуальной машины.

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

Второй этап, как логично предположить — это импорт. Данный процесс чуть более богат параметрами и даже имеется мастер импорта. Запуск процедуры импорта возможен из меню «Action» — «Import virtual Machine» или же аналогичной командой из панели «Actions».

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

В открывшемся мастере «Import virtual machine» сперва необходимо выбрать каталог из которого будет осуществлен импорт а затем виртуальную машину, которую будем импортировать. Самое основное, что нас интересует в данном мастере — это выбор опций импорта, представленный на третьем шаге.

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

Здесь доступны три опции:

Так как виртуальная машина будет скопирована на тот же хост Hyper-V, а на одном хосте может быть только одна машина с уникальным ID, то подходит только третья опция «Copy the virtual machine (create a new unique ID). Первые же две опции могут быть использованы, например, для копирования виртуальной машины на другой хост Hyper-V.

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

После окончания процесса импорта мы получаем новую виртуальную машину с тем же именем, но новым идентификатором. Казалось бы все хорошо, но есть ряд нюансов. Во первых, имя виртуального сервера и его IP адрес будут такими же как и у сервера, который мы клонировали. Во-вторых, имя виртуальной машины и имя виртуального жесткого диска будут дублированы, хотя это и не критично (ведь ID разные), но наличие большого числа виртуальных машин с одним именем вызывает когнитивный диссонанс. В-третьих, если в настройках виртуальной машины было указано статическое назначение MAC адреса, то мы получим еще и дублирование MAС. Все эти нюансы стоит учесть при клонировании виртуальных машин в производственной среде. Исправить все эти недоработки лучше через PowerShell, об этом ниже.

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

1. Экспорт виртуальной машины.

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

3. Переименовываем виртуальную машину.

Для начала узнаем ID клонированной машины.

get-vm | select VMNAME,VMId

Нас интересуют две машины с одинаковым именем, но разными ID. Переименовывать будем машину ID которой отличается от ID импортируемой на шаге 2 машины. Следующий набор команд выполнит переименование. 5F3E5C8D-1280-43ED-8F1E-7274AB3B9643 — это полученный при выполнении предыдущей команды идентификатор.

4. Переименовываем виртуальный жесткий диск.

5. Изменяем MAC адрес для виртуального адаптера виртуальной машины. Здесь может быть два варианта. Первый, это выставить динамическое получение MAC адреса. И, соответственно, второй — это указать MAC в ручную.

6. Меняем IP адрес и имя виртуального сервера. К сожалению, у меня не получилось реализовать данные задачи без запуска виртуальной машины. Следующие команды необходимо выполнить непосредственно в консоли powershell виртуального сервера.

Источник

Еще раз про живую миграцию: как перенести виртуальные машины Hyper-V, да побыстрее

«Любишь Hyper-V – люби и PowerShell»
Первое правило Сообщества Hyper-V в Телеграм

«А если любишь VMware ESXi, то люби PowerShell на пару с ESXi CLI и REST API»
Дополнено мной

Живая миграция (live migration) – популярная функция в Hyper-V. Она позволяет переносить работающие виртуальные машины без видимого простоя. В сети много инструкций по переносу ВМ, но многие из них устарели. Вдобавок не все заглядывают в расширенные настройки и правильно используют возможности Live Migration.

Я собрал нюансы и неочевидные параметры для быстрого переноса ВМ внутри кластера и между кластерами. Заодно поделюсь маленькими секретами в настройке и проектировании. Надеюсь, статья будет полезна начинающим админам.

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

Дисклеймер: Все описанные шаги желательно сделать ДО ввода сервера Hyper-V в прод. Hyper-V никогда не прощает ошибок проектирования и подведет вас при первом удобном случае. То есть уже на следующий день.

Вспоминаем матчасть

Как обычно происходит миграция ВМ с одного узла на другой внутри кластера Hyper-V:

Чем больше оперативной памяти у ВМ и чем интенсивнее она изменяется, тем дольше будет переезд. Поэтому трафик живой миграции требует хорошего канала и тщательной настройки.

По такой схеме работает классическая живая миграция внутри Failover Cluster. Для нее нужен общий том CSV, поданный всем хостам кластера.

Помимо этого есть второй вид Live Migration, живая миграция в режиме «ничего общего» (Shared-Nothing Live Migration). Этот сценарий обычно используется для миграции ВМ без простоя между кластерами. Помимо страниц памяти с одного хоста Hyper-V на другой копируется диск VHD(X) с переносом и синхронизацией дельты данных, записанных на него.

Разберем основные нюансы по настройке интерфейсов.

Задаем настройки протоколов

Возможность использовать этот протокол появилась в Windows Server 2016. SMB по умолчанию отдает трафик в несколько портов (SMB Multi-channel). Также он прекрасно работает с RDMA – адаптером удаленного прямого доступа к памяти. Это полезно для ускорения переноса кластеров.

Начиная с Windows Server 2016, службы работают в контексте NETWORK SERVICE, который не может имперсонироваться в AD. Так что в этом случае выбираем неограниченное делегирование (Unconstrained Delegation), но учитываем, что это довольно небезопасно:

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

Так мы совершим меньше действий при передаче трафика и не потратим лишнее время на шифрование. В случае с кластерами оно может нам понадобиться.

Эти же настройки в более модном Windows Admin Center:

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

Разбираемся с конфигурацией сети

Сетевая оптимизация Hyper-V – это крайне дискуссионная тема в сообществе и безграничное поле для экспериментов (предела совершенству в нем нет по определению). Так что перед пошаговой настройкой сети разберемся, как технологии изменились за последнее время и как можно это использовать.

Как было раньше. Старые мануалы по переносу ВМ Hyper-V описывают сценарии с использованием технологии тиминга Load Balancing/Fail Over (LBFO). LBFO позволяла группировать физические сетевые адаптеры и создавать поверх них интерфейсы. Но были и минусы, например: не было поддержки RDMA, нельзя было выяснить, через какой порт тима будет идти трафик. А поскольку трафик живой миграции требует довольно жирного канала, это превращалось в проблему, когда все сетевые ворклоады ломились в один физический порт.

Как сейчас. В Windows Server 2019 даже нельзя создать виртуальный свитч поверх LBFO Team. Единственным поддерживаемым решением для объединения портов сетевой карты в Hyper-V остался Switch Embedded Team (SET).

SET агрегирует адаптеры, как и vSwitch у ESXi. Физические сетевые порты становятся патч-кордом для разных типов трафика (в том числе для ВМ), а поверх них нарезаются виртуальные интерфейсы.

Тут нужно добавить, что в типах гипервизоров есть небольшой рассинхрон. Англоязычные авторы считают, что есть только 2 типа, но на самом деле их 3 (подробно мы с коллегами описывали их в этом посте). Когда-то гипервизоры ESX были гибридного типа (1+). Это был такой модернизированный Red Hat c ролью гипервизора. VMware ушла от этого в vSphere 4.1 и стала честным гипервизором типа 1 (bare-metal).

Microsoft взяла опыт VMware на вооружение и реализовала Switch Embedded Team в Windows Server 2016. Эта схема показывает большую производительность и гибкость в управлении трафиком в рамках тиминга.

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

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

Посмотрим на процесс пошагово

Имя сетиНазначениеСетьШлюзVLAN IDКоличество виртуальных адаптеров
ManagementУправляющий интерфейс192.168.1.0/24192.168.1.10 (Native)1
LiveMigrationЖивая миграция192.168.2.0/2422
CSVCSV-трафик192.168.3.0/2432

В результате мы создадим свитч с менеджмент-интерфейсом. MinimumBandwidthMode обязательно сразу задаем как weight, иначе после создания SET мы не сможем изменить этот параметр. Так пропускная способность сети будет указана в относительных числах. Это понадобится для настройки Network QoS Policies (а иначе они не будут работать).

После этого мы создаем сетевые интерфейсы по количеству физических портов на сетевой карте и «прибиваем» CSV-трафик и трафик живой миграции к каждому порту:

Тут без помощи сетевых инженеров не обойтись: потребуется настройка портов на сетевом оборудовании.

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

Синхронизируем метрики интерфейсов и снизим приоритет интерфейсов CSV-трафика. В моем случае задавал так:

Hyper v клонирование виртуальной машины
Пример: что можно получить с помощью командлета. Скрин со statemigration.com.

Маппинг необходим, чтобы трафик гарантированно выходил из определенного сетевого порта и не произошла ситуация, когда все сетевые нагрузки уходят в один случайный порт.

До Windows Server 2019 настройка VMQ была обязательна, пока не появился dVMMQ. Он автоматически балансирует трафик и перекидывает его с ядра на ядро, как только нагрузка доходит 90%. Так что на Windows Server 2019 сидеть и высчитывать ядра для VMQ не нужно.

Посмотрим наглядно, как это работает. Предположим, у нас есть 2 процессора с 16 физическими ядрами. Это 32 логических ядра с учетом многопоточности. Открываем Excel и выписываем по порядку ядра от 0 до 31:

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

Для первого порта сетевого адаптера назначаем Base Processor Number 2. Для количества ядер берем степень двойки. В четвертой степени получим 16 – это значение задаем для MaxProcessorNumber.

BaseProcessor для второго адаптера тоже будет равен 16 (опять берем степень двойки). На картинке хорошо виден перехлест для обработки трафика на шестнадцатом ядре. Ситуация не критичная, так как нулевое ядро мы разгрузили и не используем для обработки Live Migration.

Через эти же командлеты можно задать и количество RSS-очередей (RSS Queues). Их количество зависит от конкретной модели сетевой карты, поэтому перед настройкой RSS Queues нужно изучить документацию к сетевой карте.

Настраиваем миграцию для кластеризованного сценария

Со стороны Failover Cluster дополнительно выкрутим настройки таймаутов кластера:

Чтобы трафик живой миграции использовался только на определенной сети, также оставим отдельную сеть в настройках Failover Cluster:

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

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

Собственно, это и есть минимальный джентльменский набор настроек для корректной работы Live Migration в Hyper-V.

Источник

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

Hyper-V: Клонируем виртуальную машину

Windows Server 2008 Hyper-V не имеет опции для создания клона существующей виртуальной машины. Однако, это не ознаечает что это невозможно или что это сложно сделать. В действительности такая возможность есть и она довольно проста в применении.

Существуют два способа клонировать виртуальную машину в Hyper-V.

1. Использовать функцию эскпорта/импорта виртуальных машин
2. Скопировать виртуальный жесткий диск и создать новую виртуальную машину с этим диском.

1. Используем функцию эспорта/импорта в Hyper-V

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

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

Находясь Hyper-V Manager, нажмите правой кнопкой на нужную виртуальную машину и выберите Export. Укажите куда будет импортирована виртуальная машина. При этом важно знать, что когда вы будете импортировать виртуальную машину обратно, само местоположение виртуальной машины и её виртуального диска будут указывать на данное место.

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

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

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

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

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

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

Вадно указать именно директорию экспортированной машины, а не одну из её поддиректорий.

После того как виртуальная машина импортирована, вы можете изменить её настройки, к примеру IP адрес, имя хоста и т.д.

2. Копируем VHD и создаем новую виртуальную машину

Постовой

Источник

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

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

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

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

Либо запустить файл 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. Так как ВМ тоже имеет уникальные идентификаторы этот пункт очень важен:

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

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 клонирование виртуальной машины

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

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 скопировать виртуальную машину, в базовом варианте, нужно сделать следующее:

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

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

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.

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

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

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

Источник

Экспорт и импорт виртуальных машин

применимо к: Windows Server 2022, Windows 10, Windows Server 2016, Microsoft Hyper-V Server 2016, Windows server 2019, Microsoft Hyper-V server 2019

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

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

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

Использование диспетчера Hyper-V

Чтобы экспортировать виртуальную машину:

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

Выберите место хранения экспортируемых файлов и нажмите кнопку Экспорт.

После завершения экспорта можно просмотреть все экспортированные файлы в расположении экспорта.

Использование PowerShell

Откройте сеанс от имени администратора и выполните команду, как показано ниже, после замены и пути виртуальной машины <> :

Дополнительные сведения см. в разделе Export-VM.

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

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

Мастер импорта виртуальных машин также помогает устранить несовместимости, которые могут существовать при переходе с одного узла на другой. Обычно это различие в физическом оборудовании, таком как память, виртуальные коммутаторы и виртуальные процессоры.

Импорт с помощью диспетчера Hyper-V

Чтобы импортировать виртуальную машину, выполните следующие действия.

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

Щелкните Далее.

Выберите папку, содержащую экспортированные файлы, и нажмите кнопку Далее.

Выберите виртуальную машину для импорта.

Выберите тип импорта и нажмите кнопку Далее. (Описание см. в разделе типы импортаниже.)

Нажмите кнопку Готово.

Импорт с помощью PowerShell

Регистрация на месте

Этот тип импорта использует файлы, где они хранятся во время импорта, и хранит идентификатор виртуальной машины. Следующая команда показывает пример файла импорта. Выполните аналогичную команду со своими собственными значениями.

Восстановить

Чтобы импортировать виртуальную машину, указав собственный путь к файлам виртуальной машины, выполните команду, подобную следующей, заменив примеры значениями.

Импортировать как копию

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

Дополнительные сведения см. в статье Импорт-виртуальная машина.

Типы импорта

Hyper-V предлагает три типа импорта:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

get-vm | select VMNAME,VMId

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Заметки об ИТ

В процессе развертывания тестового стенда возникла потребность клонирования виртуальных машин. У меня есть одна виртуальная машина с предустановленной на ней Windows Server 2012 R2. Задача заключается в том, чтобы скопировать виртуальную машину. При этом, соответвтенно, в новой копии должен быть свой уникальный UID и MAC адрес для сетевой карты. Клонирование виртуальных машин в Hyper-V происходит через процедуру экспорта-импорта. Данная задача может быть выполнена как через GUI оснастки «Hyper-V manager» так и с помощью командлетов PowerShell.

Клонирование виртуальных машин Hyper-V из оснастки «Hyper-V Manager»

Выбрав виртуальную машину, которая будет клонирована, жмем правой кнопкой мыши и в открывшемся диалоговом окне выбираем «Export». Аналогичное действие можно произвести и из панели действий, в случае если она включена.

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

Далее будет предложено выбрать каталог в который будет осуществлять экспортирование. И, собственно, это все действия, которые потребуется предпринять ля экспорта виртуальной машины. Состояние процесса экспорта будет отражено в графе «Status» выбранной виртуальной машины.

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

Второй этап, как логично предположить — это импорт. Данный процесс чуть более богат параметрами и даже имеется мастер импорта. Запуск процедуры импорта возможен из меню «Action» — «Import virtual Machine» или же аналогичной командой из панели «Actions».

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

В открывшемся мастере «Import virtual machine» сперва необходимо выбрать каталог из которого будет осуществлен импорт а затем виртуальную машину, которую будем импортировать. Самое основное, что нас интересует в данном мастере — это выбор опций импорта, представленный на третьем шаге.

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

Здесь доступны три опции:

Так как виртуальная машина будет скопирована на тот же хост Hyper-V, а на одном хосте может быть только одна машина с уникальным ID, то подходит только третья опция «Copy the virtual machine (create a new unique ID). Первые же две опции могут быть использованы, например, для копирования виртуальной машины на другой хост Hyper-V.

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

После окончания процесса импорта мы получаем новую виртуальную машину с тем же именем, но новым идентификатором. Казалось бы все хорошо, но есть ряд нюансов. Во первых, имя виртуального сервера и его IP адрес будут такими же как и у сервера, который мы клонировали. Во-вторых, имя виртуальной машины и имя виртуального жесткого диска будут дублированы, хотя это и не критично (ведь ID разные), но наличие большого числа виртуальных машин с одним именем вызывает когнитивный диссонанс. В-третьих, если в настройках виртуальной машины было указано статическое назначение MAC адреса, то мы получим еще и дублирование MAС. Все эти нюансы стоит учесть при клонировании виртуальных машин в производственной среде. Исправить все эти недоработки лучше через PowerShell, об этом ниже.

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

1. Экспорт виртуальной машины.

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

3. Переименовываем виртуальную машину.

Для начала узнаем ID клонированной машины.

get-vm | select VMNAME,VMId

Нас интересуют две машины с одинаковым именем, но разными ID. Переименовывать будем машину ID которой отличается от ID импортируемой на шаге 2 машины. Следующий набор команд выполнит переименование. 5F3E5C8D-1280-43ED-8F1E-7274AB3B9643 — это полученный при выполнении предыдущей команды идентификатор.

4. Переименовываем виртуальный жесткий диск.

5. Изменяем MAC адрес для виртуального адаптера виртуальной машины. Здесь может быть два варианта. Первый, это выставить динамическое получение MAC адреса. И, соответственно, второй — это указать MAC в ручную.

6. Меняем IP адрес и имя виртуального сервера. К сожалению, у меня не получилось реализовать данные задачи без запуска виртуальной машины. Следующие команды необходимо выполнить непосредственно в консоли powershell виртуального сервера.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *