この記事では、Azure で高可用性 HPC Pack クラスターを構築するための手順と考慮事項について説明します。
クラスターの高可用性に関する考慮事項
一般的な HPC Pack クラスターは、HPC ジョブを格納するデータベースを含む SQL サーバー で構成されます。スケジューラ サービス SDM サービスなどの重要なサービスを実行する ヘッド ノード サーバー。ヘッド ノード上のサービスに接続する コンピューティング ノード のセットは、ユーザーの HPC ワークロードを実行します。 さらに、クライアントの認証を提供する ドメイン コントローラー も必要です。 これらのコンポーネントはすべて 、ネットワーク経由で相互に接続されます。
Azure クラウド環境では、上記のコンポーネントのいずれかが失敗する場合があります。たとえば、Windows 更新プログラムのためにヘッド ノードが再起動された場合、優先順位の低い VM を使用しているため、一部のコンピューティング ノードが再起動することがあります。 したがって、次の条件を満たす高可用性 HPC Pack クラスターを設定する方法を説明します。
上記のコンポーネントが失敗しても、ユーザーのワークロードは取り消されたり失敗したりすることなく実行される可能性があります
失敗したコンピューティング ノードで実行されているタスクは、他のコンピューティング ノードに再スケジュールする必要があります
クラスターは、クラスター管理、ジョブ管理などの機能を引き続き提供できる必要があります。
したがって、すべてのコンポーネントの障害状況とその高可用性ソリューションについて説明します。
データベースの障害に対処する
クラウドで高可用性 SQL データベースを取得するには、次の 2 つの選択肢があります。
ARM テンプレートを使用して SQL AlwaysOn クラスターをデプロイする方法については、このブログを参照してください。
ヘッド ノードの障害に対処する
クラスター内に少なくとも 2 つのヘッド ノードを設定します。 この構成では、ヘッド ノードで障害が発生すると、アクティブな HPC サービスがこのヘッド ノードから別のヘッド ノードに移動します。
AD エラーに対処する
HPC がドメイン コントローラーに接続できなかった場合、管理者とユーザーは HPC サービスに接続できないため、ジョブを管理してクラスターに送信することはできません。 また、NodeManager サービスがジョブの資格情報を検証できなかったので、ドメインに参加しているコンピューター ノードで新しいジョブを開始できません。 したがって、以下のオプションを考慮する必要があります。
Azure で HPC Pack クラスターと共に高可用性ドメイン コントローラーをデプロイする
Azure AD ドメイン サービスの使用。 クラスターのデプロイ中に、すべてのクラスター ノードをこのドメインに参加させるだけで、Azure から高可用性ドメイン サービスを取得できます。
クラスター ノードをドメインに参加させずに HPC Pack Azure AD 統合ソリューション を使用する。 したがって、HPC サービスが Azure AD サービスに接続できる限り。
ネットワーク障害に対処する
Azure データ センター内のネットワーク自体は高可用性であるため、バックアップ ネットワークを持つ必要はありません。
高可用性 HPC Pack クラスターの構築
ここには ARM テンプレートがあり、次のオプションを使用して高可用性 HPC クラスターをデプロイできることを選択します。
Azure SQL Database を作成する
既存の Active Directory ドメインに接続する
高可用性 HPC Pack クラスターを作成する
テンプレート: 既存の Active Directory ドメインを使用する Windows ワークロード用の Azure SQL データベースを使用した高可用性クラスター
このテンプレートは、Windows HPC ワークロードの高可用性を備えた HPC Pack クラスターを既存の Active Directory ドメイン フォレストにデプロイします。 クラスターには、2 つのヘッド ノード、SQL Azure データベース、および構成可能な数の Windows コンピューティング ノードが含まれています。 Express Route が構成された仮想ネットワークがあり、クラスターをオンプレミスの Active Directory ドメインに参加させる場合は、ヘッド ノードのパブリック IP アドレスを作成しないことを選択できます。
手記: クラスターを作成するサブネットで Azure SQL Database (Microsoft.Sql) のサービス エンドポイントが有効になっていることを確認します。
HPC Pack クラスター共有
現在、すべての HPC Pack ARM テンプレートで、ヘッド ノードの 1 つにクラスター共有を作成します。この共有は、ヘッド ノードがダウンしているかのように高く利用できません。共有は、他のヘッド ノードで実行されている HPC サービスからはアクセスできません。 基本的に、ジョブの実行とノードの管理には影響しません。
Azure Files では、これらのファイル共有を SMB アクセス許可を持つ Azure Files 共有に移動して、高可用性を実現できます。 このドキュメントを参照してください。
共有名 | 使用方法 | 既定の場所 | ダウン時の影響 | 高可用性を実現する方法 |
---|---|---|---|---|
リモート インストール共有 | クラスターのセットアップ後、クライアント マシンとコンピューティング マシンがこの共有からインストール ディレクトリを実行できるように、HPC Pack セットアップ バイナリをこの共有フォルダーに配置します。 | \\<HN3>\REMINST |
この共有がダウンしているか、アクセスできない場合、HPC クラスターの既存の機能には影響しません。 | クラスター管理者は、他の 2 つのヘッド ノードで同じ共有を作成し、そこにセットアップ バイナリをコピーして、ヘッド ノードをダウンさせ、共有を引き続き使用できるようにすることもできます。 |
HPC SOA 登録共有 | この共有には SOA サービス登録ファイルが格納されます | \\<HN3>\HpcServiceRegistration |
この共有の登録ファイルに依存する SOA サービス ジョブの実行に失敗する | 新しい SOA サービス構成ファイルを登録する場合は、登録ファイルを共有に配置せず、クラスター マネージャーから [Import High Available Configuration File... ] を使用して、共有がダウンしている場合でも登録ファイルを使用できるように、HPC Cluster Reliable Store に SOA サービス登録ファイルをインポートします。 |
HPC SOA ランタイム共有 | この共有には、SOA ジョブの共通データが格納されます | \\<HN3>\Runtime$ |
共通データを含む SOA ジョブが失敗する | SOA クライアントは、ランタイム共有がダウンしていても共通データを引き続き使用できるように、共通データを Azure Storage に配置する必要があります |
HPC SOA TraceRepository | Soa 診断トレース リポジトリ。 | \\<HN3>\TraceRepository |
SOA 診断トレースが有効になっている場合、トレースは収集に失敗します。 | Azure Files 共有を使用します。 |
HPC Diagnostics 共有 | この共有には、診断テストの結果が格納されます | \\<HN3>\Diagnostics |
この共有がダウンすると、テスト結果を書き込む場所がないため、HPC Diagnostics ジョブは失敗します。 | クラスター管理者は、diag テストを実行するときに、新しい diag 共有に切り替えることができます。 新しい diag 共有に変更するには、HPC powershell cmd を実行します set-HpcClusterRegistry -PropertyName DiagnosticsShare -PropertyValue "\\<HN2>\diagnostics" |
CcpSpoolDir | コンピューティング ノードの出力スプール共有。 | \\<HN3>\CcpSpoolDir |
タスクの出力に使用すると、タスクは出力データの書き込みに失敗します。 | Azure Files 共有を使用します。 |