Устранение неполадок при регистрации Azure Stack HCI

Для устранения неполадок с регистрацией Azure Stack HCI требуется просмотр журналов регистрации PowerShell и журналов отладки hcisvc с каждого сервера в кластере.

Сбор журналов регистрации PowerShell

Register-AzStackHCI При выполнении командлетов Unregister-AzStackHCI файлы журналов с именем RegisterHCI_{yymmdd-hhss}.log и UnregisterHCI_{yymmdd-hhss}.log создаются для каждой попытки. Эти файлы создаются в рабочем каталоге сеанса PowerShell, в котором выполняются командлеты. Журналы отладки не включаются по умолчанию. Если возникла проблема, из-за которой требуются дополнительные журналы отладки, задайте для параметра отладки значение "Продолжить ", выполнив следующий командлет перед запуском Register-AzStackHCI или Unregister-AzStackHCI:

$DebugPreference = 'Continue'

Сбор локальных журналов hcisvc

Чтобы включить журналы отладки для hcisvc, выполните следующую команду в PowerShell на каждом сервере в кластере:

wevtutil.exe sl /q /e:true Microsoft-AzureStack-HCI/Debug

Чтобы получить журналы, сделайте следующее:

Get-WinEvent -Logname Microsoft-AzureStack-HCI/Debug -Oldest -ErrorAction Ignore

Не удалось зарегистрировать. Не удалось создать самозаверяющий сертификат на узлах {Node1,Node2}. Не удалось задать и проверить сертификат регистрации на узлах {Node1,Node2}

Объяснение состояния сбоя:

Во время регистрации каждый сервер в кластере должен работать с исходящим подключением к Интернету к Azure. Командлет Register-AzStackHCI обращается ко всем серверам в кластере для подготовки сертификатов для каждого из них. Каждый сервер будет использовать свой сертификат для вызова API к службам HCI в облаке для проверки регистрации.

Если регистрация завершается ошибкой, может отображаться следующее сообщение: не удалось зарегистрировать. Не удалось создать самозаверяющий сертификат на узлах {Node1,Node2}. Не удалось задать и проверить сертификат регистрации на узлах {Node1,Node2}

Если после создания самозаверяющего сертификата на узлах в части сообщения об ошибке есть имена узлов, система не смогла создать сертификат на этих серверах.

Действие исправления:

  1. Убедитесь, что все серверы, перечисленные в приведенном выше сообщении, запущены и запущены. Вы можете проверить состояние hcisvc, запустив sc.exe query hcisvc его, если это необходимо start-service hcisvc.

  2. Убедитесь, что каждый сервер, указанный в сообщении об ошибке, подключен к компьютеру Register-AzStackHCI , на котором выполняется командлет. Проверьте это, выполнив следующий командлет с компьютера, на котором Register-AzStackHCI выполняется запуск, используя New-PSSession для подключения к каждому серверу в кластере и убедитесь, что он работает:

    New-PSSession -ComputerName {failing nodes}
    

Если после установки и проверки сертификата регистрации на узлах в части сообщения об ошибке есть имена узлов, служба смогла создать сертификат на серверах, но серверы не смогли успешно вызвать API облачной службы HCI. Чтобы устранить ошибку, сделайте следующее:

  1. Убедитесь, что у каждого сервера есть необходимое подключение к Интернету для взаимодействия с облачными службами Azure Stack HCI и другими необходимыми службами Azure, такими как Azure Active Directory, и что они не блокируются брандмауэрами. См. требования к брандмауэру для Azure Stack HCI.

  2. Попробуйте запустить Test-AzStackHCIConnection командлет и убедитесь, что он выполнен успешно. Этот командлет вызывает конечную точку работоспособности облачных служб HCI для проверки подключения.

  3. Просмотрите журналы отладки hcisvc на каждом узле, указанном в сообщении об ошибке.

    • Это нормально, чтобы сообщение ExecuteWithRetry операции AADTokenFetch завершилось сбоем с ошибкой повтора несколько раз, прежде чем выполнить сбой операции ExecuteWithRetry AADTokenFetch после всех повторных попыток или операции ExecuteWithRetry AADTokenFetch успешно выполнена повторно.
    • Если операция ExecuteWithRetry AADTokenFetch завершилась сбоем после всех повторных попыток в журналах, система не смогла получить маркер Azure Active Directory из службы даже после всех повторных попыток. Будет связано Azure AD исключение, записанное в журнал с этим сообщением.
    • Если отображается AADSTS700027: утверждение клиента содержит недопустимую подпись. [Причина — срок действия используемого ключа истек. Отпечаток ключа, используемого клиентом: "{SomeThumbprint}", найден ключ "Start=06/29/2021 21:13:15, End=06/29/2023 21:13:15", это проблема с настройкой времени на сервере. Проверьте время в формате UTC на всех серверах, запустив [System.DateTime]::UtcNow в PowerShell, и сравните его с фактическим временем в формате UTC. Если время неправильно, задайте правильное время на серверах, а затем повторите попытку регистрации.

Удаление ресурса HCI с портала и повторная регистрация того же кластера приводит к проблемам

Объяснение состояния сбоя:

Если вы явным образом удалили ресурс кластера Azure Sack HCI из портал Azure без предварительной отмены регистрации кластера из Windows Admin Center или PowerShell, удаление ресурса Azure Resource Manager HCI непосредственно на портале приведет к возникновению состояния ресурсов кластера. Отмена регистрации всегда должна запускаться из кластера HCI с помощью командлета Unregister-AzStackHCI для чистой отмены регистрации. В этом разделе описываются действия по очистке сценариев, в которых ресурс кластера HCI был удален с портала.

Действие исправления:

  1. Войдите на локальный сервер кластера HCI, используя учетные данные пользователя кластера.
  2. Unregister-AzStackHCI Выполните командлет в кластере, чтобы очистить состояние регистрации кластера и состояние Arc кластера.
    • Если отмена регистрации выполнена успешно, перейдите к Azure Active Directory > Регистрация приложений (все приложения) и найдите соответствующее clusterName имя иclusterName.arc. Удалите два идентификатора приложения, если они существуют.
    • Если отмена регистрации завершается сбоем с ошибкой ERROR: не удалось отключить интеграцию Azure Arc с именем> узла, <попробуйте запустить Disable-AzureStackHCIArcIntegration командлет на узле. Если узел находится в состоянии, где Disable-AzureStackHCIArcIntegration не удается запустить, удалите узел из кластера и повторите попытку выполнения командлетаUnregister-AzStackHCI. Войдите на каждый отдельный узел:
      1. Перейдите в каталог, в который установлен агент Arc: cd 'C:\Program Files\AzureConnectedMachineAgent\'.
      2. Получите состояние в arcmagent.exe и определите группу ресурсов Azure, в которые она проецируется: .\azcmagent.exe show. В выходных данных этой команды отображаются сведения о группе ресурсов.
      3. Принудительное отключение агента Arc от узла: .\azcmagent.exe disconnect --force-local-only.
      4. Войдите в портал Azure и удалите ресурс Arc-for-Server из группы ресурсов, определенной на шаге II.

Пользователь удалил идентификаторы приложений по ошибке

Объяснение состояния сбоя:

Если кластер отключен более 8 часов, возможно, что связанные Azure AD регистрации приложений, представляющие кластер HCI и регистрации Arc, могли быть случайно удалены. Для правильного функционирования кластера HCI и сценариев Arc во время регистрации в клиенте создаются две регистрации приложений.

  • <clustername> Если идентификатор приложения удален, подключение к кластеру Azure в портал Azure отображается "Отключено" — кластер не находится в подключенном состоянии в течение более 8 часов. Просмотрите журналы отладки HCIsvc на узле: сообщение об ошибке будет приложением с идентификатором ID<>, не найден в каталоге "Каталог по умолчанию". Это может произойти, если приложение не было установлено администратором клиента или предоставлено согласие любого пользователя в клиенте. Возможно, вы отправили запрос на проверку подлинности в неправильный клиент.
  • При <clustername>.arc удалении во время включения Arc видимые ошибки во время нормальной работы отсутствуют. Это удостоверение требуется только во время регистрации и отмены регистрации. В этом сценарии отмена регистрации завершается сбоем с ошибкой "Не удалось отключить интеграцию Azure Arc с именем> узла узла<". Попробуйте запустить командлет Disable-AzureStackHCIArcIntegration на узле. Если узел находится в состоянии, в котором не удалось запустить командлет Disable-AzureStackHCIArcIntegration, удалите узел из кластера и повторите попытку выполнения командлета Unregister-AzStackHCI.

Удаление любого из этих приложений приводит к сбою обмена данными из кластера HCI с облаком.

Действие исправления:

  • Если только <clustername> AppId удаляется, выполните регистрацию восстановления в кластере, чтобы настроить приложения Azure AD:

    Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -ComputerName Server1 -RepairRegistration
    

    Восстановление регистрации повторно создает необходимые Azure AD приложения, сохраняя другие сведения, такие как имя ресурса, группа ресурсов и другие варианты регистрации.

  • <clustername>.arc Если идентификатор приложения удален, в журналах нет видимой ошибки. Отмена регистрации завершится ошибкой при <clustername>.arc удалении. Если отмена регистрации завершается ошибкой, выполните те же действия по исправлению, которые описаны в этом разделе.

Ошибка "Не из политики"

Объяснение состояния сбоя:

Если ранее зарегистрированный кластер отображает состояние OutOfPolicy, изменения в конфигурации системы могли привести к тому, что состояние регистрации Azure Stack HCI выйдет из политики.

Например, системные изменения могут включать, но не ограничиваются следующими:

  • Отключение конфликтов параметров безопасной загрузки на зарегистрированном узле.
  • Очистка доверенного платформенного модуля (TPM).
  • Значительное изменение системного времени.

Примечание

Azure Stack HCI 21H2 с KB5010421 и более поздними версиями попытается автоматически восстановить состояние OutOfPolicy . Дополнительные сведения о состоянии OutOfPolicy и других сведениях см. в журнале событий Microsoft-AzureStack-HCI/Администратор.

Какие сообщения идентификатора событий OutOfPolicy можно было ожидать увидеть во время регистрации?

Существует три типа сообщений идентификатора события: информационные, предупреждения и ошибки.

Следующие сообщения были обновлены с помощью Azure Stack HCI 21H2 с KB5010421 и не будут видны, если эта база знаний не установлена.

Информационный идентификатор события

Информационные сообщения идентификаторов событий, возникающие во время регистрации. Просмотрите и просмотрите все предложения в сообщении:

  • (Информационное) Код события 592: "Azure Stack HCI инициировал восстановление своих данных. В настоящее время никаких дальнейших действий от пользователя не требуется".

  • (Информационное) Код события 594: "Azure Stack HCI обнаружил ошибку при доступе к своим данным. Чтобы восстановить, проверьте, какие узлы затронуты. Если весь кластер — OutOfPolicy (запустите Get-AzureStackHCI), выполните Unregister-AzStackHCI в кластере, перезапустите и запустите Register-AzStackHCI. Если затрагивается только этот узел, удалите этот узел из кластера, перезапустите и дождитесь завершения восстановления, а затем снова присоединитесь к кластеру".

Идентификатор события предупреждения

При использовании предупреждений состояние регистрации не завершается. Там может быть или не может быть проблемы. Сначала просмотрите сообщение идентификатора события, прежде чем принимать все действия по устранению неполадок.

(Предупреждение) Код события 585: "Azure Stack HCI не удалось продлить лицензию из Azure. Чтобы получить дополнительные сведения о конкретной ошибке, включите канал событий Microsoft-AzureStack-HCI/Debug".

Примечание

Возможные задержки при повторном установке полного подключения к Azure ожидаются после успешного автоматического восстановления и могут привести к отображению идентификатора события 585 . Это не влияет на рабочие нагрузки или лицензирование узла. Это значит, что по-прежнему установлена лицензия, если только узел не вышел из 30-дневного окна перед автоматическим восстановлением.

Примечание

В некоторых случаях Azure Stack HCI может не завершиться автоматическим восстановлением. Это может произойти, если состояние регистрации всех узлов в кластере выходит за пределы политики. Требуется выполнить некоторые действия вручную. См. сообщения идентификатора событий Microsoft-AzureStack-HCI/Администратор.

Идентификатор события ошибки

Сообщения об ошибках идентификатора события определяют сбой в процессе регистрации. Сообщение об ошибке содержит инструкции по устранению ошибки.

  • (Ошибка) Код события 591: "Azure Stack HCI не удалось подключиться к Azure. Если вы продолжите видеть эту ошибку, попробуйте снова запустить Register-AzStackHCI с параметром -RepairRegistration ".

  • (Ошибка) Код события 594: "Azure Stack HCI обнаружил ошибку при доступе к своим данным. Чтобы восстановить, проверьте, какие узлы затронуты . Если весь кластер — OutOfPolicy (запуск), запустите Get-AzureStackHCIUnregister-AzStackHCI его, перезапустите, а затем запуститеRegister-AzStackHCI. Если затронут только этот узел, удалите этот узел из кластера, перезапустите его, дождитесь завершения восстановления, а затем снова присоединитесь к кластеру".

Кластер и ресурс Arc в портал Azure существует, но состояние Get-AzureStackHCI означает "Еще не зарегистрировано"

Объяснение состояния сбоя:

Эта проблема вызвана отменой регистрации кластера HCI с неправильной облачной средой или неправильной информацией о подписке. Если пользователь запускает Unregister-AzStackHCI командлет с неправильными -EnvironmentName параметрами или -SubcriptionId для кластера, состояние регистрации кластера удаляется из самого локального кластера, но ресурсы кластера и Arc в портал Azure по-прежнему будут существовать в исходной среде или подписке.

Пример:

  • Неправильно -EnvironmentName <value>: вы зарегистрировали кластер, -EnvironmentName AzureUSGovernment как показано в следующем примере. Обратите внимание, что значение по умолчанию -EnvironmentName — Azurecloud. Например, вы выполнили:

    Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -EnvironmentName AzureUSGovernment
    

    Но затем вы выполнили Unregister-AzStackHCI командлет ( -EnvironmentName Azurecloud по умолчанию) следующим образом:

    Unregister-AzStackHCI -SubscriptionId "<subscription_ID>"
    
  • Неправильно -SubscriptionId <value>: вы зарегистрировали кластер следующим -SubscriptionId "<subscription_id_1>" образом:

    Register-AzStackHCI  -SubscriptionId "<subscription_id_1>"
    

    Но затем вы выполнили Unregister-AzStackHCI командлет для другого идентификатора подписки:

    Unregister-AzStackHCI -SubscriptionId "<subscription_id_2>"
    

Действие исправления:

  1. Удалите ресурсы кластера и Arc на портале.
  2. Перейдите к Azure Active Directory > Регистрация приложений (все приложения) и найдите совпадающее <clusterName> имя, а <clusterName>.arcзатем удалите два идентификатора приложения.

Выдача Sync-AzureStackHCI сразу после перезапуска узлов кластера приведет к удалению ресурса Arc

Объяснение состояния сбоя:

Выполнение синхронизации переписи перед синхронизацией узлов может привести к отправке синхронизации в Azure, которая не включает узел. Это приводит к удалению ресурса Arc для этого узла. Командлет Sync-AzureStackHCI должен использоваться только для отладки облачного подключения кластера HCI. Кластер HCI имеет небольшое время прогрева после перезагрузки, чтобы согласовать состояние кластера; поэтому не выполняйте Sync-AzureStackHCI его вскоре после перезагрузки узла.

Действие исправления:

  1. В портал Azure войдите на узел, который отображается как "Не установлен".

    Снимок экрана: портал Azure с выделенными узлами, которые отображаются как не установленные.

  2. Отключите агент Arc с помощью следующих двух команд:

    cd "C:\Program Files\AzureConnectedMachineAgent"
    

    а затем —

    .\azcmagent.exe disconnect --force-local-only
    
  3. Восстановите регистрацию:

    Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -ComputerName Server1  -RepairRegistration
    
  4. После операции восстановления узел возвращается в подключенное состояние.

Регистрация завершается успешно, но подключение Azure Arc на портале не установлено

Объяснение состояния сбоя:

Это происходит в сценариях, в которых один или все узлы кластера HCI были включены вручную, а не как часть Register-AzStackHCI командлета или windows Администратор центра регистрации Azure Stack HCI. Это также может произойти в сценариях, в которых кластер HCI был неправильно зарегистрирован, как рекомендуется в этой статье , прежде чем пытаться повторно зарегистрировать тот же кластер.

При попытке зарегистрировать HCI в Azure кластер в этом состоянии регистрация завершается успешно. Однако в портал Azure подключение Azure Arc отображается не установлено.

Действие исправления:

  1. Войдите на узел кластера с состоянием Azure Arc , которое отображается как "Не установлено":

    Снимок экрана: узлы, которые не установлены в узле кластера состояния Azure Arc.

  2. Отключите агент Arc с помощью следующих двух команд:

    cd "C:\Program Files\AzureConnectedMachineAgent"
    

    а затем —

    .\azcmagent.exe disconnect --force-local-only
    
  3. Убедитесь, что вы используете последний модуль Az.StackHCI PS:

    Install-Module -Name Az.StackHCI 
    
  4. Запустите командлет регистрации восстановления:

    Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -ComputerName Server1  -RepairRegistration
    

Не удается сменить сертификаты в Fairfax и Mooncake

Объяснение состояния сбоя:

  1. В портал Azure подключение Azure к кластеру отображается отключено.
  2. Просмотрите журналы отладки HCIsvc на узле. Сообщение об ошибке будет исключением: AADSTS700027: утверждение клиента завершилось ошибкой проверки подписи.
  3. Ошибка также может отображаться как failed RotateRegistrationCertificate: Invalid Audience(Недопустимая аудитория).

Действие исправления:

Выполните регистрацию восстановления в кластере, чтобы добавить новые сертификаты в приложение Azure AD:

Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -ComputerName Server1 -RepairRegistration

Восстановление регистрации создает новые сертификаты замены в приложении Azure AD, сохраняя при этом другие сведения, такие как имя ресурса, группа ресурсов и другие варианты регистрации.

OnPremisesPasswordValidationTimeSkew

Объяснение состояния сбоя:

Azure AD сбой создания маркера с ошибкой времени, если время локального узла слишком далеко не синхронизировано с истинным текущим временем (UTC). Azure AD возвращает следующую ошибку:

AADSTS80013: OnPremisesPasswordValidationTimeSkew — попытка проверки подлинности не может быть завершена из-за неравномерного распределения времени между компьютером, на котором запущен агент проверки подлинности и AD. Устраните проблемы с синхронизацией времени.

Действие исправления:

Убедитесь, что время синхронизируется с известным и точным источником времени.

Дальнейшие действия