В инструментарии первичной настройки файлового кластера на базе Windows Server 2022 мы зачастую используем механизм управления дисковыми квотами, реализуемый на базе службы "File Server Resource Manager" (FSRM). И вот, в очередном из развёртываний, мы столкнулись с одной странной проблемой, которая воспроизвелась сразу на двух узлах кластера. При попытке открытия оснастки "File Server Resource Manager" (%windir%\system32\fsrm.msc) на обоих узлах кластера получили сообщение об ошибке "File Server Resource Manager could not load WMI objects…".
Выяснилось, что одной из причин такой проблемы может быть то, что системная служба "File Server Resource Manager" (SrmSvc) в ходе загрузки ОС запускается раньше службы "Windows Management Instrumentation" (Winmgmt). То есть, первичным решением проблемы может быть банальный перезапуск службы FSRM и консоль управления снова должна "ожить".
И судя по статье "KB2831687 - File Server Resource Manager could not load WMI objects in Windows Server" об этой проблеме известно давно.
Проверка текущих настроек зависимостей службы FSRM показала, что в них действительно нет связи со службой WMI.
В этой связи возникает пара вопросов. Почему MS не внесли в дефолтную конфигурацию службы FSRM зависимость от службы WMI и почему мы раньше не сталкивались с подобной ошибкой при работе с FSRM на старых Windows Server 2012 R2/2016 и даже на других новых кластерных развёртываниях Windows Server 2022? На первый вопрос у меня ответа нет, а на второй вопрос есть некоторое предположение.
По всей видимости, в большинстве ситуаций служба FSRM стартует позже, чем WMI и проблема себя никак не проявляет. Но возможны "вспышки на солнце" при которых WMI запустится позже, чем FSRM, и проблема снова воспроизведётся.
Чтобы исключить возможность возникновения проблемы в дальнейшем, настроим зависимости для службы FSRM.
Изменить зависимость служб Windows можно разными способами, например с помощью прямой правки реестра утилитой regedit, как описано в вышеупомянутой статье KB2831687, или с помощью утилиты sc, как мы рассматривали в примере ранее. В данном случае мы сделаем это с помощью PowerShell.
Чтобы запросить информацию о текущих зависимостях службы, выполним:
Get-Service "File Server Resource Manager" -RequiredServices
Чтобы изменить перечень служб, от которых зависит данная служба, используем команду следующего вида:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SrmSvc" -Name DependOnService -Value @("RPCSS","Winmgmt")
Теперь снова можем заглянуть в оснастку управления службами Windows и убедиться в том, что в свойствах службы "File Server Resource Manager" теперь отображается информация о зависимости от службы "Windows Management Instrumentation".
После этого можно несколько раз инициировать перезапуск системы, чтобы убедиться в том, что проблема больше не воспроизводится. При этом если речь идёт про узлы кластера, то соответствующую конфигурацию службы FSRM нужно выполнить на всех узлах кластера.
Добавить комментарий