修正您在 Azure 中建立、重新啟動或縮放虛擬機器擴展集大小時發生的 AllocationFailed 或 ZonalAllocationFailed 錯誤 (機器翻譯)
警告
如果您的Microsoft Azure 虛擬機擴展集是 Azure Service Fabric 叢集的一部分,請勿遵循此疑難解答指引。 本指引可能會在此案例中造成數據遺失和無法復原的叢集損毀。 如需詳細資訊,請參閱 我可以在 Service Fabric 叢集中使用大型虛擬機擴展集嗎?
在本文中,取得下列相關信息:
- Microsoft Azure 虛擬機器擴展集 中的 AllocationFailed 或 ZonalAllocationFailed 錯誤。
- 如何避免配置失敗。
- 配置失敗的原因。
- 如何針對發生配置失敗進行疑難解答。
若要針對標準虛擬機 (VM) 的配置失敗進行疑難解答,請參閱 在 Azure 中建立、重新啟動或調整 VM 的大小時,針對配置失敗進行疑難解答。
徵兆
由於 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 實例。 然後,成功布建要求數目的 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 大小,即使叢集具有免費資源也一樣。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。