Функция Live migration в Hyper-V позволяет перенести запущенную виртуальную машину между хостами без простоя. Изначально Live migration в Hyper-V была доступна только в рамках Windows Failover Cluster с общим хранилищем в виде Cluster Shared Volumes (CSV). Начиная с Windows Server 2012 Hyper-V Live Migration не требует кластера и общего хранилища. Для миграции ВМ достаточно, чтобы хосты Hyper-V были связаны быстрой общей сетью Ethernet. Такой тип миграции называется Shared-nothing live migration.
Требования Hyper-V Live Migration:
- Не менее двух хостов с Hyper-V, включенных в один домена Active Directory;
- Версия ВМ hardware не ниже 5.0;
- На хосте-приемнике должно быть достаточно ресурсов, чтобы запустить ВМ;
- На хостах должны использоваться процессоры с одинаковой архитектурой процессоров (или придется включить для ВМ режим Compatibility:
Set-VMProcessor testvm1 -CompatibilityForMigrationEnabled $true
); - Желательно наличие не мене 1ГБ Ethernet сети между хостами (рекомендуется выделить отдельный сетевой адаптер для трафика Live Migration). На сетевых адаптерах нужно включить протоколы Client for Microsoft Networks и File and Print Sharing for Microsoft Networks;
- Каждый хост Hyper-V должен иметь доступ к собственному хранилищу виртуальных машин (локальные диски, LUN в SAN или общие сетевые папки SMB 3.0). Pass-through диски не поддерживаются;
- Виртуальные коммутаторы на всех хостах Hyper-V должны называться одинаково (это поможет избежать многих ошибок)
При Live Migration между хостами переносится:
- Виртуальные машины;
- Виртуальные диски;
- Содержимое оперативной памяти ВМ;
- Состояние процессора.
Рассмотрим, как включить и настроить Live Migration в Hyper–V:
- Откройте Hyper-V Settings на обоих хостах и включите опцию “Enable incoming and outgoing live migration”. Можно изменить максимальное количество одновременно перемещаемых виртуальных машин (Simultaneous live migrations). Чтобы избежать высокую нагрузку на хосты и сеть лучше оставить значение по умолчанию — две одновременные миграции;
- В секции Incoming live migration вы можете указать каким хостам Hyper-V разрешено мигрировать виртуальные машины на этот сервер;
- Затем перейдите в раздел Advanced Features и выберите протокол аутентификации Kerberos (Use Kerberos).
Можно выполнить эти же действия с помощью PowerShell (не забудьте, что нужно выполнить аналогичные настройки на всех хостах Hyper-V):
Enable-VMMigration
Set-VMMigrationNetwork 192.168.1.2 192.168.1.4
Set-VMHost -VirtualMachineMigrationAuthenticationType Kerberos
Также вы можете ускорить Live Migration, отключив сквозное шифрование данных SMB:
Set-SmbServerConfiguration -EncryptData $false -RejectUnencryptedAccess $false
При использовании аутентификации Kerberos для переноса ВМ между хостами вам нужно настроить Kerberos Constrained Delegation в свойствах хостах Hyper-V в свойствах учётной записи компьютера в Active Directory.
Запустите консоль ADUC (dsa.msc
), откройте свойства учетной записи хоста Hyper-V и перейдите на вкладку Delegation. Выберите опцию Trust this computer for delegation to specified services only -> Use Kerberos Only.
Нажмите кнопку Add -> выберите второй Hyper-V хост и службу Microsoft Virtual System Migration Service.
No credentials are available in the security package
” (Event ID 20306). Дело в том, что в этих версиях Windows Server службы Hyper-V работают в контексте NETWORK SERVICE. Чтобы исправить эту ошибку придется использовать менее безопасный механизм Unconstrained Delegation (Use any authentication protocol).Аналогичные настройки надо выполнить для всех Hyper-V серверах, которые участвуют в Live Migration.
Теперь попробуйте мигрировать ВМ с одного хоста Hyper-V на другой:
- Щелкните по виртуальной машине правой кнопкой и выберите Move;
- Выберите тип миграции — Move the virtual machine;
- Выберите сервер Hyper-V, на который нужно перенести ВМ;
- Выберите Move option: Move the virtual machine’s data to a single location;
- Дождитесь окончания миграции ВМ на другой хост Hyper-V.
Если Live Migration не включена на целевом хосте или ваш сервер не добавлен в список Incoming live migration, вы получите ошибку:
Live migrations are not enabled on this computer. This computer is not configured for live migration of virtual machines. To enable live migration, modify the Hyper-V settings.
Вы также можете запустить Live-Migration виртуальной машины с помощью PowerShell:
Move-VM myvm1 msk-hv01 -IncludeStorage -DestinationStoragePath D:\vm\myvm1