針對在 Azure 中部署雲端服務 (傳統) 時發生的配置失敗進行疑難排解

重要

截至 2024 年 9 月 1 日,所有客戶的雲端服務 (傳統) 均已淘汰。 自 2024 年 10 月起,Microsoft 將停止並關閉任何執行中的現有部署,且資料將永久遺失。 新部署應該使用 Azure Resource Manager 型的新部署模型 Azure 雲端服務 (延伸支援)

摘要

當您部署執行個體至雲端服務或加入新的 Web 或背景工作角色執行個體時,Microsoft Azure 會配置計算資源。 執行這些作業時,即使尚未達到 Azure 訂用帳戶限制,也可能偶爾發生錯誤。 本文說明一些常見配置失敗的原因,並建議可能的補救方法。 規劃服務的部署時,本資訊可能也很有用。

若本文中未提及您的 Azure 問題,請前往 Microsoft Q 和 A 及 Stack Overflow 上的 Azure 論壇。 您可以在這些論壇中張貼您的問題,或將問題貼到 Twitter 上的 @AzureSupport。 您也可以提交 Azure 支援要求。 若要提交支援要求,請在 Azure 支援頁面上,選取 [取得支援]。

背景 – 配置的運作方式

Azure 資料中心的伺服器分割成叢集。 在多個叢集中嘗試新的雲端服務配置要求。 當第一個執行個體部署至雲端服務 (在預備或生產環境) 後,該雲端服務會釘選至某個叢集。 雲端服務的任何進一步的部署會發生在相同的叢集中。 在本文中,這種狀態稱為「釘選到叢集」。下圖說明在多個叢集中嘗試一般配置的情況。 第 2 個圖說明釘選到叢集 2 的配置案例,因為叢集 2 是現有雲端服務 CS_1 的裝載位置。

配置圖表

配置失敗的原因

當配置要求已釘選到叢集時,由於可用的資源集區僅限於某個叢集,很可能找不到可用的資源。 此外,如果配置要求已釘選到叢集,但該叢集不支援您所要求的資源類型,即使叢集有可用的資源,您的要求仍會失敗。 下一個圖說明由於唯一候選叢集沒有可用的資源,導致已釘選的配置失敗的情況。 圖 4 說明因唯一候選叢集不支援所要求的虛擬機器 (VM) 大小 (雖然叢集有可用的資源),而導致已釘選的配置失敗的情況。

釘選配置失敗

雲端服務配置失敗的疑難排解

錯誤訊息

在 Azure 入口網站中,瀏覽至您的雲端服務,然後在側邊欄中選取 [作業記錄 (傳統)] 以檢視記錄。

請參閱下列進一步解決方案中的例外狀況:

例外狀況類型 錯誤訊息 解決方案
FabricInternalServerError 作業失敗,出現錯誤碼 'InternalError' 和錯誤訊息「伺服器發生內部錯誤。 請重試要求。 疑難排解 FabricInternalServerError
ServiceAllocationFailure 作業失敗,出現錯誤碼 'InternalError' 和錯誤訊息「伺服器發生內部錯誤。 請重試要求。 疑難排解 ServiceAllocationFailure
LocationNotFoundForRoleSize 作業 '{Operation ID}' 失敗:「要求的 VM 層目前無法在此訂用帳戶的區域 ({Region ID}) 中使用。 請嘗試其他層級,或部署至不同的位置。 疑難排解 LocationNotFoundForRoleSize
ConstrainedAllocationFailed Azure 作業 '{Operation ID}' 失敗,代碼為 Compute.ConstrainedAllocationFailed。 詳細資料:配置失敗;無法滿足要求中的條件約束。 要求的新服務部署繫結至同質群組,或以虛擬網路為目標,或此託管服務下已經有部署。 任何這些情況會將新的部署侷限於特定的 Azure 資源。 請稍後重試,或嘗試減少 VM 大小或角色執行個體的數量。 或者,可能的話,移除條件約束,或嘗試部署至不同的區域。 疑難排解 ConstrainedAllocationFailed
OverconstrainedAllocationRequest 因受部署要求條件約束,無法佈建此部署所要求的 VM 大小 (或 VM 大小的總和)。 可能的話,請嘗試放寬約束條件 (例如虛擬網路繫結)、部署至不具有其他部署的託管服務及不同的同質群組 (或不具有同質群組的託管服務),或嘗試部署至不同的區域。 疑難排解 OverconstrainedAllocationRequest

錯誤訊息範例:

Azure 作業 '{operation id}' 失敗,出現代碼 Compute.ConstrainedAllocationFailed。 詳細資料:配置失敗;無法滿足要求中的條件約束。 要求的新服務部署繫結至同質群組,或以虛擬網路為目標,或此託管服務下已經有部署。 任何這些情況會將新的部署侷限於特定的 Azure 資源。 請稍後重試,或嘗試減少 VM 大小或角色執行個體的數量。 或者,可能的話,移除先前提到的條件約束,或嘗試部署至不同的區域。」

常見的問題

以下是造成配置要求釘選到單一叢集的常見配置案例。

  • 部署至預備位置 - 如果某個雲端服務在任一位置含有部署,則整個雲端服務都會釘選到特定的叢集。 這表示如果某個部署已存在生產位置,則新的預備部署只能配置在與生產位置相同的叢集中。 如果叢集逼近容量上限,則要求可能會失敗。
  • 調整 - 將新的執行個體加入現有的雲端服務必須配置到相同叢集中。 小型的調整要求通常可配置,但並不盡然。 如果叢集逼近容量上限,則要求可能會失敗。
  • 同質群組 - 該區域中任何叢集中的網狀架構都可以將新的部署配置給空的雲端服務,除非雲端服務已釘選到某個同質群組。 部署會嘗試在同一個叢集上使用相同的同質群組。 如果叢集逼近容量上限,則要求可能會失敗。
  • 同質群組虛擬網路 - 較舊的虛擬網路是繫結至同質群組而不是區域,而這些虛擬網路中的雲端服務會釘選到該同質群組叢集。 在釘選的叢集上嘗試了部署到這種類型的虛擬網路。 如果叢集逼近容量上限,則要求可能會失敗。

方案

  1. 重新部署到新的雲端服務 - 此解決方案可能是最成功的,因為它可讓平台從該區域的所有叢集中選擇。

    • 將工作負載部署到新的雲端服務
    • 更新 CNAME 或 A 記錄,以將流量指向新的雲端服務
    • 一旦流向舊網站的流量為零,您就可以刪除舊的雲端服務。 此解決方案不需要停機。
  2. 刪除生產和預備位置 - 此解決方案會保留您現有的網域名稱系統 (DNS) 名稱,但會導致您的應用程式停止運作。

    • 刪除現有雲端服務的生產和預備位置,讓雲端服務是空白的,然後
    • 在現有的雲端服務中建立新的部署。 此解決方案會重新嘗試區域中所有叢集的配置。 請確定雲端服務未繫結至同質群組。
  3. 保留的 IP - 此解決方案會保留您現有的 IP 位址,但是會導致您的應用程式停止運作。

    • 使用 PowerShell 為您現有的部署建立 ReservedIP

      New-AzureReservedIP -ReservedIPName {new reserved IP name} -Location {location} -ServiceName {existing service name}
      
    • 請遵循 #2,務必在服務的 CSCFG 中指定新 ReservedIP。

  4. 移除新部署中的同質群組 - 不再建議使用同質群組。 請遵循 #1 的步驟以部署新的雲端服務。 請確定雲端服務不在同質群組中。

  5. 轉換至區域虛擬網路 - 請參閱如何從同質群組移轉至區域虛擬網路 (虛擬網路)