可用性區域是 Azure 區域內的錯誤隔離位置,提供備援電源、冷卻和網路功能。 這些功能讓您能夠執行具備高可用性,且對資料中心失敗有容錯能力的應用程式。 支援可用性區的 Azure 區域至少有三個獨立區域。 每個可用性區域皆由一或多個配備獨立基礎結構電源、網路和冷卻系統的資料中心所組成。 可用性區域透過來回延遲小於 2 毫秒的高效能網路連線。 欲了解更多資訊,請參閱 可用性區域概覽。
為了保護你的虛擬機縮放集免於資料中心層級的故障,你可以在不同可用區域建立縮放集。 若要使用可用性區域,您必須在支援的 Azure 區域中建立擴展集。
欲了解更多關於尺度集如何對可用性區故障及其他類型故障具韌性的資訊,請參閱「Reliability in Azure 虛擬機器擴展集」。
選擇可用性區部署選項
虛擬機器擴展集 支援三種可用性區域部署選項。 你可以自己選擇區域,使用自動區域放置讓 Azure 選擇,或使用區域部署而不使用區域釘選實例。
| 部署選項 | 組態 | 區域拓撲 | 誰來選擇區域? | 何時使用 |
|---|---|---|---|---|
| 客戶選擇區域 | 集合 zones,例如 "zones": ["1", "2", "3"]。 |
指定一個區域時稱為區域性,指定多個區域時則稱為跨區域。 | 你選擇比例組可以使用的區域。 | 你的工作負載必須使用特定的可用性區域。 |
| 自動區域配置(預覽) | 將 placement.zonePlacementPolicy 設定為 "auto"。 |
預設情況下,Azure 建立一個跨區域的尺度集,目標為三個區域,且至少需要兩個區域。 要建立單區縮放集,請設 maxZoneCount 為 1。 |
Azure 會選擇你設定的限制內的區域。 | 你希望 Azure 能根據容量和 SKU 可用性來優化區域選擇。 |
| 區域(非分區) | 不要指定 zones 或區域放置政策。 |
區域實例不會被釘選到可用區域。 | 不適用。 | 你的工作負載不需要區域層級的隔離或區域固定。 |
重要事項
您無法在同一個擴展集上同時設定zones屬性和自動區域放置。
客戶選取的區域和自動區域放置可能會產生區域性 (單一區域) 或跨區域擴展集。 以下章節將更詳細說明這些拓撲結構及區域部署。
跨區域
跨區域的規模集將實例分散於兩個或以上的可用區域。 此方法類似於其他 Azure 服務中的區域冗餘部署。
根據預設,擴展集會執行最佳方法,將執行個體平均分配到選取的區域。 不過,您可以在部署中設定 "zoneBalance": "true",指定您想要嚴格區域平衡。 每個 VM 及其磁碟都是區域性的,因此會釘選到特定區域。 區域之間的執行個體會透過低延遲的高效能網路連線。 若發生區域中斷或連線問題,受影響區域內的實例連線可能會被破壞,而其他可用區域的實例則不受影響。 您可以在區域中斷期間新增擴展集容量,而擴展集會將更多執行個體新增至未受影響的區域。 還原區域時,您可能需要將擴展集縮小至原始容量。 最佳做法是根據 CPU 或記憶體使用量設定自動縮放規則。 自動縮放規則可讓擴展集在該區域遺失 VM 執行個體時,於其餘運作中的區域相應增加新的執行個體,來作為回應。
跨可用性區域分配執行個體,符合跨可用性區域分配執行個體的 99.99% SLA,建議您用於 Azure 中大部份的工作負載。
你可以自己選擇多個區域,或使用自動區域擺放來設定跨區域的比例。 預設情況下,自動區域配置會針對三個可用區域,且至少需要兩個區域。
區域性或區域對齊 (單一區域)
區域性或區域對齊擴展集會將執行個體放在單一可用性區域。 每個 VM 及其磁碟都是區域性的,因此會釘選到特定區域。 當執行個體之間需要較低的延遲時,您主要會使用此組態。
你可以自己選擇一個區域來設定單區比例,或設定 maxZoneCount 為 1 自動區塊放置。
區域(非分區)
區域性 (非特定區域) 虛擬機器擴展集是指未明確設定區域指派的情況 ("zones"=[] 或 "zones"=null)。 在此組態中,擴展集會建立區域性 (非特定區域、固定區域) 執行個體,並隱含地將執行個體置於整個區域。 不保證會在各可用性區域之間達到平衡或分配,也不保證執行個體會部署在相同的可用性區域中。 Ultra 和進階 v2 磁碟可保證磁碟共置,進階 V1 磁碟最適合用於磁碟共置,而標準 SKU (SSD 或 HDD) 磁碟則無法保證磁碟共置。
在極少數的完全區域中斷情況下,擴展集內的任何或所有執行個體都可能會受到影響。
容錯網域和可用性區域
容錯網域位於可用性區域或硬體節點資料中心內的錯誤隔離群組,其共用相同的電源、網路功能、冷卻系統和平台維護排程。 位於不同容錯網域上的 VM 執行個體,不太可能受到相同計劃性或非計劃性中斷影響。 您可以指定執行個體在區域或可用性區域內,如何分配配置於各個容錯網域之間。
- 最大分配 (platformFaultDomainCount = 1)
- 固定分配 (platformFaultDomainCount = 5)
- 固定擴散與儲存磁碟故障域對齊(platformFaultDomainCount = 2 或 3,僅限區域(非區域)部署)
使用最大分配時,擴展集會盡量將 VM 分配至每個區域中的多個容錯網域。 此分配可能跨越每個區域內多於或少於五個容錯網域。 使用靜態固定分配,擴展集會將您的 VM 分配在指定數量的容錯網域中。 如果擴展集無法分配到至少指定數量的容錯網域來滿足配置要求,該要求將會失敗。
我們建議大多數工作負載使用最大分配部署,因為這種方法在多數情況下能提供最佳的分布效果。 如果您需要將複本分散到不同的硬體隔離單位,建議您跨可用性區域分散,並在每個區域內使用最大分散配置。
附註
使用最大分配時,無論您在多少個容錯網域間分配 VM,在擴展集 VM 執行個體檢視和執行個體中繼資料中只會看到一個容錯網域。 每個區域中的分配都是隱含的。
放置群組
重要事項
放置群組僅適用於以統一協調流程模式執行的虛擬機器擴展集。
部署擴展集時,您可以在每個可用性區域部署單一放置群組,或在每個區域部署多個放置群組。 對於區域(非區域)尺度組,選擇是在同一區域內設置單一位置群組,或在區域內設置多個。 如果名為 singlePlacementGroup 的擴展集屬性設定為 false,該擴展集可以由多個放置群組構成,且支援 0-1,000 台 VM 的範圍。 當設定為預設值 true 時,該擴展集則由單一放置群組構成,且且支援 0-100 台 VM 的範圍。 針對大部分的工作負載,我們建議您使用多個放置群組,如此便能有更大的擴展性。 在 API 版本 2017-12-01 中,比例組預設為單一區域及跨區比例組的多個配置群組,但區域(非區域)比例組則預設為單一配置群組。
附註
如果您使用最大分配,則必須使用多個放置群組。
區域平衡
區域配置決定了縮放集在放置新實例時可以使用哪些可用區域。 區域平衡控制在選擇合格區域後,實例在各區域間的分布均勻度。
對於跨越多個區域的比例組,請在盡力而為與嚴格區域平衡之間選擇。 無論你選擇區域還是使用自動區域擺放,區域平衡都會適用。 欲了解更多資訊,請參閱 虛擬機器擴展集 中的區域平衡。
區域平衡也與 自動區域平衡不同。 區域平衡機制會在擴縮作業期間控制執行個體的分布。 自動區域平衡(Automatic Zone Balance)會主動偵測現有不平衡,並透過在配置不足的區域建立替代虛擬機,並從過度配置的區域刪除虛擬機來修正。
後續步驟
- 設定客戶選擇的可用性區域。
- 設定 自動區域配置。
- 學習 Virtual Machine Scale Sets 中的區域平衡。
- 了解 自動區域平衡。