共用方式為


使用 Microsoft HPC Pack 高載至 Azure Batch

本主題包含擴充 HPC Pack 叢集以將 Azure Batch 集區作為計算資源的資訊。 使用這些 Azure Batch 集區,您可以視需要增加 HPC 叢集的容量(「高載」)。 如需詳細資訊,請參閱 Azure Batch 服務檔

在本主題中:

必要條件

  • HPC Pack 叢集 - 您必須至少建立和設定叢集的前端節點。 從 HPC Pack 2012 R2 Update 3 開始,即可使用高載至 Batch 功能。

  • Azure 訂用帳戶 - 如果您還沒有訂用帳戶,請註冊 免費試用、使用 MSDN 訂閱者權益,或探索其他購買選項。

步驟 1:建立 Azure Batch 帳戶

從上的 HPC Pack 2016 Update 1 開始,您可能需要下列帳戶資訊,根據不同的 Azure Batch 資源配置模式(Batch 服務或使用者訂用帳戶)和用戶端驗證方法(Batch 存取密鑰或 Azure AD):從 HPC Pack 高載至 Batch:

  1. 使用存取金鑰的 Batch Serivce
    • Batch 帳戶名稱
    • Batch 帳戶 URL
    • Batch 帳戶金鑰
  2. 使用 Azure AD 的 Batch 服務或使用者訂用帳戶
    • Batch AAD 實例
    • Batch AAD 租用戶標識碼
    • Batch AAD ClientApp 標識符
    • Batch AAD ClientApp 金鑰
    • Batch 帳戶名稱
    • Batch 帳戶 URL

請檢查下表,以決定要選擇哪一個 Batch 帳戶類型和驗證方法。 您也可以查看此部落格 ,並 此檔 深入瞭解使用者訂用帳戶集區配置模式,以及如何使用 Azure Batch 服務的 Azure AD 驗證。

帳戶類型/集區配置模式 驗證方法 VM 映像類型 低優先順序 VM VNet
Batch 服務 存取金鑰/Azure AD PaaS/IaaS (MarketPlaceImage) / IaaS (透過 Azure AD 的 CustomImage) 是 (透過 Azure AD)
用戶訂用帳戶 Azure AD IaaS (MarketPlaceImage)/ IaaS (CustomImage)

使用 Azure CLI 建立具有 Batch 服務集區配置模式的 Batch 帳戶,並使用 Batch 存取密鑰進行驗證,如下所示:

# Authenticate CLI session.
az login

# Select the subscription
az account set -s mysubscription

# Create a resource group.
az group create --name myresourcegroup --location mylocation

# Let's add a storage account reference to the Batch account for use as 'auto-storage'
# for applications. We'll start by creating the storage account.
az storage account create -g myresourcegroup -n mystorageaccount -l mylocation --sku Standard_LRS

# Create a Batch account.
az batch account create -g myresourcegroup -n mybatchaccount -l mylocation --storage-account mystorageaccount

# Now we can display the details of our created account.
az batch account show -g myresourcegroup -n mybatchaccount

# We can view the access keys to the Batch Account for future client authentication.
az batch account keys list -g myresourcegroup -n mybatchaccount

使用 Azure CLI 建立具有使用者訂用帳戶集區配置模式的 Batch 帳戶

# Authenticate CLI session.
az login

# Select the subscription
az account set -s mysubscription

# Allow Azure Batch to access the subscription (one-time operation).
az role assignment create --assignee MicrosoftAzureBatch --role contributor

# Create a resource group.
az group create --name myresourcegroup --location mylocation

# A Batch account that will allocate pools in the user's subscription must be configured
# with a Key Vault located in the same region. Let's create this first.
az keyvault create --resource-group myresourcegroup --name mykeyvault --location mylocation --enabled-for-deployment true     --enabled-for-disk-encryption true --enabled-for-template-deployment true

# We will add an access-policy to the Key Vault to allow access by the Batch Service.
az keyvault set-policy --resource-group myresourcegroup --name mykeyvault --spn ddbf3205-c6bd-46ae-8127-60eb93363864 --key-permissions all --secret-permissions all

# Now we can create the Batch account, referencing the Key Vault either by name (if they exist in the same resource group) or by its full resource ID.
az batch account create --resource-group myresourcegroup --name mybatchaccount –location mylocation --keyvault mykeyvault

設定 Azure AD 以進行 Batch 驗證並取得 Batch AAD 資訊

  1. 取得批次 AAD 實例 。 如果使用全域 Azure 雲端,則 AAD 實體會 https://login.microsoftonline.com/
  2. 取得 Batch AAD 租使用者識別碼。在 Azure 入口網站中,按兩下 [更多服務],搜尋並選擇 [Azure Active Directory],然後選取頁面右上角的帳戶,然後按兩下 [[屬性]。 複製為 目錄識別碼提供的 GUID 值,。 這個值也稱為租用戶標識碼。
  3. 註冊 Batch 用戶端應用程式,並取得 Batch AAD ClientApp Id
  • 在 Azure 入口網站中,選取頁面右上角的帳戶,以選擇您的 Azure AD 租使用者。 - 選擇 [更多服務],搜尋並選擇 [應用程式註冊]。 - 按下 [+新增應用程式註冊。 - 填入 名稱,選擇 [Web 應用程式/API] 作為 [應用程式類型],然後填入應用程式特定的值,例如 https://myAppName登入 URI。 按兩下 [建立] 。 - 成功建立應用程式之後,請在應用程式註冊清單中選取應用程式,然後按兩下 [屬性]。 複製為 應用程式識別碼提供的 GUID 值,它會作為 batch AAD ClientApp Id
  1. 設定為使用服務主體進行驗證,並取得 Batch AAD ClientApp Key
  • 要求應用程式的秘密金鑰。 選取 應用程式註冊清單中建立的應用程式,然後按兩下 [金鑰],輸入 [密鑰描述]並選擇 [持續時間],然後按兩下 [儲存]。 複製顯示的值,該值將做為 batch AAD ClientApp Key 。 - 將 RBAC 角色指派給應用程式,以向服務主體進行驗證。 選擇 [更多服務]、搜尋並選擇 [Batch 帳戶],按兩下建立的批次帳戶,然後選取 [訪問控制][IAM]。 按兩下 [+ADD],選取 [參與者角色] 並註冊應用程式。 按一下 [檔案] 。

注意事項

請注意,Batch 服務模式和 Batch 帳戶的使用者訂用帳戶模式都支援 Azure AD 驗證。

重要:取得下列 Batch AAD 資訊設定 Azure AD 之後,請開啟 [HPC Cluster Manager],在 [組態] 底下開啟 [> 部署待辦事項清單]單擊 [設定 Azure Batch 組態] 以根據窗體填入資訊,然後單擊 [確定]。 在 HPC Pack 中使用 Azure AD 進行 Batch 驗證時,需要此步驟。

  • Batch AAD 實例
  • Batch AAD 租用戶標識碼
  • Batch AAD ClientApp 標識符
  • Batch AAD ClientApp 金鑰

或者,您可以使用 HPC Powershell Cmdlet 來設定 Batch AAD 資訊,如下所示:

# HPC PowerShell
Set-HpcClusterRegistry -BatchAADInstance '<AAD Instance e.g. https://login.microsoftonline.com/>' -BatchAADTenantId <TenantGUID> -BatchAADClientAppId <AppGUID> -BatchAADClientAppKey '<AppKey>'

步驟 2:建立 Azure Batch 集區範本

若要建立 Azure Batch 集區範本,請使用 HPC 叢集管理員中的 [建立節點範本精靈]。

建立 Batch 集區範本

  1. 啟動 HPC Cluster Manager。

  2. 在 [組態] 的 [導航窗格]中,按兩下 [節點範本]

  3. 在 [動作] 窗格中,按兩下 [[新增]
    [建立節點範本精靈] 隨即出現。

  4. 在 [選擇節點範本類型 頁面上,按兩下 [Azure Batch 集區範本],然後按兩下 [下一步]

  5. 在 [指定範本名稱 頁面上,輸入節點範本的名稱,並選擇性地輸入其描述。 按一下 [下一步] 。

  6. 在 [提供 Azure Batch 帳戶資訊 頁面上,填入 Batch 帳戶名稱。 如果 Batch 帳戶類型為 Batch 服務,請選擇 BatchService 為 Batch 帳戶類型。 如果使用 Batch 存取金鑰進行驗證,請將金鑰填入為 帳戶金鑰,如果使用 Azure AD 驗證,請將其保留空白。 如果 Batch 帳戶類型為 [使用者訂用帳戶],請選擇 [UserSubscription 為 Batch 帳戶類型。 填入先前取得的 Batch 帳戶 URLAzure 記憶體連接字串,然後按兩下 [下一步]

注意事項

需要 AAD 驗證時,請確定 Batch AAD 實例、Batch AAD 租使用者識別碼、Batch AAD ClientApp 識別碼和 Batch AAD ClientApp 金鑰已在 部署 To-do List中設定,否則帳戶驗證將會失敗,並出現「Azure Batch 帳戶無效」錯誤。 按兩下 [下一步]時,請檢查 [Azure Batch 帳戶設定]。

  1. 在 [Azure Batch 自動調整設定] 頁面上,保留 [啟用自動調整 未核取 ],然後按兩下 [下一步]

  2. 在 [設定遠端桌面認證和 SSH 頁面上,選擇性地提供將在部署期間在 Azure Batch 集區計算節點上建立的用戶認證。 您稍後可以使用認證來連線到集區計算節點。 針對 Linux 節點,您也可以指定 SSH 公鑰,並透過 putty.exeSSH 私鑰檔案(.ppk) SSH 至節點。 如需如何為 PuTTY 產生公鑰和私鑰檔案,請參閱這裡 。 請注意,如果您同時指定密碼和 SSH 金鑰,SSH 金鑰將用於連線。 您也需要將產生的私鑰檔案 (.ppk) 複製到 %CCP_HOME%Bin 資料夾,以從 HPC 叢集管理員開啟 SSH 到節點。 點選 [下一步]

  3. 在 [指定啟動腳本] 頁面上,使用 HPC Pack 2012 R2 Update 3,選擇性地指定 Azure Batch 啟動工作

    • 命令行 - Azure Batch 計算節點啟動時執行的命令
    • Blob 來源 URL - 您先前上傳的檔案 Azure 記憶體位置,且會自動下載至 Azure Batch 計算節點
    • 本機檔案路徑 - 下載 Azure Batch 計算節點上檔案的位置
      在 HPC Pack 2016 Update 1 或更新版本中,選擇性地指定命令行或啟動腳本的名稱,以在 Batch 集區中的所有 Azure Batch 計算節點上執行。 目前僅支援Linux節點的啟動腳本。 例如,如果您想要在 Batch 集區中的所有 Linux 節點上執行名為 startup.sh 的腳本,您必須使用命令行工具 HpcPack.exe 壓縮腳本,並將腳本上傳至如下所示的 Azure 記憶體帳戶,然後在 命令行中指定 startup.sh:
    HpcPack.exe create startup.sh.zip startup.sh 
    HpcPack.exe upload startup.sh.zip /account:<StorageAccountName> /key:<StorageAccountKey>
    
  4. 按兩下 [[下一步],然後檢閱指定的所有範本設定。 按兩下 [建立],以產生 Azure Batch 集區節點範本

步驟 3:新增 Azure Batch 集區

使用 HPC 叢集管理員中的 [新增節點精靈] 來新增 Batch 集區計算節點。

新增 Azure Batch 集區

  1. 在 [HPC 叢集管理員] 的 [資源管理]的 [動作] 窗格中,按兩下 [新增節點] 。 [新增節點精靈] 隨即出現。

  2. 在 [選取部署方法 頁面上,按兩下 [新增 Azure Batch 集區], 然後按兩下 [下一步]

  3. 在 [指定 Azure Batch 集區資訊 頁面上,選取 Azure Batch 集區範本。 根據所選範本中的 Batch 帳戶類型,指定集區資訊如下:
    如果 Batch 帳戶類型為 Batch 服務,

    • 新的 Azure Batch 集區中的計算節點數目 - 新的 Azure Batch 集區中的計算節點數目(虛擬機實例)
    • 虛擬機是 專用 VM 還是 低優先順序 VM
    • 選擇 PaaS 或 IaaSMarketPlace 的映像類型。 針對 PaaS,選擇 OS 系列。 例如 Windows Server 2016。 針對 IaaSMarketPlace,選擇 Publisher供應專案,以及 Sku。 例如 Canonical、UbuntuServer、16.04-LTS。
    • 計算節點的大小 - 每個計算節點 角色大小。
    • 每個計算節點的工作上限 - 每個計算節點上要執行的並行工作數目上限。 默認數目等於所選角色大小的核心數目。 最大數目是實際核心數目的三倍。 請注意,[每個計算節點的工作上限] 乘以 [計算節點數目] 等於 Batch 集區節點的總核心數。
    • 應用程式套件 – 選擇性地指定已在 Batch 帳戶中新增的應用程式套件,格式為 <識別碼>:<版本>、<識別碼>:<版本>、 ... 如果 Batch 帳戶類型為使用者訂用帳戶,
    • 計算節點數目 – (如上圖)
    • 選擇 IaaSMarketPlace 或 IaaSCustomImage 的映像類型。 針對 IaaSMarketPlace,選擇 [發行者]、[供應專案] 和 [Sku]。 例如 Canonical、UbuntuServer、16.04-LTS。 針對 IaaSCustomImage,除了 Publisher、Offer 和 Sku 之外,自定義映射資源標識符也需要 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName} 的格式
    • 計算節點的大小 – (如上圖)
    • 每個計算節點的工作上限 – (如上圖)
    • 應用程式套件 – (如上圖)
    • VNet – 選擇性地指定 Batch 集區的子網標識碼。 如需如何建立自定義 VNet 和子網並取得子網標識碼,請參閱 本檔。另請檢查此檔中指定之自定義 VNet Batch 需求。

    注意事項

    如需如何從Linux VM擷取映像並取得映像資源標識碼,請參閱此檔 。如需自定義 VM 映射或自定義 VNet(請參閱下方),必須透過其 訪問控制 (IAM),明確地將 Batch 用戶端應用程式 參與者 角色指派給資源。 或者啟動 Batch 集區時,可能會發生 『BadRequest』 失敗。

步驟 4:啟動集區

您必須在集區上執行作業之前啟動集區。

啟動 Azure Batch 集區

  1. 在 [資源管理] 的 [導航窗格]中,按兩下 [節點或 Azure Batch 集區]

  2. 清單熱度圖 檢視中,選取一或多個 Azure Batch 集區。

  3. 在 [動作] 窗格中,按兩下 [開始]

    [啟動 Azure Batch 集區] 對話框隨即出現。 按一下 [開始]

  4. 節點的狀態會從 未部署 變更為 布建

    如果您想要追蹤布建進度,請選取集區,然後在 [詳細數據窗格]中,按兩下 [布建記錄] 索引卷標。Azure Batch 集區應該在不到 1 分鐘內建立,且狀態會變更為 離線

其他考慮

  • 監視 Azure Batch 計算節點的狀態- Azure Batch 集區準備就緒之後,Azure Batch 計算節點仍會建立並開始。 若要監視節點狀態,請選取集區,然後在 [詳細數據窗格]中,單擊 [Azure Batch 計算節點]。

  • 遠端桌面或 SSH 到計算節點 - 啟動 Azure Batch 集區中的計算節點之後(節點狀態為 閑置),如果您已設定範本設定來執行此動作,您可以透過遠端桌面或 SSH 連線到每個計算節點,例如執行一些手動設定或疑難解答。 若要這樣做,請選取一或多個 Azure Batch 集區,然後在 [動作] 窗格中,按兩下 [遠端桌面/SSH]。 透過 SSH連線到 Linux 節點時,必須將產生的私鑰檔案 (.ppk) 複製到用戶端電腦上的 %CCP_HOME%Bin 資料夾。

  • 檢視啟動工作 - 如果您在 Azure Batch 集區範本中指定啟動工作,在 Azure Batch 集區啟動之後,您可以執行下列 HPC PowerShell Cmdlet 來檢視啟動工作的詳細輸出:

    Get-HpcBatchPoolStartTask -Name <PoolName>   
    
  • 熱度圖檢視 - 當 Azure Batch 集區正在執行時,請檢視集區的熱度圖。 在瀏覽窗格中的 [資源管理] 中,按兩下 [節點],然後選擇 [熱度圖 檢視]。 您也可以檢查集區中 Linux 節點的每個 VM 熱度圖。 在瀏覽窗格 資源管理 中,按兩下 [Azure Batch 集區],然後選擇 [熱度圖 檢視] 。 目前會收集下列性能計數器:

    • CPU 使用量
    • 磁碟輸送量
    • 可用磁碟空間
    • 網路使用方式
    • 可用的物理記憶體

步驟 5:在集區上執行作業

目前,HPC Pack 支援在 Azure Batch 集區上執行一般批次/參數/mpi 作業和 clusrun 命令。 請注意下列建議,以搭配 Batch 使用 clusrun

  • 當集區上沒有其他作業執行時,請在 Azure Batch 集區上執行 clusrun 作業。 如果有其他作業或工作正在執行,clusrun 作業可能需要等候執行中的工作完成。

  • 根據預設,在 Azure Batch 集區上執行的作業不會因為潛在的效能影響而將工作輸出傳回 HPC Pack。 您可以在作業中定義節點發行工作,以擷取您想要的工作輸出。 若要擷取工作輸出,請透過 HPC PowerShell 變更下列叢集屬性:

    Set-HpcClusterProperty -GetAzureBatchTaskOutput $true  
    

步驟 6:停止集區

當您不使用 Batch 集區時,請停止 Azure 資源。 這會取消布建集區計算節點,降低使用 Batch 集區的成本。

停止集區

  1. 在 [資源管理]的 [瀏覽窗格中, 按兩下 [節點] 或 [Azure Batch 集區]

  2. 清單熱度圖 檢視中,選取您想要停止的一或多個 Azure Batch 集區。

  3. 在 [動作] 窗格中,按兩下 [停止]

    [停止 Azure Batch 集區] 對話框隨即出現。 按下 [停止]

  4. 如果您想要追蹤停止進度,請選取節點,然後在 [詳細數據窗格]中,按兩下 [布建記錄] 索引標籤。

請參閱

Microsoft HPC Pack:節點部署