13:02 

Network, profiles, ports...

Hikedaya
Stance Dance

Казалось бы, ничто не предвещало. Ну выключили все оборудование на одной из площадок (шли работы с электричеством). Ну включили его назад, проверили, что все работает, оно и работает. А SCOM ни с того, ни с сего начал вопить, что на гипервизорах Win 2012 по какой-то причине закрыты порты для файлового обмена. И это при том, что на шары тех серверов вполне себе заходишь, все, что надо, видишь. Что за напасть?
Коллега подсказал, что такое возникает в случае, если гипервизор был поднят раньше контроллера домена, и сетевой профиль сбросился с доменного на публичный. Ну а исправлять это, соответственно, перезагрузкой гипервизора при уже живом контроллере.
В этот раз по такому проверенному методу и пошли, перезагрузили гипервизоры. Но ведь неправильно это, должен быть метод сброса профиля на правильный.
Начинаем ковырять. Согласно всемирному разуму, за профили сетей у нас отвечает служба Network Location Awareness (NLA). А что, если ее перезапустить при работающем сервере в ситуации, когда контроллер домена уже жив? Настраиваем небольшую лабораторию: один контроллер на 2008 (выше все равно не поставлю ибо x86 only) и одна ВМ под управлением Windows 7 - она исполнит роль того сервера-гипервизора, что нужно вылечить. Лаборатория поднялась, все отлично. Тушим ее и поднимаем только Windows 7. Так и есть, профиль сети, которая ранее была Domain Network - example.com теперь стала неопознанной публичной сетью. Замечательно, даем рестарт службы NLA. И тут нас поджидает фейл, не смогла она остановиться.
Как же так? А вот как. В дочерних службах NLA указана еще одна - Network List Service. Она заведует списками профилей. И ее тоже надо потушить. И как раз на стадии выключения этой дочерней службы получаем ошибку "Can't stop service...". Причем ссылается ОС на внутреннюю ошибку либо в этой службе, либо в самой ОС, и, как всегда, предлагает обратиться к системному администратору (а я кто, по-твоему?!). Как же тебя корректно потушить. А что если воспользоваться старым грязным хаком, который я уже и не вспомню, откуда в моей голове - сменить тип запуска службы? Меняем на Disabled и пробуем остановить - потухла. Замечательно, теперь очередь их поднять. Сначала поднимаем дочернюю, предварительно выставив ей тип запуска Manual (именно в таком режиме она по-умолчанию). Поднялась. Теперь запускаем NLA - взлетела. Смотрим на профиль сети - Domain network - example.com. Что и требовалось.
Проверка номер два - а теряется ли в этот момент сетевое соединение с "гипервизором". По логике вещей не должно теряться, но если возникло сомнение - проверяй. Повторяем эксперимент, добавив в лабу третью ВМ - рабочую станцию администратора. Запускаем на ней пинг к гипервизору и прямо с нее проводим рестарт служб. Все отлично, "ни единого разрыва" (с). Плюс одна монета в копилку знаний.
На будущее оформляем все в виде скрипта:

@музыка: Ryan Farish - Let it rain

@темы: PowerShell, Scripting

URL
Комментарии
2015-11-26 в 09:56 

Красиво! у нас только раз такое было, при плановой остановке, но перезагрузили гипервизор и не придали значения для разбирательств.
А что если воспользоваться старым грязным хаком, который я уже и не вспомню, откуда в моей голове - сменить тип запуска службы? Меняем на Disabled и пробуем остановить - потухла
Грязнее некуда, но это самый быстрый вариант, стопарю аналогично.

2015-11-26 в 10:49 

Hikedaya
Stance Dance
Меня другое умиляет. Каким образом вообще этот флаг (Startup Type) может влиять на способность службы потухнуть?

URL
2015-11-27 в 13:26 

Может при данном флаге не проверяются зависимости от других служб, запущены или нет.
Либо проверяется значение в реестре у службы
IF Start = 4 Then Остановку разрешаю.
Неведомо как там индусы писали..

   

Записная книжка

главная