共用方式為


使用 Microsoft HPC Pack 針對 Azure 節點的部署進行疑難解答

本主題包含可協助您或Microsoft支援使用 HPC Pack 針對 Azure 節點部署進行疑難解答的資訊。

如需使用 HPC Pack 部署 Azure 節點的一般需求和最佳做法,請參閱下列各項:

一般部署疑難解答指引

  • 如果您的因特網連線或節點範本中提供的 Azure 訂用帳戶資訊發生問題,Azure 節點部署可能會失敗。 您可以在節點範本中驗證 Azure 的連線設定。 在 [節點範本編輯器] 中開啟範本。 然後,在 [ 連線資訊] 索引標籤上,按兩下 [ 驗證連線資訊]。

  • 如果 Azure 管理憑證的設定發生問題,請參閱 針對憑證問題進行疑難解答

  • 如果您至少執行 HPC Pack 2008 R2 搭配 SP2,您可以執行 Azure 防火牆埠 診斷測試和 Azure 服務連線 診斷測試,以協助確認網路防火牆和其他設定已正確設定,以便進行 HPC Pack 與 Azure 之間的通訊,或針對連線問題進行疑難解答。

  • 如果在前端節點電腦(或前端節點計算機)上未正確設定系統時間,某些 Azure 作業,例如節點範本建立或部署新節點可能會失敗,並出現類似下列的錯誤:

    Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.  
    
  • 如果您在部署中遇到部分失敗,其中 Azure 節點未上線,您可以嘗試執行下列 telnet 命令,以查看節點範本中指定的雲端服務是否可在 Azure 端點連線:

    telnet <ServiceName>.cloudapp.net 7999  
    

    備註

    若要執行此命令,必須在作系統中安裝 Telnet 用戶端功能。 如需如何使用伺服器管理員安裝 Telnet Client 的詳細資訊,請參閱 Telnet 作業指南

  • Azure 中的問題可能會影響集合中 Azure 節點的子集。 例如,如果您要啟動大量的節點,部署可能會失敗在一或多個節點上。 在此情況下,您會看到 資源管理 中失敗節點的適當狀態資訊(在某些 HPC Pack 版本中稱為 節點管理 )。

  • 部署狀態資訊會出現在入口網站的服務帳戶資訊中。 HPC 叢集管理員會定期查詢此入口網站,以取得更新的狀態資訊。 不過,入口網站中的資訊可能與布建記錄或 HPC 叢集管理員中的作業記錄不同。

  • 如果在 Azure 中發生部署錯誤,則入口網站中的雲端服務資訊或 HPC 叢集管理員中的布建記錄中可能會出現錯誤訊息和疑難解答資訊。 如果您無法解決問題,您可以檢閱部署中角色實例上產生的追蹤記錄。 如需詳細資訊,請參閱本主題中的 追蹤 Azure 節點上的記錄檔

    您也可以瀏覽 Azure 支援。 為了協助針對問題進行疑難解答,請準備好提供在節點範本中設定的訂用帳戶標識碼,以及 HPC 叢集管理員和入口網站中布建記錄中顯示的部署標識碼。

  • 在 Azure 中布建一組節點之後,您可以使用相同的節點範本來啟動一組額外的節點。 不過,在某些情況下,其他節點無法在 HPC 叢集管理員中上線,但似乎已成功在 Azure 中部署。 如果發生這種情況,可能無法使用 HPC 叢集管理員來停止或刪除失敗的節點。 如有必要,請先停止並重新啟動 HPC Management Service。 然後,若要刪除節點,請使用 Azure 管理入口網站。

  • 從 HPC Pack 2012 搭配 SP1 開始,為了協助針對 Azure 節點部署進行疑難解答,您可以選擇在前端節點上收集,並傳送至Microsoft Azure 節點可用性、連線能力和效能的相關數據。 如果您需要開啟與 Azure 節點部署相關的支援事件,您可以選擇這麼做。 若要啟用數據收集,請在 [HPC 叢集管理員] 的 [ 選項 ] 功能表上,按兩下 [Azure 支援資料收集]。 或者,使用 Set-HpcClusterProperty HPC PowerShell Cmdlet 來設定 AzureMetricsCollectionEnabled 叢集屬性。 如需數據收集的詳細資訊,請參閱 Microsoft HPC Pack 隱私聲明

追蹤 Azure 節點上的記錄檔

從 HPC Pack 2008 R2 SP4 開始,追蹤記錄檔會自動在 Azure 背景工作角色節點上產生,以及針對每個部署自動布建的 Azure HPC Proxy 節點。 記錄檔可協助您或Microsoft支援針對節點布建期間或之後的問題進行疑難解答–例如,可能導致 Azure 節點顯示無法 連線錯誤的健康情況狀態的條件,即使入口網站可能指出 就緒狀態。

追蹤記錄檔包含每個節點的下列型態資訊:

  • 作系統的啟動載入資訊。

  • 應該在節點上執行的 HPC Pack 服務相關信息。

  • 主機檔案的相關信息。

  • 作系統性能計數器數據。

記錄檔會寫入每個節點上的本機記憶體,如下表所示。 追蹤記錄檔的格式、特性和命名取決於 HPC Pack 的版本。

這很重要

記錄檔只會保留在 Azure 角色實例的本機記憶體中,而節點仍會在 Azure 中布建。 除非檔案或數據複製到另一個位置,否則您將無法在 Azure 節點停止或刪除之後檢閱追蹤記錄資訊。 如需詳細資訊,請參閱本主題中 儲存追蹤記錄數據的案例

HPC Pack 的版本 記錄檔 註釋
HPC Pack 2012 或更新版本 - 背景工作節點C:\logs\hpcworker_nnnn.bin
- Proxy 節點C:\logs\hpcproxy_nnnn.bin
- 記錄檔為二進位格式。 默認記錄層級為 Verbose。
- 根據預設,每個記錄檔的大小上限為 4 MB,而且每個節點上最多可以儲存 5000 MB 的記錄檔。
- 為了方便分析,記錄檔可以藉由執行隨 HPC Pack 一起安裝的 hpctrace 命令行工具的 parselog 子命令,轉換成索引卷標分隔文本檔。 如需使用此命令的詳細資訊,請參閱 hpctrace
HPC Pack 2008 R2 搭配 SP4 - 背景工作節點 C:\logs\hpcworker.log
- Proxy 節點 C:\logs\hpcproxy.log
- 記錄檔為文字格式。 默認記錄層級為 Warning 或更新版本。
- 每個節點上最多可寫入擴展名為 .00<Integer> 的五個編號溢位記錄檔。
- 每個節點上的記錄檔限制為 60 MB,然後自動迴圈。

備註

您可以使用傳統入口網站中的 [設定雲端 服務的設定] 來變更 Azure 節點上特定程序的追蹤層級(例如 Microsoft.Hpc.Azure.AzureNodeManagerTracing)。

儲存追蹤記錄數據的案例

只要角色實例正在執行,Azure 角色實例上產生的追蹤記錄檔會保留在角色實例的本機記憶體中。 不過,如果您想要在 Azure 部署停止或刪除節點之後存取數據,您必須在角色實例執行時,下載或儲存追蹤記錄檔或數據,例如 Azure 記憶體。 以下是儲存追蹤記錄檔或數據的案例。

案例 1:啟用將追蹤記錄檔自動傳送至 Azure Blob 記憶體

從 HPC Pack 2012 搭配 SP1 開始,HPC 叢集系統管理員可以選擇性地啟用從部署中的 Azure 計算或 Proxy 節點,自動將追蹤記錄檔傳送到 Azure 記憶體帳戶中的 Blob 記憶體容器 (hpclogs)以進行部署。

若要啟用自動將追蹤記錄檔傳送至 Azure 記憶體帳戶中的 Blob 記憶體,請在 [HPC 叢集管理員] 的 [ 選項 ] 選單上,單擊 [ Azure 部署組態]。 您也可以使用 Set-HpcClusterProperty HPC PowerShell Cmdlet 來設定 AzureLogstoBlob HPC 叢集屬性。 您可以選擇傳送 Proxy 節點、背景工作節點或兩者記錄。 根據預設,會停用記錄檔 Blob 記憶體的傳輸。 變更 AzureLogstoBlob 屬性只會影響未來 Azure 節點部署的記錄檔傳輸。 目前的部署不會受到影響。 如需詳細資訊,請參閱 Set-HpcClusterProperty

這很重要

在 Blob 記憶體中儲存 Azure 部署記錄檔會使用儲存空間,並在與每個部署相關聯的記憶體帳戶上產生記憶體交易。 如果啟用,從背景工作節點儲存記錄檔可能會影響使用相同記憶體帳戶的所有 Azure 部署效能,特別是如果您有大型部署或數個並行部署。 儲存空間和記憶體交易將會向您帳戶計費。 停用記錄檔傳輸之後,將不會自動從 Azure 記憶體移除記錄檔。 您可以藉由下載記錄檔來保留記錄檔以供日後參考。 從記憶體帳戶中移除 hpclogs 容器,即可清除記錄檔。

您可以在前端節點上執行 hpcazurelog 命令,將資料從記憶體帳戶中的 Blob 記憶體下載到本機資料夾,以及從 Blob 記憶體中刪除檔案。 如需詳細資訊,請參閱 hpcazurelog

案例 2:啟用自動將追蹤記錄數據傳送至 Azure 數據表記憶體

從 HPC Pack 2012 開始,HPC 叢集系統管理員可以選擇性地啟用將追蹤記錄數據從部署中的 Azure 節點傳輸到 Azure 診斷 (WADSLogsTable) 數據表,以用於部署的 Azure 儲存器帳戶中為此目的所建立。

若要啟用將追蹤記錄數據傳輸到 Azure 記憶體帳戶中的 WADSLogsTable 數據表,請使用 Set-HpcClusterProperty HPC PowerShell Cmdlet,將 AzureLoggingEnabled HPC 叢集屬性設定為 true。 根據預設,記錄檔中的嚴重、錯誤和警告事件只會篩選為包含在 WADSLogstable 資料表中。 變更 AzureLoggingEnabled 屬性只會影響未來 Azure 節點部署的記錄。 目前的部署不會受到影響。 如需詳細資訊,請參閱 Set-HpcClusterProperty

這很重要

  • Azure 部署活動的記錄會使用數據表儲存空間,並在與每個部署相關聯的記憶體帳戶上產生記憶體交易。 儲存空間和記憶體交易會根據 Azure 訂用帳戶的條款產生費用。
  • 只有在部署發生問題並協助針對部署問題進行疑難解答時,才應該啟用對 Azure 記憶體的記錄。 停用記錄至 Azure 記憶體之後,將不會自動從 Azure 記憶體移除記錄數據。 您可以藉由下載記錄來保留記錄以供日後參考。 從記憶體帳戶移除 WADLogsTable,即可清除記錄專案

從 HPC Pack 2012 搭配 SP1 開始,您可以在前端節點上執行 hpcazurelog 命令,將數據從記憶體帳戶中的 WADLogsTable 下載到本機資料夾,以及指定資料表中針對記憶體選取之數據的追蹤層級。 如需詳細資訊,請參閱 hpcazurelog

案例 3:從 Azure 節點手動擷取和儲存記錄檔

為了進一步分析,您可以手動將記錄檔從 Azure 節點下載到內部部署電腦,或將它們上傳至 Azure 記憶體帳戶。

下載記錄檔

若要下載記錄檔,您可以使用下列其中一個程式:

  • 執行 hpcfile get 命令,以個別下載每個節點的記錄檔。

  • 執行使用 hpcfile get 從背景工作節點群組下載檔案的腳本。

  • 使用 Azure 管理入口網站從遠端連線到每個節點。 然後,您可以將記錄檔或檔案複製到本機計算機。

  • 在前端節點上執行 hpcazurelog 命令,以從 Azure 背景工作角色節點或 Proxy 節點下載檔案。 此命令是在 HPC Pack 2012 SP1 中引進,舊版不支援。 如需詳細資訊,請參閱 hpcazurelog

備註

  • 若要對 Azure 節點進行遠端連線,請確定您在 Azure 節點範本中設定遠端桌面認證。
  • 若要從 HPC Proxy 節點下載記錄檔,您必須對每個節點建立遠端連線,然後將記錄檔個別複製到本機電腦。

以下是用來 hpcfile get 從 Azure 背景工作節點下載記錄檔的範例命令和腳本。 如需命令語法的詳細資訊,請參閱 hpcfile

範例 1。 若要下載追蹤記錄檔,包括可能的溢位檔案,請從具有 HPC Pack 2008 R2 SP4 前端節點的 HPC Pack 2008 R2 叢集上的 AZURECN-001 下載到本機電腦上的目前資料夾,重新命名檔案,以避免覆寫本機電腦上的檔案:

hpcfile get /scheduler:myHeadNode /targetnode:AZURECN-001 /file:"C:\logs\hpcworker.log" /destfile:"worker001.log"  
hpcfile get /scheduler:myHeadNode /targetnode:AZURECN-001 /file:"C:\logs\hpcworker.log.001" /destfile:"worker002.log"  
hpcfile get /scheduler:myHeadNode /targetnode:AZURECN-001 /file:"C:\logs\hpcworker.log.002" /destfile:"worker003.log"  
hpcfile get /scheduler:myHeadNode /targetnode:AZURECN-001 /file:"C:\logs\hpcworker.log.003" /destfile:"worker004.log"  
hpcfile get /scheduler:myHeadNode /targetnode:AZURECN-001 /file:"C:\logs\hpcworker.log.004" /destfile:"worker005.log"  
hpcfile get /scheduler:myHeadNode /targetnode:AZURECN-001 /file:"C:\logs\hpcworker.log.005" /destfile:"worker006.log"  

範例 2. 若要從節點群組 WorkerNodes 中的 Azure 節點下載hpcworker_000000.bin記錄檔,並以名為 myHeadNode 的 HPC Pack 2012 前端節點開頭為 AZURECN 的名稱,下載到本機計算機上的 C:\myFiles\myLogs 資料夾:

@echo off  
set "extension=.bin"  
set "fullfilepath=C:\myFiles\myLogs"  
mkdir C:\myFiles\myLogs  
FOR /F "tokens=1 delims="%%G IN ('node list /group:WorkerNodes ^| FIND "AZURECN-"') DO hpcfile get /scheduler:MyHeadNode /targetnode:%%G -file:"C:\logs\hpcworker_000000.bin" /destfile:"%fullfilepath%%%G%%%extension%"  

將記錄檔上傳至 Azure 記憶體帳戶

您可以使用下列其中一個程式,將追蹤記錄檔從 Azure 背景工作節點上傳至 Azure 記憶體帳戶:

  1. 如上一節所述,將一或多個記錄檔下載到本機計算機,然後執行 hpcpack upload 命令將其上傳至 Azure 記憶體帳戶。

  2. 在一或多個使用 hpcpack 上傳 的 Azure 節點上執行腳本,將記錄檔直接上傳至記憶體帳戶。

    備註

    • 若要在 Azure 節點上執行文稿,您可以先將腳本從本機電腦上傳至節點。
    • 案例 1:啟用自動將追蹤記錄檔傳送至 Azure Blob 記憶體中所述,從 HPC Pack 2012 SP1 開始,您可以啟用自動將追蹤記錄檔傳送至 Azure 記憶體帳戶中的 Blob 記憶體。 不過,如果您未使用支援此功能的 HPC Pack 版本,或未啟用自動將記錄檔傳送至 Blob 記憶體,您可以手動將其上傳至該位置。

以下是使用 hpcpack upload 將記錄檔從 Azure 背景工作角色節點上傳至 Azure 記憶體帳戶的範例腳本。 如需命令語法的詳細資訊,請參閱 hpcpack

備註

由於背景工作節點上的記錄檔名稱相同,因此當您將檔案上傳至 Azure 儲存體帳戶時,應該避免覆寫檔案。 例如,您可以使用包含節點主機名的名稱來重新命名記錄檔,如下列範例所示。

範例 3. 若要將hpcworker_000000.bin檔案從 Azure 背景工作角色節點上傳並重新命名為名為 MyStorageAccount 的 Azure 記憶體帳戶中的容器 MyLogs,並以名為 MyPrimaryKey 的主鍵

@echo off  
REM Get the host name of the Azure node  
FOR /F "usebackq" %%i IN ('e:\approot\mpiexec.exe -c 1 hostname') DO SET filename=%%i  
set "extension=.bin"  
set "fullpath=C:\logs"  
REM Consolidate the log file name (e.g., AzureCN-001.bin)  
set "fullfilePath=%fullpath%%filename%%extension%"  
REM echo:%fullfilePath%  
REM Create a temporary file with desired name  
copy C:\logs\hpcworker_000000.bin %fullfilePath%  
e:\approot\hpcpack upload %fullfilePath% /account:MyStorageAccount /container:MyLogs /key:MyPrimaryKey  
del %fullfilePath%  

範例 4. 若要將腳本 Uploader.bat (類似範例 3 中的腳本)從前端節點上傳至名為 MyStorageAccount 的 Azure 儲存器帳戶中名為 MyContainer 的容器,請將腳本下載至名為 WorkerNodes 的節點群組中的 Azure 節點,然後在 WorkerNodes 的節點上執行 Uploader.bat

hpcpack upload uploader.bat /account:MyStorageAccount /container:MyLogs /key:MyPrimaryKey  
clusrun /nodegroup:WorkerNodes hpcpack download uploader.bat /account:MyStorageAccount /container:MyLogs /key:MyPrimaryKey /path:c:\logs  
clusrun /nodegroup:WorkerNodes c:\logs\uploader.bat  
clusrun /nodegroup:WorkerNodes del c:\logs\uploader.bat  

在 Azure 記憶體帳戶中檢視記錄數據

若要檢視 Azure 資料表或 Blob 記憶體中的記錄,您可以使用 Azure 記憶體總管之類的工具來瀏覽記憶體。

另請參閱

使用 Microsoft HPC Pack 高載至 Azure 背景工作實例
hpcazurelog