Azure 中適用於虛擬機器擴展集的協調流程模式

虛擬機器擴展集為平台管理的虛擬機器提供了邏輯群組。 透過擴展集,您可以建立虛擬機器設定模型、根據 CPU 或記憶體負載自動新增或移除額外的執行個體,並自動升級為最新的 OS 版本。 傳統上,擴展集可讓您使用擴展集建立時提供的 VM 設定模型來建立虛擬機器,且擴展集只能管理根據設定模型隱含建立的虛擬機器。

擴展集協調流程模式可讓您更充分掌控虛擬機器執行個體如何由擴展集來管理。

重要

協調流程模式會在您建立擴展集時進行定義,且之後無法變更或更新。

具有統一協調流程的擴展集

針對具有完全相同執行個體的大規模無狀態工作負載進行最佳化。

使用統一協調流程的虛擬機器擴展集會使用虛擬機器設定檔或範本來擴大所需的容量。 雖然有一些功能可以管理或自訂個別的虛擬機器執行個體,但是統一協調流程會使用相同的 VM 執行個體。 個別的統一 VM 執行個體會透過虛擬機器擴展集 VM API 命令來公開。 個別實例與標準 Azure IaaS VM API 命令、Azure Resource Manager 資源標記、RBAC 許可權、Azure 備份 或 Azure Site Recovery 等 Azure 管理功能不相容。 如果設定的執行個體少於 100 個,則統一協調流程會提供容錯網域高可用性保證。 統一協調流程已正式發行,並支援完整的擴展集管理和協調流程範圍,包括以計量為基礎的自動調整、執行個體保護和自動 OS 升級。

具有彈性協調流程的擴展集

使用完全相同或多種虛擬機器類型達成大規模的高可用性。

透過彈性協調流程,Azure 就能跨 Azure VM 生態系統提供統一的體驗。 彈性協調流程可透過在區域中的多個容錯網域上或可用性區域內分散 VM,來提供高可用性保證 (高達 1000 個 VM)。 這可讓您擴增您的應用程式,同時維護執行仲裁型或具狀態工作負載時不可或缺的容錯網域隔離,包括:

  • 仲裁型工作負載
  • 開放原始碼資料庫
  • 具狀態應用程式
  • 需要高可用性和大規模的服務
  • 想要混合使用虛擬機器類型或同時使用現成和隨選 VM 的服務
  • 現有的可用性設定組應用程式

彈性協調流程模式有哪些變更?

彈性協調流程的主要優點之一,就是透過標準 Azure IaaS VM (而不是擴展集子虛擬機器) 提供協調流程功能。 這表示在管理彈性協調流程執行個體時,您可以使用所有標準的 VM API,而不是與統一協調流程搭配使用的虛擬機器擴展集 VM API。 在彈性協調流程及統一協調流程中管理執行個體有幾項差異。 一般來說,我們建議您盡可能使用標準 Azure IaaS VM API。 在本節中,我們將重點說明使用彈性協調流程管理 VM 執行個體的最佳做法範例。

各種 VM 大小都可使用彈性協調流程模式。 彈性協調流程模式提供 VM 大小的最高規模和可設定性,支援記憶體保留更新或即時移轉,例如使用 B、D、E 和 F 系列或在擴展集設定為在執行個體 platformFaultDomainCount=1 之間最大分配時。 彈性協調流程模式目前對於不支援記憶體保留更新的 VM 大小有額外條件約束 (包含 G、H、L、M 和 N 系列 VM),且執行個體會在多個容錯網域中分配。 您可使用計算資源 SKI API 來判斷特定 VM SKU 是否支援記憶體保留更新。

功能 支援記憶體保留更新或最大分配的擴展集 (platformFaultDomainCount=1) 不支援記憶體保留更新和固定分配 (platformFaultDomainCount > 1)
最大虛擬機器擴展集執行個體計數 1000 200
混合作業系統 Yes Yes
混合現成和隨選執行個體 No
混合一般用途和特殊 SKU 類型 是 (FDCount = 1) No
最大容錯網域計數 區域 – 3 (視區域容錯網域最大計數而定)
可用性區域 – 1
區域 – 3
可用性區域 – 1
跨可用性區域分配執行個體 Yes Yes
將 VM 指派給特定可用性區域 Yes Yes
將 VM 指派給特定的容錯網域 No
更新網域 No No
單一放置群組 選擇性。 此選項會根據第一個部署的 VM 設定為 False 選擇性。 此選項會根據第一個部署的 VM 設定為 True

使用標準 Azure 虛擬機器擴增

彈性協調流程模式中的虛擬機器擴展集可管理標準 Azure VM。 您可以使用標準 Azure API 和命令,完全掌控虛擬機器的生命週期及網路介面和磁碟。 使用統一協調流程模式建立的虛擬機器會透過虛擬機器擴展集 VM API 命令來公開及管理。 個別的執行個體不相容於標準的 Azure IaaS VM API 命令和 Azure 管理功能 (例如標記 RBAC 權限的 Azure Resource Manager 資源、Azure 備份或 Azure Site Recovery)。

在 VM 建立期間指派容錯網域

您可以選擇彈性協調流程擴展集的容錯網域數目。 依預設,當您將 VM 新增至彈性擴展集時,Azure 會將執行個體平均分配至多個容錯網域。 雖然建議您讓 Azure 指派容錯網域,但在進階或疑難排解案例中,您可以覆寫此預設行為,並指定將放置執行個體的容錯網域。

az vm create –vmss "myVMSS"  –-platform-fault-domain 1

執行個體命名

當您建立 VM 並將其新增至彈性擴展集時,您可以完全掌控 Azure 命名慣例規則內的執行個體名稱。 當 VM 透過自動調整而自動新增到擴展集時,您可以提供前置詞,而 Azure 會在該名稱的結尾附加一個唯一數字。

查詢執行個體的電源狀態

慣用方法是使用 Azure Resource Graph 來查詢虛擬機器擴展集中的所有 VM。 Azure Resource Graph 可對各訂用帳戶上的大規模 Azure 資源提供有效率的查詢功能。

resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where properties.virtualMachineScaleSet.id contains "demo"
| extend powerState = properties.extended.instanceView.powerState.code
| project name, resourceGroup, location, powerState
| order by resourceGroup desc, name desc

使用 Azure Resource Graph 來查詢資源是方便且有效率的方式,不僅可查詢 Azure 資源,還能盡量降低對資源提供者發出 API 呼叫的次數。 Azure Resource Graph 是最終一致的快取,其中新的或更新的資源可能需要最多 60 秒的時間才會反映。 您可以:

  • 列出資源群組或訂用帳戶中的 VM。
  • 使用展開選項,擷取您訂用帳戶中所有 VM 的執行個體檢視 (容錯網域指派、電源和佈建狀態)。
  • 使用「Get VM」API 和命令,取得單一執行個體的模型和執行個體檢視。

監視器應用程式健康情況

應用程式狀況監控可讓應用程式提供活動訊號給 Azure,以判斷您應用程式的狀況是否良好。 Azure 可以自動取代狀況不良的 VM 執行個體。 針對彈性擴展集執行個體,您必須在虛擬機器上安裝並設定應用程式健康情況擴充功能。 針對統一擴展集執行個體,您可以使用應用程式健康情況擴充功能,或使用 Azure Load Balancer 自訂健全狀態探查來量測健康情況。

列出擴展集 VM API 變更

虛擬機器擴展集可讓您列出屬於擴展集的執行個體。 使用彈性協調流程時,「列出虛擬機器擴展集 VM」命令會提供擴展集 VM 識別碼的清單。 然後,您可以呼叫「取得虛擬機器擴展集 VM」命令,來取得擴展集如何搭配 VM 執行個體使用的詳細資料。 若要取得擴展集中許多 VM 的詳細資料,請使用 Azure Resource Graph 或標準列出 VM API 和命令。 使用標準取得 VM API 和命令以取得單一執行個體的訊息。

擷取開機診斷資料

使用標準 VM API 和命令來擷取執行個體開機診斷資料和螢幕擷取畫面。 虛擬機器擴展集 VM 開機診斷 API 和命令不會搭配彈性協調流程模式執行個體使用。

VM extensions

使用以標準虛擬機器為目標的擴充功能,而不是以統一協調流程模式執行個體為目標的擴充功能。

彈性、統一和可用性設定組的比較

下表列出彈性協調流程模式、統一協調流程模式和可用性設定組的功能比較。

基本設定

功能 適用於擴展集的彈性協調流程可支援 適用於擴展集的統一協調流程可支援 可用性設定組可支援
虛擬機器類型 標準 Azure IaaS VM (Microsoft.compute/virtualmachines) 擴展集專屬 VM (Microsoft.compute/virtualmachinescalesets/virtualmachines) 標準 Azure IaaS VM (Microsoft.compute/virtualmachines)
所需的最低 API 版本 2021-03-01 2015-06-01 2015-06-01
執行個體計數上限 (具有 FD 保證) 1000 100 200
支援的 SKU 所有 SKU 所有 SKU 所有 SKU
完整控制 VM、NIC、磁碟 Yes 虛擬機器擴展集 VM API 的有限控制 Yes
需要 RBAC 權限 計算虛擬機器擴展集寫入、計算 VM 寫入、網路 計算虛擬機器擴展集寫入 N/A
跨租用戶共用映像庫 Yes .是 Yes
加速網路 Yes .是 Yes
現成執行個體和定價 是,您可以同時擁有現成和一般的優先執行個體 是,必須全部是現成執行個體或全部是一般執行個體 否,僅限一般的優先執行個體
混合作業系統 是,Linux 和 Windows 可以位於相同的彈性擴展集中 否,執行個體是相同的作業系統 是,Linux 和 Windows 可以位於相同的可用性設定組
磁碟類型 僅限受控磁碟 (所有儲存體類型) 受控和非受控磁碟 受控和非受控磁碟。 不支援 Ultra 磁碟
使用客戶自控金鑰進行磁碟伺服器端加密 Yes .是 Yes
寫入加速器 Yes .是 Yes
鄰近放置群組 是,使用一個可用性區域或不使用時。 部署後無法變更。 請參閱鄰近放置群組文件 是,使用一個可用性區域或不使用時。 部署停止所有執行個體後可變更。 請參閱鄰近放置群組文件 Yes
Azure 專用主機 Yes .是 Yes
受控識別 僅限使用者指派的身分識別1 系統指派或使用者指派 N/A (可以在個別執行個體上指定受控識別)
在群組中新增/移除現有的 VM No No
Service Fabric No .是 No
Azure Kubernetes Service (AKS) / AKE No .是 No
UserData Yes Yes 可為個別 VM 指定 UserData
刪除或保留 VM NIC 和磁碟的選項 Yes 不 (一律刪除) Yes
Ultra 磁碟 Yes .是 No

1 針對統一擴展集,GET VMSS 回應會有 identityclientIDprincipalID 的參考。 針對彈性擴展集,回應僅會取得 identity 的參考。 您可以呼叫 Identity 以取得 clientIDPrincipalID

自動調整和執行個體協調流程

功能 適用於擴展集的彈性協調流程可支援 適用於擴展集的統一協調流程可支援 可用性設定組可支援
列出集合中的 VM Yes Yes 是,列出 AvSet 中的 VM
自動調整 (手動、以計量為基礎、以排程為基礎) Yes .是 No
在刪除 VM 執行個體時自動移除 NIC 和磁碟 Yes .是 No
升級原則 (虛擬機器擴展集) 否,在建立期間,升級原則必須是 null 或 [] 自動、輪替、手動 N/A
自動 OS 更新 (虛擬機器擴展集) No .是 N/A
客體安全性修補 是,請參閱自動 VM 客體修補 No Yes
終止通知 (虛擬機器擴展集) 是,請參閱終止通知文件 是,請參閱終止通知文件 N/A
監視應用程式健康情況 應用程式健康情況擴充功能 應用程式健康情況擴充功能或 Azure 負載平衡器探查 應用程式健康情況擴充功能
執行個體修復 (虛擬機器擴展集) 是,請參閱執行個體修復文件 是,請參閱執行個體修復文件 N/A
執行個體保護 Yes .是 No
縮減原則 Yes .是 No
VMSS 取得執行個體檢視 No .是 N/A
VM 批次作業 (全部啟動、全部停止、刪除子集等) Yes .是 No

高可用性

功能 適用於擴展集的彈性協調流程可支援 適用於擴展集的統一協調流程可支援 可用性設定組可支援
可用性 SLA 針對在容錯網域之間散佈的執行個體可達 99.95%;針對跨多個區域散佈的執行個體可達 99.99% 針對單一放置群組中 FD > 1 的情況可達 99.95%;執行個體散佈在多個區域的情況可達 99.99% 99.95%
可用性區域 指定執行個體放置在 1、2 或 3 個可用性區域 指定執行個體放置在 1、2 或 3 個可用性區域 不支援
將 VM 指派給特定的可用性區域 No
容錯網域 – 最大程度地散佈 (Azure 會最大程度地散佈執行個體) Yes .是 No
容錯網域 – 固定散佈 2-3 個 FD (視區域的 FD 計數上限而定);區域性部署則是 1 個 2、3、5 個 FD;區域性部署則是 1 個、5 個 2-3 個 FD (取決於區域的 FD 計數上限)
將 VM 指派給特定的容錯網域 No
更新網域 已停用 (依 FD 執行平台維護) 5 個更新網域 最多 20 個更新網域
執行維護 使用 VM API 在每個執行個體上觸發維護 Yes N/A
容量保留 Yes .是 Yes

網路功能

功能 適用於擴展集的彈性協調流程可支援 適用於擴展集的統一協調流程可支援 可用性設定組可支援
預設輸出連線能力 否,必須具有明確的輸出連線能力 Yes Yes
Azure Load Balancer 標準 SKU Yes .是
應用程式閘道 Yes .是 Yes
Infiniband 網路 No 是,僅限單一放置群組 Yes
基本 LB No .是 Yes
網路連接埠轉接 是 (個別執行個體適用 NAT 規則) 是 (NAT 集區) 是 (個別執行個體適用 NAT 規則)

備份與復原

功能 適用於擴展集的彈性協調流程可支援 適用於擴展集的統一協調流程可支援 可用性設定組可支援
Azure 備份 Yes
Azure Site Recovery 是 (透過 PowerShell) No Yes
Azure 警示 Yes .是 Yes
VM 深入解析 可以安裝在個別 VM 中 Yes Yes

不支援的參數

彈性協調流程模式的虛擬機器擴展集目前不支援下列虛擬機器擴展集參數:

  • 單一放置群組 - 這可設定為 null,且平台將選擇正確的值
  • Ultra 磁片設定:diskIOPSReadWritediskMBpsReadWrite
  • 虛擬機器擴展集超額佈建
  • 映像型自動作業系統升級
  • 透過 SLB 健康狀態探查的應用程式健康情況 - 在執行個體上使用應用程式健康情況擴充功能
  • 虛擬機器擴展集升級原則 - 必須是 Null 或空白
  • 非受控磁碟
  • 基本負載平衡器
  • 透過 Standard Load Balancer NAT 集區進行連接埠轉送 - 您可以設定 NAT 規則
  • 系統指派的受控識別 - 改為使用使用者指派的受控識別

開始使用彈性協調流程模式

註冊並開始使用適用於虛擬機器擴展集的彈性協調流程模式

常見問題集

  • 彈性協調流程支援的規模為何?

    在彈性協調流程模式中,您最多可以將 1000 個 VM 新增至擴展集。

  • 彈性協調流程與可用性設定組或統一協調流程的可用性有何不同?

    可用性屬性 彈性協調流程 統一協調流程 可用性設定組 (Availability Sets)
    跨可用性區域部署 Yes .是 No
    區域內的容錯網域可用性保證 是,最多可將 1000 個執行個體散佈到區域中最多 3 個容錯網域。 容錯網域計數上限因區域而異 是,最多 100 個執行個體 是,最多 200 個執行個體
    放置群組 N/A 您可以選擇單一放置群組或多個放置群組 N/A
    更新網域 無,維護或主機更新會針對不同容錯網域來執行 最多 5 個更新網域 最多 20 個更新網域
  • 有保證容錯網域可用性的絕對執行個體計數上限為何?

    功能 彈性協調流程可支援 統一協調流程可支援 (正式發行) AvSets 可支援 (正式發行)
    執行個體計數上限 (具有 FD 可用性保證) 1000 3000 200

下一步