среда, 22 марта 2017 г.

Ошибка работы Windows Server 2016 Hyper-V Cluster (v.9) с SCVMM 2016

Столкнулся на одной из площадок с очень странной проблемой. После обновления Cluster Functional Level до версии 9 (Windows Server 2016) часть хостов стала работать с System Center Virtual Machine Manager 2016 UR2.1 некорректно. Error 12711 (0x1002).



Изначально Hyper-V кластер был построен на базе Windows Server 2012R2. После мы приняли решение обновить хосты до Windows Server 2016. Для этого поочередно все узлы кластера были удалены из SCVMM и из AD, выполнена чистая установка Windows Server 2016 и всех обновлений. После хосты вводились в  SCVMM и добавлялись в кластер. Работы проводились неспешно и растянулись на две недели, хотя хостов было мало (далее окажется, что это очень важная информация).

И вот настал момент, когда все хосты работали под управлением Windows Server 2016. Осталось выполнить довольно безопасную операцию по обновлению Cluster Functional Level до версии 9. Обновление запустили из консоли SCVMM. По-сути, она делает две операции:

1. Update-ClusterFunctionalLevel

2. Refresh Host Cluster

Обновление прошло успешно, но внезапно начались чудеса. На нескольких хостах SCVMM потерял возможность управления виртуальными машинами. Нельзя было выполнить миграцию с/на эти хосты, операция Read-SCVirtualMachine тоже заканчивалась с ошибкой:

Error (12711)
VMM cannot complete the WMI operation on the server (CL.contoso.local) because of an error: [MSCluster_ResourceGroup.Name="SCVMM testtmp Resources"] Not found

Unknown error (0x1002)

Recommended Action
Resolve the issue and then try the operation again.

При миграции с/на проблемный хост ошибка выглядела так:

Error (12711)
VMM cannot complete the WMI operation on the server (host06.contoso.local) because of an error: [MSCluster_ResourceGroup.Name="ef43b5d6-6331-4c40-b708-c1f002fa8489"] Not found

Unknown error (0x1002)

Recommended Action
Resolve the issue and then try the operation again.

При всем этом из консоли Failover Cluster Manager все операции работали корректно. Так же при миграции виртуальных машин в jobs SCVMM автоматически отрабатывало обнаружение ВМ и на хостах обновлялись маршруты для виртуальных сетей.

Действия по перезапуску хоста, выведению его из VMM/Cluster/Domain ни к чему ни приводили. В сети у меня получилось найти только отдаленно похожие проблемы, решение для которых не подходило даже близко.

Оказалось же, что решение лежало на поверхности. 14 марта 2017 вышло обновление для Windows Server 2016 KB4013429, в котором исправили много важных проблем и добавили несколько новых. Обнаруженные ошибки попытались исправить в обновлении KB4015438 от 20 марта 2017, которое заменяет собой KB4013429. И вот самое интересное - на хостах, где весь функционал работал корректно, эти обновления отсутствовали!

Далее началась работа по удалению обновлений. Если с KB4015438 проблем не возникло, то с KB4013429 все оказалось немного сложнее. Простое удаление приводило к тому, что ОС не загружалась. Поэтому надо выполнить следующие шаги:

1. Удалить хост из кластера (через консоль SCVMM)

2. Удалить с хоста виртуальные свитчи

3. Удалить хост из SCVMM (на всякий случай)

4. Удалить роль Hyper-V

5. Удалить обновление KB4013429

6. Добавить роль Hyper-V

7. Добавить хост в SCVMM и кластер заново

На этом все, очень надеюсь что данный пост поможет вам избежать данной проблемы. Но если столкнетесь с ней, то сэкономите немного времени на поиски решения.

UP. Апрельский накопительный пакет обновлений (KB4015217) данную проблему не устраняет.

UP. Проблема решена!

15 комментариев:

  1. я воспроизвел проблему в лабе. замечание №1 - из оснастки Failover Cluster не все работает - нельзя удалить роль с точно такой же ошибкой: Name not found. Продолжаю копать дальше - надо обновить остатки хостов, а у меня этот процесс долгий и болезненный. Если что еще откопаю - напишу

    ОтветитьУдалить
    Ответы
    1. Супер, спасибо! Я тоже напишу, если у меня появится новая информация по проблеме.

      Удалить
    2. после обновления хостов ларчик открылся очень просто =) Disclaimer - у меня работает, любые повреждения инфраструктуры говорят об отсутствии тестовой среды. ну и собственно ларчик: обновляем хосты, после:
      get-clusterresource | where {$_.resourcetype.name -eq 'virtual machine configuration'} | Update-ClusterVirtualMachineConfiguration

      Удалить
    3. Могу предположить, что данное решение актуально в том случае, если обновлены все хосты в кластере. А так да, это первое, что нашлось по похожим проблемам. Сейчас проверить это предположение у меня не получится - совсем нет времени. Саму проблему ребята из Microsoft подтвердили. Возможно скоро выйдет обновление, которое устраняет ошибки от предыдущих обновлений.

      Удалить
    4. nope. достаточно обновить хотя бы один хост. то есть виртуалки на обновленном хосте будут чуствовать себя хорошо. на необновленных - нет. более того, у вас все было обновлено. пара минут и все готово

      Удалить
    5. Проверено. Update-ClusterVirtualMachineConfiguration, refresh cluster, refresh host, refresh VMs. Ошибка остается. Это едва ли не первое, что я пробовал делать.

      Удалить
    6. Более того - хост даже выводился из кластера и домена. Не помогает, ошибка та же.

      Удалить
    7. а ты ставил ur 2.1 для vmm?

      Удалить
  2. Артём, подскажите, есть ли решение среди новых патчей?
    Мы столкнулись с такой же проблемой, и вовремя отключили установку KB4013429 на 2016 хосты. Но этот же патч устраняет брешь в SMBv1 на 2016.
    Можно, конечно, просто удалить этот компонент из системы или отключить его через PS, но обновляться рано или поздно всё равно придётся.

    ОтветитьУдалить
    Ответы
    1. Tobias, пока проблема не решена. Сейчас в очередной раз веду переписку с техподдержкой Microsoft (я уже уведомлял их про этот баг, но тогда решили подождать обновления). В майском КВ проблема тоже есть.

      Удалить
    2. ОК, ждём. Буду периодически просматривать эту статью, в ожидании решения.

      Удалить
    3. На всякий случай "апну" - заявка в Microsoft все еще гуляет. Собрали с меня в очередной раз кучу логов и ушли думать :)

      Удалить
    4. http://www.lin.by/2017/05/hyper-v-v.html#more

      Проблема решена, теперь можно двигаться дальше :)

      Удалить