A4X Max、A4X、A4、A3 Ultra、A3 Mega、A3 High(8 個の GPU)インスタンスで、自力で解決できない問題が発生した場合は、ホストに障害があると報告できます。このような問題の例としては、クラスタ内のパフォーマンスの低下や、GPU 温度が常に高い状態などが挙げられます。
ホストに障害があると報告すると、Compute Engine はホスト メンテナンスを実行してコンピューティング インスタンスを自動的に修復します。
- A4 インスタンスと A3 Ultra インスタンスの場合、未使用の予約済み容量がある場合や、インスタンスのゾーンで容量が使用可能な場合は、メンテナンスの開始時に Compute Engine がインスタンスを別のホストに移行しようとします。ホストに障害があると報告することで、ワークロードのダウンタイムを最小限に抑えることができます。
- A3 Mega インスタンスと A3 High インスタンスの場合、Compute Engine はインスタンスを停止し、必要なホストの修復を行い、同じホストでインスタンスを再起動します。
コンピューティング インスタンスで GPU メモリまたは Xid エラーが発生し、ホストに障害があると報告する前に、GPU のリセットやインスタンスの再起動などの手動復旧措置で問題を解決できるかどうかを確認する場合は、 Xid メッセージを確認する をご覧ください。
このドキュメントでは、Slurm クラスタまたはその他のコンピューティング インスタンス ベースのクラスタに属する障害のあるホスト インスタンスを報告して修復する方法について説明します。Google Kubernetes Engine(GKE)クラスタで障害のあるホストを報告するには、 GKE を介して障害のあるホストを報告するをご覧ください。
制限事項
障害のあるホストを報告する場合、次の制限が適用されます。
ホストで実行されているコンピューティング インスタンスが次の条件をすべて満たしている場合にのみ、障害のあるホストを報告できます。
コンピューティング インスタンスが実行されている。
コンピューティング インスタンスが A4X Max、A4X、A4、A3 Ultra、A3 Mega、A3 High(8 個の GPU)マシンタイプを使用している。
コンピューティング インスタンスが 予約にバインドされたプロビジョニング モデルを使用している。
reportHostAsFaultyオペレーションの進行中にコンピューティング インスタンスを削除すると、reportHostAsFaultyオペレーションは失敗します。Google Cloud は、障害のあるホストの報告リクエストをすべて満たすためにベスト エフォートで試行します。ただし、容量の制約やレート制限により、リクエストが常に満たされるとは限りません。
始める前に
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
コンソールを使用してサービスと API にアクセスする場合、認証を設定する必要はありません。 Google Cloud Google Cloud
gcloud
コンソールで Cloud Shell をアクティブにします。 Google Cloud
コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。
REST
このページの REST API サンプルをローカル開発環境で使用するには、 gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。
外部 ID プロバイダ(IdP)を使用している場合は、まず フェデレーション ID を使用して gcloud CLI にログインする必要があります。
詳細については、 REST を使用して認証する 認証ドキュメントの Google Cloud をご覧ください。
必要なロール
障害のあるホストを報告するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- Compute インスタンス管理者(v1) (
roles/compute.instanceAdmin.v1) コンピューティング インスタンスまたはプロジェクトに対する -
Cloud Logging を使用して障害のあるホストの報告オペレーションの状態を表示するには:
ログ閲覧者 (
roles/logging.viewer) プロジェクトに対する
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、障害のあるホストを報告するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
障害のあるホストを報告するには、次の権限が必要です。
-
障害のあるホストの報告を作成する:
compute.instances.updateコンピューティング インスタンスに対する -
Logging を使用してオペレーションのリストを表示する:
logging.operations.listプロジェクトに対する -
Logging を使用してオペレーションの詳細を表示する: プロジェクトに対する
logging.operations.get -
Compute Engine のオペレーションの一覧を表示する:
プロジェクトに対する
compute.zoneOperations.list -
Compute Engine のオペレーションの詳細を表示する: プロジェクトに対する
compute.zoneOperations.describe
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
障害のあるホストの報告プロセスについて
コンピューティング インスタンスの障害のあるホストを報告した後、コンピューティング インスタンスが再起動するタイミングは、コンピューティング インスタンスが使用する予約で指定された予約オペレーション モードによって異なります。予約の運用モードを確認するには、 予約のreservationOperationalMode フィールドを表示します。
次の表に、利用可能な 2 つの予約オペレーション
モード(すべての容量モードとマネージド モード)の障害のあるホストのプロセスをまとめます。
すべての容量モード(ALL_CAPACITY) |
マネージド モード(HIGHLY_AVAILABLE_CAPACITY) |
|
|---|---|---|
| サポートされているマシンタイプ | A4X Max と A4X | A4、A3 Ultra、A3 Mega、A3 High |
| Faulty host report API のレート制限 | レート制限は適用されません。 | API の呼び出しにはレート制限が適用される場合があります。 |
| 障害のあるホストの報告プロセス |
すべての容量モードで実行されているコンピューティング インスタンスの障害のあるホストを報告すると、 次のようになります。
|
マネージド モードで実行されているコンピューティング インスタンスの障害のあるホストを報告すると、 次のようになります。
|
障害のあるホストを報告する前に問題をトラブルシューティングする
障害のあるホストを報告する前に、問題をトラブルシューティングして、ワークロードやクラスタ構成の問題ではなく、ハードウェアの問題であることを確認することをおすすめします。このアプローチは、ワークロードの不要なダウンタイムを防ぐのに役立ちます。
GPU のパフォーマンスの問題と遅延を確認する
パフォーマンスが遅い場合は、 遅延検出サービス を使用して、クラスタ内の他の VM よりもパフォーマンスが遅い可能性がある VM を特定します。
GPU 温度とサーマル違反をモニタリングする
ログにサーマル違反の警告が表示された場合や、DCGM によって報告された場合は、次のガイダンスを確認してください。
- 警告と重大なエラー: 現在の DCGM 診断では、
サーマル違反が重大度
monitorの警告として報告されることがあります。これは、GPU がワークロードを実行できる状態ではあるものの、モニタリングする必要があることを意味します。 - 誤検出: NVIDIA は、実際のサーマル問題の兆候が見られない GPU での サーマル違反レポートの頻度が増加していることを調査しています。
- 推奨事項: サーマル 警告が原因でホストに障害があると報告する前に、実際の GPU 温度が安全な上限を超えているかどうか、ワークロードのパフォーマンスに影響があるかどうかを確認してください。温度が安定していてパフォーマンスが正常な場合は、障害があると報告するのではなく、GPU をモニタリングすることをおすすめします。
GPU のトラブルシューティングの詳細については、 Compute Engine ドキュメントの GPU VM のトラブルシューティングをご覧ください。
障害のあるホストを報告する
障害のあるホストを報告する手順は次のとおりです。
コンピューティング インスタンスが実行されているホストを確認します 。
手順については、 コンピューティング インスタンスのトポロジを表示するをご覧ください。
省略可: ローカル SSD データをバックアップします 。インスタンスが停止すると、Compute Engine はインスタンスにアタッチされているローカル SSD ディスクのデータを自動的に破棄します。Compute Engine がローカル SSD データを破棄した後は、復元できません。
ローカル SSD データを保持する手順については、 ローカル SSD データのバックアップをご覧ください。
障害のあるホストを報告します。障害のあるホストを報告するには、次のいずれかのオプションを選択します。ホストの修復オペレーションは、障害のあるホストの報告オペレーションが完了してから 1 分以内に開始されます。障害のあるホストの報告オペレーションを開始した後にインスタンスが応答しなくなった場合は、少なくとも 15 分待ってからコンピューティング インスタンスを再起動することをおすすめします。
gcloud
障害のあるホストを報告するには、次の
gcloud compute instances report-host-as-faultyコマンドを使用します。gcloud compute instances report-host-as-faulty INSTANCE_NAME \ --async \ --disruption-schedule=IMMEDIATE \ --fault-reasons=behavior=FAULT_REASON,description=DESCRIPTION \ --zone=ZONE次のように置き換えます。
INSTANCE_NAME: コンピューティング インスタンスの名前。FAULT_REASON: コンピューティング インスタンスで発生したホストの問題のリスト(カンマ区切り)。例:ISSUE_1,ISSUE_2。指定できる値は次のとおりです。PERFORMANCE: コンピューティング インスタンスに接続されている GPU は、クラスタ内の他の GPU と比較してパフォーマンスに問題があります。ログに XID エラーが表示されず、Compute Engine でサイレント データ破損などの他の一般的な障害パターンが検出されていません。SILENT_DATA_CORRUPTION: コンピューティング インスタンスでデータ破損が発生しているものの、コンピューティング インスタンスの実行は継続されている場合。サイレント データ破損は、vCPU の不良、ソフトウェアのバグ、カーネルの問題などが原因で発生することがあります。UNRECOVERABLE_GPU_ERROR: XID で修復不可能な GPU エラーを特定しました。BEHAVIOR_UNSPECIFIED: コンピューティング インスタンスの問題が何であるか不明な場合。
DESCRIPTION: コンピューティング インスタンスに影響している問題の説明(XID 情報やパフォーマンスの問題の疑いなど)。ZONE: コンピューティング インスタンスが存在するゾーン。
REST
障害のあるホストを報告するには、
instances.reportHostAsFaultyメソッドに次のPOSTリクエストを送信します。障害のあるホストを報告するときに、複数の障害理由を一度に指定できます。たとえば、2 つの障害理由を指定するには、次のようにリクエストを送信します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/reportHostAsFaulty { "disruptionSchedule": "IMMEDIATE", "faultReasons": [ { "behavior": "FAULT_REASON_1", "description": "DESCRIPTION_1" }, { "behavior": "FAULT_REASON_2", "description": "DESCRIPTION_2" } ] }次のように置き換えます。
PROJECT_ID: コンピューティング インスタンスが存在するプロジェクトの ID。ZONE: コンピューティング インスタンスが存在するゾーン。INSTANCE_NAME: コンピューティング インスタンスの名前。FAULT_REASON_1、FAULT_REASON_2: コンピューティング インスタンスで発生した各ホストの問題。指定できる値は次のとおりです。PERFORMANCE: コンピューティング インスタンスに接続されている GPU は、クラスタ内の他の GPU と比較してパフォーマンスに問題があります。ログに XID エラーが表示されず、Compute Engine でサイレント データ破損などの他の一般的な障害パターンが検出されていません。SILENT_DATA_CORRUPTION: コンピューティング インスタンスでデータ破損が発生しているものの、コンピューティング インスタンスの実行は継続されている場合。サイレント データ破損は、vCPU の不良、ソフトウェアのバグ、カーネルの問題などが原因で発生することがあります。UNRECOVERABLE_GPU_ERROR: XID で修復不可能な GPU エラーを特定しました。BEHAVIOR_UNSPECIFIED: コンピューティング インスタンスの問題が何であるか不明な場合。
DESCRIPTION_1とDESCRIPTION_2: 指定した各ホストの問題の説明(XID 情報やパフォーマンスの問題の疑いなど)。
障害のあるホストを報告するオペレーションを確認する
障害のあるホストを報告すると、Compute Engine は一連のオペレーションを開始して、ホストに障害があることをマークし、ホストの修復の準備を行います。具体的には、障害のあるホストの報告オペレーション中に、次のプロセスが発生します。
ホストに障害があることをマークします。Compute Engine が障害のあるホストの報告オペレーションを作成します。次に、障害のあるホストの報告オペレーションは、一連のサブオペレーションを作成します。これらのサブオペレーションは、基盤となるホストに障害があるとマークします。
修理のためにホストを準備します。すべてのサブオペレーションが完了すると、障害のあるホストの報告オペレーションが開始されます。Compute Engine はコンピューティング インスタンスを停止し、障害のあるホストの修復オペレーションを開始します。コンピューティング インスタンスが使用する予約で指定された 予約の運用モードに基づいて、正常なホストが 使用可能な場合、Compute Engine はコンピューティング インスタンスを停止したままにするか、コンピューティング インスタンスの自動移行と再起動を試みます。
報告を完了し、ホストを修復します 。Compute Engine は障害のあるホストの報告オペレーションを完了し、ホストの修復オペレーションを実行します。
プロジェクト内の障害のあるホスト(compute.instances.reportHostAsFaulty)の報告オペレーションのステータスを追跡するには、次のいずれかのオプションを選択します。修復、移行、自動再起動の追跡に使用できる他のオペレーションの詳細については、Compute Engine ドキュメントのメンテナンスと再起動の動作とホスト メンテナンス イベントのモニタリングと計画をご覧ください。
コンソール(インスタンス オペレーション)
コンソールで、[オペレーション] ページに移動します。 Google Cloud
表示されたテーブルで、報告したコンピューティング インスタンスを探します。
コンピューティング インスタンスを含む行の [ステータス] 列で、障害のあるホストの報告オペレーションのステータスを確認できます。オペレーションが完了すると、値は Done になります。
省略可: Compute Engine がコンピューティング インスタンスを再起動したかどうかを確認するには、インスタンスの詳細を表示します。
コンソール(コンピューティング インスタンスのログ)
コンソールで、[ログ エクスプローラ] ページに移動します。 Google Cloud
[クエリを表示] 切り替えボタンがオンになっていることを確認します。
クエリエディタで以下のクエリを入力します。
resource.type="gce_instance" AND protoPayload.methodName=~"compute\.instances\.reportHostAsFaulty"[クエリを実行] をクリックします。[クエリ結果] ペインにクエリ結果が表示されます。
gcloud
プロジェクト内の障害のあるホストの報告オペレーションのステータスを表示するには、
gcloud compute operations listコマンド を--filterフラグをoperationType:reportHostAsFaultyに設定して使用します。gcloud compute operations list --filter="operationType:reportHostAsFaulty"特定の障害のあるホストのオペレーションの詳細を表示する場合は、 次の
gcloud compute operations describeコマンドを使用します。gcloud compute operations describe OPERATION_NAME \ --zone="ZONE"次のように置き換えます。
OPERATION_NAME: オペレーションの名前。ZONE: オペレーションが存在するゾーン。
REST
プロジェクト内の障害のあるホストのオペレーションのステータスを表示するには、zoneOperations.list メソッドに GET リクエストを送信します。リクエスト URL に、items.operationType:reportHostAsFaulty に設定された filter クエリ パラメータを含めます。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations&filter=items.operationType:reportHostAsFaulty
次のように置き換えます。
PROJECT_ID: オペレーションの名前。ZONE: オペレーションが存在するゾーン。
次のステップ
- 障害のあるホストを報告する際に問題が発生した場合は、faulty host API のトラブルシューティングをご覧ください。