Azure Batch 中的節點和集區

在 Azure Batch 工作流程中, 計算節點 (或 節點)是處理應用程式工作負載部分的虛擬機。 集區是這些節點的集合,可供您的應用程式執行。 本文將進一步說明節點和集區,以及在 Azure Batch 工作流程中建立和使用節點時的考慮。

節點

節點是 Azure 虛擬機器 (VM) 或雲端服務 VM,專門用來處理應用程式工作負載的一部分。 節點的大小會決定配置給節點的 CPU 核心、記憶體容量和本機檔系統大小數目。

您可以使用 Azure 雲端服務、來自 Azure 虛擬機器 Marketplace 的映射,或您準備的自定義映像,來建立 Windows 或 Linux 節點的集區。

節點可以執行節點作業系統環境所支援的任何可執行檔或腳本。 可執行檔或腳本包括 *.exe、*.cmd、*.bat 和 PowerShell 腳本(適用於 Windows)和二進位檔、殼層和 Python 腳本(適用於 Linux)。

Batch 中的所有計算節點也包括:

  • 可供工作參考的標準 資料夾結構和 相關聯的 環境變數
  • 設定為控制存取權的防火牆 設定。
  • Windows (遠端桌面通訊協定 (RDP) 和 Linux (安全殼層 (SSH) 節點的遠端存取 (除非您建立已停用遠端訪問的集區)。

根據預設,節點可以彼此通訊,但無法與不屬於相同集區一部分的虛擬機通訊。 若要允許節點與其他虛擬機或內部部署網路安全地通訊,您可以在 Azure 虛擬網路 (VNet) 的子網中布建集區。 當您這樣做時,節點可以透過公用IP位址來存取。 這些公用IP位址是由 Batch 所建立,而且可能會在集區的存留期內變更。 您也可以 使用您控制的靜態公用IP位址 來建立集區,以確保它們不會意外變更。

集區

集區是應用程式執行之節點的集合。

Azure Batch 集區建置在核心 Azure 計算平臺之上。 它們提供大規模配置、應用程式安裝、數據散發、健康情況監視,以及集區內計算節點數目的彈性調整(調整)。

新增至集區的每個節點都會獲指派唯一名稱和IP位址。 當節點從集區中移除時,對操作系統或檔案所做的任何變更都會遺失,且其名稱和IP位址會釋出以供日後使用。 當節點離開集區時,其存留期就會結束。

集區只能由建立集區的 Batch 帳戶使用。 Batch 帳戶可以建立多個集區,以符合其將執行之應用程式的資源需求。

您可以手動建立集區,或 當您指定要完成的工作時,由 Batch 服務 自動建立集區。 當您建立集區時,可以指定下列屬性:

重要

Batch 帳戶的預設配額會限制 Batch 帳戶中的核心數目。 核心數目會對應至計算節點的數目。 您可以在 Azure Batch 服務的 配額和限制中找到 如何 增加配額的預設配額 和指示。 如果您的集區未達到其目標節點數目,核心配額可能是原因。

作業系統和版本

當您建立 Batch 集區時,您可以指定 Azure 虛擬機器組態,以及您想要在集區中每個計算節點上執行的作業系統類型。

設定

Batch 中有兩種類型的集區組態可供使用。

重要

雖然您目前可以使用任一組態建立集區,但應該使用虛擬機器設定來設定新的集區,而不是雲端服務組態。 虛擬機器設定集區將支援所有目前和新的 Batch 功能。 雲端服務組態集區不支援所有功能,也不會規劃任何新功能。 您將無法在 2024 年 2 月 29 日之後建立新的 'CloudServiceConfiguration' 集區,或將新的節點新增至現有的集 區。

虛擬機器組態

虛擬機器 組態 會指定集區是由 Azure 虛擬機器所組成。 這些 VM 可以從 Linux 或 Windows 映像建立。

重要

目前,Batch 不支援 受信任的啟動 VM

Batch-節點代理程式 是在集區中的每個節點上執行的程式,並提供節點與 Batch 服務之間的命令和控制介面。 針對不同的作業系統,節點代理程式有不同的實作,稱為 SKU。 當您根據虛擬機器組態建立集區時,不僅必須指定用來建立節點的節點大小和映射來源,還必須 指定要安裝在節點上的虛擬機器映射參考 和 Batch 節點代理程式 SKU 。 如需指定這些集區屬性的詳細資訊,請參閱 在 Azure Batch 集 區中布建 Linux 計算節點。 您可以選擇性地將一或多個空的資料磁片連結至從 Marketplace 映射建立的集區 VM,或在用來建立 VM 的自訂映射中包含資料磁片。 包含資料磁片時,您必須從 VM 內掛接和格式化磁片,才能使用這些磁片。

雲端服務組態

警告

雲端服務組態集區已被 取代。 請改用虛擬機器組態集區。 如需詳細資訊,請參閱 將 Batch 集區組態從雲端服務移轉至虛擬機器

雲端服務組 會指定集區是由 Azure 雲端服務 節點所組成。 雲端服務只提供 Windows 計算節點。

雲端服務組態集區可用的作業系統會列在 Azure 客體 OS 版本和 SDK 相容性矩陣中 ,而可用的計算節點大小會列在 雲端服務 的大小中 。 當您建立包含雲端服務節點的集區時,您可以指定節點大小和其 OS 系列 (這會決定作業系統已安裝的 .NET 版本)。 雲端服務比執行 Windows 的虛擬機器更快部署到 Azure。 如果您想要 Windows 計算節點的集區,您可能會發現雲端服務在部署時間方面提供效能優勢。

如同雲端服務內的背景工作角色,您可以指定 OS 版本 。 建議您為 OS 版本 指定 Latest (*) ,讓節點自動升級,而且不需要符合新發行版本本的工作。 選取特定 OS 版本的主要使用案例是確保應用程式相容性,允許在允許更新版本之前執行回溯相容性測試。 驗證之後, 即可更新集區的 OS 版本 ,並安裝新的 OS 映射。 任何執行中的工作都會中斷並重新排入佇列。

節點代理程式 SKU

當您建立集區時,必須根據 VHD 基底映射的 OS,選取適當的 nodeAgentSkuId 。 您可以呼叫清單支援的節點代理程式 SKU 作業,以取得可用節點代理程式 SKU 識別碼與其 OS 映射參考的 對應。

虛擬機器集區的自訂映射

若要瞭解如何使用自訂映射建立集區,請參閱 使用 Azure 計算資源庫建立自訂集區

虛擬機器集區中的容器支援

使用 Batch API 建立虛擬機器組態集區時,您可以設定集區以在 Docker 容器中執行工作。 目前,您必須使用支援 Docker 容器的映射來建立集區。 使用 Windows Server 2016 Datacenter 搭配來自 Azure Marketplace 的容器映射,或提供包含 Docker Community Edition 或 Enterprise Edition 和任何必要驅動程式的自訂 VM 映射。 集區設定必須包含 容器組態 ,以在建立集區時將容器映射複製到 VM。 接著,在集區上執行的工作可以參考容器映射和容器執行選項。

如需詳細資訊,請參閱 在 Azure Batch 上執行 Docker 容器應用程式。

節點類型和目標

當您建立集區時,您可以指定您想要的節點類型,以及每個節點的目標編號。 這兩種類型的節點為:

  • 專用節點。 專用計算節點會保留給您的工作負載。 它們比 Spot 節點更昂貴,但保證永遠不會先佔。
  • 現成節點。 現成節點會利用 Azure 中的剩餘容量來執行 Batch 工作負載。 現成節點的每小時成本比專用節點低,並啟用需要大量計算能力的工作負載。 如需詳細資訊,請參閱 搭配 Batch 使用現成 VM。

當 Azure 的剩餘容量不足時,可能會搶佔現成節點。 如果在執行工作時先佔節點,工作會重新排入佇列,並在計算節點再次可供使用時再次執行。 現成節點是工作負載的絕佳選項,其中作業完成時間具有彈性,且工作分散於許多節點。 在您決定針對您的案例使用現成節點之前,請確定因先佔而遺失的任何工作都會最少且易於重新建立。

您可以在相同的集區中同時擁有 Spot 和專用計算節點。 每個節點類型都有自己的目標設定,您可以指定所需的節點數目。

計算節點的數目稱為 目標 ,因為在某些情況下,您的集區可能無法達到所需的節點數目。 例如,如果集區第一次達到 Batch 帳戶的核心配額 ,該集區可能無法達到目標。 或者,如果您已將自動調整公式套用至限制節點數目上限的集區,集區可能無法達到目標。

如需Spot和專用節點的定價資訊,請參閱 Batch 定價

節點大小

當您建立 Azure Batch 集區時,您可以從 Azure 中幾乎所有可用的 VM 系列和大小中進行選擇。 Azure 針對不同的工作負載提供一系列 VM 大小,包括特製化 HPC已啟用 GPU 的 VM 大小。 請注意,節點大小只能在建立集區時選擇。 換句話說,建立集區之後,就無法變更其節點大小。

如需詳細資訊,請參閱 為 Azure Batch 集區中的計算節點選擇 VM 大小。

自動調整原則

針對動態工作負載,您可以將自動調整原則套用至集區。 Batch 服務會定期評估公式,並根據計算案例的目前工作負載和資源使用量,動態調整集區內的節點數目。 這可讓您只使用所需的資源,並釋放您不需要的資源,以降低執行應用程式的整體成本。

您可以撰寫 自動調整公式,並將該公式 與集區產生關聯,以啟用自動調整。 Batch 服務會使用公式來判斷集區中下一個調整間隔的目標節點數目(您可以設定的間隔)。 您可以在建立集區時指定集區的自動調整設定,或稍後在集區上啟用調整。 您也可以更新已啟用調整集區的調整設定。

例如,作業可能需要提交大量工作才能執行。 您可以將縮放公式指派給集區,根據目前佇列工作數目和作業中工作的完成率,調整集區中的節點數目。 Batch 服務會定期評估公式,並根據工作負載和其他公式設定來調整集區大小。 當有大量佇列工作時,服務會視需要新增節點,並在沒有佇列或執行中工作時移除節點。

調整公式可以根據下列計量:

  • 時間計量 是以指定時數每五分鐘收集的統計數據為基礎。
  • 資源計量 是以 CPU 使用量、頻寬使用量、記憶體使用量和節點數目為基礎。
  • 工作計量 是以工作狀態為基礎,例如 作用 中(已排入佇列)、 執行中或 已完成

當自動調整減少集區中的計算節點數目時,您必須考慮如何處理在減少作業時執行的工作。 為了容納這一 點,Batch 會提供節點解除分配選項,您可以在公式中包含該選項 。 例如,您可以指定執行中的工作會立即停止,然後重新排入佇列以在另一個節點上執行,或允許在節點從集區中移除之前完成。 請注意,將節點解除分配選項設定為 taskcompletionretaineddata 會防止集區重設大小作業,直到所有工作完成,或所有工作保留期間都已分別過期為止。

如需自動調整應用程式的詳細資訊,請參閱 在 Azure Batch 集區中自動調整計算節點。

提示

若要將計算資源使用率最大化,請將工作結束時的目標節點數目設定為零,但允許執行中工作完成。

工作排程原則

每個 節點 的最大工作組態選項會決定可在集區內每個計算節點上平行執行的工作數目上限。

默認組態會指定一次在節點上執行一項工作,但在某些情況下,在節點上同時執行兩個以上的工作會很有説明。 請參閱並行節點工作一文中的範例案例,以瞭解如何受益於每個節點的多個工作。

您也可以指定 填滿類型,以判斷 Batch 是否會將工作平均分散到集區中的所有節點,或在將工作指派給另一個節點之前,以最大工作數目封裝每個節點。

通訊狀態

在大部分情況下,工作會獨立運作,不需要彼此通訊。 不過,有些應用程式必須進行通訊,例如 MPI 案例

您可以設定集區以允許 節點間通訊 ,讓集區內的節點可以在運行時間進行通訊。 啟用節點間通訊時,雲端服務 組態集區中的節點可以在大於 1100 的埠上彼此通訊,而虛擬機設定集區不會限制任何埠上的流量。

啟用節點間通訊也會影響節點在叢集中的位置,而且可能會因為部署限制而限制集區中的節點數目上限。 如果您的應用程式不需要節點之間的通訊,Batch 服務可以將大量節點配置給來自許多不同叢集和數據中心的集區,以啟用增加的平行處理能力。

開始工作

如有需要,您可以新增 會在每個節點上執行的開始工作 ,因為該節點會加入集區,並在每次重新啟動或重新映射節點時執行。 啟動工作特別適用於準備計算節點以執行工作,例如安裝工作在計算節點上執行的應用程式。

應用程式封裝

您可以指定要部署至集區中計算節點的應用程式套件。 應用程式套件提供您工作執行之應用程式的簡化部署和版本控制。 您為集區指定的應用程式套件會安裝在加入該集區的每個節點上,以及每次重新啟動或重新映像節點時。

如需使用應用程式套件將應用程式部署至 Batch 節點的詳細資訊,請參閱 使用 Batch 應用程式套件將應用程式部署至計算節點。

虛擬網路 (VNet) 和防火牆設定

當您在 Batch 中布建計算節點集區時,您可以將集區與 Azure 虛擬網路 (VNet) 的子網產生關聯。 若要使用 Azure VNet,Batch 用戶端 API 必須使用 Microsoft Entra 驗證。 Microsoft Entra ID 的 Azure Batch 支援記載於 使用 Active Directory 驗證 Batch 服務解決方案中。

VNet 需求

如需在 VNet 中設定 Batch 集區的詳細資訊,請參閱 使用虛擬網路建立虛擬機集區。

提示

若要確保用來存取節點的公用IP位址不會變更,您可以使用 您控制的指定公用IP位址來建立集區。

集區和計算節點存留期

當您設計 Azure Batch 解決方案時,您必須指定集區建立方式和時間,以及這些集區內的計算節點保留多久時間。

在頻譜的一端,您可以為每個提交的工作建立集區,並在集區工作完成執行時立即刪除集區。 這會最大化使用率,因為節點只有在需要時才會配置,而且在閑置後就會關閉它們。 雖然這表示作業必須等候節點配置,但請務必注意,只要個別配置節點且啟動工作已完成,工作就會排程執行。 在將工作指派給節點之前,Batch 不會等到集區內的所有節點都可供使用。 這可確保所有可用節點的最大使用率。

在光譜的另一端,如果作業立即啟動是最高的優先順序,您可以事先建立集區,並在提交作業之前讓其節點可供使用。 在此案例中,工作可以立即啟動,但節點可能會在等待指派時閑置。

合併的方法通常用於處理變數但持續負載。 您可以有一個集區,其中有多個作業提交,而且可以根據作業負載相應增加或減少節點數目。 您可以根據目前的負載,或如果可以預測負載,可以主動執行此動作。 如需詳細資訊,請參閱 自動調整原則

自動緩衝處理

自動緩衝池是提交作業時 Batch 服務所建立的集區,而不是在集區中執行的工作之前建立。 Batch 服務會根據您指定的特性來管理自動集區存留期。 這些集區通常也會設定為在作業完成之後自動刪除。

具有憑證的安全性

當您加密或解密工作的機密資訊時,通常需要使用憑證,例如 Azure 儲存體 帳戶密鑰。 若要支援此功能,您可以在節點上安裝憑證。 加密的秘密會透過命令行參數傳遞至工作,或內嵌在其中一個工作資源中,而且已安裝的憑證可用來解密它們。

您可以使用 新增憑證 作業 (Batch REST) 或 CertificateOperations.CreateCertificate 方法 (Batch .NET) 將憑證新增至 Batch 帳戶。 然後,您可以將憑證與新的或現有的集區產生關聯。

當憑證與集區相關聯時,Batch 服務會在集區中的每個節點上安裝憑證。 Batch 服務會在節點啟動時安裝適當的憑證,再啟動任何工作(包括 啟動工作作業管理員工作)。

如果您將憑證新增至現有的集區,您必須重新啟動其計算節點,才能將憑證套用至節點。

下一步