根據預設,區域代管執行個體群組 (MIG) 會將其代管虛擬機器 (VM) 例項平均分配到所選區域。不過,如果您需要的硬體並非所有可用區皆可使用,或在所選可用區可能暫時無法使用,或者您需要優先使用可用區預留,則建議採用其他分發方式。
如要設定區域性 MIG 如何在區域內所選可用區中分配受管理的執行個體,請設定 MIG 的目標分配型態。可用的選項如下:
- 均衡 (預設):群組會建立及刪除 VM,以便在所選區域中達到並維持相同的 VM 數量。在
EVEN
分布中,任兩個區域的 VM 數量相差不超過 1。建議用於高可用性服務工作負載。 - BALANCED:群組會優先在資源可用的區域中建立 VM,同時盡可能在所選區域中均勻分配 VM,以盡量減少區域故障的影響。建議用於高可用性服務或批次工作負載。
- 任一區域:群組會挑選可用區域來建立 VM 執行個體,以便在現有資源限制內滿足所要求的 VM 數量,並盡可能充分利用未使用的區域預留項目。建議用於不需要高可用性保證的批次工作負載。
- 任一單一可用區:群組會在單一可用區中建立所有 VM 執行個體。系統會根據硬體支援、目前資源和配額可用性,以及相符的預留空間,選擇區域。建議搭配 密集執行個體配置政策使用,適用於需要 VM 之間大量通訊的工作負載。
請根據工作負載需求和所需的 MIG 功能選擇選項。請參閱比較表、用途和發布形狀的運作方式。
形狀比較
下表針對每個可能的目標形狀說明其預期工作負載、用途、受管理執行個體的分布、功能支援,以及 MIG 在遇到無法使用的資源時的行為簡介。
EVEN (預設) |
BALANCED |
ANY |
ANY_SINGLE_ZONE |
|
---|---|---|---|---|
預期工作負載 | 高可用性服務工作負載 (無狀態或有狀態) | 高可用性服務工作負載 (無狀態或有狀態) 高可用性批次工作負載 |
批次工作負載 | 需要在 VM 之間進行大量通訊的批次工作負載 |
目的 | 在各區域有足夠的資源可用性情況下,盡量減少區域層級失敗的影響。 | 考量各個可用區的資源可用性,盡可能減少區域層級故障的影響。 | 優先取得資源,並使用未使用的預留項目。 | 將所有 VM 放在同一個區域,盡量減少網路延遲時間和 費用 之間的 VM。 |
指定各可用區的代管執行個體分布目標 | 是的。 無論資源可用性如何,任兩個區域之間的代管執行個體數量相差不超過 1。* 如果區域容量受限,部分代管執行個體可能無法啟動及執行。 |
盡量均勻。 我們無法保證各區域的 VM 數量差異,這取決於目前的資源可用性。 如果有可用的資源,分配方式會類似 EVEN 。在資源受限的極端情況下,分發作業可以採用任何形式。 |
任何。 每個區域可包含不同的代管執行個體數量 (包括全部或全部)。 |
單一可用區。 所有執行個體都會在同一個可用區內建立。當 MIG 從零個 VM 擴展時,會選擇可用區。 |
功能支援 | EVEN (預設) |
BALANCED |
ANY |
ANY_SINGLE_ZONE |
自動調度資源 | ||||
Canary 版更新 | ||||
彈性執行個體 | ||||
主動式執行個體重新分配 | 不適用 | |||
預訂 | 在各個區域內獨立使用,以達到最佳效益。 預訂不會影響執行個體的分配方式。 |
在各個區域內獨立使用,以達到最佳效益。 如果有預留空間,可能有助於達成平衡的分配。 |
在該區域內達到最高使用率。 這個群組會優先使用該區域的預留空間。 |
在所選區域內達到最高使用率。 當群組沒有 VM 且需要建立一或多個 VM 時,如果該區域有足夠的資源且支援可滿足要求的硬體,群組會優先選擇該區域。 |
執行個體範本和具狀態設定的硬體需求 (機器類型、CPU、GPU、現有磁碟) | 所選硬體必須在所有所選可用區提供。 | 所選硬體必須在至少一個所選區域提供。 | 所選硬體必須在至少一個所選區域可用。 | 所選硬體必須在至少一個所選區域提供。 |
單一用戶群節點 | ||||
處理失敗 | EVEN (預設) |
BALANCED |
ANY |
ANY_SINGLE_ZONE |
可用區中的資源暫時無法使用 | Exposed 在代管執行個體較少的區域中建立新的代管執行個體。在資源無法使用的可用區中,不斷重試建立 VM 執行個體,直到成功為止。 風險:無法在資源有限的可用區中建立 VM。 |
彈性 在資源可用的可用區中建立新的代管執行個體,同時盡可能在各可用區平均分配執行個體。 風險:VM 可能無法平均分配到各個區域。 |
彈性 在資源可用的區域中建立新的代管執行個體,並盡可能提高未使用的保留項目使用率。 風險:VM 可能無法平均分配到各個區域。 |
建立群組時可復原,並從零開始調整大小 在可用資源的單一區域內建立新的 VM 執行個體。 風險:如果所選區域的資源不足,無法保證在擴展要求期間成功建立所有額外執行個體。 |
區域層級故障 | 彈性 由於健康區域中的執行個體會持續提供服務,因此影響會降到最低。 如果您佈建額外的執行個體,足以容許失去一個可用區,就能進一步降低影響。 |
彈性 由於健康區域中的執行個體會持續提供服務,因此影響會降到最低。 如果您佈建額外的執行個體,足以容許失去一個可用區,就能進一步降低影響。 |
暴露 如果大部分或所有執行個體都集中在失效區,就可能發生服務中斷。 |
已公開 如果所選區域發生故障,就會發生服務中斷。 |
*如果您設定負載平衡和自動調度資源,且某個區域發生故障,則負載增加的區域可能會出現更多 VM。如果您停用主動式執行個體重新分配功能,並在區域中新增或移除執行個體,可能會導致分布不均。
用途
請查看功能支援,然後根據用途選擇發布形狀。
透過均勻分散工作負載,優先考量工作負載復原能力
如果您執行的應用程式需要具備高可用性,且必須在區域層級故障時仍能維持效能,請使用 EVEN
目標分配形狀,並設定超額配置的群組大小。在群組中超額配置執行個體數量,可保護工作負載免受區域層級故障的影響。
視工作負載而定,建議建立自動調度資源,在負載增加或減少時自動新增或移除群組中的執行個體。
如要進一步瞭解 EVEN
目標分配形狀,請參閱目標形狀比較,並閱讀EVEN
目標形狀的運作方式。
如要進一步瞭解如何在區域 MIG 上部署高可用性工作負載,請參閱下列章節:
- 如果您需要僅在特定區域提供的特殊硬體,請為 VM 選取可用區
- 佈建正確的代管執行個體群組大小。
- 如要避免在手動刪除或捨棄區域群組中的執行個體時,不小心刪除執行個體,請關閉跨區域執行個體重新分配功能
- 為地區 MIG 設定自動調度資源,這可在群組調整大小時維持各區域的平衡,並在發生區域層級故障時擴展至可用的區域。
- 設定負載平衡:在區域層級發生故障時,將負載轉移至健康區域,如果已設定自動調度資源,則會在負載增加的區域中增加 VM 數量。
- 設定有狀態的區域 MIG,可在機器重新啟動、重新建立、自動修復或更新事件發生時,保留每個 MIG 執行個體的專屬狀態,包括 VM 執行個體名稱、永久磁碟和中繼資料。
平衡資源取得與均勻分布
如果您執行高可用性的服務或批次工作負載,且需要在區域內的所選區域中,將 VM 執行個體均勻分配,以平衡資源取得作業,請使用 BALANCED
目標分配型態。
BALANCED
形狀會優先取得資源,也就是在有資源的可用區中建立執行個體,同時盡可能在各區域中平均分配執行個體,以盡量減少區域層級失敗的影響。
如果您執行的批次工作負載不需要防範區域層級故障,請改用 ANY
目標形狀。ANY
形狀會優先取得資源,並使用區域預留項目。
將形狀設為 BALANCED
或 ANY
後,您就不需要手動驗證特定硬體是否可在特定區域使用。您可以選取區域中的所有區域,群組就會在可用於所需硬體的區域中自動部署執行個體。
如要進一步瞭解 BALANCED
目標分配形狀,請參閱目標形狀比較,並閱讀BALANCED
目標分配形狀的運作方式。
優先取得資源
如果您執行批次工作負載,且取得執行處理作業所需的執行個體數量比工作負載對區域層級故障的復原能力更重要,請使用 ANY
目標分配形狀。
如果您有符合條件的預訂,請將目標形狀設為 ANY
,以便優先使用包含符合條件預訂的區域。如要瞭解如何在執行個體範本中設定保留項目,請參閱「從特定保留項目使用執行個體」一文。
與 BALANCED
目標形狀類似,當批次工作負載需要下列任一功能時,ANY
形狀就非常實用:
- 使用特殊硬體的 VM,例如特定 CPU 平台或 GPU 型號。群組會根據資源可用性,將執行個體部署至支援要求硬體的區域,並優先選擇有相符保留項目的區域。
- 先占 VM。您不需要探索哪些區域有可預取的容量。群組會自動部署至具有先占容量的可用區。
- 具有大量核心的 VM。群組會在可用大型機器的區域中取得大型機器,並優先選擇有相符預訂的區域。
您不需要手動驗證特定硬體是否可在特定區域使用。您可以選取區域中的所有區域,群組就會在可用於所需硬體的區域中自動部署執行個體。
您可以選擇性刪除已完成計算的批次工作工作站執行個體,而不影響其他工作站。與採用 EVEN
目標分配型態和主動式重新分配的群組不同,採用 ANY
目標分配型態的群組不必達到平衡狀態,也不會觸發重新分配。
如要進一步瞭解 ANY
目標分配形狀,請參閱目標形狀比較,並閱讀ANY
目標分配形狀的運作方式。
盡量減少跨 VM 的網路連線
如果您執行批次工作負載,並希望將所有 VM 放入單一可用區,以減少 VM 到 VM 網路延遲和成本,且沒有特定可用區需求,請將群組的目標形狀設為 ANY_SINGLE_ZONE
。您也可以建立密集配置政策,並套用至 MIG,讓 MIG 中的 VM 彼此靠近,且位於同一個網路基礎結構中。
當您建立至少含有一個 VM 的 MIG,以及當沒有 VM 的 MIG 需要再次擴充時,ANY_SINGLE_ZONE
型態會根據您的預留項目、配額和硬體需求,挑選最佳可用區。
與 BALANCED
和 ANY
目標形狀類似,當批次工作負載需要下列任一功能時,ANY_SINGLE_ZONE
形狀就很實用:
- 使用特殊硬體的 VM,例如特定 CPU 平台或 GPU 型號。群組會根據資源可用性,將執行個體部署至支援要求硬體的區域,並偏好使用有相符保留項目的區域。
- 先占 VM。您不需要探索哪些區域有可預取的容量。群組會自動部署至具有先占容量的可用區。
- 具有大量核心的 VM。群組會在可用的情況下取得大型機器,並優先選擇有相符預留量的區域。
您不需要手動驗證特定硬體是否可在特定區域使用。建立 MIG 時,請選取區域中的所有可用區,群組就會自動在可用區中部署執行個體,以便使用所需的硬體。
如要進一步瞭解 ANY_SINGLE_ZONE
目標分配,請參閱目標形狀的比較,並閱讀ANY_SINGLE_ZONE
目標分配形狀的運作方式。
如果您有特定的可用區需求,且不希望 MIG 在任何情況下切換可用區,請改用可用區 MIG。
運作方式
本節將說明各個目標分配形狀在下列情況下的運作方式:
- 調整 MIG 大小時
- 可用區暫時無法提供資源
- 在可用區故障的情況下
EVEN
分布形狀
將目標分配型態設為 EVEN
並啟用主動式重新分配功能後,無論資源可用性如何,區域 MIG 中的代管執行個體數量在任兩個區域之間的差異不會超過 1 個。但如果可用區缺乏佈建實際 VM 所需的資源,受管理的執行個體可能無法啟動並執行。
調整具有 EVEN
分布形狀的 MIG 大小
具有 EVEN
目標形狀的群組會選擇可新增或刪除執行個體的區域,以便在各區域中維持或趨近於平衡的代管執行個體。
舉例來說,下圖顯示群組如何新增及移除受管理的執行個體。
EVEN
分布的 MIG 大小暫時無法使用的資源所造成的影響
建立群組或增加執行個體數量時,區域中的資源可能會暫時無法使用。舉例來說,如果您要求可搶占的執行個體或供應量有限的專屬硬體,這些資源可能在您提出要求時無法使用。
為了維持各區域的執行個體均勻分布狀態,群組會繼續嘗試在資源暫時無法使用的區域中建立 VM 執行個體。等到資源再度可供使用後,該群組即可取得執行所需的執行個體數量。
舉例來說,下圖顯示如果某個區域因資源暫時無法使用而無法滿足您的要求,會發生什麼情況。
EVEN
分布的 MIG 的影響區域層級故障的影響
如果您使用 EVEN
(或 BALANCED
) 目標分配形狀,可以配置額外的執行個體,盡可能減少區域層級失敗的影響。
如果發生區域層級故障,以 EVEN
(或 BALANCED
) 目標分配型態部署至 3 個區域的區域性 MIG 可能會失去 1/3 的執行個體。您可以佈建更多 VM (負載需要的 2/3),確保在區域層級發生故障時,有足夠的容量來處理負載。
舉例來說,如果您需要 8 個執行個體來處理 3 個區域的請求,且想保護工作負載免於發生區域層級故障,就應建立含有 12 個執行個體的地區群組。下圖顯示如果一個區域發生故障時會發生的情況。
EVEN
分布的 MIG 的影響在這種情況下,EVEN
目標分配型態可與自動調度資源和負載平衡功能搭配使用。如果發生區域層級故障,負載平衡器就會開始將流量傳送至剩餘兩個區域的執行個體,以便容納來自失效區域的流量。
如要進一步瞭解區域 MIG 如何與自動配置器搭配運作,請參閱「自動調度區域 MIG」。
BALANCED
分布形狀
採用 BALANCED
目標型態的區域性 MIG 可能無法在各可用區中均勻分配,尤其是當可用區中沒有所要求的資源時。
MIG 會在資源可用的區域中建立 VM,以便優先配置所要求的 VM 數量。當資源可用時,分配方式與 EVEN
類似。在資源限制最嚴重的情況下,分發作業可以採用任何形式。
調整具有 BALANCED
分布形狀的 MIG 大小
增加群組人數
使用 BALANCED
目標形狀時,群組會根據您在 MIG 執行個體範本中指定的資源目前的可用性,選擇建立新執行個體的可用區。
- 當所有所選區域的資源都足夠時,群組會在大小增加時維持在各區域的均勻分配,這與
EVEN
目標形狀相同。 - 如果區域容量限制導致無法達到均勻分布,群組會在有資源可用的區域中建立執行個體,同時盡可能提高平衡。
舉例來說,如果您要求的 CPU 專用平台、GPU 型號或可先占 VM 並非所有區域皆可使用,就可能會遇到容量限制和不均勻的分配情形。
BALANCED
分布的 MIG 大小減少群組大小
當區域性 MIG 採用 BALANCED
目標型態時,會依照下列順序移除執行個體,以便限制工作負載中斷情形:
- 未執行的執行個體,也就是因任何原因無法建立、正在建立或正在自動修復的執行個體。
- 群組中 VM 較多的區域中的執行個體,以便收斂至均勻分布的狀態。
暫時無法使用的資源或區域故障的影響
使用 BALANCED
目標分配型態時,群組會將執行個體部署至有運算容量的可用區。在區域暫時性容量受限期間,這可能會導致各區域的執行個體分布不均。
在這種情況下,如果 VM 執行個體數量最多的可用區發生故障,工作負載可能會失去大量的服務容量。如果正常區域有暫時性容量限制,群組會嘗試在原始位置 (失敗區域) 重新建立失敗的執行個體,但這項嘗試可能會失敗。
如要保護工作負載免受這種極端情況影響,請採取下列做法:
- 超額配置地區性 MIG 的大小,以便在區域發生故障時,工作負載有足夠的服務容量。
- 在每個可用區預留足夠的資源,以便因應尖峰負載、超額配置,並在各可用區之間維持均勻分布。這項策略有助於確保您可以在各區域中平均分配執行個體,在區域故障時盡量減少容量損失。
下圖顯示,在區域出現暫時性容量限制,接著發生區域故障的情況下,可能會如何演變。
BALANCED
分布的 MIG 造成的影響如果無法在該地區的任何區域中滿足您的要求,群組就會在暫時無法使用資源的區域中,排定 VM 建立作業。群組會繼續嘗試在原先預定的區域中建立排程執行個體。如果其他區域的資源比原先排定的區域更早可用,群組就不會嘗試在這些區域中建立 VM。您可以手動在有可用容量的區域中排定新執行個體,方法是刪除無法建立的代管執行個體,並將群組大小調整為目標大小。
如果無法建立 VM,您可以列出受管理的執行個體,查看對應的受管理 VM 執行個體中的錯誤訊息,或列出近期錯誤。
如果發生區域故障,BALANCED
目標分配型態會與自動調整資源配置和負載平衡功能搭配使用。為了因應失效區域的流量,負載平衡器會將流量傳送至其餘區域的執行個體。自動配置器會回應可用區的使用率增加情形,並自動在運作正常的可用區中建立容量。詳情請參閱「自動調度區域 MIG」。
ANY
分配形狀
當目標分配型態設為 ANY
時,區域性 MIG 會在資源可用的區域中建立代管執行個體,以便優先取得資源。也就是說,所有執行個體可能會在一個可用區中建立,或是平均分配到所有可用區,或是這兩種情況之間的任何情況。
調整具有 ANY
分布形狀的 MIG 大小
增加群組人數
當您增加群組大小時,群組會挑選任何可用容量的可用區。
如果您在一個或多個區域中擁有相符的保留項目,群組會優先使用這些保留項目。不過,如果您減少群組大小,所有已用罄的預留空間可能需要幾分鐘才能再次供人使用。在這個期間,如果先前使用的預留容量尚未可用,且群組規模增加,但沒有相符的預留容量,群組就會在資源可用的區域中建立 VM 執行個體。
縮減群組大小
當您減少群組大小時,群組會依照以下順序刪除 VM 執行個體:
- 因任何原因而未執行的 VM
- 尚未更新至指定版本的 VM
- 非確定性選擇的 VM
如果您需要減少特定區域中的群組大小,或移除特定 VM 執行個體 (例如已完成工作的 worker),可以從群組中刪除特定執行個體。
暫時無法使用的資源所造成的影響
將目標分配形狀設為 ANY
後,群組會在可用區域中安排 VM 執行個體建立作業,並避免在暫時無法取得資源的區域中執行。
如果無法在該地區的任何區域中滿足您的要求,群組就會在暫時無法使用資源的區域中,排定 VM 建立作業。群組會持續嘗試在原先排定的區域中建立排定執行個體。如果其他區域的資源比排程 VM 的原始區域更早可用,群組就不會嘗試在這些區域中建立 VM。您可以刪除未執行的代管執行個體,並將群組大小調整為目標大小,藉此在有可用容量的區域中手動排程新的執行個體。
如果無法建立 VM,您可以列出受管理的執行個體,查看對應 VM 執行個體中的錯誤訊息,或列出近期錯誤。
舉例來說,下圖顯示當某個區域無法滿足您的要求時,區域群組如何安排執行個體。
ANY
分布的 MIG 的影響區域層級故障的影響
如果目標分配型態設為 ANY
,群組可能會在單一區域中部署大部分或所有執行個體。如果該區域發生故障,群組的大部分或全部執行個體可能會在故障期間無法使用。
如果發生區域層級故障或資源暫時無法使用,或是 VM 執行個體因任何原因而未執行,您可以刪除個別未執行的執行個體,然後將群組大小調整回必要的大小,以便嘗試在有可用容量的區域中取得替換的執行個體。
ANY
分配的 MIG 中刪除及重新建立執行個體,以便在資源暫時無法使用時進行ANY_SINGLE_ZONE
分布形狀
在建立群組中的第一個 VM 時,採用 ANY_SINGLE_ZONE
目標分配型態的區域性 MIG 會自動選取最佳可用區。建立第一個 VM 後,所有其他 VM 都會在同一個可用區中建立。
MIG 只有在縮減至零個 VM 時,才能選取其他可用區,並再次開始建立第一個 VM。
選擇最佳區域
如果所選可用區中只有一個支援群組的硬體需求,Compute Engine 就會選擇這個可用區。
如果多個所選區域都符合群組的硬體需求,Compute Engine 會選擇有足夠可用資源的區域,以便容納所有地區性 MIG 的 VM,並優先選擇與預留項目最相符的區域。
如果所選區域都沒有足夠的可用資源或相符的保留項目,無法容納所有 VM,為了盡可能建立更多 VM,Compute Engine 會選擇可用資源和相符保留項目最多的區域,並優先選擇相符保留項目最多的區域。即使在其他區域中資源可更快就緒,群組仍會繼續嘗試在相同區域中建立其餘的 VM。
調整具有 ANY_SINGLE_ZONE
分布形狀的 MIG 大小
增加群組人數
如果 MIG 中已有 VM,且目標分配型態設為 ANY_SINGLE_ZONE
,則對於所有擴大規模作業,MIG 會將新的 VM 放在與現有 VM 相同的可用區。如果可用資源或預留項目不足以容納所有額外 VM,MIG 會盡可能建立更多 VM。
如果 MIG 沒有 VM,在擴展時,系統會選擇支援群組硬體需求且可使用相符預留容量的最佳區域。
縮減群組大小
縮放時,採用 ANY_SINGLE_ZONE
分配型態的區域性 MIG 會依下列順序移除 VM:
- 系統會優先移除非
RUNNING
狀態的 VM,以減少對工作負載的影響。未執行的 VM 是指因任何原因無法建立、正在建立或正在修復的 VM。 - 未使用群組最新設定的 VM。
- 非確定性選擇的 VM
暫時無法使用的資源所造成的影響
如果區域性 MIG 的目標分配型態設為 ANY_SINGLE_ZONE
,就可能會在所選可用區中發生資源不足的情況。
如果 MIG 所選可用區的資源暫時無法使用,MIG 不會自動切換可用區。也就是說,在有足夠資源之前,擴展和更新程序可能會中斷。
區域層級故障的影響
如果區域性 MIG 的目標分配型態設為 ANY_SINGLE_ZONE
,就容易發生可用區故障。
萬一主機代管地區 MIG 的 VM 所在區域發生區域故障,所有 MIG 的 VM 可能就無法處理工作負載。
後續步驟
- 如要瞭解如何在 MIG 上設定目標型態,請參閱「設定在各個可用區分配 VM 的政策」。
- 進一步瞭解區域 MIG。
- 瞭解 Compute Engine 資源的可用區預留項目。