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

Добрый день уважаемые читатели блога, я продолжаю знакомить вас с виртуализацией на базе Microsoft Hyper-V 3.0 и сегодня мы рассмотрим, как переместить виртуальную машину, с одного хоста на другой, в идеале без простоев и без наличия централизованных утилит управления, по типу SCVMM 2012 R2 и без общего хранилища. Думаю для начинающих системных администраторов, это будет полезно.
live migration в Hyper-V
Перемещение виртуальной машины или как его еще называют live migration, появилась в рабочем виде только в Hyper-V 3.0 в операционной системе Windows Server 2012 R2. В данной версии его существенно улучшили и теперь он работает без общего хранилища и без кластера, от вас лишь в идеале потребуется гигабитное сетевое подключение, между участниками перемещения.

Что переносится при live migration
- Виртуальные машины
- Виртуальные диски
- Содержимое оперативной памяти
- Состояние процессора
Сразу хочу отметить, что live migration это не замена отказоустойчивого кластера, рассматривайте ее как дополнение, которое позволяет подготавливать инфраструктуру к созданию кластера, она вам поможет например в случае, когда один из серверов ломается, и нужно мигрировать без простоя виртуальные машины.
Требования live migration
Давайте определимся, что необходимо для успешного перемещения виртуальной машины на Hyper-V 3.0:
- Логично, что нам нужно минимально два хоста виртуализации, первый это источник перемещения, а второй, хост назначения.
- У хоста назначения, должно хватать ресурсов, чтобы принять виртуальную машину
- Обязательное требование, это процессоры должны быть одного семейства, если у вас процессор intel, то перевезти на AMD у вас не получиться, такие же ограничения были и у vMotion Vmware
- Сетевое подключение между хостами Hyper-V 3.0, желательно должно быть 1 гб/сек, можно даже под это дело выделить отдельную сетевую карту с другим VLAN ID.
- В некоторых случаях виртуальные коммутаторы на обоих хостах должны называться одинаково, чтобы избежать ошибок перемещения.
И так на первом хосте, у меня есть виртуальная машина с именем dc7, ее я хочу переместить на другой хост Hyper-V. Для этого щелкаем по ней правым кликом и выбираем переместить.

первое окно мастера можно сразу пропускать, оно не несет ни какой полезности.

Далее у вас два варианта перемещения:
- Переместить виртуальную машину (перемещение виртуальной машины и (при необходимости) ее хранилища на другой хост) > вариант полного переезда хранилища и всей виртуальной машины на другой сервер.
- Переместить хранилище виртуальной машины (Перемещение только хранилища виртуальной машины в другое расположение на этом сервере или в общее хранилище) > тут два варианта, либо вы хотите ее перевезти на другой локальный диск (разгрузить нагрузку, например), либо в общий диск, для подключения хоста к отказоустойчивому кластеру.

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

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

Далее задаем папку сохранения.

Все начинается процедура перемещения, если у вас не включена динамическая миграция, то вы можете получить ошибку 0x8009030E, посмотрите как она решается.

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

В диспетчере задач, можно про мониторить загрузку сети при перемещении.

Как видите в процессе живой миграции на хостах Hyper-V 3.0, без общего хранилища, нет ничего сложно, в принципе все понятно на интуитивном уровне и Microsoft, с каждым релизом упрощает жизнь системным администраторам.
Экспорт и импорт виртуальных машин Hyper-V
Как работать с родным гипервизором Windows Hyper-V , поставляемым в серверной линии системы и отдельных выпусках клиентских версий 8.1 и 10, в плане каких-то движений виртуальных машин? Когда нам нужно перенести машины в другое место на компьютере или на другой компьютер, добавить машины в диспетчер после переустановки хостовой Windows, сделать машину-клон. Для всех этих случаев гипервизор предусматривает функционал экспорта-импорта машин.
А в реализации Hyper-V в Windows 10 можем воспользоваться ещё и альтернативным функционалом экспорта-импорта машин посредством сжатого файла VMCZ . Давайте же подробнее рассмотрим эти возможности Hyper-V.
Функция «Поделиться» Hyper-V в Windows 10
Альтернативный функционал экспорта-импорта, присутствующий в реализации гипервизора в клиентской Windows 10 – это кнопка «Поделиться» в окне подключения машины. При её нажатии откроется окно обзора для указания пути сохранения сжатого файла экспорта машин Hyper-V – VMCZ .

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

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

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

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

А классический импорт машин – это не извлечение данных из посредничающего файла-архива, а добавление машины по пути хранения её файлов в окно диспетчера 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.
Экспорт и импорт виртуальной машины 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 нужную виртуальную машину, вызываем контекстное меню. Нам нужна команда «Экспорт».

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

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

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

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

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

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

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

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

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

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

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

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

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

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