區域性 MIG 目標分配型態

根據預設,區域代管執行個體群組 (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 執行個體平均分配之間取得平衡,請使用 BALANCED 目標分配型態。

BALANCED 形狀會優先取得資源,也就是在資源可用的區域中建立執行個體,同時盡可能平均分配各區域的執行個體,以減少區域層級故障的影響。

如果您執行的批次工作負載不需要防範區域層級故障,請改用 ANY 目標形狀。ANY 形狀會優先取得資源,並使用區域預留項目。

如果將形狀設為 BALANCEDANY,就不必手動確認特定區域是否提供特定硬體。您可以選取區域中的所有可用區,群組會自動在提供所需硬體的可用區中部署執行個體。

如要進一步瞭解 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 形狀就會根據預留項目、配額和硬體需求,選取最佳可用區。

BALANCEDANY 目標形狀類似,當批次工作負載需要下列任一功能時,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 執行個體數量。

舉例來說,下圖顯示其中一個可用區因資源暫時無法使用,而無法滿足您的要求時,會發生什麼情況。

如果目標形狀為偶數,且 VM 無法使用,自動修復功能會持續嘗試建立 VM,直到 VM 可用為止。
暫時無法使用的資源對具有 EVEN 分配方式的 MIG 造成的影響

區域層級故障的影響

如果您使用 EVEN (或 BALANCED) 目標分配形狀,可以佈建額外執行個體,盡量減少區域層級故障的影響。

如果發生可用區層級的故障,部署至 3 個可用區且目標分配型態為 EVEN (或 BALANCED) 的區域性 MIG 可能會失去 1/3 的執行個體。您可以佈建更多 VM,確保有足夠的容量來處理負載,其中 2/3 的 VM 是負載所需的容量,以防區域層級發生故障。

舉例來說,如果您需要 8 個執行個體來處理 3 個區域的要求,並想保護工作負載,避免發生區域層級的故障,則應建立含有 12 個執行個體的地區群組。下圖顯示某個區域發生故障時的情況。

如果目標型態為平均分配,MIG 會超額佈建,確保可用區失效時仍有足夠的 VM。
可用區故障對具有 EVEN 分配方式的 MIG 造成的影響

在這種情況下,EVEN 目標分配型態非常適合用於自動調度資源和負載平衡。如果區域發生故障,負載平衡器會開始將流量傳送至其餘兩個區域的執行個體,以因應故障區域的流量。

如要進一步瞭解區域 MIG 如何與自動調度器搭配運作,請參閱「自動調度區域 MIG」。

BALANCED 分布形狀

如果區域性 MIG 的目標型態為 BALANCED,可能無法在各個可用區平均分配資源,特別是當某個可用區沒有要求的資源時。

MIG 會優先在資源充足的區域建立 VM,以佈建要求數量的 VM。如果資源充足,分配方式與 EVEN 類似。在資源受限的最糟情況下,分配作業可能會採取任何形式。

調整具有 BALANCED 分布形狀的 MIG 大小

增加群組大小

如果目標型態為 BALANCED,群組會根據您在 MIG 執行個體範本中指定的資源目前可用性,選擇可用區來建立新執行個體。

  • 當所有選定可用區的資源都充足時,群組會在大小增加時維持可用區的平均分配,與 EVEN 目標形狀相同。
  • 如果區域容量限制導致無法平均分配,群組會在資源可用的區域中建立執行個體,同時盡量維持平衡。

舉例來說,如果您要求的專用 CPU 平台、GPU 模型或先占 VM 並非在所有區域都可使用,您可能會發現容量限制和分配不均的情況。

「均衡」目標型態會根據目前的容量,盡可能平均地在各個可用區新增及移除執行個體。
調整具有 BALANCED 分散方式的 MIG 大小

減少群組大小

縮減大小時,目標型態為 BALANCED 的區域性 MIG 會依下列順序移除執行個體,以盡量減少對工作負載的干擾:

  1. 未執行的執行個體,也就是因任何原因無法建立、正在建立或自動修復的執行個體。
  2. 群組中 VM 數量較多的區域,以趨近於均勻分布的狀態。

資源暫時無法使用或可用區故障的影響

如果使用 BALANCED 目標分配型態,群組會將執行個體部署至有可用容量的區域。如果可用區的容量暫時受限,可能會導致執行個體在各可用區的分布不均。

如果 VM 執行個體數量最多的可用區發生故障,工作負載可能會失去相當大的服務容量。如果健康狀態良好的區域暫時有容量限制,群組會嘗試在原始位置 (失敗的區域) 重新建立失敗的執行個體,但這項嘗試可能會失敗。

為保護工作負載免於受到這類極端情況影響:

  • 過度佈建地區性 MIG 的大小,確保工作負載在區域發生故障時,有足夠的服務容量。
  • 在每個可用區預留足夠的資源量,以因應尖峰負載、過度佈建,並維持可用區之間的平均分配。這項策略可確保您在各個區域平均分配執行個體,在區域發生故障時,將容量損失降至最低。

下圖顯示在暫時性的區域容量限制後,區域故障可能如何演變。

如果使用「已達平衡」目標型態,但 VM 無法使用,分配作業可能會不平均。如果後續發生可用區故障,自動修復功能會持續嘗試建立失敗的 VM,直到 VM 可用為止。
資源暫時無法使用,隨後發生可用區故障,對具有 BALANCED 分布的 MIG 造成影響

如果該地區的任何區域都無法滿足您的要求,群組就會在資源暫時無法使用的區域中,排定 VM 建立作業。群組會繼續嘗試在原先排定建立執行個體的區域中建立執行個體。如果其他區域的資源比原先排定 VM 的區域更早恢復可用,群組不會嘗試在這些其他區域建立 VM。您可以手動刪除無法建立的代管執行個體,並將群組大小調整為目標大小,在有可用容量的區域中排定新執行個體。

如果 VM 建立失敗,您可以列出代管執行個體,查看對應代管 VM 執行個體中的錯誤訊息,或列出近期錯誤

如果發生可用區故障,BALANCED 目標分配型態可與自動調度資源和負載平衡功能搭配使用。為因應來自故障區域的流量,負載平衡器會將流量傳送至其餘區域的執行個體。自動調度器會回應可用區使用率的增加,並在運作正常的可用區中自動建立容量。詳情請參閱「自動調度區域 MIG」。

ANY 分布形狀

如果目標分配型態設為 ANY,區域性 MIG 會優先在資源可用的區域中建立代管執行個體,以取得資源。也就是說,所有執行個體可能會在一個可用區中建立,也可能平均分布在所有可用區,或介於這兩種情況之間。

調整具有 ANY 分布形狀的 MIG 大小

增加群組大小

增加群組大小時,群組會選取有可用容量的任何區域。

如果在一或多個可用區中,您有相符的保留項目,則群組會優先使用這些保留項目。不過,如果減少群組大小,系統可能需要幾分鐘時間,才能再次使用已使用的預訂。在這段期間,先前使用的預留項目尚未恢復可用狀態。如果增加群組大小,但沒有相符的預留項目,群組就會在資源可用的區域中建立 VM 執行個體。

減少群組大小

縮減群組大小時,群組會依下列順序刪除 VM 執行個體:

  1. 因任何原因而未執行的 VM
  2. 尚未更新至預期版本的 VM
  3. 以非決定性方式選擇 VM

如果您需要減少特定可用區的群組大小,或移除特定 VM 執行個體 (例如已完成工作的執行個體),可以從群組刪除特定執行個體

暫時無法使用的資源造成的影響

如果目標分配型態設為 ANY,群組會在提供所要求資源的區域中,排定 VM 執行個體建立作業,並避開資源暫時無法使用的區域。

如果該地區的任何區域都無法滿足您的要求,群組就會在資源暫時無法使用的區域中,排定 VM 建立作業。群組會持續嘗試在原先排定建立執行個體的區域中,建立排定執行個體。如果其他區域的資源比原先排定 VM 的區域更早恢復可用,群組就不會在其他區域嘗試建立 VM。如要在有可用容量的區域中手動排定新執行個體,請刪除未執行的代管執行個體,並將群組大小調整為目標大小。

如果 VM 建立失敗,您可以列出代管執行個體,查看對應 VM 執行個體中的錯誤訊息,或列出近期錯誤

舉例來說,下圖顯示當區域無法滿足要求時,區域群組如何排定執行個體。

如果目標分配形狀設為「ANY」,群組會在提供所要求資源的可用區中建立 VM,並避開暫時無法提供資源的可用區。
暫時無法使用的資源對具有 ANY 分配方式的 MIG 造成的影響

區域層級故障的影響

如果群組的目標分配型態設為 ANY,則可能會在單一可用區中部署大部分或所有執行個體。如果該區域發生故障,群組中大部分或所有執行個體可能會在故障期間無法使用。

如果發生區域層級的故障或資源暫時無法使用,或者 VM 執行個體因任何原因而未執行,您可以刪除個別未執行的執行個體,然後將群組大小調整回必要大小,嘗試在有可用容量的區域中取得替代執行個體。

如果目標分配型態設為「ANY」,群組會在可用的區域中建立 VM。如果資源因任何原因無法使用,您可以縮減群組大小,然後再增加群組大小,嘗試在不同區域取得 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 可能都無法處理工作負載。

後續步驟