Короткий ответ
Live Migration переносит память и состояние на другой хост, диск при CSV часто остаётся на C:\ClusterStorage\Volume1. Ошибка — это не «ещё раз Move». Снимите Event ID 21502 в Hyper-V-VMMS, тип аутентификации (CredSSP vs Kerberos), Constrained Delegation на объекты HV01$/HV02$, сеть миграции и флаг CPU compatibility.
CredSSP работает, только если вы интерактивно залогинены на исходном хосте. С рабочей станции через RSAT почти всегда нужен Kerberos + делегирование.
Симптомы и как отличить
Типичная картина:
- прогресс в GUI замирает, VM остаётся на
HV01; Move-VM: Access is denied / failed to establish connection;- миграция сети storage (SMB) отваливается на 445;
- на целевом узле VM появляется в Failed и исчезает.
Отличия:
| Что видно | Куда |
|---|---|
| Кластер не двигает роль вообще | VM не переносится |
| CSV не Online на цели | CSV |
| Нет vSwitch на цели | vSwitch |
| Путают с Replica | Replica |
Возможные причины
- Kerberos Constrained Delegation не настроен на
cifsиMicrosoft Virtual System Migration Serviceмежду узлами. - Выбрана аутентификация CredSSP, запуск с «не того» компьютера.
- Сеть Live Migration: нет маршрута, режется firewall, смешана с CSV/VM в перегруженном 1 GbE.
- CPU разных поколений, CompatibilityForMigrationEnabled выключен.
- Версия конфигурации VM выше на источнике, чем роль Hyper-V на цели (2019 vs 2025).
- Не хватает RAM на целевом узле.
- Имя vSwitch на цели другое.
Диагностика
Get-VMHost | Format-List VirtualMachineMigrationEnabled, MaximumVirtualMachineMigrations, VirtualMachineMigrationAuthenticationType, VirtualMachineMigrationPerformanceOption
Get-VM -Name 'VM-APP01' | Format-List Name, Version, State, Path
Get-VMProcessor -VMName 'VM-APP01' | Format-List CompatibilityForMigrationEnabled, Count
Get-VMNetworkAdapter -VMName 'VM-APP01' | Format-Table SwitchNameНа цели то же плюс свободная память и наличие CorpNet.
Журнал:
Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-Hyper-V-VMMS-Admin'; Id = 21502; StartTime = (Get-Date).AddHours(-12) } |
Format-List TimeCreated, MessageСеть (порт службы миграции 6600 — документированный для Virtual System Migration Service):
Test-NetConnection -ComputerName 'HV02.contoso.example' -Port 6600
Test-NetConnection -ComputerName 'HV02.contoso.example' -Port 445Firewall: правила Hyper-V / Live Migration должны быть Enabled в Domain. Не отключайте весь firewall.
Delegation проверяйте в Active Directory: на учётке компьютера источника — constrained delegation к сервисам цели (и часто взаимно). «Trust this computer for delegation to any service» (unconstrained) не рекомендуется как «чтобы заработало».
Кластерные сети: в Failover Cluster Manager Live Migration должен использовать выделенную сеть, не client-facing.
Решение
Сценарий A. CredSSP с RSAT
На хостах:
Set-VMHost -VirtualMachineMigrationAuthenticationType KerberosНастройте constrained delegation (AD Users and Computers / Set-ADComputer с principial-именами служб по документации Microsoft для Live Migration). После изменения delegation — новый билет: klist purge на машине, с которой инициируете, или новая сессия.
Сценарий B. CPU
Set-VMProcessor -VMName 'VM-APP01' -CompatibilityForMigrationEnabled $trueЧасто нужен Off/reboot гостя, чтобы флаг применился к разделу. Согласуйте простой. Это маскирует расширенные инструкции — для SQL иногда сознательно держат одинаковые CPU вместо флага.
Сценарий C. Сеть и производительность
Выделите сеть LM. SMB Compression / RDMA — только если драйверы и коммутаторы это умеют; иначе оставьте TCP. Перегрузка 1 GbE simultaneous migrations: снизьте MaximumVirtualMachineMigrations на время.
Set-VMHost -MaximumVirtualMachineMigrations 2Сценарий D. Switch name и RAM
Создайте на HV02 коммутатор CorpNet. Освободите память или не мигрируйте на забитый узел. Dynamic Memory на цели должен позволить Startup RAM.
Сценарий E. Shared-nothing
Права на SMB-шару назначения, место, и снова Kerberos к cifs цели. Длинный копирование VHDX — это не «зависло на 50%», смотрите счётчики диска/сети (производительность).
На кластере сначала смотрите, умеет ли узел принять роль: Possible Owners, CSV Online, имя CorpNet. Если Move-ClusterVirtualMachineRole падает с 21502 — это эта статья. Если роль даже не пытается ехать (серый Move, сразу «not a possible owner») — перенос между узлами, не delegation.
Запись в журнал цели часто информативнее источника: VMMS на HV02 пишет, почему не создался worker (RAM, switch, путь). Копируйте Message целиком в заявку, не только «failed».
Для shared-nothing убедитесь, что SMB-путь назначения не тот же файл, который ещё Attached на источнике. Live копирование VHDX при backup lock даст 0x80070020 посреди процента.
Как проверить, что проблема устранена
Move-VM -Name 'VM-APP01' -DestinationHost 'HV02.contoso.example'
Get-VM -ComputerName 'HV02.contoso.example' -Name 'VM-APP01' | Format-List State, ComputerName
Get-VMNetworkAdapter -ComputerName 'HV02.contoso.example' -VMName 'VM-APP01'Для кластера предпочтительно Move-ClusterVirtualMachineRole. VM Running на цели, ping гостя не рвался дольше допустимого окна (секунды). Обратная миграция на HV01 тоже проходит — иначе односторонняя делегация.
Нет новой 21502. Heartbeat зелёный.
Если не помогло
- Ошибка только с диском: CSV ownership/redirected.
- Только с рабочей станции: delegation с этой станции не нужна для cluster move с узла, инициируйте с
HV01после Kerberos host-to-host. - Версия VM 12.0 на хосте 2019: перенос только на хост, который это умеет.
- Антивирус сканирует память/VHDX во время LM — исключения Hyper-V, не disable Defender навсегда.
Профилактика
- Kerberos LM в стандарте площадки, не CredSSP.
- Одинаковые имена vSwitch.
- Совместимые CPU или флаг compatibility на подвижных VM.
- Выделенная сеть Live Migration.
- Мониторинг Event 21502.
- Документ constrained delegation (какие SPN).
FAQ
Quick Migration vs Live?
Quick сохраняет VM (Saved) и переносит — простой. Live без Saved, если хватает сети и совместимости.
Нужен ли одинаковый patch level?
Желательно близкий. Слишком старый хост может не принять конфиг. Не мигрируйте «на непатченный» как на DR без проверки Version.
Порт 6600 закрыт между VLAN — открыть любой?
Нет. Откройте требуемые для LM/SMB между гипервизорами по политике, не Any-Any. Management VLAN часто не должна быть открыта с пользовательских сетей.
Compatibility forever на всех VM?
Компромисс. Для HPC/новых инструкций лучше одинаковые CPU. Для парка «разный железо» — флаг.
Почему кластерная миграция работает, а Move-VM с ноутбука нет?
Кластерный ресурс мигрирует от SYSTEM узлов. Ваш RSAT упирается в double-hop Kerberos. Это ожидаемо до настройки delegation.
Storage migration отдельно?
Move-VMStorage / Move VM storage в GUI. Права SMB, место, отсутствие lock backup. Не путать с compute-only LM.