Microsoft HPC Pack
Microsoft HPC Pack は、Windows Server テクノロジを使用して Microsoft Azure 上に構築された無料の HPC ソリューションであり、幅広い HPC ワークロードをサポートします。このページでは、HPC Pack と Cyclecloud の統合の機能と構成の詳細について説明します。
Microsoft HPC Pack 2016 (Update 3 を使用) と Microsoft HPC Pack 2019 は、CycleCloud でサポートされており、次の制限があります。
- クラスターは、Active Directory ドメインに作成する必要があります。
- クラスターに含めることができるヘッド ノードは 1 つだけです。
- ヘッド ノードでの高可用性はまだサポートされていません。
- ヘッド ノード VM イメージのカスタマイズはサポートされていません。
- Linux コンピューティング ノードはまだサポートされていません。
- Nuget バイナリと Python3 をダウンロードするには、ヘッド ノードに送信インターネット アクセスが必要です。
- CLI と cloud-init の構成はまだサポートされていません。
現在、すべての HPC Pack ノードは、Active Directory ドメインに参加する必要があります。 企業ネットワークとのサイト間 VPN または ExpressRoute 接続を持つ仮想ネットワークに HPC Pack クラスターを展開する場合、通常、既存のActive Directory ドメインが既にあります。 仮想ネットワークに AD ドメインがまだない場合は、ヘッド ノードをドメイン コントローラーとして昇格することで、新しい AD ドメインを作成することを選択できます。
Microsoft HPC Pack では、ノード通信をセキュリティで保護するために PFX 証明書が必要です。また、ノードを AD ドメインに参加させるには、AD ドメイン のユーザー資格情報も必要です。 テンプレートでは PFX ファイル、保護パスワード、ユーザー パスワードを直接指定できますが、証明書とユーザー パスワードの安全な処理には Azure Key Vaultを使用することを強くお勧めします。 「Azure Key Vault 証明書を作成する」を参照してください。
クラスターでは、ノードの作成時にドメインに参加させるために、AD 管理者アカウントのユーザー名とパスワードも必要です。 Azure Key Vaultを使用することを強くお勧めします。
証明書と資格情報に Azure Key Vaultを使用するには、Azure ユーザー割り当てマネージド ID を作成し、シークレットと Azure Key Vaultの証明書の両方に対して Get のアクセス許可を付与する必要があります。
このKey Vaultチュートリアルでは、Key Vaultと、Key Vault アクセス権を持つマネージド ID を作成する方法について説明します。
Azure Role-Based Access Control を使用して、マネージド ID にKey Vaultアクセス許可を割り当てることをお勧めします。
HPC Pack クラスターには、次の 3 つの異なるノード ロールがあります。
- ヘッド ノード: クラスター管理とジョブ スケジューリング サービスを提供します。 現時点では、ローカル データベースを持つ単一のヘッド ノードのみがサポートされています。
- ブローカー ノード: SOA クライアントから要求を受信し、それらをコンピューティング ノード上のサービス ホストに配布し、応答を収集してクライアントに送信します。 ブローカー ノードは、 ブローカー ノード配列に作成されます。 クラスターで SOA ワークロードを実行する場合は、ブローカー ノードを作成する必要があります。
- コンピューティング ノード: クラスター ジョブを受け入れて実行します。 計算ノードは cn ノード配列に作成されます。
Schedulers の下にある Microsoft HPC Pack アイコンをクリックして、新しい Microsoft HPC Pack クラスターを作成できます。
[ バージョン情報 ] ページで、クラスターの一意の クラスター名 を指定します。ヘッド ノードの NetBIOS コンピューター名として使用されるため、AD ドメイン内で一意であり、 名前付け規則に準拠していることを確認します。
- HPC Pack バージョン: HPC Pack 2019 または HPC Pack 2016 (Update 3 を使用) を選択できます。 最新の HPC Pack バージョン (HPC Pack 2019) を使用することをお勧めします。
- Virtual Machines: HPC Pack クラスターを作成する Azure リージョンと、各クラスター ノード ロールの VM の種類を選択できます。 また、クラスターで SOA ワークロードを実行する場合は、 Num. Brokers を指定して 1 つ以上のブローカー ノードを作成することもできます。
クラスターは、コンピューティング ノードなしで開始されます。 自動スケールを有効にすると、クラスターのワークロードに応じてコンピューティング ノードを自動的にスケールアップまたはスケールダウンできます。最大コア数を使用して、クラスターのコンピューティング vCPU コアの最大数を指定できます。 自動スケーラーは、ヘッド ノードで Windows スケジュール タスクとして 1 分ごとに実行されます。
コンピューティング ノードには、割 り当て解除 または 終了の 2 つのスケール ダウン オプションがあります。 [終了] オプションを選択すると、HPC Pack クラスターは常にスケール ダウン時にコンピューティング ノード VM を削除します。 [割り当て解除] オプションを選択した場合、HPC Pack クラスターはスケール ダウン時にコンピューティング ノード VM の割り当てを解除し、構成可能な日数 (VM 保有日数) まで維持します。割り当て解除されたコンピューティング ノードは、引き続き保持されている限り、HPC Pack クラスターから削除されません。ただし、これらはオフラインになり、HPC Pack クラスターでは到達不能と表示されます。 HPC Pack クラスターの 割り当て解除 オプションは、スケールアップ時のノード準備時間を大幅に短縮でき、割り当て解除された VM のディスク ストレージに対してのみ支払うことができるため、推奨されます。
- Virtual Network: HPC Pack クラスターが作成される既存の仮想ネットワークとサブネットを選択できます。
- Active Directory ドメイン: 仮想ネットワークに既に AD ドメインがある場合は、クラスター ノードが参加する完全なドメイン名と OU パスを指定します。 または、ヘッド ノード をドメイン コントローラーとして昇格させて新しい AD ドメインを作成するには、[新しい AD ドメイン] を選択します。
- シークレットと証明書: Azure Key Vaultを使用してノード通信証明書とユーザー パスワードを渡すには、[KeyVault を使用する] を選択することを強くお勧めします。 MSI ID で、ドロップダウン リストから [前提条件] で作成した Azure ユーザー割り当て ID を選択し、[前提条件] で作成した Azure Key Vault 名を指定します。
- ユーザー資格情報: [ユーザー名] で、ドメイン ユーザー名を指定します。 [パスワード シークレット] で、「前提条件」で作成した Azure Key Vault シークレット名を指定して、ドメイン ユーザー のパスワードを格納します。
- PFX 証明書: [証明書名] で、「前提条件」で作成した Azure Key Vault証明書名を指定します。
- Azure 設定: ドロップダウン リストから Azure クラウド 資格情報 を選択します。
- クラスター ソフトウェア: 各クラスター ノード ロールのオペレーティング システム (OS) を指定します。
- 高度なネットワーク: 既定では、仮想ネットワークで構成されている DNS サーバーがすべての HPC ノードに適用されます。別の DNS サーバーを使用する場合は、必要に応じて DNS サーバー を指定できます。 必要に応じて 、HN パブリック IP を選択して、ヘッド ノードのパブリック IP アドレスを割り当てることもできます。
azhpcpack.ps1 CLI は、すべての自動スケール動作 (スケジュールされたタスク呼び出しazhpcpack.ps1 autoscale
) のメイン インターフェイスです。 CLI は C:\cycle\hpcpack-autoscaler\bin で使用できます)
CLI を使用すると、自動スケールに関する問題を診断したり、ヘッド ノード内からクラスターのスケーリングを手動で制御したりできます。
コマンド | 説明 |
---|---|
自動スケーリング | ノードの作成、削除、結合など、エンドツーエンドの自動スケール プロセス。 |
バケット | 制限などの自動スケール バケット情報を出力します |
config | 前処理後に有効な自動スケーリング構成を stdout に書き込みます |
create_nodes | さまざまな制約を与えられたノードのセットを作成します。 nodemanager インターフェイスの CLI バージョン。 |
default_output_columns | 省略可能なコマンドの既定の出力列を出力します。 |
delete_nodes | ノードを削除し、クラスターから削除します。 |
initconfig | 初期自動スケール構成を作成します。stdout に書き込みます。 |
制限 | 各バケットの詳細な制限セットを書き込みます。 既定では、フィールドの数が原因で json になります。 |
nodes | ノードのクエリを実行します。 |
refresh_autocomplete | クラスター固有のリソースとノードのローカルオートコンプリート情報を更新します。 |
retry_failed_nodes | 失敗した状態のすべてのノードを再試行します。 |
validate_constraint | その後、JSON 1 つ以上の制約として出力を検証します。 |