針對 Azure Stack HCI 註冊進行疑難解答
適用於:Azure Stack HCI 版本 22H2
重要
Azure Stack HCI 現在是 Azure 本地的一部分。 不過,舊版的 Azure Stack HCI,例如 22H2 會繼續參考 Azure Stack HCI,而且不會反映名稱變更。 深入了解。
重要
本文提供的疑難解答指示適用於舊版 Azure Stack HCI 版本 22H2。 若要針對執行最新正式版 Azure Local 的新部署進行疑難解答,請參閱 取得 Azure Stack HCI 部署問題的協助。
針對 Azure Stack HCI 註冊問題進行疑難解答,需要查看叢集中每部伺服器的 PowerShell 註冊記錄和 hcisvc 偵錯記錄。
收集 PowerShell 註冊記錄
執行 Register-AzStackHCI
和 Unregister-AzStackHCI
Cmdlet 時,會為每次嘗試建立名為 RegisterHCI_{yyyymmdd-hhss}.log 和 UnregisterHCI_{yyyymmdd-hhss}.log 的記錄檔。 您可以使用 Register-AzStackHCI
Cmdlet 中的 -LogsDirectory
參數來設定這些記錄檔的記錄目錄,並呼叫 Get-AzStackHCILogsDirectory
來獲取其位置。 根據預設,這些檔案會在 C:\ProgramData\AzureStackHCI\Registration 中建立。 針對 PowerShell 模組 2.1.2 版或更早版本,這些檔案會建立在執行 Cmdlet 的 PowerShell 會話工作目錄中。
根據預設,不會包含偵錯記錄。 如果遇到需要額外偵錯記錄的問題,請在執行 Register-AzStackHCI
或 Unregister-AzStackHCI
前先執行下列 Cmdlet 將偵錯偏好設定為 Continue:
$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} 上設定並驗證註冊憑證
如果在錯誤訊息中無法在節點上生成自我簽署憑證的部分之後有出現節點名稱,則系統無法在這些伺服器上生成憑證。
補救動作:
檢查上述訊息中列出的每部伺服器是否已啟動並執行。 您可以先執行
sc.exe query hcisvc
來檢查 hcisvc 的狀態,然後在需要時使用start-service hcisvc
啟動它。檢查錯誤訊息中列出的每部伺服器是否都已連線到執行 Cmdlet 的電腦
Register-AzStackHCI
。 請從執行Register-AzStackHCI
的電腦執行以下 Cmdlet,並使用New-PSSession
連接到叢集中的每個伺服器,確認它們運作正常:New-PSSession -ComputerName {failing nodes}
如果錯誤訊息的 「無法設定和驗證節點上的註冊憑證」 部分之後出現節點名稱,則表示服務已能在伺服器上產生憑證,但伺服器未能成功呼叫 HCI 雲端服務 API。 若要進行疑難排解:
請確定每部伺服器都具備與 Azure Stack HCI 雲端服務通訊所需的因特網連線能力,以及其他必要的 Azure 服務,例如 Microsoft Entra ID,而且防火牆不會封鎖它。 請參閱 Azure Stack HCI 的防火牆需求。
請嘗試從 AzStackHCI.EnvironmentChecker 模組執行
Invoke-AzStackHciConnectivityValidation
Cmdlet,並確保它成功。 此 Cmdlet 會叫用 HCI 雲端服務的健全狀況端點,以測試連線能力。查看錯誤訊息中列出的每個節點上的 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 資源會導致叢集資源狀態不佳。 應一律從 HCI 叢集中使用 Unregister-AzStackHCI
cmdlet 觸發註銷,以確保註銷過程的清潔。 本節說明從入口網站中刪除 HCI 叢集資源的案例清除步驟。
補救動作:
- 使用叢集使用者認證登入內部部署 HCI 叢集伺服器。
- 在
Unregister-AzStackHCI
叢集上執行 Cmdlet,以清除叢集註冊狀態和叢集 Arc 狀態。- 如果取消註冊成功,請瀏覽至 [Microsoft Entra ID > 應用程式註冊 [所有應用程式] 並搜尋名稱匹配
clusterName
和clusterName.arc
。 如果存在,請刪除兩個應用程式識別碼。 - 如果取消註冊失敗並顯示錯誤 :無法在節點 <節點名稱>上停用 Azure Arc 整合,請嘗試在節點上執行
Disable-AzureStackHCIArcIntegration
cmdlet。如果節點處於無法執行Disable-AzureStackHCIArcIntegration
的狀態,請將節點從叢集中移除,然後再次嘗試執行Unregister-AzStackHCI
cmdlet。 登入每個個別節點:- 將目錄變更為已安裝 Arc 代理程式的目錄:
cd 'C:\Program Files\AzureConnectedMachineAgent\'
。 - 取得arcmagent.exe的狀態,並判斷其預計的 Azure 資源群組:
.\azcmagent.exe show
。 此命令的輸出會顯示資源群組資訊。 - 強制中斷Arc代理程式與節點的連線:
.\azcmagent.exe disconnect --force-local-only
。 - 登入 Azure 入口網站,並從步驟ii中決定的資源群組中刪除Arc-for-Server資源。
- 將目錄變更為已安裝 Arc 代理程式的目錄:
- 如果取消註冊成功,請瀏覽至 [Microsoft Entra ID > 應用程式註冊 [所有應用程式] 並搜尋名稱匹配
使用者錯誤地刪除了應用程式識別碼
失敗狀態說明:
如果叢集已中斷連線超過 8 小時,則可能意外刪除代表 HCI 叢集和 Arc 註冊的相關聯Microsoft Entra 應用程式註冊。 針對 HCI 叢集和 Arc 情境的正常運作,在註冊期間會在租戶中建立兩個應用程式註冊。
-
<clustername>
如果刪除應用程式標識碼,Azure 入口網站 中的叢集資源 Azure 連線會顯示已中斷連線 - 叢集未處於連線狀態超過 8 小時。 查看 節點上的 HCIsvc 偵錯記錄:錯誤訊息為 在目錄 'Default Directory' 中找不到標識符為 '<ID>' 的應用程式。如果租用戶系統管理員尚未安裝應用程式,或租使用者中的任何使用者同意,就可能發生此情況。您可能已將驗證要求傳送至錯誤的租使用者。 - 如果在 Arc 啟用期間建立的
<clustername>.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 事件標識符訊息。
錯誤事件識別碼
事件 ID 錯誤訊息用來識別註冊過程中的錯誤。 錯誤訊息提供如何解決錯誤的指示。
(錯誤) 事件標識碼 591:「 Azure Stack HCI 無法與 Azure 連線。 如果您繼續看到此錯誤,請嘗試使用
Register-AzStackHCI
參數再次執行-RepairRegistration
。」(錯誤) 事件標識碼 594:「 Azure Stack HCI 存取其數據時發生錯誤。 若要修復,請檢查受影響的節點 - 如果整個叢集是 OutOfPolicy (執行
Get-AzureStackHCI
),請在叢集上執行Unregister-AzStackHCI
,重新啟動,然後執行Register-AzStackHCI
。 如果只有此節點受到影響,請從叢集中移除此節點、重新開機並等待修復完成,接著再重新加入叢集。」
Azure 入口網站中的叢集和 Arc 資源存在,但 Get-AzureStackHCI 狀態顯示尚未註冊。
失敗狀態說明:
此問題是因為取消註冊 HCI 叢集與錯誤的雲端環境或不正確的訂用帳戶資訊所造成。 如果使用者執行含有不正確-EnvironmentName
或-SubcriptionId
參數的Unregister-AzStackHCI
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>"
補救動作:
- 從入口網站刪除叢集和 Arc 資源。
- 瀏覽至 Microsoft Entra ID > 應用程式註冊(所有應用程式),搜尋符合
<clusterName>
和<clusterName>.arc
的名稱,然後刪除這兩個應用程式識別碼。
在叢集節點重新啟動之後立即執行 Sync-AzureStackHCI 會導致 Arc 資源會被刪除
失敗狀態說明:
在節點同步之前執行人口普查同步處理可能會導致同步訊息傳送至 Azure,但不包括節點。 這樣會移除該節點的 Arc 資源。
Sync-AzureStackHCI
Cmdlet 只能用來偵錯 HCI 叢集的雲端連線能力。 HCI 叢集在重新啟動之後有一個小的熱身時間,以協調叢集狀態:因此,重新啟動節點之後不會很快執行 Sync-AzureStackHCI
。
補救動作:
在 Azure 入口網站 上,登入顯示為 [未安裝] 的節點。
使用下列兩個命令中斷 Arc 代理程式的連線:
cd "C:\Program Files\AzureConnectedMachineAgent"
然後
.\azcmagent.exe disconnect --force-local-only
修復註冊:
Register-AzStackHCI -SubscriptionId "<subscription_ID>" -ComputerName Server1 -RepairRegistration
修復作業之後,節點會回到連線狀態。
註冊成功完成,但入口網站中的 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 會顯示下列警告訊息:
補救動作:
在註冊之後等候 12 小時,讓問題自動解決。
案例 3
失敗狀態說明:
當 Proxy 未正確設定以從 HCI 節點連線到 Azure ARC 雲端服務時,也會發生這種情況。 您可能會在 Arc 代理程式記錄中看到下列錯誤:
補救動作:
若要解決此問題,請遵循 更新 Proxy 設定的指導方針。 然後,重新註冊 Azure Stack HCI 叢集。
無法在 Fairfax 和 Mooncake 中更換憑證
失敗狀態說明:
- 從 Azure 入口,叢集資源 Azure 連線 顯示 中斷連線。
- 查看節點上的 HCIsvc 偵錯記錄。 錯誤訊息為 例外狀況:AADSTS700027:客戶端斷言簽名驗證失敗。
- 錯誤也可以顯示為 RotateRegistrationCertificate 失敗:無效的受眾。
補救動作:
在叢集上執行修復註冊,以在 Microsoft Entra 應用程式中新增憑證:
Register-AzStackHCI -SubscriptionId "<subscription_ID>" -ComputerName Server1 -RepairRegistration
修復註冊會在 Microsoft Entra 應用程式中產生新的取代憑證,同時保留其他資訊,例如資源名稱、資源群組和其他註冊選項。
內部密碼驗證時間偏移
失敗狀態說明:
Microsoft Entra 的令牌產生若因為本機節點時間與實際當前時間(UTC)不同步而過遠,則會失敗並發生時間錯誤。 Microsoft Entra ID 傳回下列錯誤:
AADSTS80013:OnPremisesPasswordValidationTimeSkew - 驗證嘗試無法完成,因為執行驗證代理程式的電腦與 AD 之間存在時間偏差。 請修正時間同步問題。
補救動作:
確定時間已同步至已知且精確的時間來源。
無法取得租戶的令牌,原因是發生錯誤
失敗狀態說明:
如果用於註冊的使用者帳戶屬於多個 Microsoft Entra 租戶的一部分,您必須在叢集註冊及取消註冊時指定-TenantId
,否則會失敗並顯示錯誤訊息:無法取得租戶的令牌並出現錯誤。您必須使用多重驗證來存取租戶。請使用其他參數 Connect-AzAccount
重新執行 -TenantId
。
補救動作:
針對叢集註冊,請指定
-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,因為憑證已過期。
補救動作:
登入已中斷連線的節點。
執行
Disable-AzureStackHCIArcIntegration
。執行
Get-AzureStackHCIArcIntegration
來檢查 ARC 整合的狀態,並確認對於已中斷連線的節點,它現在顯示為「已停用」。登入 Azure 入口網站,並刪除代表此節點 Arc 伺服器的 Azure Resource Manager 資源。
再次登入已中斷連線的節點,然後執行
Enable-AzureStackHCIArcIntegration
。在節點上執行
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 版或更早版本註冊的叢集,您可以執行下列步驟來使用新功能:
- 從其中一個節點執行
Unregister-AzStackHCI
來取消註冊叢集。 請參閱 使用 PowerShell 取消註冊 Azure Stack HCI。 - 安裝最新的 PowerShell 模組:
Install-Module Az.StackHCI -Force
。 - 通過傳遞適當的參數給
-ResourceGroupName
和-ArcForServerResourceGroupName
來運行Register-AzStackHCI
。
注意
如果您針對 Arc-for-Server 資源使用不同的資源群組,建議您使用只有與 Azure Stack HCI 相關的 Arc-for-Server 資源群組。 Azure Stack HCI 資源提供者具有管理 ArcServerResourceGroup 中任何其他 Arc-for-Server 資源的許可權。