跨區域擴展集會將虛擬機器 (VM) 執行個體分散到多個可用性區域,並使用區域平衡嘗試均勻分配執行個體到您選取的區域。 本文討論區域跨度音階組如何運用區域平衡,包括平衡與非平衡音階組的差異、平衡模式,以及如何重新平衡音階組。
平衡與不平衡擴展集
如果每個區域的虛擬機數量相同±1台虛擬機,則該等級集被視為 平衡 。 這個偏差值 1 讓您能夠擴展到任意數量的執行個體,而不只是擴展集使用區域數量的倍數。
符合上述任一條件的虛擬機仍會被計入,以判斷秤集是否平衡:
- 虛擬機成功建立,但虛擬機上的擴充功能無法部署。
- 虛擬機已經被解除配置。
以下是一些範例,說明虛擬機器擴展集如何為設定使用三個區域的跨區域擴展集決定區域平衡:
範例 1:一個虛擬機規模組,區域 1 有 2 台虛擬機,區域 2 有 2 台虛擬機,區域 3 有 2 台虛擬機,被視為 平衡的。 每個區域的實例數量完全相同。
範例 2:一個在區域 1 有 2 台虛擬機、區域 2 有 3 台虛擬機、區域 3 台虛擬機的規模組合被視為 平衡的。 只有一個區域的 VM 計數不同,且只比其他區域少 1 個。
範例 3:一個尺度集,區域 1 有 1 台虛擬機,區域 2 有 3 台虛擬機,區域 3 有 3 台虛擬機,被視為 不平衡。 第 1 區的虛擬機數量比第 2 和第 3 區少 2 台,超過允許的 ± 1 台虛擬機門檻。
範例 4:一個擴展集在區域 1 有 2 台 VM、區域 2 有 2 台 VM、區域 3 有 2 台 VM,會被視為已平衡,即使區域 1 的所有擴充功能都失敗、區域 2 的所有擴充功能都成功,且區域 3 的 VM 已解除配置:
區域平衡模式
為了設定區域平衡模式,你的體重計組必須使用多個區域。 不使用區域或只使用單一區域的比例組不需要平衡,因此沒有平衡模式。
對於使用多個區域的音階組,你可以從兩種區域平衡模式中選擇:
盡力而為的區域平衡(預設模式): 這個等級組的目標是在調整過程中維持區域間的平衡,但並不保證能保持平衡。
若某個區域無法使用,擴展集會嘗試擴展到仍可利用的區域,並允許暫時不平衡。 然而,這種不平衡僅在單一區域無法使用時才被允許。 一旦區域可用,在後續的擴展作業期間,擴展集會嘗試透過以下方式確保平衡:
- 在縮減規模時,從過度佈建的區域移除虛擬機器
- 擴展時,將虛擬機加入配置不足的區域
若兩個或以上區域無法使用,縮放集無法進行縮放操作,任何縮放操作都會被阻塞。
嚴格的區域平衡: 音階組必須始終保持平衡。 任何可能導致擴展集不平衡的擴展作業都會被阻止,即使一或多個區域已停機。
如何手動平衡您的擴展集
當你在現有的擴充套件中新增可用性區域時,現有的虛擬機不會被移動或重新分配。 此外,新增區域不會觸發重新平衡操作。 區域平衡只會在擴展規模作業期間,當新執行個體加入擴展集時發生。 區域平衡不會取代現有的實例。
您可以透過執行以下操作序列手動重新平衡您的體重秤組:
縮小範圍。 透過 更新刻度組的容量來增加更多實例。 新容量應該設定為原始容量 加上 新實例數量。
擴展集會嘗試在為擴展集設定的區域中建立新執行個體。
縮小範圍。 當新的執行個體準備就緒後,請縮減您的擴展集規模以移除舊的執行個體。 此過程會讓您的擴展集保持平衡狀態。
您可以手動刪除特定的執行個體,或是透過減少擴展集容量來縮減規模。 當您透過減少擴展集容量來縮減規模時,平台總是優先移除非區域性執行個體,然後遵循擴展集的縮減規模原則。
備註
如果你使用 Flexible orchestration 模式並連接、分離或移除個別虛擬機,應該檢查虛擬機所在的區域。 如果所有 VM 都在單一區域中,您的擴展集將無法承受該區域的中斷。
以下是一些在不同情況下手動重新平衡擴展集的例子:
假設你有一個包含 5 個實例的非區域性縮放集合:
您將其升級為跨三個區域的跨區域擴展集。 在你更新尺度集的區域設定後,現有實例會保持非區域狀態。
縮減比例: 因為你的比例組合目前有 5 個非區域實例,而你想縮小比例,讓 5 個實例分布在 3 個區域,你應該將容量設為 10(5 + 5)。 新實例會被建立在各區域,舊實例則維持原有:
縮減:您將容量減少至 5。 Azure 移除了非區域實例,讓 5 個實例分散在各個區域: