Microsoft HPC Pack を使用した Azure ノードのデプロイのトラブルシューティング
このトピックには、HPC Pack を使用した Azure ノードのデプロイのトラブルシューティングに役立つ情報またはMicrosoft サポート情報が含まれています。
HPC Pack を使用して Azure ノードをデプロイするための一般的な要件とベスト プラクティスについては、次を参照してください。
一般的なデプロイのトラブルシューティング ガイダンス
インターネット接続に問題がある場合、またはノード テンプレートで提供されている Azure サブスクリプション情報に問題がある場合、Azure ノードのデプロイが失敗する可能性があります。 ノード テンプレートで Azure の接続設定を検証できます。 ノード テンプレート エディターでテンプレートを開きます。 次に、[ 接続情報 ] タブの [ 接続情報の検証] をクリックします。
Azure 管理証明書の構成に問題がある場合は、「証明書の問題の トラブルシューティング」を参照してください。
少なくとも HPC Pack 2008 R2 と SP2 を実行している場合は、Azure Firewall ポート診断テストと 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 クライアントをインストールする方法については、「Telnet 操作ガイド」を参照してください。
Azure の問題は、セット内の Azure ノードのサブセットに影響を与える可能性があります。 たとえば、多数のノードを開始する場合、1 つ以上のノードでデプロイが失敗する可能性があります。 この場合、失敗したノードの適切な状態情報が Resource Management に表示されます (一部のバージョンの HPC Pack では Node Management と呼ばれます)。
デプロイの状態情報は、ポータルのサービス アカウント情報に表示されます。 HPC Cluster Manager は、定期的にこのポータルに対して更新された状態情報を照会します。 ただし、ポータルの情報は、プロビジョニング ログや HPC クラスター マネージャーの操作ログとは異なる場合があります。
Azure でデプロイ エラーが発生した場合、ポータルのクラウド サービス情報または HPC Cluster Manager のプロビジョニング ログにエラー メッセージとトラブルシューティング情報が表示されることがあります。 問題を解決できない場合は、デプロイのロール インスタンスで生成されたトレース ログを確認できます。 詳細については、このトピックの 「Azure ノードでログ ファイルをトレース する」を参照してください。
Azure サポートにアクセスすることもできます。 問題のトラブルシューティングを支援するために、ノード テンプレートで構成されているサブスクリプション ID と、HPC Cluster Manager とポータルのプロビジョニング ログに表示されるデプロイ ID を指定する準備をしてください。
Azure で一連のノードをプロビジョニングしたら、同じノード テンプレートを使用して追加のノード セットを開始できます。 ただし、場合によっては、HPC クラスター マネージャーで追加のノードがオンラインに失敗しますが、Azure に正常にデプロイされているように見えます。 この場合、HPC クラスター マネージャーを使用して、障害が発生したノードを停止または削除できない可能性があります。 必要に応じて、まず HPC Management Service を停止して再起動します。 次に、ノードを削除するには、Azure 管理ポータルを使用します。
HPC Pack 2012 sp1 以降では、Azure ノードのデプロイのトラブルシューティングに役立つよう、ヘッド ノードで収集し、Azure ノードの可用性、接続性、パフォーマンスに関する Microsoft データに送信することを選択できます。 Azure ノードのデプロイに関連するサポート インシデントを開く必要がある場合は、これを行うことを選択できます。 データ収集を有効にするには、HPC クラスター マネージャーの [オプション] メニューの [ Azure サポート データ収集] をクリックします。 または、Set-HpcClusterProperty HPC PowerShell コマンドレットを使用して、AzureMetricsCollectionEnabled クラスター プロパティを構成します。 データ収集の詳細については、「 Microsoft HPC Pack のプライバシーに関する声明」を参照してください。
Azure ノードでログ ファイルをトレースする
HPC Pack 2008 R2 SP4 以降では、トレース ログ ファイルは、Azure ワーカー ノードと、デプロイごとに自動的にプロビジョニングされる Azure HPC プロキシ ノードで自動的に生成されます。 ログ ファイルは、ノードのプロビジョニング中 Microsoft サポートまたはプロビジョニング後の問題のトラブルシューティングに役立ちます。たとえば、ポータルで [準備完了] の状態が示されている場合でも、Azure ノードの正常性状態が [到達不能] または [エラー] と表示される可能性がある条件などです。
トレース ログ ファイルには、各ノードに関する次の種類の情報が含まれています。
オペレーティング システムのブートストラップ情報。
ノードで実行する必要がある HPC Pack サービスに関する情報。
Hosts ファイルに関する情報。
オペレーティング システムのパフォーマンス カウンター データ。
ログ ファイルは、次の表に示すように、各ノードのローカル ストレージに書き込まれます。 トレース ログ ファイルの形式、特性、名前付けは、HPC Pack のバージョンによって異なります。
重要
ログ ファイルは、ノードが Azure でプロビジョニングされたままである間、Azure ロール インスタンスのローカル ストレージにのみ保持されます。 ファイルまたはデータが別の場所にコピーされない限り、Azure ノードが停止または削除された後にトレース ログ情報を確認することはできません。 詳細については、このトピック の「トレース ログ データを格納するシナリオ 」を参照してください。
HPC Pack のバージョン | ログ ファイル | Notes |
---|---|---|
HPC Pack 2012 以降 | - ワーカー ノードC:\logs\hpcworker_nnnnnn.bin - プロキシ ノードC:\logs\hpcproxy_nnnnnn.bin |
- ログ ファイルはバイナリ形式です。 既定のログ レベルは Verbose です。 - 各ログ ファイルのサイズは既定で最大 4 MB で、各ノードには最大 5,000 MB のログ ファイルを格納できます。 - 分析を容易にするために、HPC Pack と共にインストールされている hpctrace コマンドライン ツールの parselog サブコマンドを実行することで、ログ ファイルをタブ区切りのテキスト ファイルに変換できます。 このコマンドの使用方法の詳細については、「 hpctrace」を参照してください。 |
HPC Pack 2008 R2 with SP4 | - ワーカー ノード C:\logs\hpcworker.log - プロキシ ノード C:\logs\hpcproxy.log |
- ログ ファイルはテキスト形式です。 既定のログ レベルは Warning 以上です。 - 拡張子が .00<Integer> の番号付きオーバーフロー ログ ファイルは、各ノードに最大 5 つ書き込まれます。 - 各ノードのログ ファイルは 60 MB に制限され、自動的に循環されます。 |
注意
クラシック ポータルでクラウド サービスの設定を 構成 するを使用して、Azure ノード上の特定のプロセス ( Microsoft.Hpc.Azure.AzureNodeManagerTracing など) のトレース レベルを変更できます。
トレース ログ データを格納するシナリオ
Azure ロール インスタンスで生成されたトレース ログ ファイルは、ロール インスタンスが実行されている限り、ロール インスタンスのローカル ストレージに残ります。 ただし、Azure デプロイが停止した後、またはノードが削除された後にデータにアクセスする場合は、ロール インスタンスの実行中に、トレース ログ ファイルまたはデータを Azure Storage などの永続ストレージにダウンロードまたは格納する必要があります。 トレース ログ ファイルまたはデータを格納するシナリオを次に示します。
シナリオ 1: Azure BLOB ストレージへのトレース ログ ファイルの自動転送を有効にする
HPC Pack 2012 sp1 以降、HPC クラスター管理者は、必要に応じて、デプロイ内の Azure コンピューティング ノードまたはプロキシ ノードから、デプロイ用の Azure ストレージ アカウント内の BLOB ストレージ (hpclogs) 内のコンテナーへのトレース ログ ファイルの自動転送を有効にすることができます。
Azure ストレージ アカウントの BLOB ストレージへのトレース ログ ファイルの自動転送を有効にするには、HPC クラスター マネージャーの [オプション] メニューの [ Azure Deployment Configuration] をクリックします。 Set-HpcClusterProperty HPC PowerShell コマンドレットを使用して、AzureLogstoBlob HPC クラスター プロパティを設定することもできます。 プロキシ ノード、ワーカー ノード、またはその両方のログを転送することを選択できます。 既定では、ログ ファイル BLOB ストレージの転送は無効になっています。 AzureLogstoBlob プロパティを変更すると、今後の Azure ノード デプロイのログ ファイルの転送にのみ影響します。 現在のデプロイは影響を受けません。 詳細については、「 Set-HpcClusterProperty」を参照してください。
重要
Blob Storage に Azure デプロイ ログ ファイルを保存すると、ストレージ領域が使用され、各デプロイに関連付けられているストレージ アカウントにストレージ トランザクションが生成されます。 有効にすると、ワーカー ノードからログ ファイルを保存すると、同じストレージ アカウントを使用するすべての Azure デプロイのパフォーマンスに影響する可能性があります (特に、大規模なデプロイがある場合、または複数の同時デプロイがある場合)。 ストレージ領域とストレージ トランザクションは、アカウントに課金されます。 ログ ファイルの転送を無効にした後、ログ ファイルは Azure ストレージから自動的に削除されません。 ログ ファイルをダウンロードして、今後参照できるようにしておきたい場合があります。 ストレージ アカウントから hpclogs コンテナーを削除することで、ログ ファイルをクリーンアップできます。
ヘッド ノードで hpcazurelog コマンドを実行して、ストレージ アカウント内の BLOB ストレージからローカル フォルダーにデータをダウンロードし、BLOB ストレージからファイルを削除できます。 詳細については、「 hpcazurelog」を参照してください。
シナリオ 2: Azure テーブル ストレージへのトレース ログ データの自動転送を有効にする
HPC Pack 2012 以降、HPC クラスター管理者は、必要に応じて、デプロイ内の Azure ノードから、デプロイ用の Azure ストレージ アカウントでこの目的のために作成された Azure 診断 (WADSLogsTable) テーブルへのトレース ログ データの転送を有効にすることができます。
Azure ストレージ アカウントの WADSLogsTable テーブルへのトレース ログ データの転送を有効にするには、Set-HpcClusterProperty HPC PowerShell コマンドレットを使用して、AzureLoggingEnabled HPC クラスター プロパティを true に設定します。 既定では、WADSLogstable テーブルに含めるために、ログ ファイル内の重大イベント、エラー イベント、および警告イベントのみがフィルター処理されます。 AzureLoggingEnabled プロパティを変更すると、将来の Azure ノード デプロイのログ記録にのみ影響します。 現在のデプロイは影響を受けません。 詳細については、「 Set-HpcClusterProperty」を参照してください。
重要
- Azure デプロイ アクティビティのログ記録では、テーブルストレージ領域が使用され、各デプロイに関連付けられているストレージ アカウントでストレージ トランザクションが生成されます。 ストレージ領域とストレージ トランザクションには、Azure サブスクリプションの条件に従って料金が発生します。
- 通常、Azure Storage へのログ記録は、デプロイで問題が発生した場合にのみ有効にし、デプロイに関する問題のトラブルシューティングに役立つ必要があります。 Azure Storage へのログ記録を無効にした後、ログ データは Azure ストレージから自動的に削除されません。 ログをダウンロードして、今後の参照用に保持することができます。 ログ エントリは、ストレージ アカウントから WADLogsTable を削除することでクリーンアップできます
HPC Pack 2012 with SP1 以降では、ヘッド ノードで hpcazurelog コマンドを実行して、ストレージ アカウントの WADLogsTable からローカル フォルダーにデータをダウンロードし、テーブル内のストレージ用に選択されたデータのトレース レベルを指定できます。 詳細については、「 hpcazurelog」を参照してください。
シナリオ 3: Azure ノードからログ ファイルを手動で取得して格納する
詳細な分析を容易にするために、Azure ノードからオンプレミス コンピューターにログ ファイルを手動でダウンロードするか、Azure ストレージ アカウントにアップロードします。
ログ ファイルをダウンロードする
ログ ファイルをダウンロードするには、次のいずれかの手順に従います。
hpcfile get コマンドを実行して、各ノードからログ ファイルを個別にダウンロードします。
hpcfile get を使用するスクリプトを実行して、ワーカー ノードのグループからファイルをダウンロードします。
Azure 管理ポータルを使用して、各ノードに個別にリモート接続します。 その後、ログ ファイルまたはファイルをローカル コンピューターにコピーできます。
ヘッド ノードで hpcazurelog コマンドを実行して、Azure ワーカー ノードまたはプロキシ ノードからファイルをダウンロードします。 このコマンドは、HPC Pack 2012 SP1 で導入され、以前のバージョンではサポートされていません。 詳細については、「 hpcazurelog」を参照してください。
注意
- Azure ノードへのリモート接続を確立するには、Azure ノード テンプレートでリモート デスクトップの資格情報を構成していることを確認します。
- HPC プロキシ ノードからログ ファイルをダウンロードするには、各ノードへのリモート接続を確立し、ログ ファイルをローカル コンピューターに個別にコピーする必要があります。
Azure ワーカー ノードからログ ファイルをダウンロードするために使用 hpcfile get
するコマンドとスクリプトの例を次に示します。 コマンド構文の詳細については、「 hpcfile」を参照してください。
例 1. myHeadNode という名前の SP4 ヘッド ノードを持つクラスター上の Azure ノード 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. hpcworker_000000.bin ログ ファイルを、myHeadNode という名前の HPC Pack 2012 ヘッド ノードを持つクラスター上の AZURECN を開始する名前を持つノード グループ WorkerNodes 内の Azure ノードから、ローカル コンピューター上の 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 ストレージ アカウントにアップロードします。
hpcpack アップロードを使用してログ ファイルをストレージ アカウントに直接アップロードする 1 つ以上の Azure ノードでスクリプトを実行します。
注意
- Azure ノードのグループでスクリプトを実行するには、まずローカル コンピューターからノードにスクリプトをアップロードします。
- 「シナリオ 1: AZURE BLOB ストレージへのトレース ログ ファイルの自動転送を有効にする」で説明されているように、SP1 を使用した HPC Pack 2012 以降では、Azure ストレージ アカウント内の BLOB ストレージへのトレース ログ ファイルの自動転送を有効にすることができます。 ただし、この機能をサポートする HPC Pack のバージョンを使用していない場合、または BLOB ストレージへのログ ファイルの自動転送を有効にしていない場合は、その場所に手動でアップロードできます。
hpcpack アップロードを使用して Azure ワーカー ノードから Azure ストレージ アカウントにログ ファイルをアップロードするスクリプトの例を次に示します。 コマンド構文の詳細については、「 hpcpack」を参照してください。
注意
ワーカー ノード上のログ ファイルの名前は同じであるため、Azure ストレージ アカウントにファイルをアップロードするときにファイルを上書きしないようにする必要があります。 たとえば、次の例に示すように、ノードのホスト名を含む名前でログ ファイルの名前を変更できます。
例 3. myPrimaryKey という名前の主キーを使用して、hpcworker_000000.bin ファイルを Azure ワーカー ノードから MyStorageAccount という名前の Azure ストレージ アカウントのコンテナー MyLogs にアップロードして名前を変更するには
@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 Storage Explorerなどのツールを使用してストレージを参照できます。
参照
Microsoft HPC Pack を使用して Azure ワーカー インスタンスにバーストする
hpcazurelog