Короткий ответ

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
Путают с ReplicaReplica

Возможные причины

  1. Kerberos Constrained Delegation не настроен на cifs и Microsoft Virtual System Migration Service между узлами.
  2. Выбрана аутентификация CredSSP, запуск с «не того» компьютера.
  3. Сеть Live Migration: нет маршрута, режется firewall, смешана с CSV/VM в перегруженном 1 GbE.
  4. CPU разных поколений, CompatibilityForMigrationEnabled выключен.
  5. Версия конфигурации VM выше на источнике, чем роль Hyper-V на цели (2019 vs 2025).
  6. Не хватает RAM на целевом узле.
  7. Имя 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 445

Firewall: правила 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.