警告
如果您的Microsoft Azure 虛擬機擴展集是 Azure Service Fabric 叢集的一部分,請勿遵循此疑難解答指引。 本指引可能會在此案例中造成數據遺失和無法復原的叢集損毀。 如需詳細資訊,請參閱 我可以在 Service Fabric 叢集中使用大型虛擬機擴展集嗎?
在本文中,取得下列相關信息:
- Microsoft Azure 虛擬機器擴展集 中的 AllocationFailed 或 ZonalAllocationFailed 錯誤。
- 如何避免分配失敗。
- 分配失敗的原因。
- 如何在配置失敗發生時進行疑難排解。
如果在提高配額後仍配置失敗,請參閱 配額與容量 和 隨需容量保留,以了解容量可用性的相關指引。
如需了解擴展集上的 OverconstrainedZonalAllocationRequest 或 OverconstrainedAllocationRequest 錯誤,請參閱 VM 疑難排解文章中的 過度限制的配置失敗。 關於標準虛擬機(VM),請參見「在 Azure 建立、重啟或調整虛擬機大小時的配置失敗故障排除」。
徵兆
由於 Azure 服務的需求很高,如果您嘗試在特定區域中建立或啟動 VM 實例,可能會發生配置失敗。 每當您執行下列任一操作時,Azure 都會嘗試為您的訂用帳戶配置計算資源:
- 建立虛擬機器擴展集。
- 重新啟動已停止的(已解除分配)擴展集 VM 實例。
- 調整擴展設定組的大小。
以下錯誤詳細資料是配置失敗訊息的範例。
錯誤碼:AllocationFailed 或 ZonalAllocationFailed
錯誤訊息 1:配置失敗。 對於此區域中要求的 VM 大小,我們沒有足夠的容量。 在 https://aka.ms/allocation-guidance 深入了解如何提高配置成功的機率。
錯誤訊息 2:配置失敗。 因為條件過於嚴格,所以無法配置具有以下限制的 VM。 請移除一些條件約束,然後再試一次。 已套用的限制條件如下:
- 可用性區域
- VM 大小
錯誤訊息 3:配置失敗。 如果您嘗試將新的 VM 新增至具有單一放置群組的虛擬機擴展集,或更新/調整具有單一放置群組之虛擬機擴展集中現有 VM 的大小,請注意,這類配置的範圍是單一叢集,而且叢集有可能容量不足。 如需進一步瞭解改善配置成功的可能性,請參閱 https://aka.ms/allocation-guidance。
如何避免分配失敗
部署前,請確認 VM SKU 和可用區支援情況,使用az vm list-skus--zone。 此診斷顯示的是 SKU 與區域支援及訂閱限制,而非即時實體容量。
若要避免配置失敗,您可以對擴展集套用一些組態設定,以最佳化配置要求。
超額配置。 開啟過度布建后,擴展集實際上會啟動比您要求更多的 VM 實例。 然後,成功布建要求數目的 VM 實例之後,它會刪除額外的 VM 實例。 這種做法可提高布建成功率,並縮短部署時間。 您不會支付額外的 VM 實例費用,而且不會計入您的配額限制。 若要啟用超額配置:
在 Azure 入口網站 中,搜尋並選取 [虛擬機擴展集]。
選取您的擴展集名稱。
在功能表窗格中,選取 [ 組態]。
在 過度布建 標題下,將 啟用過度布建 設定為 開啟。
選取儲存。
深入瞭解超額配置。
啟用大規模集合。 大型虛擬機器擴展集是指可擴展到超過 100 個 VM 執行個體的擴展集。 這項功能是由擴展集屬性 (
singlePlacementGroup=false) 所設定。 大型擴展集的特別之處不在於 VM 執行個體的數量,而在於其包含的放置群組數量。 放置群組類似於 Azure 可用性設定組,其中包含自己的容錯網域和升級網域。 將singlePlacementGroup設為false時,您配置成功的機率會更高,因為在以多重放置群組部署時,這些部署可分散到多個叢集。 深入了解如何使用大型虛擬機器擴展集,特別是如何將現有的擴展集轉換為跨多個放置群組。注意
您可以將擴展集從支援單一放置群組變更為支援多個放置群組,但您無法在其他方向執行轉換。 一旦
singlePlacementGroup設定為false,就無法將它變更回去。
請縮減所要求 VM 大小的執行個體數目,然後重試部署作業。 對於較大規模的部署,您可能會想評估具有多個位置群組的 Azure 虛擬機器擴展集。 VM 執行個體的數目可以自動增加或減少,以因應需求或已定義的排程。
其他祕訣
在您慣用的區域中提供慣用的 VM 類型之前,遇到部署問題的客戶應將下列各節中的指引視為暫時解決方案。
找出最符合您案例的案例。 若要增加配置成功的可能性,請使用對應的建議解決方案重試配置要求。 或您也可以稍後再試。 叢集、區域或可用區中可能已釋出足夠的資源,因此您的要求可在其他時間獲得滿足。
原因
該區域或可用性區域沒有足夠的核心容量可供所要求的 SKU 使用。
原因 1:調整擴展集的大小,或將 VM 實例新增至現有的擴展集
如果有調整擴展集大小或將 VM 實例新增至現有擴展集的要求,則必須在裝載現有擴展集的原始叢集上嘗試。 或者叢集支援要求的 VM 大小,但目前可能沒有足夠的容量。
原因 1 的解決方案
請嘗試下列其中一個動作:
嘗試將擴展集移動到同一區域內具有足夠容量的其他叢集。
停止 (解除分配) 擴展集中的所有 VM 實例,然後視需要調整擴展集的大小。 重設大小完成後,請重新啟動 VM 實例。 若要停止 VM 執行個體:
在 Azure 入口網站 中,搜尋並選取 [虛擬機擴展集]。
選取擴展集的名稱。
選取 [停止]。
停止所有 VM 實例以執行重設大小,然後啟動擴展集之後,新的配置嘗試就可以識別具有足夠容量的叢集來裝載整個擴展集。
將您的擴展集設定為可跨多個放置群組延展。
請參閱 建立大規模集合。
原因 2:重新啟動已部分停止(已解除配置)的 VM
部分解除分配表示您已在擴展集中停止一或多個 VM 實例,但並非全部停止。 當您解除分配 VM 實例時,會釋放相關聯的資源。 在部分解除分配的可用性設定組中重新啟動 VM 實例,與將 VM 實例新增至現有的可用性設定組相同。 因此,您必須嘗試在裝載現有可用性設定組的原始叢集上嘗試配置要求,其容量可能不足。
原因 2 的解決方案
停止 (解除分配) 擴展集中的所有 VM 實例,然後重新啟動每個 VM 實例。 若要停止 VM 實例:
在 Azure 入口網站 中,搜尋並選取 [虛擬機擴展集]。
選取擴展集的名稱。
在功能表窗格中,選取 [實例]。
選取列出的所有虛擬機實例。
選取 [停止]。
在所有 VM 停止之後,選取第一個 VM 實例,然後選取 [ 啟動]。 Azure 會嘗試新的配置,並選取具有足夠容量的新叢集。
原因 3:先前已完全停止後又重新啟動的 VM 執行個體
完整解除分配表示您已停止 (解除分配) 可用性設定組中的所有 VM 實例。 重新啟動這些 VM 實例的配置要求會以支援區域內所需大小的所有叢集為目標。
原因 3 的解決方案
根據本文中的建議,變更您的配額申請。 然後重試該請求,以提高成功分配的機率。
如果您使用較舊的 VM 系列或大小(例如 Dv1、DSv1、Av1、D15v2 或 DS15v2),請考慮移至較新版本。 如需特定 VM 大小,請參閱這些建議。 您是否不允許使用不同的 VM 大小? 然後嘗試部署至相同地理位置內的不同區域。 如需每個區域中可用 VM 大小的詳細資訊,請參閱 https://aka.ms/azureregions。
如果您使用可用性區域,請嘗試區域內可能具有所要求 VM 大小可用容量的另一個區域。
如果您的配置要求很大(超過 500 個核心),請參閱下列各節,將要求分成較小的部署。
請嘗試 重新部署 VM 實例,以將 VM 實例配置至區域內的新叢集。
舊有 VM 大小的配置失敗
有些較舊的系列 VM 大小不會在我們的最新一代基礎結構上執行。 客戶可能偶爾會遇到這些舊有 SKU 的資源配置失敗。 我們鼓勵使用舊版系列虛擬機的客戶考慮移轉至對等較新的 VM。 較新的 VM 已針對最新的硬體進行優化,可讓您利用更佳的定價和效能。
請參閱下列建議:
| 舊版 VM 系列或大小 | 建議的較新 VM 系列或大小 | 部落格連結 |
|---|---|---|
| Av1 系列 | Av2 系列 | 新的 A_v2 系列 VM 大小 |
| Dv1 或 DSv1 系列 (D1 到 D5) | Dv3 或 DSv3 系列 | 引進新的 Dv3 和 Ev3 VM 大小 |
| Dv1 或 DSv1 系列 (D11 到 D14) | Ev3 或 ESv3 系列 | |
| D15v2 或 DS15v2 | 如果您使用 Resource Manager 部署模型來利用較大的 VM 大小,請考慮移至 D16v3/DS16v3 或 D32v3/DS32v3。 這些規格專為在最新一代硬體上執行而設計。 您是否使用 Resource Manager 部署模型來確保您的 VM 實例與單一客戶專用的硬體隔離? 然後,請考慮移至新的隔離 VM 大小,E64i_v3或E64is_v3,其設計目的是在最新一代硬體上執行。 |
新的隔離 VM 大小現在可供使用 |
背景資訊
分配的運作方式
Azure 平台會嘗試將數據中心伺服器分割成叢集。 通常,它會嘗試在多個叢集中提出資源配置請求。 但是,配置要求中的某些限制可能會使 Azure 平台只能在單一叢集中嘗試處理此要求(「固定到某個叢集」)。 下圖 1 顯示多個叢集中嘗試的一般配置(叢集 1 到叢集 n)。 在圖表 2 中,指派會固定到叢集 2,因為該叢集託管現有的雲端服務(CS_1)或可用性設定組。
為何會發生分配失敗
如果將配置要求釘選到叢集,則因為可用的資源集區較小,因此找不到免費資源的機會較高。 如果您的資源配置要求被固定到不支援您所要求資源類型的叢集,該怎麼辦? 然後,即使叢集有免費資源,您的要求也會失敗。 下方的圖 3 顯示釘選配置為何會失敗,因為唯一的候選叢集沒有可用資源。 圖表 4 顯示釘選配置失敗的位置,因為唯一的候選叢集不支援要求的 VM 大小,即使叢集具有免費資源也一樣。