Технология Live Migration в системе виртуализации Hyper-V позволяет перемещать запущенную виртуальную машину между хостами Hyper-V без прерывания ее работы и доступности сервисов. В ранних версиях Hyper-V виртуальную машину возможно было переместить с помощью Live Migration только между узлами кластера (Failover Cluster). В Hyper-V 3.0 (Windows Server 2012) и выше этого ограничения больше нет благодаря технологии Shared Nothing Live Migration. В этой статье мы покажем, как включить Live Migration и перенести запущенную ВМ между отдельно стоящими серверами Hyper-V на базе Windows Server 2016.
Требования, необходимые для выполнения Shared Nothing Live Migration:
- Перемещение возможно между серверами со следующими версиями ОС: Windows Server 2012 R2 или Windows Server 2016
- Версия виртуальной машины должна быть не ниже 5
- Оба компьютера должны состоять в одном домене Active Directory, либо в доменах с двустороннем доверием
- У пользователя выполняющего настройки должны быть права администратора Hyper-V. При настройке ограниченного делегирования Kerberos пользователь должен обладать правами администратора домена (либо ему должны быть предоставлены права на учетные записи серверов в AD)
Допустим у нас имеется 2 сервера с Windows Server 2016 с установленной ролью HyperV: Srv01 и Srv03. Оба сервера включены в домен Active Directory и не объединены в кластер WSFC (Windows Server Failover Clustering). Запустим на любом из серверов консоль Hyper-V Manager и добавим в нее оба сервера.
Далее в настройках обоих серверов Hyper–V нужно разрешить Live Migration. Для этого ПКМ по серверу Hyper-V и выберите пункт Hyper—V Settings. Перейдите в раздел Live Migration и включите опцию Enable incoming and outgoing live migrations. Ограничим список миграций IP адресами двух хостов Hyper-V.
Затем в разделе настроек Advanced Features выберите протокол аутентификации Kerberos (Use Kerberos).
Рассмотренные выше действия можно выполнить с помощью таких команд PowerShell:
Enable-VMMigration
Set-VMMigrationNetwork 192.168.10.41 192.168.10.21
Set-VMHost -VirtualMachineMigrationAuthenticationType
Для осуществления миграции ВМ с помощью аутентификации Kerberos администратору не нужно логиниться на сервере, но требуется настройка ограниченного делегирования в Active Directory (KCD — Kerberos constrained delegation)
Запустите оснастку ADUC , найдите учетную запись первого сервера Hyper-V, откройте его свойства и перейдите на вкладку Delegation (Делегирование).
Выберите опции: Trust this computer for delegation to specified services only и Use Kerberos only и нажмите на кнопку Add.
В следующем окне нажмите на кнопку Users and Computers и укажите имя второго сервера Hyper V. В списке доступных служб выберите Microsoft Virtual System Migration Service.
Сохраните настройки делегации. Аналогичные настройки проведите с учетной записью второго сервера Hyper-V.
Осталось дождаться репликации изменений в AD, и перевыпуска билета Kerboros и можно попытаться выполнить живую миграцию ВМ. Щелкните ПКМ по виртуальной машине и выберите Move. В качестве типа миграции выберите Move the virtual machine.
Укажите имя хоста Hyper-V, на который нужно выполнить перенос.
Затем укажите каталог на целевом хосте, в который нужно поместить файлы ВМ (каталог должен существовать).
Нажмите кнопку Finish и дождитесь окончания процесса Live Migration виртуальной машина на второй сервер Hyper-V.
Совет. Миграцию ВМ можно запустить с помощью такой PowerShell команды:
Move-VM srvapp1 Srv01 -IncludeStorage -DestinationStoragePath c:\hyperv\vm
В том случае, если в настройках ВМ не включен режим совместимости процессоров, миграция прервется с ошибкой:
The virtual machine cannot be moved to the destination computer. The hardware on the destination computer is not compatible with the hardware requirements of this virtual machine.
Для решения проблемы придется выключить ВМ и включить для нее режим совместимости CPU:
Set-VMProcessor srvapp1 -CompatibilityForMigrationEnabled $true
Можно делегирования настроить через PowerShell ?
См. пример в статье Configuring Kerberos Constrained Delegation for Hyper-V Management (ссыль)
Хочется уточнить. Режим совместимости процессоров является ли обязательным безоговорочным условием для выполнения Live Migration?
Нужно ли включать этот режим если железо обоих гипервизоров идентично вплоть до степпинга процессора (у меня например так и есть)?
Нет. Если сервера с одинаковыми процессорами, режим совместимости включать не нужно. По крайней мере в 2012 R2
Господа, объясните пожалуйста, как поднять виртуальную машину по уже переданным файлам. Мне системщик скинул три папки с серверами виртуальной фермы, а я как из них поднять виртуалку не понимаю.
В каждой папке с названием сервера фермы лежат уже другие папки папки со следующими названиями:
-Snapshots
-Virtual Hard Disk
-Virtual Mashines
А как из всего этого поднять машину на своём компе я не понимаю.
Объясните ПЛЗ.
Запускаете консоль Hyper-V Manager — ПКМ по Hyper-Vсерверу — Import Virtual Machines — указываете путь к папке с файлами первой ВМ — далее — далее.
И так нужно импортировать все ВМ
Большое спасибо!!!
Но я при переносе обратил внимание на одну вещь, которая поставила меня в тупость…
У нас на старой виртуалке было три сервера, а в папке, переданной мне системным администратором оказалось четыре корневых папки.
Три папки — всё понятно с именами старых виртуальных серваков, но в с ними вместе я обнаружил ещё одну папку с непонятным названием, в которой также были подпапки с понятнымии названияи
-Snapshots
-Virtual Hard Disk
-Virtual Mashines
Откуда появилась эта четвёртая папка и что мне с ней делать????
Файлы с какими расширенями хрянятся в этой четвертой папке? Вомзожно это выделенная папка для общих виртуальных дисков или под дополнительные диски ВМ…
ТОесть при таком варианте отказоустойчивость есть? Если один сервер вдруг умер то все ВМ продолжают работать на втором?
Нет high availability при этом не обеспечивается. Для работы HA нужен нормальный взрослый кластер HV.
То-есть без внешней хранилки не обойтись? Безперерывной работы не требуется, задача стоит такая — при падении одного железного,автоматом на втором все встает…(пару тройку минут на загрузку вполне устроит) там на нем керио , касперский сервер и Ad и все.
Вероятно в вашем случае подойдет технология репликации Hyper-V. Она предполагает наличие копии ВМ на другом хосте на случай аварии с ручным приводом (автоматически не отслеживается жива ли исходная виртуалка).
Добрый день.
У меня есть схд к которой подключение сервер сhyper v. На схд настроены lun. Купили второй сервер и подключили к схд. Сервер 2 видит теже lun что и первый.
Задача: перенести виртуальные машины с первого hyper v на второй.
Подскажите как лучше сделать?
Если нужен полные переезд на второй сервер, просто выключите ВМ, отключите доступ к СХД для 1 хоста и зарегистрируйте ВМ на втором сервере.
Если вам нужен полноценный кластер, нужно создатьотдельный LUN с CSV и руками перенести туда файлы ВМ. Потом зарегистрировать.
Важное замечание. На Server 2019 (вообще говоря начиная с 2016, но я на 2016 не проверял) при настройке делегирования нужно выбирать не «Use Kerberos only», а «Use any authentication protocol». Иначе миграция не работает выдавая ошибку «No credentials are available in the security package (0x8009030E)».
Если у кого ошибка 0x80048016 проверьте версию конфигурации Hyper-V У меня ошибка появлялась при попытке миграции машиныс с версией 10.0 на Hyper-V Server 2019 который поддерживает только версию 9.0
а что делать если сервера в разных домена (доверительные отношения установлены)?
Да, HV сервера могут быть в разных доменах с трастами:
Source and destination computers that either belong to the same Active Directory domain, or belong to domains that trust each other.
_https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/set-up-hosts-for-live-migration-without-failover-clustering
Уточните, пожалуйста, версии обоих серверов с Hiper-V должны быть одинаковыми? Я пытаюсь мигрировать VM с Serv2016 на Serv2012R2 и получаю ошибку. В журнале событий есть такая ошибка: «Службе управления виртуальными машинами не удалось установить соединение для миграции виртуальной машины, так как узел назначения не поддерживает правильную версию протокола (версия протокола 6.0).»
В докуменнтации указано что возможна миграция между Hyper-V с разными версиями Windows Server, если версия ВМ не менее 5:
Get-VM * | Select-Object Name, Version
The Hyper-V role in Windows Server 2016 or Windows Server 2012 R2 installed on the source and destination servers. You can do a live migration between hosts running Windows Server 2016 and Windows Server 2012 R2 if the virtual machine is at least version 5.
_https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/deploy/set-up-hosts-for-live-migration-without-failover-clustering