針對 Azure Stack HCI 註冊進行疑難解答

適用於:Azure Stack HCI 版本 22H2

重要

本文提供的疑難解答指示適用於舊版 Azure Stack HCI 版本 22H2。 若要針對執行最新正式運作版本的新部署進行疑難解答,Azure Stack HCI 版本 23H2,請參閱 取得 Azure Stack HCI 部署問題的支援。

針對 Azure Stack HCI 註冊問題進行疑難解答,需要查看叢集中每部伺服器的 PowerShell 註冊記錄和 hcisvc 偵錯記錄。

收集 PowerShell 註冊記錄

Register-AzStackHCI執行 和 Unregister-AzStackHCI Cmdlet 時,會為每個嘗試建立名為 RegisterHCI_{ymmdd-hhss}的記錄檔.logUnregisterHCI_{yyyymmdd-hhss}.log。 您可以使用 Cmdlet 中的 參數來設定這些記錄檔 -LogsDirectoryRegister-AzStackHCI 記錄目錄,並呼叫 Get-AzStackHCILogsDirectory 以取得位置。 根據預設,這些檔案會在 C:\ProgramData\AzureStackHCI\Registration建立。 針對 PowerShell 模組 2.1.2 版或更早版本,這些檔案會建立在執行 Cmdlet 的 PowerShell 會話工作目錄中。

根據預設,不會包含偵錯記錄。 如果發生需要其他偵錯記錄的問題,請在執行 Register-AzStackHCIUnregister-AzStackHCI之前執行下列 Cmdlet,將偵錯喜好設定設為 [繼續] :

$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 Cmdlet 會與叢集中的每個伺服器交談,以布建憑證。 每部伺服器都會使用其憑證對雲端中的 HCI 服務進行 API 呼叫,以驗證註冊。

如果註冊失敗,您可能會看到下列訊息: 無法註冊。無法在節點 {Node1,Node2} 上產生自我簽署憑證。無法在節點 {Node1,Node2} 上設定並驗證註冊憑證

如果在錯誤訊息的節點上產生自我簽署憑證之後有節點名稱,則系統無法在這些伺服器上產生憑證。

補救動作

  1. 檢查上述訊息中列出的每部伺服器是否已啟動並執行。 您可以使用 執行 sc.exe query hcisvc 並視需要 start-service hcisvc啟動 hcisvc 的狀態。

  2. 檢查錯誤訊息中列出的每部伺服器是否都已連線到執行 Cmdlet 的電腦 Register-AzStackHCI 。 從執行所在的電腦 Register-AzStackHCI 執行下列 Cmdlet,使用 New-PSSession 來連線到叢集中的每個伺服器,並確定其運作正常:

    New-PSSession -ComputerName {failing nodes}
    

如果錯誤訊息的 [無法設定] 之後 有節點名稱並驗證節點(s) 上的註冊憑證,則服務可以在伺服器產生憑證,但伺服器(s) 無法成功呼叫 HCI 雲端服務 API。 若要進行疑難排解:

  1. 請確定每部伺服器都具備與 Azure Stack HCI 雲端服務通訊所需的因特網連線能力,以及其他必要的 Azure 服務,例如 Microsoft Entra ID,而且防火牆不會封鎖它。 請參閱 Azure Stack HCI 的防火牆需求。

  2. 請嘗試從 AzStackHCI.EnvironmentChecker 模組執行 Invoke-AzStackHciConnectivityValidation Cmdlet,並確定它成功。 此 Cmdlet 會叫用 HCI 雲端服務的健全狀況端點,以測試連線能力。

  3. 查看錯誤訊息中列出的每個節點上的 hcisvc 偵錯記錄。

    • 所有重試ExecuteWithRetry 作業 AADTokenFetch 成功重試之後,就會出現幾次可重試的錯誤訊息,然後執行 ExecuteWithRetry 作業 AADTokenFetch 失敗,或 ExecuteWithRetry 作業 AADTokenFetch 成功重試
    • 如果您在記錄中的所有重試之後遇到 ExecuteWithRetry 作業 AADTokenFetch 失敗,即使所有重試之後,系統也無法從服務擷取Microsoft Entra 令牌。 有一個相關聯的Microsoft Entra 例外狀況會記錄在此訊息中。
    • 如果您看到 AADSTS700027:客戶端判斷提示包含無效的簽章。[原因 - 使用的金鑰已過期。用戶端所使用的密鑰指紋:'{SomeThumbprint}',找到密鑰 'Start=06/29/2021 21:13:15,End=06/29/2023 21:13:15',這是伺服器上設定時間的問題。 在 PowerShell 中執行 [System.DateTime]::UtcNow ,檢查所有伺服器上的 UTC 時間,並將其與實際 UTC 時間進行比較。 如果時間不正確,請在伺服器上設定正確的時間,然後再試一次註冊。

從入口網站刪除 HCI 資源並重新註冊相同的叢集會造成問題

失敗狀態說明

如果您從 Azure 入口網站 明確刪除 Azure Sack HCI 叢集資源,而不需要先從 Windows Admin Center 或 PowerShell 取消註冊叢集,則直接從入口網站刪除 HCI Azure Resource Manager 資源會導致叢集資源狀態不佳。 應一律使用 Cmdlet 從 HCI 叢集中 Unregister-AzStackHCI 觸發取消註冊,以進行清除取消註冊。 本節說明從入口網站中刪除 HCI 叢集資源的案例清除步驟。

補救動作

  1. 使用叢集使用者認證登入內部部署 HCI 叢集伺服器。
  2. Unregister-AzStackHCI 叢集上執行 Cmdlet,以清除叢集註冊狀態和叢集 Arc 狀態。
    • 如果取消註冊成功,請瀏覽至 [Microsoft Entra ID > 應用程式註冊 (所有應用程式) 並搜尋名稱比對 clusterNameclusterName.arc。 如果存在,請刪除兩個應用程式識別碼。
    • 如果取消註冊失敗,並出現錯誤錯誤錯誤 :無法在節點 <節點名稱>上停用 Azure Arc 整合,請嘗試在節點上執行 Disable-AzureStackHCIArcIntegration Cmdlet。如果節點處於無法執行的狀態 Disable-AzureStackHCIArcIntegration ,請從叢集移除節點,然後再次嘗試執行 Unregister-AzStackHCI Cmdlet。 登入每個個別節點:
      1. 將目錄變更為已安裝 Arc 代理程式的目錄: cd 'C:\Program Files\AzureConnectedMachineAgent\'
      2. 取得arcmagent.exe的狀態,並判斷其預計的 Azure 資源群組: .\azcmagent.exe show。 此命令的輸出會顯示資源群組資訊。
      3. 強制中斷Arc代理程式與節點的連線: .\azcmagent.exe disconnect --force-local-only
      4. 登入 Azure 入口網站,並從步驟ii中決定的資源群組中刪除Arc-for-Server資源。

使用者錯誤地刪除了應用程式識別碼

失敗狀態說明

如果叢集已中斷連線超過 8 小時,則可能意外刪除代表 HCI 叢集和 Arc 註冊的相關聯Microsoft Entra 應用程式註冊。 針對 HCI 叢集和 Arc 案例的正常運作,註冊期間會在租使用者中建立兩個應用程式註冊。

  • <clustername>如果刪除應用程式標識碼,Azure 入口網站 中的叢集資源 Azure 連線會顯示 [已中斷連線 - 叢集未連線狀態超過 8 小時]。 查看 節點上的 HCIsvc 偵錯記錄:錯誤訊息為 在目錄 'Default Directory' 中找不到標識符為 '<ID>' 的應用程式。如果租用戶系統管理員尚未安裝應用程式,或租使用者中的任何使用者同意,就可能發生此情況。您可能已將驗證要求傳送至錯誤的租使用者。
  • 如果在 <clustername>.arc Arc 啟用期間建立,則一般作業期間不會顯示任何錯誤。 只有在註冊和取消註冊程序期間,才需要此身分識別。 在此案例中,取消註冊失敗,錯誤 無法在節點 <節點名稱>上停用 Azure Arc 整合。請嘗試在節點上執行 Disable-AzureStackHCIArcIntegration Cmdlet。如果節點處於 Disable-AzureStackHCIArcIntegration Cmdlet 無法執行的狀態,請從叢集移除節點,然後再次嘗試執行 Unregister-AzStackHCI Cmdlet。

刪除上述任何應用程式會導致無法從 HCI 叢集與雲端通訊。

補救動作

  • 如果只 <clustername> AppId 刪除 ,請在叢集上執行修復註冊,以設定 Microsoft Entra 應用程式:

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

    修復註冊會重新建立必要的Microsoft Entra 應用程式,同時保留其他資訊,例如資源名稱、資源群組和其他註冊選項。

  • <clustername>.arc如果刪除應用程式識別碼,記錄檔中就不會顯示任何錯誤。 如果 <clustername>.arc 已刪除,取消註冊就會失敗。 如果取消註冊失敗,請遵循本節所述的相同補救動作

原則錯誤

失敗狀態說明

如果先前註冊的叢集顯示 OutOfPolicy 的狀態,系統設定的變更可能會導致 Azure Stack HCI 的註冊狀態脫離原則。

例如,系統變更可能包含,但不限於:

  • 關閉註冊節點上的安全開機設定衝突。
  • 清除信賴平台模組 (TPM)。
  • 系統時間的重大變更。

注意

具有KB5010421和更新版本的 Azure Stack HCI 21H2 將會嘗試從 OutOfPolicy 狀態自動復原。 如需目前 OutOfPolicy 狀態和其他資訊的詳細資訊,請檢閱 Microsoft-AzureStack-HCI/Admin 事件記錄檔。

我可以預期在註冊期間看到哪些 『OutOfPolicy』 事件標識碼訊息?

事件標識碼訊息有三種類型:資訊、警告和錯誤。

下列訊息是 Azure Stack HCI 21H2 與 KB5010421 的更新,如果未安裝此 KB,則不會看到。

參考事件標識碼

註冊期間發生的參考性事件標識碼訊息。 檢閱並追蹤訊息中任何建議:

  • (資訊) 事件標識碼 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/Admin 事件標識符訊息。

錯誤事件識別碼

事件標識元錯誤訊息會識別註冊程式中的失敗。 錯誤訊息提供如何解決錯誤的指示。

  • (錯誤) 事件標識碼 591:「 Azure Stack HCI 無法與 Azure 連線。 如果您繼續看到此錯誤,請嘗試使用 -RepairRegistration 參數再次執行Register-AzStackHCI。」

  • (錯誤) 事件標識碼 594:「 Azure Stack HCI 存取其數據時發生錯誤。 若要修復,請檢查受影響的節點 - 如果整個叢集是 OutOfPolicy (執行 Get-AzureStackHCI),請在叢集上執行 Unregister-AzStackHCI ,重新啟動,然後執行 Register-AzStackHCI。 如果只有此節點受到影響,請從叢集中移除此節點、重新開機並等待修復完成,接著再重新加入叢集。」

Azure 入口網站 中的叢集和 Arc 資源存在,但 Get-AzureStackHCI 狀態顯示已註冊「尚未」

失敗狀態說明

此問題是因為取消註冊 HCI 叢集與錯誤的雲端環境或不正確的訂用帳戶資訊所造成。 如果使用者執行Unregister-AzStackHCI具有不正確-EnvironmentName-SubcriptionId參數的 Cmdlet,叢集的註冊狀態會從內部部署叢集本身移除,但 Azure 入口網站 中的叢集和 Arc 資源仍會存在於原始環境或訂用帳戶中。

例如:

  • 錯誤 -EnvironmentName <value>:您已在 中 -EnvironmentName AzureUSGovernment 註冊叢集,如下列範例所示。 預設值 -EnvironmentName 為 「Azurecloud」。 例如,您執行了:

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

    但您接著會執行 Unregister-AzStackHCI Cmdlet, -EnvironmentName Azurecloud 如下所示:

    Unregister-AzStackHCI -SubscriptionId "<subscription_ID>"
    
  • 錯誤 -SubscriptionId <value>:您已使用 -SubscriptionId "<subscription_id_1>" 註冊叢集,如下所示:

    Register-AzStackHCI  -SubscriptionId "<subscription_id_1>"
    

    但您接著會針對不同的訂用帳戶標識碼執行 Unregister-AzStackHCI Cmdlet:

    Unregister-AzStackHCI -SubscriptionId "<subscription_id_2>"
    

補救動作

  1. 從入口網站刪除叢集和 Arc 資源。
  2. 流覽至 Microsoft Entra ID > 應用程式註冊 (所有應用程式),然後搜尋名稱比<clusterName>對 和 <clusterName>.arc,然後刪除兩個應用程式識別符。

在叢集節點重新啟動之後立即發出 Sync-AzureStackHCI 會導致 Arc 資源刪除

失敗狀態說明

先執行人口普查同步處理,節點同步處理可能會導致同步傳送至 Azure,但不包含節點。 這會導致移除該節點的 Arc 資源。 Sync-AzureStackHCI Cmdlet 只能用來偵錯 HCI 叢集的雲端連線能力。 HCI 叢集在重新啟動之後有一個小的熱身時間,以協調叢集狀態:因此,重新啟動節點之後不會很快執行 Sync-AzureStackHCI

補救動作

  1. 在 Azure 入口網站 上,登入顯示為 [未安裝] 的節點。

  2. 使用下列兩個命令中斷 Arc 代理程式的連線:

    cd "C:\Program Files\AzureConnectedMachineAgent"
    

    then

    .\azcmagent.exe disconnect --force-local-only
    
  3. 修復註冊:

    Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -ComputerName Server1  -RepairRegistration
    
  4. 修復作業之後,節點會回到連線狀態。

註冊成功完成,但入口網站中的 Azure Arc 連線顯示 [未安裝]

案例 1

失敗狀態說明

如果已從 Arc-for-Server 資源群組中的 HCI 資源提供者中移除 Azure Connected Machine Resource Manager 所需的角色,就可能發生此情況。

您可以在資源群組 Azure 入口網站 的 [存取控制] 刀鋒視窗下找到許可權。 下圖顯示權限:

訪問控制刀鋒視窗的螢幕快照。

補救動作

執行修復註冊 Cmdlet:

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

案例 2

失敗狀態說明

此訊息也可能是因為執行 Azure Stack HCI 註冊時有時會發生的暫時性問題所造成。 發生這種情況時, Register-AzStackHCI Cmdlet 會顯示下列警告訊息:

Register-AzStackHCI Cmdlet 輸出訊息的螢幕快照。

補救動作

在註冊之後等候 12 小時,讓問題自動解決。

案例 3

失敗狀態說明

當 Proxy 未正確設定以從 HCI 節點連線到 Azure ARC 雲端服務時,也會發生這種情況。 您可能會在 Arc 代理程式記錄中看到下列錯誤:

Arc 代理程式記錄的螢幕快照。

補救動作

若要解決此問題,請遵循 更新 Proxy 設定的指導方針。 然後,重新註冊 Azure Stack HCI 叢集。

無法在 Fairfax 和 Mooncake 中輪替憑證

失敗狀態說明

  1. 從 Azure 入口網站,叢集資源 Azure 連線會顯示 [已中斷連線]。
  2. 查看節點上的 HCIsvc 偵錯記錄。 錯誤訊息為 例外狀況:AADSTS700027:客戶端判斷提示簽章驗證失敗。
  3. 錯誤也可以顯示為 RotateRegistrationCertificate 失敗:無效的物件

補救動作

在叢集上執行修復註冊,以在 Microsoft Entra 應用程式中新增憑證:

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

修復註冊會在 Microsoft Entra 應用程式中產生新的取代憑證,同時保留其他資訊,例如資源名稱、資源群組和其他註冊選項。

OnPremisesPasswordValidationTimeSkew

失敗狀態說明

Microsoft如果本機節點時間與真實目前時間 (UTC) 同步太遠,則 Entra 令牌產生失敗,併發生時間錯誤。 Microsoft Entra ID 傳回下列錯誤:

AADSTS80013:OnPremisesPasswordValidationTimeSkew - 驗證嘗試無法完成,因為執行驗證代理程式和 AD 的電腦之間的時間扭曲。 請修正時間同步問題。

補救動作

確定時間已同步處理至已知且精確的時間來源。

無法取得租使用者的令牌,發生錯誤

失敗狀態說明

如果用於註冊的用戶帳戶是多個Microsoft Entra 租使用者的一部分,您必須在叢集註冊和取消註冊期間指定-TenantId,否則它會失敗,錯誤無法取得租使用者的令牌併發生錯誤。您必須使用多重要素驗證來存取租使用者。請使用其他參數-TenantId重新執行 Connect-AzAccount

補救動作

  • 針對叢集註冊,請指定 -TenantId 參數:

    Register-AzStackHCI  -SubscriptionId "<subscription_ID>" -ComputerName Server1 -TenantId <Tenant_ID>
    
  • 針對取消註冊,請指定 -TenantId 參數:

    Unregister-AzStackHCI -ComputerName ClusterNode1 -SubscriptionId "<subscription ID GUID>" -ResourceName HCI001 -TenantId <Tenant_ID>
    

一或多個叢集節點無法連線到 Azure

失敗狀態說明

當一或多個叢集節點在註冊之後發生連線問題,且無法長時間連線到 Azure 時,就會發生此問題。 即使在解決連線問題之後,節點仍無法重新連線到 Azure,因為憑證已過期。

補救動作

  1. 登入已中斷連線的節點。

  2. 執行 Disable-AzureStackHCIArcIntegration

  3. 執行 Get-AzureStackHCIArcIntegration 來檢查 ARC 整合的狀態,並確定它現在顯示已中斷連線節點的「已停用」:

    Get-AzureStackHCIArcIntegration Cmdlet 輸出的螢幕快照。

  4. 登入 Azure 入口網站,並刪除代表此節點 Arc 伺服器的 Azure Resource Manager 資源。

  5. 再次登入已中斷連線的節點,然後執行 Enable-AzureStackHCIArcIntegration

  6. 在節點上執行 Sync-AzureStackHCI

嘗試建立 VM 時作業失敗

失敗狀態說明

如果在部署時未向 Azure 註冊叢集,或叢集已註冊但尚未連線到 Azure 超過 30 天,系統將不會允許建立或新增新的虛擬機(VM)。 發生這種情況時,您會在嘗試建立 VM 時看到下列錯誤訊息:

There was a failure configuring the virtual machine role for 'vmname'. Job failed. Error opening "vmname" clustered roles. The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because there are already as many connections as the service can accept.

補救動作

向 Azure 註冊 HCI 叢集。 如需如何註冊叢集的資訊, 請參閱 Register-AzStackHCI 檔中的指示。

針對叢集和 Arc-for-Server 資源使用通用資源群組

最新的 PowerShell 模組支援針對叢集和 Arc-for-Server 資源擁有通用資源群組,或使用任何預先存在的 Arc-for-Server 資源群組。

針對向 PowerShell 模組 1.4.1 版或更早版本註冊的叢集,您可以執行下列步驟來使用新功能:

  1. 從其中一個節點執行 Unregister-AzStackHCI 來取消註冊叢集。 請參閱 使用 PowerShell 取消註冊 Azure Stack HCI。
  2. 安裝最新的 PowerShell 模組: Install-Module Az.StackHCI -Force
  3. Register-AzStackHCI由傳遞和-ArcForServerResourceGroupName的適當參數-ResourceGroupName來執行 。

注意

如果您針對 Arc-for-Server 資源使用不同的資源群組,建議您使用只有 Azure Stack HCI 相關的 Arc-for-Server 資源資源群組。 Azure Stack HCI 資源提供者具有管理 ArcServerResourceGroup任何其他 Arc-for-Server 資源的許可權。

下一步