Короткий ответ
Integration Services — каналы хост↔гость: Heartbeat, KVP, Shutdown, Time Sync, VSS, Guest Service Interface. На современных Windows они стоят в госте и обновляются Windows Update гостя, не ISO 2012. Если IC «мешают», обычно виновата одна служба (время, VSS), а не весь набор. Не ставьте все Integration Service в Disabled навсегда: потеряете корректный shutdown, backup и Dynamic Memory balloon.
Снимите Get-VMIntegrationService на HV01 и службы vmic* в VM-APP01.
Симптомы и как отличить
Типичная картина:
- иконка VM с красным heartbeat;
Get-VMNetworkAdapterбез IP при живом стеке гостя;- Veeam/WBAdmin падает на Hyper-V writer / нет production checkpoint;
- Turn Off вместо Shutdown из менеджера.
Отличия:
| Что видно | Куда |
|---|---|
| Только время | синхронизация времени |
| Только ESM | Enhanced Session |
| Только backup freeze | VM при backup |
| Нет сети вообще | сеть VM |
Возможные причины
- В госте службы
vmic*Stopped/Disabled GPO. - Устаревшие LIS на старом Linux / неполный hv_* в ядре.
- Выключили VSS IC «чтобы не было снимков» — backup перешёл на Saved State.
- Конфликт стороннего backup agent с vmicvss.
- Гость в Saved/Paused долго, IC не в Running.
- Антивирус гостя блокирует vmic*.
Диагностика
Хост:
Get-VMIntegrationService -VMName 'VM-APP01' | Format-Table Name, Enabled, PrimaryStatusDescription, SecondaryStatusDescription
Get-VM -Name 'VM-APP01' | Format-List State, Status, Heartbeat, IntegrationServicesStateГость Windows:
Get-Service vmic* | Format-Table Name, DisplayName, Status, StartType
Get-WinEvent -FilterHashtable @{ LogName = 'System'; ProviderName = 'Microsoft-Windows-Hyper-V-Integration'; StartTime = (Get-Date).AddDays(-3) } -ErrorAction SilentlyContinue |
Select-Object -First 20 TimeCreated, Id, MessageТипичные имена: vmicheartbeat, vmickvpexchange, vmicshutdown, vmictimesync, vmicvss, vmicguestinterface, vmicrdv (если есть в вашей сборке).
VSS:
vssadmin list writersИщите Hyper-V / VSS writers внутри гостя (SQL, NTDS) если production checkpoint.
Linux: systemctl status hv-kvp-daemon hv-vss-daemon hv-fcopy-daemon (имена зависят от дистрибутива), lsmod | grep hv_.
Решение
Сценарий A. Службы Disabled в госте
Верните StartType Manual/Automatic как у эталонного сервера, Start-Service. Снимите GPO, которая их убивает. На хосте Enabled $true:
Get-VMIntegrationService -VMName 'VM-APP01' | Enable-VMIntegrationServiceТочечно Time Synchronization можно выключить на DC по политике времени — это исключение, не шаблон для всех VM.
Сценарий B. Обновление Windows-гостя
Установите обновления гостя (Servicing Stack + накопительный). ISO Integration Services с хоста 2008/2012 на госте 2019+ не нужен и вреден. Перезагрузка гостя после патча IC — по необходимости, не reboot хоста.
Сценарий C. VSS IC «мешает» приложению
Не отключайте навсегда. Настройте writer приложения, VSS timeout backup, исключение томов. Если вендор явно требует standard checkpoint / отказ от VSS — задокументируйте и оставьте heartbeat/shutdown включёнными.
Сценарий D. Linux
Ставьте поддерживаемое ядро с hv_netvsc/hv_storvsc, пакет linux-azure / hyperv-daemons по документации дистрибутива. Старый LIS с ISO Microsoft — только для древних RHEL, не для актуального Ubuntu как первый шаг.
Сценарий E. Heartbeat Lost под нагрузкой
Сначала CPU/RAM гостя (Dynamic Memory). Увеличение interval heartbeat — не ваш первый рычаг.
Heartbeat «OK» не доказывает, что VSS жив. Смотрите службы по имени. Обратно: VSS OK при Lost heartbeat — гость перегружен, IC не успевает ответить.
После P2V в госте иногда торчит старый установщик Integration Services 6.x. Не запускайте его на Server 2019/2022/2025. Inbox-компоненты + Windows Update гостя.
PowerShell Direct (Invoke-Command -VMName 'VM-APP01') требует Guest Service Interface и службу в госте. Direct мёртв при зелёном heartbeat — смотрите vmicguestinterface, не сеть LAN.
Не оставляйте Time Sync выключенным «на всех VM как на DC». Политика времени — точечная. Эталон: heartbeat, shutdown, KVP, VSS включены; time sync — по роли гостя.
Get-VMIntegrationService -VMName 'VM-APP01' | Format-Table Name, Enabled, PrimaryStatusDescriptionСверяйте с эталонной VM на том же хосте, не с форумным списком Disabled.
Как проверить, что проблема устранена
Get-VMIntegrationService -VMName 'VM-APP01' | Format-Table Name, Enabled, PrimaryStatusDescription
Get-VM -Name 'VM-APP01' | Format-List Heartbeat, StateHeartbeat OK. Shutdown из Hyper-V корректно гасит Windows (журнал гостя Event shutdown). Production checkpoint тестовый проходит или backup job без Saved State. KVP показывает IP, если сеть есть.
В госте Get-Service vmic* не Disabled.
Если не помогло
- IP нет в KVP, ping есть: это косметика KVP, сеть жива.
- Только Guest Service Interface Failed: ESM/копирование файлов, остальное может быть OK.
- После клона SID/IC кэш: reboot гостя, не пересоздание VM.
- Хост старый, гость 2025: обновите интеграцию со стороны гостя, хост всё равно должен быть поддерживаемой пары.
Профилактика
- Запрет GPO Disable на vmic* без исключения Hyper-V гостей.
- Патч гостей, не только хостов.
- Мониторинг Heartbeat и writers.
- Не ставить «все IC off» в шаблон VM.
- Эталон
Get-VMIntegrationServiceпосле деплоя. - После клонирования VM проверьте службы
vmic*в госте: GPO и образ часто оставляют Disabled только на копии. - Не обновляйте хост Integration ISO «на всякий» против Windows-гостей 2019+: ломаете inbox. Linux — пакеты дистрибутива, не случайный LIS.
FAQ
Нужен ли ISO Integration Services?
Для Windows Server 2012 R2+ / Windows 8.1+ — нет, компоненты в образе. ISO — наследие.
Можно ли выключить только Time Sync?
Да, осмысленно для DC по модели времени. Heartbeat и Shutdown оставьте.
Heartbeat Off сэкономит CPU?
Пренебрежимо. Потеряете детект зависшего гостя.
Copy-VMFile не работает?
Guest Service Interface + служба в госте + Enabled. Не SMB.
Linux без daemons — VM «не поддерживается»?
Сеть/диск часто работают на in-kernel драйверах. Без daemons нет KVP/VSS/fcopy. Backup будет иначе.
Enable-VMIntegrationService не помогает, в госте Disabled?
Хост включает канал, гость должен запустить службу. Чините гостя/GPO, не только галку Hyper-V.
После Live Migration IC могут кратко быть Lost — это не повод Disable. Если Lost держится минутами, смотрите CPU гостя и Get-VMIntegrationService на новом OwnerNode, не на старом HV01.