

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SageMaker HyperPod マルチヘッドノードのサポート
<a name="sagemaker-hyperpod-multihead-slurm"></a>

単一の SageMaker HyperPod Slurm クラスターに複数のコントローラー (ヘッド) ノードを作成できます。1 つはプライマリコントローラーノードとして機能し、もう 1 つはバックアップコントローラーノードとして機能します。プライマリコントローラーノードは、コンピューティング (ワーカー) ノードを制御し、Slurm オペレーションを処理します。バックアップコントローラーノードは、プライマリコントローラーノードを常にモニタリングします。プライマリコントローラーノードに障害が発生したり、応答しなくなったりすると、バックアップコントローラーノードの 1 つが新しいプライマリコントローラーノードとして自動的に引き継ぎます。

SageMaker HyperPod Slurm クラスターで複数のコントローラーノードを設定すると、いくつかの重要な利点があります。コントローラーヘッドノードを提供することで、単一コントローラーノードの障害のリスクを排除し、バックアップコントローラーノードへの自動フェイルオーバーを高速リカバリで実現し、独自のアカウンティングデータベースと Slurm 設定を個別に管理できます。

## 主要なコンセプト
<a name="sagemaker-hyperpod-multihead-slurm-concepts"></a>

Slurm クラスターの SageMaker HyperPod マルチコントローラー (ヘッド) ノードサポートに関連する概念の詳細は、以下のとおりです。

**コントローラーノード**

コントローラーノードは、クラスター内の Amazon EC2 インスタンスであり、クラスターのオペレーションを管理および調整するための重要な Slurm サービスを実行します。具体的には、[Slurm コントローラーデーモン (slurmctld)](https://slurm.schedmd.com/slurmctld.html) と [Slurm データベースデーモン (slurmdbd)](https://slurm.schedmd.com/slurmdbd.html) をホストしています。コントローラーノードはヘッドノードとも呼ばれます。

**プライマリコントローラーノード**

プライマリコントローラーノードは、Slurm クラスター内のアクティブかつ現在制御中のコントローラーノードです。これは、Slurm によってクラスターの管理を担当するプライマリコントローラーノードとして識別されます。プライマリコントローラーノードは、ユーザーからコマンドを受信して実行し、実行中のジョブ用にコンピューティングノード上のリソースを制御して割り当てます。

**バックアップコントローラーノード**

バックアップコントローラーノードは、Slurm クラスター内の非アクティブなスタンバイコントローラーノードです。これは、Slurm によって現在クラスターを管理していないバックアップコントローラーノードとして識別されます。バックアップコントローラーノードは、スタンバイモードで [Slurm コントローラーデーモン (slurmctld)](https://slurm.schedmd.com/slurmctld.html) を実行します。バックアップコントローラーノードで実行されるコントローラーコマンドは、実行のためにプライマリコントローラーノードに伝播されます。その主な目的は、プライマリコントローラーノードを継続的にモニタリングし、プライマリコントローラーノードに障害が発生したり、応答しなくなったりした場合にその責任を引き受けることです。

**コンピューティングノード**

コンピューティングノードは、[Slurm ワーカーデーモン (slurmd)](https://slurm.schedmd.com/slurmd.html) をホストするクラスター内の Amazon EC2 インスタンスです。コンピューティングノードのプライマリ関数は、プライマリ[コントローラーノードで実行されている Slurm コントローラーデーモン (slurmctld)](https://slurm.schedmd.com/slurmctld.html) によって割り当てられたジョブを実行することです。ジョブがスケジュールされると、コンピューティングノードは [Slurm コントローラーデーモン (slurmctld)](https://slurm.schedmd.com/slurmctld.html) から指示を受け取り、ノード自体内でそのジョブに必要なタスクとコンピューティングを実行します。コンピューティングノードはワーカーノードとも呼ばれます。

## 仕組み
<a name="sagemaker-hyperpod-multihead-slurm-how"></a>

次の図は、さまざまな AWS のサービスが連携して SageMaker HyperPod Slurm クラスターの複数のコントローラー (ヘッド) ノードアーキテクチャをサポートする方法を示しています。

![\[SageMaker HyperPod マルチヘッドノードのアーキテクチャ図\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/hyperpod/hyperpod-multihead-architecture.png)


SageMaker HyperPod マルチコントローラー (ヘッド) ノードアーキテクチャをサポートするために連携する AWS サービスには以下が含まれます。


**AWS SageMaker HyperPod の複数のコントローラーノードアーキテクチャをサポートするために連携する サービス**  

| サービス | 説明 | 
| --- | --- | 
| IAM (AWS Identity and Access Management) | アクセス許可を制御する 2 つの IAM ロールを定義します。1 つはコンピューティングノードインスタンスグループ用、もう 1 つはコントローラーノードインスタンスグループ用です。 | 
| Amazon RDS for MariaDB | ジョブレコードと計測データを保持する Slurm のアカウントデータを保存します。 | 
| AWS Secrets Manager | Amazon FSx for Lustre がアクセスできる認証情報を保存および管理します。 | 
| Amazon FSx for Lustre  | Slurm 設定とランタイム状態を保存します。 | 
| Amazon VPC | HyperPod クラスターとそのリソースがデプロイされる隔離されたネットワーク環境を提供します。 | 
| Amazon SNS  | プライマリコントローラー (ヘッド) ノードに関連するステータス変更 (Slurm コントローラーが ON または OFF) があると、管理者に通知を送信します。 | 

HyperPod クラスター自体は、コントローラーノード (プライマリノードとバックアップノード) とコンピューティングノードで構成されます。コントローラーノードは、コンピューティングノード全体のワークロードを管理してモニタリングする Slurm コントローラー (SlurmCtld) とデータベース (SlurmDBd) コンポーネントを実行します。

コントローラーノードは、Amazon Lustre ファイルシステム用 FSx に保存されている Slurm 設定とランタイム状態にアクセスします。Slurm アカウンティングデータは Amazon RDS for MariaDB データベースに保存されます。 は、コントローラーノードのデータベース認証情報への安全なアクセス AWS Secrets Manager を提供します。

Slurm コントローラーノードにステータス変更 (Slurm コントローラーが `ON` または `OFF`) がある場合、管理者がさらなる対応ができるように、Amazon SNS は通知を送信します。

この複数のコントローラーノードアーキテクチャにより、1 つのコントローラー (ヘッド) ノードの単一障害点がなくなるため、フェイルオーバーの高速かつ自動的な復旧が可能になり、Slurm アカウントデータベースと設定を制御できるようになります。