View a markdown version of this page

Slurm を使用してノードを手動で置換または再起動する - Amazon SageMaker AI

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

Slurm を使用してノードを手動で置換または再起動する

このセクションでは、ノードを手動で再起動または置き換えるタイミングと、両方を行う方法について説明します。

ノードを手動で再起動または置き換えるタイミング

HyperPod 自動再開機能は、Slurm ノードの状態が fail または down に変わるかどうかをモニタリングします。sinfo を実行することで、Slurm ノードの状態を確認できます。

ノードがスタックまたは応答せず、自動再開プロセスが復旧しない場合は、手動で復旧を開始できます。ノードの再起動と置き換えの選択は、問題の性質によって異なります。システムのハング、メモリリーク、GPU ドライバーの問題、カーネルの更新、ハングプロセスなど、一時的な問題やソフトウェア関連の問題が発生した場合は、再起動を検討してください。ただし、GPUs の障害、メモリまたはネットワークの障害、ヘルスチェックの失敗の繰り返し、複数回の再起動の試行後も応答しないノードなど、永続的またはハードウェア関連の問題が発生した場合は、ノードの交換が適しています。

ノードを手動で再起動または置き換える方法

SageMaker HyperPod には、手動ノード復旧のための 2 つの方法があります。推奨されるアプローチは、SageMaker HyperPod Reboot and Replace APIs を使用することです。これにより、すべてのオーケストレーターで動作するより高速で透過的な復旧プロセスが提供されます。または、 などの従来の Slurm コマンドを使用できますがscontrol update、このレガシーメソッドには Slurm のコントローラーノードへの直接アクセスが必要です。どちらの方法でも、同じ SageMaker HyperPod 復旧プロセスがアクティブ化されます。

再起動 API を使用してノードを手動で再起動する

BatchRebootClusterNodes を使用して、SageMaker HyperPod クラスター内の障害のあるノードを手動で再起動できます。

を使用してクラスターの 2 つのインスタンスで再起動オペレーションを実行する例を次に示します AWS Command Line Interface。

aws sagemaker batch-reboot-cluster-nodes \ --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \ --node-ids i-0123456789abcdef0 i-0fedcba9876543210

置き換え API を使用してノードを手動で置き換える

BatchReplaceClusterNodes を使用して、SageMaker HyperPod クラスター内の障害のあるノードを手動で置き換えることができます。

を使用してクラスターの 2 つのインスタンスで置換オペレーションを実行する例を次に示します AWS Command Line Interface。

aws sagemaker batch-replace-cluster-nodes \ --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \ --node-ids i-0123456789abcdef0 i-0fedcba9876543210

Slurm を使用してノードを手動で再起動する

Scontrol Slurm コマンドを使用してノード復旧をトリガーすることもできます。これらのコマンドは Slurm コントロールプレーンと直接やり取りし、基盤となる同じ SageMaker HyperPod 復旧メカニズムを呼び出します。

次のコマンド で、<ip-ipv4> を、再起動する障害のあるインスタンスの Slurm ノード名 (ホスト名) に置き換えます。

scontrol update node=<ip-ipv4> state=fail reason="Action:Reboot"

これにより、ノードは指定された理由で FAIL としてマークされます。SageMaker HyperPod はこれを検出し、インスタンスを再起動します。オペレーション中は、ノードの状態を変更したり、Slurm コントローラーを再起動したりしないでください。

Slurm を使用してノードを手動で置き換える

次のように scontrol update コマンドを使用して、ノードを置き換えることができます。

次のコマンドで、 を置き換える障害のあるインスタンスの Slurm ノード名 (ホスト名) <ip-ipv4>に置き換えます。

scontrol update node=<ip-ipv4> state=fail reason="Action:Replace"

このコマンドを実行すると、ノードは fail状態になり、現在実行中のジョブが終了するのを待ち、正常なインスタンスに置き換えられ、同じホスト名で復元されます。このプロセスにかかる時間は、アベイラビリティーゾーンで使用可能なインスタンスとライフサイクルスクリプトの実行にかかる時間によって異なります。更新および置き換えプロセス中は、ノードの状態を手動で変更したり、Slurm コントローラーを再起動したりしないでください。置き換えに失敗する可能性があります。長期間経過してもノードが回復されず、idle 状態にならない場合、AWS サポートにお問い合わせください。

ノードを手動で強制変更する

障害のあるノードが継続的に fail 状態のままになっている場合、最後の手段として、ノードの状態を手動で強制的に down に変更してみることもできます。これには、管理者権限 (sudo アクセス許可) が必要です。

警告

次のコマンドを実行するとすべてのジョブが強制終了され、保存されていない作業がすべて失われる可能性があるため、実行する前に慎重に進めてください。

scontrol update node=<ip-ipv4> state=down reason="Action:Replace"