翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クラスターの更新を試行する
次のセクションでは、クラスターを更新しようとして問題が発生した場合に役立つトラブルシューティングソリューションを示します。
pcluster update-cluster コマンドのローカル実行に失敗する
失敗の詳細について、ローカルファイルシステムの ~/.parallelcluster/pcluster-cli.log を確認します。
クラスターの更新がタイムアウトになる
これは cfn-hup が実行されていないことに関連する問題の可能性があります。cfn-hup デーモンが外部の原因により終了させられる場合、自動的に再開されることはありません。cfn-hup が実行されていない場合、クラスターの更新中に CloudFormation スタックは期待どおりに更新プロセスを開始しますが、更新手順はヘッドノードでアクティブ化されず、最終的にスタックのデプロイはタイムアウトになります。詳細については、「cfn-hup が実行していない場合のクラスター更新タイムアウトのトラブルシューティング」を参照してトラブルシューティングと問題からの復旧を行ってください。
clusterStatus は UPDATE_FAILED
ルートの原因
失敗の根本原因を特定するには、まずヘッドノード/var/log/chef-client.logのクラスタースタックイベントと を確認します。
考えられる原因は、少なくとも 1 つのクラスターノードが更新を適用しなかったことです。ヘッドノード/var/log/chef-client.logで の更新に失敗したノードのリストを取得するには、 ログCheck cluster readinessで を探します。
問題が GitHub の にある GitHub の既知の問題
の防止
クラスター内の少なくとも 1 つのノードが更新を正常に適用しなかった場合、クラスターの更新が失敗する可能性があります。クラスターの更新に失敗するリスクを軽減するために、更新を開始する前に壊れたノードを終了することをお勧めします。ノードが壊れる可能性がある例として、予想されるエピックログ期間よりも長い間、コンピューティングノードが COMPLETING状態のままになることがあります。これらのノードを検出するには、次のコマンドを実行し、threshold値をニーズに合わせて調整します (値は、エピックログに予想される最大期間より大きくなければなりません)。
$scontrol show nodes --json | jq -r --argjson threshold 60 ' .nodes[] | select(.state | index("COMPLETING")) | select((now - .last_busy.number) > $threshold) | .name '
復旧
更新が失敗した場合、ロールバックはクラスターの状態を回復することが予想されるメカニズムです。
ロールバックが失敗した場合、クラスターの状態は決定的ではありません。この場合、障害の増幅を防ぐために停止clustermgtdされた可能性があります。ヘッドノードで次のコマンドを実行して開始することをお勧めします。Python バージョンを、お使いのバージョンに同梱されている AWS ParallelCluster バージョンに適応させます。
$/opt/parallelcluster/pyenv/versions/3.12.11/envs/cookbook_virtualenv/bin/supervisorctl start clustermgtd
clusterStatus は UPDATE_FAILEDで、 cloudFormationStackStatus は です。 UPDATE_ROLLBACK_FAILED
pcluster describe-cluster clusterStatus が UPDATE_FAILEDで、 cloudFormationStackStatusが の場合UPDATE_ROLLBACK_FAILED、クラスターの更新とその後のロールバックの両方が失敗しました。この状態では、クラスタースタックはそれ以上の更新を受け入れることができないため、手動による介入をブロック解除する必要があります。
クラスタースタックのブロックを解除するには、次の手順を実行します。
-
失敗の根本原因を修正します。
-
ロールバックを強制的に続行します。
$aws cloudformation continue-update-rollback --regionREGION--stack-nameCLUSTER_STACK_NAME -
スタックが
UPDATE_ROLLBACK_COMPLETEステータスになるまで待ちます。 -
pcluster update-clusterコマンドを使用して元の更新を再試行します。
クラスタースタックが UPDATE_IN_PROGRESSまたは にスタックしているように見える UPDATE_ROLLBACK_IN_PROGRESS
ログインノードのブートストラップ障害により、ログインノード Auto Scaling Group が安定しない場合、クラスタースタックは最大 UPDATE_ROLLBACK_IN_PROGRESS1 時間、UPDATE_IN_PROGRESSまたは 1 時間停止する可能性があります。
ログインノード Auto Scaling グループが原因でこの状況にあるかどうかを確認するには、次のチェックを行う必要があります。メインスタックで、 にある唯一のリソースは、ネストされたログインノードスタックUPDATE_IN_PROGRESSです。ネストされたログインノードスタックでは、 にスタックされる唯一のリソースは、ログインノードの Auto Scaling Group UPDATE_IN_PROGRESSです。
このシナリオでは、更新をキャンセルして、更新が完了するまで 1 時間待つ必要がないようにできます。
$aws cloudformation cancel-update-stack --regionREGION--stack-nameCLUSTER_STACK_NAME
更新をキャンセルすると、ロールバックがトリガーされます。ロールバックの 1 時間のタイムアウトを短縮することはできないため、最悪のシナリオでは、ロールバックが最終状態になるまで待つ必要があります。
ロールバックが成功した場合、障害の根本原因を修正したら、すぐに元のクラスターの更新を再試行できます。それ以外の場合はclusterStatus は UPDATE_FAILEDで、 cloudFormationStackStatus は です。 UPDATE_ROLLBACK_FAILEDを参照してください。