虛擬機器擴展集中的可靠性
本文包含可用性區域支援 虛擬機器擴展集 的相關信息。
注意
虛擬機器擴展集只能部署到一個區域。 如果您想要跨多個區域部署 VM,請參閱虛擬機器災害復原:跨區域容錯移轉。
可用性區域支援
Azure 可用性區域是每個 Azure 區域內至少三個實體獨立的資料中心群組。 每個區域內的資料中心都配備了獨立的電源、冷卻系統和網路基礎結構。 在本機區域失敗的案例中,可用性區域的設計在於,當一個區域受影響時,讓其餘兩個區域支援區域服務、容量和高可用性。
這類失敗的範圍可從軟體和硬體故障,擴及到如地震、淹水和火災的事件。 透過 Azure 服務的備援和邏輯隔離,實現對失敗的容錯。 如需深入了解 Azure 的可用性區域,請參閱區域和可用性區域。
已啟用 Azure 可用性區域的服務旨在提供正確程度的可靠性和彈性。 您可以透過兩種方式加以設定。 它們可以是區域備援,具有跨區域自動複寫功能,或者是區域性的,將執行個體釘選在特定區域。 兩種方法可以結合使用。 如需區域與區域備援結構的詳細資訊,請參閱使用可用性分區和區域的建議。
有了 Azure 虛擬機器擴展集,您便可以建立和管理一組負載平衡的 VM。 VM 的數目可以自動增加或減少,以因應需求或已定義的排程。 擴展集確保應用程式的高可用性,可讓您集中管理、設定和更新許多 VM。 擴展集本身不需要任何成本。 且只須為您建立的每一個 VM 執行個體付費。
虛擬機器擴展集支援區域內的分區和區域備援部署:
分區部署。 當您在單一區域中建立擴展集時,您可以控制該集合的所有 VM 執行所在區域。 擴展集只會在該區域內進行管理和自動調整。
區域備援部署。 區域備援擴展集可讓您建立跨多個區域的單一擴展集。 根據預設,當 VM 建立時,它們會在區域之間平均平衡。
必要條件
若要使用可用性區域,您必須在支援的 Azure 區域中建立擴展集。
所有 VM,即使是單一執行個體 VM,都應該使用彈性協調流程模式部署到擴展集,以確保未來您的應用程式能夠調整且具有可用性。
SLA
可用性區域在實體上是獨立的,提供不同的電源、網路和冷卻,因此服務等級協定 (SLA) 增加。 如需詳細資訊,請參閱 Microsoft Online Services 的 SLA。
建立已啟用可用性區域的虛擬機器擴展集
您可以使用下列其中一個方法,來建立使用可用性區域的擴展集:
建立使用分區部署之擴展集的程序,與使用者入門文章所述程序相同。 當您選取支援的 Azure 區域時,就可以在一或多個可用區域中建立擴展集,如下列範例所示:
擴展集和支援資源 (例如,Azure 負載平衡器和公用 IP 位址) 都會建立在您指定的單一區域中。
分區容錯移轉支援
在沒有任何區域 (zone) 的 Azure 區域 (region) 中,預設會建立具有五個容錯網域的虛擬機器擴展集。 若為支援可用性區域性虛擬機器擴展集部署的區域,且已選取此選項,則每個區域容錯網域計數的預設值為 1。 在此情況下,FD=1 表示屬於擴展集的 VM 執行個體會儘可能分散於許多機架。 如需詳細資訊,請參閱為虛擬機器擴展集選擇正確的容錯網域數目。
低延遲設計
建議您使用區域備援設定虛擬機器擴展集。 不過,如果您的應用程式有嚴格的低延遲需求,則可能需要為擴展集 VM 實作分區。 使用分區擴展集部署時,建議您跨多個區域建立多個擴展集 VM。 例如,您可以建立一個釘選至區域 1 的擴展集執行個體,以及建立一個釘選至區域 2 或 3 的執行個體。 您也需要使用負載平衡器或其他應用程式邏輯,在區域中斷期間將流量導向至適當的擴展集。
重要
如果您退出宣告區域感知部署,將放棄因隔離基礎錯誤而獲得的保護。 退出宣告可用性區域設定時,將強制依賴不遵守區域放置和隔離的資源 (包括這些資源的基礎相依性)。 您不應指望這些資源在區域關閉的情節中,還能留存下來。 有效率的調控這類資源的解決方案應定義災害復原策略,並在另一個區域中設定解決方案的復原。
安全部署技術
若要更充分掌控部署 VM 的位置,您應該部署分區,而不是區域擴展集 VM。 不過,分區 VM 只提供區域隔離,而不是區域備援。 若要使用分區 VM 達成完整區域備援,應該有兩個以上的 VM 跨不同區域。
另外也建議您針對區域備援 VM 使用最大分配部署選項。 如需詳細資訊,請參閱分配選項。
分配選項
當您將擴展集部署到一或多個可用性區域時,您有下列分配選項 (從 API 版本 2017-12-01 起):
最大分配 (platformFaultDomainCount = 1)。 最大分配是建議的部署選項,因為它在大部分情況下提供最佳的分配。 如果您將復本分散到不同的硬體隔離單位,建議您分散到可用性區域,並利用每個區域內的最大分散。
使用最大分配時,擴展集會盡量將 VM 分配至每個區域中的多個容錯網域。 您可以在每個區域中五個以上或以下的容錯網域中進行此分配。
注意
使用最大分配時,無論您在多少個容錯網域間分配 VM,在擴展集 VM 執行個體檢視和執行個體中繼資料中只會看到一個容錯網域。 每個區域中的分配都是隱含的。
靜態固定分配 (platformFaultDomainCount = 5)。 若使用靜態固定分配,擴展集會確切地在每個區域的五個容錯網域中分配 VM。 如果擴展集無法在每個區域中找到五個不同的容錯網域,來滿足配置要求,則要求會失敗。
分配與受控磁碟容錯網域一致 (platformFaultDomainCount = 2 或 3) 您可以考慮使擴展集容錯網域數目與受控磁碟容錯網域數目一致。 如果整個受控磁碟容錯網域停止運作,此一致狀態有助於防止仲裁遺失。 您可將容錯網域計數設定為小於或等於每個區域中可用的受控磁碟容錯網域數目。 若要了解依區域的受控磁碟容錯網域數目,請參閱 [在這裡插入文件] (這裡放置連結)。
區域平衡
針對跨多個區域部署的擴展集 (區域備援),您可以選擇最佳區域平衡或嚴格區域平衡。 如果每個區域與擴展集中所有其他區域都具有相同數目的 VM (加減 1 個 VM),則該擴展集即視為「平衡」。 例如:
擴展集 | 區域 1 中的 VM | 區域 2 中的 VM | 區域 3 中的 VM | 區域平衡 |
---|---|---|---|---|
平衡擴展集 | 2 | 3 | 3 | 此擴展集視為平衡。 只有一個區域的 VM 計數不同,且只比其他區域少 1 個。 |
不平衡的擴展集 | 1 | 3 | 3 | 此擴展集被視為不平衡。 區域 1 的 VM 數目比區域 2 和 3 少 2 個。 |
也有可能發生擴展集中的 VM 建立成功,但這些 VM 上的延伸模組卻無法部署。 判斷擴展集是否平衡時,仍會將這些擴充失敗的 VM 計算在內。 例如,針對區域 1 中有 3 個 VM,區域 2 中有 3 個 VM,以及區域 3 中有 3 個 VM 的擴展集,即使區域 1 中的所有擴充都失敗,但區域 2 和區域 3 中的所有擴充都成功,則此擴展集將視為平衡。
若使用最佳區域平衡,擴展集會嘗試縮減或擴增以維持平衡。 不過,如果區域平衡基於某些原因而不能這麼做 (例如,如果某一個區域無法運作,擴展集不能在該區域中建立新的 VM),該擴展集會允許暫時性的不平衡,以成功進行縮減或擴增。在後續的相應放大嘗試上,該擴展集會將 VM 新增至其擴展集需要更多 VM 以取得平衡的區域。 同樣地,在後續的縮減嘗試上,該擴展集會將 VM 從其擴展集需要減少 VM 以取得平衡的區域中移除。 使用「嚴格區域平衡」,擴展集無法嘗試任何縮減或放大,如果這樣做會導致不平衡。
若要使用最佳區域平衡,請將 zoneBalance
設定為 false。 在 API 版本 2017-12-01 中,zoneBalance
設定是預設值。 若要使用嚴格區域平衡,請將 zoneBalance
設定為 true。
移轉至可用性區域支援
若要了解如何將區域擴展集重新部署至可用性區域支援,請參閱將虛擬機器和虛擬機器擴展集移轉到可用性區域支援。
其他指導方針
放置群組
重要
放置群組僅適用於以統一協調流程模式執行的虛擬機器擴展集。
當您部署虛擬機器擴展集時,您可以選擇使用每個可用性區域的單一或多個放置群組進行部署。 針對區域擴展集,選項是在該區域中有單一放置群組,或者在該區域中有多個放置群組。 如果擴展集屬性 singlePlacementGroup
設定為 false,擴展集可以由多個放置群組構成,且具有範圍為 0-1,000 個的 VM。 當設定為預設值 true 時,擴展集則由單一放置群組構成,且具有範圍為 0 到 100 個的 VM。 針對大部分的工作負載,我們建議您使用多個放置群組,如此便能有更大的擴展性。 在 API 版本 2017-12-01 中,擴展集預設為單一區域和跨區域擴展集可有多個放置群組,但針對區域性擴展集,其預設為單一放置群組。