オートスケーリングを使用すると、Elastic High Performance Computing (E-HPC) はリアルタイムのジョブ需要に基づいてコンピュートノードを動的に追加または削除できます。手動操作は不要です。ジョブがキューに溜まると、クラスターはスケールアウトして需要に対応します。ノードがアイドル状態になると、スケールインしてコストを削減します。ノードに障害が発生した場合、システムはそのノードを停止し、代替ノードを起動します。
利点
-
リアルタイムのワークロードに基づいてコンピュートノードを追加し、クラスターの可用性を向上させます。
-
クラスターの可用性を損なうことなく、コンピュートノードの数を削減してコストを削減します。
-
障害が発生したノードを停止し、代替ノードを起動することで、フォールトトレランスを向上させます。
制限事項
-
オートスケーリングを使用するには、クラスター内のすべてのノードで Linux を実行する必要があります。
-
カスタムクラスターはオートスケーリングをサポートしていません。その他のクラスタータイプはすべてサポートしています。
-
メモリベースのオートスケーリングは、Slurm スケジューラを使用するクラスターでのみサポートされます。
オートスケーリングの設定
事前準備
以下の点を確認してください。
-
スケジューラサービスとドメインアカウントサービスが正常に動作していること。
-
オートスケーリングを有効にした後、管理ノードが実行中であること。
管理ノードをシャットダウンまたは再起動する前に、すべてのアイドルノードがリリースされ、コンピュートノードでジョブが実行されていないことを確認してください。まずオートスケーリングを無効にし、その後管理ノードをシャットダウンまたは再起動し、再起動後にオートスケーリングを再度有効にしてください。
オートスケーリングを正しくトリガーするには、ジョブを送信する際に必要な vCPU 数を指定してください。ジョブで指定するメモリサイズは、対象の ECS インスタンスタイプのメモリ仕様を超えることはできません。
ステップ 1: クラスターオートスケーリング設定を開く
-
E-HPC コンソールにログインします。
-
上部メニューの左側でリージョンを選択します。
-
左側メニューで、クラスター をクリックします。
-
クラスター一覧 ページで、対象のクラスターを見つけて Auto Scaling をクリックします。
ステップ 2: グローバルスケーリング設定を設定する
クラスターの自動スケーリング ダイアログボックスで、クラスターのグローバル設定 セクションを設定します。
これらの設定は、クラスター内のすべてのキューに適用されます。キューレベルの設定が異なる場合、グローバル設定を上書きします。
| パラメータ | 説明 |
|---|---|
| 自動スケールアウト / 自動スケールイン | クラスター内のすべてのキューに対して、自動スケールアウトとスケールインを有効にします。 |
| スケールアウト待機時間 |
ジョブが送信されてからスケールアウトを開始するまでの待機時間。デフォルト:2 分。 説明
Ubuntu イメージを実行するコンピュートノードは、通常、起動に時間がかかります。この値が短すぎると、ノードの準備が整う前にシステムが別のスケールアウトサイクルを開始し、余分なノードが作成される可能性があります。Ubuntu イメージを使用する場合は、この値を 4 分に設定することを推奨します。 |
| スケールイン待機時間 | システムがノードをリリースする前に、ノードがアイドル状態を維持する必要がある時間。デフォルト:4 分。 |
| 最大ノード数 | クラスターが作成できるノードの総数の上限。 |
| 最大ノード数 | クラスターが作成できるコアの総数の上限。 |
ステップ 3: キューレベルのスケーリングを設定する
キューレベルの設定では、キューごとにスケーリング動作を細かく調整し、グローバル設定を上書きできます。
キューを設定するには:
-
対象のクラスターをクリックします。
-
左側メニューで、ノードとキュー > キュー をクリックします。
-
対象のキューを見つけて、編集 列の [Edit] をクリックします。
-
キューの編集 ページで、各セクションのパラメータを設定します。
基本設定
| パラメータ | 説明 |
|---|---|
| キューのオートスケーリング | デフォルトではオフです。これをオンにして、要件に応じて 自動スケールアウト、自動スケールイン、またはその両方を選択します。キュー設定はグローバル設定を上書きします。 |
| キューのノード数 |
このキューの最小および最大ノード数を設定します:
|
キューのノード設定
キューのオートスケーリング を有効にするか、初期ノード数を 0 より大きく設定する場合は、システムがコンピュートノードの作成方法を認識できるよう、以下のパラメータを設定してください。
| パラメータ | 説明 |
|---|---|
| ノード間インターコネクト |
コンピュートノード間の通信方法:
|
| プリセットノードプールを使用 | スケールアウト時に使用する予約済みノードプールを選択します。システムは、プール内の未割り当ての予約済みノードから IP アドレスとホスト名を選択し、事前に割り当てられたリソースを使用してより高速なスケールアウトを実現します。詳細については、「Use reserved node pools in clusters」をご参照ください。 |
| vSwitch | コンピュートノード用の vSwitch。システムは vSwitch CIDR ブロックから IP アドレスを割り当てます。 |
| インスタンスタイプグループ | インスタンスタイプの追加 をクリックして、インスタンスタイプを選択します。キューのオートスケーリング が無効の場合、インスタンスタイプは 1 つしか指定できません。有効にすると、フォールバックオプションとして複数のインスタンスタイプを追加できます。 |
複数の vSwitch とインスタンスタイプを追加すると、在庫不足に対するフォールバックとして機能します。ノードを作成する際、システムは最初の vSwitch のゾーンから開始して、指定した順序で各インスタンスタイプを試行します。実際のインスタンス仕様は、利用可能な在庫によって異なる場合があります。
オートスケーリング設定
| パラメータ | 説明 |
|---|---|
| スケーリングポリシー | ノードを作成する場所を選択するための戦略。現在、プロビジョニング優先ポリシー のみがサポートされています。ノードは、設定した vSwitch の順序に従い、各 vSwitch が指定するゾーンに作成されます。 |
| 1 回の最大スケーリングノード数 | 1 回のスケールアウトまたはスケールインサイクルで追加または削除されるノードの最大数。デフォルト:0 (制限なし)。値を設定して、バーストコストを制御します。 |
| ホスト名のプレフィックス | このキュー内のコンピュートノードのホスト名プレフィックス。このプレフィックスで、異なるキューのノードを区別できます。 |
| ホスト名のサフィックス | このキュー内のコンピュートノードのホスト名サフィックス。 |
| ホスト RAM ロール | コンピュートノードに Alibaba Cloud サービスへのアクセス権を付与する RAM ロール。デフォルトのロール [AliyunECSInstanceForEHPCRole] は、標準的な E-HPC 要件に対応しています。 |
ステップ 4: 設定を保存する
設定を確認し、保存 をクリックします。
スケーリングポリシー
キューに複数のインスタンスタイプが設定されている場合、クラスターは利用可能なインスタンスタイプとジョブ要件に基づいてスケールアウトします。たとえば、キューがノードあたり少なくとも 16 コアを必要とし、8 コア、16 コア、および 32 コアのインスタンスタイプが設定されている場合:
-
システムはまず 16 コアの Elastic Compute Service (ECS) インスタンスの作成を試みます。
-
在庫不足により 16 コアインスタンスが利用できない場合、32 コアインスタンスにフォールバックします。
クラスターの監視
オートスケーリングを設定した後、クラスターの正常性とリソース使用状況を監視して、スケーリングしきい値が期待どおりに機能していることを確認してください。詳細については、「View the monitoring information」をご参照ください。
よくある質問
インスタンスがリリースされたが、コンソールでノードを削除できない
オートスケーリングにスポットインスタンスを使用している場合、未完了の計算タスクが残っている間にインスタンスが回収される可能性があります。この状況では、スケジューラはインスタンスを正常に削除できず、ノードはコンソールで [BusyNodes] ステータスのまま停止しているように見えます。
オートスケーリングのクリーンアップサイクルが実行されるまで待ちます。この状態のノードは、一定期間後に自動的に削除されます。スケジューラがステータスを更新すると、ノードは [BusyNodes] から抜け出し、通常どおり削除できるようになります。