這很重要
截至 2024 年 9 月 1 日,所有客戶的雲端服務 (傳統) 均已淘汰。 從 2024 年 10 月開始,Microsoft 將停止並關閉任何現有的執行中部署,且資料將會永久遺失。 新部署應該使用 Azure Resource Manager 型的新部署模型 Azure 雲端服務 (延伸支援)。
總結
當您部署執行個體至雲端服務或加入新的 Web 或背景工作角色執行個體時,Microsoft Azure 會配置計算資源。 執行這些作業時,即使尚未達到 Azure 訂用帳戶限制,也可能偶爾發生錯誤。 本文說明一些常見配置失敗的原因,並建議可能的補救方法。 規劃服務的部署時,本資訊可能也很有用。
背景 – 分配的運作方式
Azure 資料中心的伺服器分割成叢集。 在多個叢集中嘗試新的雲端服務配置要求。 當第一個執行個體部署至雲端服務 (在預備或生產環境) 後,該雲端服務會被鎖定到某個叢集。 雲端服務的任何進一步的部署會發生在相同的叢集中。 在本文中,我們將這種狀態稱為「掛在叢集上」。下圖說明在多個叢集中進行嘗試的一般分配情況。 第二個圖示說明固定在叢集 2 的配置案例,因為叢集 2 是現有雲端服務 CS_1 的所在位置。
分配失敗的原因
當配置要求已釘選到叢集時,由於可用的資源集區僅限於某個叢集,很可能找不到可用的資源。 此外,如果配置要求已釘選到叢集,但該叢集不支援您所要求的資源類型,即使叢集有可用的資源,您的要求仍會失敗。 下一個圖表說明由於唯一的候選叢集沒有可用資源,導致釘選分配失敗的情況。 圖 4 說明因唯一候選叢集不支援所要求的虛擬機器 (VM) 大小 (雖然叢集有可用的資源),而導致已釘選的配置失敗的情況。
雲端服務資源分配失敗的問題排解
錯誤訊息
在 Azure 入口網站中,瀏覽至您的雲端服務,然後在側邊欄中選取 [作業記錄 (傳統)] 以檢視記錄。
請參閱下列進一步解決方案中的例外狀況:
例外狀況類型 | 錯誤訊息 | 解決方法 |
---|---|---|
Fabric伺服器內部錯誤 | 作業失敗,出現錯誤碼 'InternalError' 和錯誤訊息「伺服器發生內部錯誤。 請重試請求。 | 疑難排解 Fabric 內部伺服器錯誤 |
服務分配失敗 | 作業失敗,出現錯誤碼 'InternalError' 和錯誤訊息「伺服器發生內部錯誤。 請重試請求。 | 疑難排解 ServiceAllocationFailure |
無法找到符合角色大小的地點 | 作業 '{Operation ID} ' 失敗:「要求的 VM 層目前無法在此訂用帳戶的區域 ({Region ID} ) 中使用。 請嘗試其他層級,或部署至不同的位置。 |
疑難排解 LocationNotFoundForRoleSize |
限制分配失敗 | Azure 作業 '{Operation ID} ' 失敗,錯誤代碼為 Compute.ConstrainedAllocationFailed。 詳細資料:配置失敗;無法滿足要求中的條件約束。 要求的新服務部署繫結至同質群組,或以虛擬網路為目標,或此託管服務下已經有部署。 任何這些情況會將新的部署侷限於特定的 Azure 資源。 請稍後重試,或嘗試減少 VM 大小或角色執行個體的數量。 或者,可能的話,移除條件約束,或嘗試部署至不同的區域。 |
疑難排解限制分配失敗 |
超出限制的分配請求 | 因受部署要求條件約束,無法佈建此部署所要求的 VM 大小 (或 VM 大小的總和)。 可能的話,請嘗試放寬約束條件 (例如虛擬網路繫結)、部署至不具有其他部署的託管服務及不同的同質群組 (或不具有同質群組的託管服務),或嘗試部署至不同的區域。 | 疑難排解過度限制分配請求 |
錯誤訊息範例:
Azure 作業 '{operation id}' 由於出現錯誤代碼 Compute.ConstrainedAllocationFailed 而失敗。 詳細資料:配置失敗;無法滿足要求中的條件約束。 要求的新服務部署繫結至同質群組,或以虛擬網路為目標,或此託管服務下已經有部署。 任何這些情況會將新的部署侷限於特定的 Azure 資源。 請稍後重試,或嘗試減少 VM 大小或角色執行個體的數量。 或者,可能的話,移除先前提到的條件約束,或嘗試部署至不同的區域。」
常見問題
以下是造成配置要求釘選到單一叢集的常見配置案例。
- 部署至預備位置 - 如果某個雲端服務在任一位置有部署,則整個雲端服務將會被綁定到特定的叢集。 這表示如果某個部署已存在於生產槽位,則新的階段部署只能分配到與生產槽位相同的叢集中。 如果叢集逼近容量上限,則要求可能會失敗。
- 調整 - 將新的實例加入現有的雲端服務時,必須配置在相同的集群中。 小型的擴展請求通常可以分配,但不一定總是如此。 如果叢集逼近容量上限,則要求可能會失敗。
- 同質群組 - 該區域中任何叢集中的結構體都可以將新的部署配置給空的雲端服務,除非雲端服務已綁定到某個同質群組。 部署會嘗試在同一個叢集上使用相同的同質群組。 如果叢集逼近容量上限,則要求可能會失敗。
- 同質群組虛擬網路 - 較舊的虛擬網路是繫結至同質群組而不是區域,而這些虛擬網路中的雲端服務會釘選到該同質群組叢集。 在釘選的叢集上嘗試部署到這種類型的虛擬網路。 如果叢集逼近容量上限,則要求可能會失敗。
解決方案
重新部署到新的雲端服務 - 此解決方案可能是最成功的,因為它可讓平台從該區域的所有叢集中選擇。
- 將工作負載部署到新的雲端服務
- 更新 CNAME 或 A 記錄,以將流量指向新的雲端服務
- 一旦流向舊網站的流量為零,您就可以刪除舊的雲端服務。 此解決方案不需要停機。
刪除生產和預備位置 - 此解決方案會保留您現有的網域名稱系統 (DNS) 名稱,但會導致您的應用程式停止運作。
- 刪除現有雲端服務的生產和預備插槽,讓雲端服務變為空的,然後
- 在現有的雲端服務中建立新的部署。 此解決方案會重新嘗試區域中所有叢集的配置。 請確定雲端服務未繫結至同質群組。
保留的 IP - 此解決方案會保留您現有的 IP 位址,但是會導致您的應用程式停止運作。
使用 PowerShell 為您現有的部署建立 ReservedIP
New-AzureReservedIP -ReservedIPName {new reserved IP name} -Location {location} -ServiceName {existing service name}
請遵循 #2,務必在服務的 CSCFG 中指定新的 ReservedIP。
移除新部署中的同質群組 - 不再建議使用同質群組。 請遵循 #1 的步驟以部署新的雲端服務。 請確定雲端服務不在同質群組中。
轉換至區域虛擬網路 - 請參閱如何從同質群組移轉至區域虛擬網路 (虛擬網路)。