Как перенести виртуальную машину hyper v на другой компьютер

Обновлено: 05.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Используйте командлет Import-VM , следуя примеру для требуемого типа импорта. Описание типов см. в разделе типы импортаниже.

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

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

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

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

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

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

Типы импорта

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

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

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

Hyper-V Import-Export

Механизм экспорта-импорта в гипервизоре 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 нужную виртуальную машину, вызываем контекстное меню. Нам нужна команда «Экспорт».

3497

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

3498

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

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

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

3499

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

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

Вам может быть интересно: Как сделать прозрачную панель задач

3500

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

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

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

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

3501

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

3502

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

3503

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

3504

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

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

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

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

3505

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

3506

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

3507

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

3508

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

3509

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

3510

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

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

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


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

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

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

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

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

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

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

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

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

    Authentication protocol: по умолчанию установлен протокол CredSSP – Credential Security Support Provider Protocol. Он прост в использовании, но, если в инфраструктуре несколько кластеров, мы не сможем перенести ВМ между кластерами.

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

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



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

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

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

Сетевая оптимизация 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-нодам и количество физических ядер на каждом процессоре.

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

    Для начала опишем сети, которые будем использовать. Предположим, у нас стандартная двухпортовая on-board сетевая карта и двухсокетная материнская плата.

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


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

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

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


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

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

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


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


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

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

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

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

    SameSubnetDelay указывает, сколько раз в какое время мы посылаем хартбиты. По умолчанию он выставлен в 1 секунду.

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



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

Как работать с родным гипервизором 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.

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