根據預設,區域代管執行個體群組 (MIG) 會將代管虛擬機器 (VM) 執行個體平均分配到所選區域。但如果您需要並非所有可用區都提供的硬體,或所選可用區可能暫時無法使用的硬體,或是需要優先使用可用區預留項目,則可能偏好其他分配方式。
如要設定區域性 MIG 如何在區域內的所選可用區中分配代管執行個體,請設定 MIG 的目標分配型態。 可用的選項如下:
- EVEN (預設):群組會建立及刪除 VM,以在所選區域中達到並維持相同數量的 VM。在
EVEN
分配方式中,任兩個區域之間的 VM 數量最多只會相差 1 個。建議用於高可用性服務工作負載。 - BALANCED:群組會優先在資源可用的區域中建立 VM,同時盡可能在所選區域中平均分配 VM,以盡量減少區域故障的影響。建議用於高可用性服務或批次工作負載。
- ANY:群組會選擇區域來建立 VM 執行個體,以滿足目前資源限制內的 VM 要求數量,並盡量使用未使用的區域預留項目。建議用於不需要高可用性的批次工作負載。
- 任何單一可用區:群組會在單一可用區中建立所有 VM 執行個體。系統會根據硬體支援、目前的資源和配額可用性,以及相符的預留項目選擇可用區。建議搭配 密集執行個體配置政策使用,適用於需要 VM 之間大量通訊的工作負載。
根據工作負載需求和所需的 MIG 功能選擇合適的選項。請參閱比較表、用途,以及分配形狀的運作方式。
形狀比較
下表針對每種可能的目標形狀,說明其預期工作負載、用途、受管理執行個體分配情形、功能支援,以及 MIG 遇到無法使用的資源時的行為簡短說明。
EVEN (預設) |
BALANCED |
ANY |
ANY_SINGLE_ZONE |
|
---|---|---|---|---|
預期工作負載 | 高可用性服務工作負載 (無狀態或有狀態) | 高可用性服務工作負載 (無狀態或有狀態) 高可用性批次工作負載 |
批次工作負載 | 需要 VM 之間大量通訊的批次工作負載 |
目的 | 假設各個區域的資源可用性充足,盡量減少區域層級故障的影響。 | 考量各個可用區的資源可用性,盡可能減少可用區層級故障的影響。 | 優先取得資源,並使用未使用的預留項目。 | 將所有 VM 放在同一個區域,盡量減少 VM 之間的網路延遲和 費用。 |
各可用區的代管執行個體目標分配比例 | Even. 無論資源可用性為何,任兩個區域之間的代管執行個體數量差異不得超過 1 個。* 如果區域容量受限,部分代管執行個體可能無法啟動並執行。 |
盡量平均。 各可用區的 VM 數量可能不一致,視目前的資源可用性而定。 如果資源充足,分配方式與 EVEN 類似。在資源受限的最糟情況下,分配作業可能會採取任何形式。 |
不限。 每個區域可有不同數量的代管執行個體 (包括全部或零個)。 |
單一可用區。 所有執行個體都會在一個可用區內建立。每當 MIG 從零部 VM 擴充時,就會選擇區域。 |
功能支援 | EVEN (預設) |
BALANCED |
ANY |
ANY_SINGLE_ZONE |
自動調度資源 | ||||
Canary 版更新 | ||||
執行個體彈性 | ||||
主動式執行個體重新分配 | 不適用 | |||
預訂 | 在每個區域內獨立發揮最大效用。 預訂不會影響執行個體的分配方式。 |
在每個區域內獨立發揮最大效用。 如有預留項目,或許有助於達到均衡的分配。 |
在區域內充分運用。 這個群組會優先使用區域中的預留項目。 |
在所選區域內達到最大使用量。 每當群組沒有 VM,且需要建立一或多個 VM 時,如果該區域有足夠的資源並支援硬體來滿足要求,群組會優先選擇保留項目最多的區域。 |
執行個體範本和具狀態設定的硬體需求 (機器類型、CPU、GPU、現有磁碟) | 所選硬體必須適用於所有所選可用區。 | 所選硬體必須在至少一個所選區域可用。 | 所選硬體必須在至少一個所選區域可用。 | 所選硬體必須在至少一個所選區域可用。 |
單一用戶群節點 | ||||
處理失敗事件 | EVEN (預設) |
BALANCED |
ANY |
ANY_SINGLE_ZONE |
可用區的資源暫時無法使用 | 公開 在代管執行個體較少的區域中建立新的代管執行個體。持續嘗試在資源無法使用的可用區中建立 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 彼此更靠近,且位於相同的網路基礎架構。
建立 MIG 時,只要 MIG 包含至少一個 VM,且 MIG 沒有 VM 時需要再次向外擴充,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
,且啟用主動式重新分配功能,無論資源是否可用,任何兩個區域的地區代管執行個體群組中,代管執行個體數量最多只會相差 1 個。但如果可用區缺乏佈建實際 VM 的資源,受管理執行個體可能無法運作。
調整具有 EVEN
分布形狀的 MIG 大小
如果群組的目標型態為 EVEN
,系統會選取可用區來新增或刪除執行個體,以維持或趨近於各可用區的代管執行個體數量平衡。
舉例來說,下圖顯示群組如何新增及移除代管執行個體。
EVEN
分散方式的 MIG 大小暫時無法使用的資源造成的影響
建立群組或增加執行個體數量時,區域中的資源可能會暫時無法使用。舉例來說,如果您要求使用有限供應量的搶占型執行個體或專用硬體,這些資源可能在您提出要求時無法使用。
為了維持各區域的執行個體均勻分布狀態,群組會繼續嘗試在資源暫時無法使用的區域中建立 VM 執行個體。等到資源再度可供使用後,該群組即可取得執行所需的 VM 執行個體數量。
舉例來說,下圖顯示其中一個可用區因資源暫時無法使用,而無法滿足您的要求時,會發生什麼情況。
EVEN
分配方式的 MIG 造成的影響區域層級故障的影響
如果您使用 EVEN
(或 BALANCED
) 目標分配形狀,可以佈建額外執行個體,盡量減少區域層級故障的影響。
如果發生可用區層級的故障,部署至 3 個可用區且目標分配型態為 EVEN
(或 BALANCED
) 的區域性 MIG 可能會失去 1/3 的執行個體。您可以佈建更多 VM,確保有足夠的容量來處理負載,其中 2/3 的 VM 是負載所需的容量,以防區域層級發生故障。
舉例來說,如果您需要 8 個執行個體來處理 3 個區域的要求,並想保護工作負載,避免發生區域層級的故障,則應建立含有 12 個執行個體的地區群組。下圖顯示某個區域發生故障時的情況。
EVEN
分配方式的 MIG 造成的影響在這種情況下,EVEN
目標分配型態非常適合用於自動調度資源和負載平衡。如果區域發生故障,負載平衡器會開始將流量傳送至其餘兩個區域的執行個體,以因應故障區域的流量。
如要進一步瞭解區域 MIG 如何與自動調度器搭配運作,請參閱「自動調度區域 MIG」。
BALANCED
分布形狀
如果區域性 MIG 的目標型態為 BALANCED
,可能無法在各個可用區平均分配資源,特別是當某個可用區沒有要求的資源時。
MIG 會優先在資源充足的區域建立 VM,以佈建要求數量的 VM。如果資源充足,分配方式與 EVEN
類似。在資源受限的最糟情況下,分配作業可能會採取任何形式。
調整具有 BALANCED
分布形狀的 MIG 大小
增加群組大小
如果目標型態為 BALANCED
,群組會根據您在 MIG 執行個體範本中指定的資源目前可用性,選擇可用區來建立新執行個體。
- 當所有選定可用區的資源都充足時,群組會在大小增加時維持可用區的平均分配,與
EVEN
目標形狀相同。 - 如果區域容量限制導致無法平均分配,群組會在資源可用的區域中建立執行個體,同時盡量維持平衡。
舉例來說,如果您要求的專用 CPU 平台、GPU 模型或先占 VM 並非在所有區域都可使用,您可能會發現容量限制和分配不均的情況。
BALANCED
分散方式的 MIG 大小減少群組大小
縮減大小時,目標型態為 BALANCED
的區域性 MIG 會依下列順序移除執行個體,以盡量減少對工作負載的干擾:
- 未執行的執行個體,也就是因任何原因無法建立、正在建立或自動修復的執行個體。
- 群組中 VM 數量較多的區域,以趨近於均勻分布的狀態。
資源暫時無法使用或可用區故障的影響
如果使用 BALANCED
目標分配型態,群組會將執行個體部署至有可用容量的區域。如果可用區的容量暫時受限,可能會導致執行個體在各可用區的分布不均。
如果 VM 執行個體數量最多的可用區發生故障,工作負載可能會失去相當大的服務容量。如果健康狀態良好的區域暫時有容量限制,群組會嘗試在原始位置 (失敗的區域) 重新建立失敗的執行個體,但這項嘗試可能會失敗。
為保護工作負載免於受到這類極端情況影響:
- 過度佈建地區性 MIG 的大小,確保工作負載在區域發生故障時,有足夠的服務容量。
- 在每個可用區預留足夠的資源量,以因應尖峰負載、過度佈建,並維持可用區之間的平均分配。這項策略可確保您在各個區域平均分配執行個體,在區域發生故障時,將容量損失降至最低。
下圖顯示在暫時性的區域容量限制後,區域故障可能如何演變。
BALANCED
分布的 MIG 造成影響如果該地區的任何區域都無法滿足您的要求,群組就會在資源暫時無法使用的區域中,排定 VM 建立作業。群組會繼續嘗試在原先排定建立執行個體的區域中建立執行個體。如果其他區域的資源比原先排定 VM 的區域更早恢復可用,群組不會嘗試在這些其他區域建立 VM。您可以手動刪除無法建立的代管執行個體,並將群組大小調整為目標大小,在有可用容量的區域中排定新執行個體。
如果 VM 建立失敗,您可以列出代管執行個體,查看對應代管 VM 執行個體中的錯誤訊息,或列出近期錯誤。
如果發生可用區故障,BALANCED
目標分配型態可與自動調度資源和負載平衡功能搭配使用。為因應來自故障區域的流量,負載平衡器會將流量傳送至其餘區域的執行個體。自動調度器會回應可用區使用率的增加,並在運作正常的可用區中自動建立容量。詳情請參閱「自動調度區域 MIG」。
ANY
分布形狀
如果目標分配型態設為 ANY
,區域性 MIG 會優先在資源可用的區域中建立代管執行個體,以取得資源。也就是說,所有執行個體可能會在一個可用區中建立,也可能平均分布在所有可用區,或介於這兩種情況之間。
調整具有 ANY
分布形狀的 MIG 大小
增加群組大小
增加群組大小時,群組會選取有可用容量的任何區域。
如果在一或多個可用區中,您有相符的保留項目,則群組會優先使用這些保留項目。不過,如果減少群組大小,系統可能需要幾分鐘時間,才能再次使用已使用的預訂。在這段期間,先前使用的預留項目尚未恢復可用狀態。如果增加群組大小,但沒有相符的預留項目,群組就會在資源可用的區域中建立 VM 執行個體。
減少群組大小
縮減群組大小時,群組會依下列順序刪除 VM 執行個體:
- 因任何原因而未執行的 VM
- 尚未更新至預期版本的 VM
- 以非決定性方式選擇 VM
如果您需要減少特定可用區的群組大小,或移除特定 VM 執行個體 (例如已完成工作的執行個體),可以從群組刪除特定執行個體。
暫時無法使用的資源造成的影響
如果目標分配型態設為 ANY
,群組會在提供所要求資源的區域中,排定 VM 執行個體建立作業,並避開資源暫時無法使用的區域。
如果該地區的任何區域都無法滿足您的要求,群組就會在資源暫時無法使用的區域中,排定 VM 建立作業。群組會持續嘗試在原先排定建立執行個體的區域中,建立排定執行個體。如果其他區域的資源比原先排定 VM 的區域更早恢復可用,群組就不會在其他區域嘗試建立 VM。如要在有可用容量的區域中手動排定新執行個體,請刪除未執行的代管執行個體,並將群組大小調整為目標大小。
如果 VM 建立失敗,您可以列出代管執行個體,查看對應 VM 執行個體中的錯誤訊息,或列出近期錯誤。
舉例來說,下圖顯示當區域無法滿足要求時,區域群組如何排定執行個體。
ANY
分配方式的 MIG 造成的影響區域層級故障的影響
如果群組的目標分配型態設為 ANY
,則可能會在單一可用區中部署大部分或所有執行個體。如果該區域發生故障,群組中大部分或所有執行個體可能會在故障期間無法使用。
如果發生區域層級的故障或資源暫時無法使用,或者 VM 執行個體因任何原因而未執行,您可以刪除個別未執行的執行個體,然後將群組大小調整回必要大小,嘗試在有可用容量的區域中取得替代執行個體。
ANY
分布的 MIG 中刪除並重新建立執行個體ANY_SINGLE_ZONE
分布形狀
如果區域性 MIG 採用 ANY_SINGLE_ZONE
目標分配型態,系統會在建立群組中的第一個 VM 時,自動選取最佳可用區。建立第一個 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
,則所有擴充作業都會在現有 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 資源的可用區預留項目。