コンピューティング インスタンスのトポロジを表示する

このドキュメントでは、予約済み容量ブロックで実行される A4X Max、A4X、A4、A3 Ultra、A3 Mega、A3 High(GPU 数 8)インスタンスの物理的なロケーションを表示する方法について説明します。 A4X Max、A4X、A4、A3 Ultra、A3 Mega、A3 High(GPU 数 8)インスタンスを 作成したら、 それらの配置を表示して、どの Compute Engine インスタンスが互いに最も近いかを確認できます。インスタンスの近接性を把握することで、次のことが可能になります。

  • ネットワーク レイテンシをさらに最小限に抑えるように、アプリケーションまたはワークロードの設計を調整する。

  • 頻繁に通信するコンピューティング インスタンスが予期せず離れた場所に配置されている場合は、ネットワーク レイテンシやパフォーマンスの問題をトラブルシューティングする。

Cluster Director でクラスタのトポロジを表示するには、 クラスタ トポロジを表示するをご覧ください。

始める前に

必要なロール

コンピューティング インスタンスのトポロジを表示するために必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1) roles/compute.instanceAdmin.v1)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには コンピューティング インスタンスのトポロジを表示するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

コンピューティング インスタンスのトポロジを表示するには、次の権限が必要です。

  • インスタンスの詳細を表示する: compute.instances.get プロジェクトに対する
  • インスタンスのリストを表示する: compute.instances.list プロジェクトに対する

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

コンピューティング インスタンスのトポロジについて

実行中のコンピューティング インスタンスの詳細を表示するときに、クラスタ内の物理的なロケーションを把握できます。これには、物理ホスト フィールド( Google Cloud コンソールの場合)、または physicalHostTopology フィールド(gcloud CLI、Compute Engine API の場合)、メタデータキーをクエリすることで確認できます。これらのフィールドには次のサブフィールドが含まれます。

  • cluster: クラスタのグローバル名。

  • block: インスタンスが配置されている予約済みブロックの組織固有の ID。

  • sub-block: インスタンスが配置されているサブブロックの組織固有の ID。

  • host: インスタンスが実行されているホストの組織固有の ID。

インスタンスの近接性を把握するには、インスタンス間の [物理ホスト] フィールドまたは physicalHostTopology フィールドの値を比較します。インスタンスが共有するサブフィールドが多いほど、物理的に近い場所に配置されます。

コンピューティング インスタンスが作成される予約のトポロジを表示することもできます。予約とインスタンスの physicalHostTopology フィールドには、同じ block フィールドと cluster フィールドが表示されます。たとえば、特定の予約済みブロックを表示すると、そのブロックにデプロイされているすべてのインスタンスの名前とサブブロックが表示されます。予約のトポロジの詳細については、 予約のトポロジを表示する をご覧ください

コンピューティング インスタンスのトポロジを表示する

複数の実行中のコンピューティング インスタンスの物理的なロケーションを一度に表示するには、REST API を使用します。それ以外の場合は、次のいずれかのオプションを選択します。

コンソール

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. [名前] 列で、詳細を表示するインスタンスの名前をクリックします。インスタンスの詳細を示すページが表示され、[詳細] タブが選択されます。

  3. [基本情報] セクションで、[物理ホスト] フィールドの値を確認します。

gcloud

実行中のコンピューティング インスタンスの物理的なロケーションを表示するには、 gcloud compute instances describe コマンド--flatten=resourceStatus.physicalHostTopology フラグとともに使用します。

gcloud compute instances describe INSTANCE_NAME \
    --flatten=resourceStatus.physicalHostTopology \
    --zone=ZONE

次のように置き換えます。

  • INSTANCE_NAME: インスタンス名。

  • ZONE: インスタンスが存在するゾーン。

出力は次のようになります。

---
cluster: europe-west1-cluster-jfhb
block: 3e3056e23cf91a5cb4a8621b6a52c100
subBlock: 0fc09525cbd5abd734342893ca1c083f
host: 1215168a4ecdfb434fd4d28056589059

REST

実行中のコンピューティング インスタンスの物理的なロケーションを表示するには、次のいずれかの GET リクエストを行います。リクエストを行う場合は、fields クエリ パラメータを含め、インスタンスの namemachineTypephysicalHostTopology フィールドのみを表示するように指定する必要があります。また、filter クエリ パラメータを含めて、実行中のインスタンスのみを一覧表示するように指定する必要があります。

  • すべてのゾーンのインスタンスの一覧を表示するには: instances.aggregatedList メソッド

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    
  • 特定のゾーンにあるインスタンスのリストを表示するには: instances.list メソッド

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?fields=items.name,items.machineType,items.resourceStatus.physicalHostTopology&filter=status=RUNNING
    

次のように置き換えます。

  • PROJECT_ID: インスタンスが存在するプロジェクトの ID。

  • ZONE: インスタンスが存在するゾーン。

出力は次のようになります。

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "physicalHostTopology": {
          "cluster": "europe-west1-cluster-jfhb",
          "block": "3e3056e23cf91a5cb4a8621b6a52c100",
          "subBlock": "0fc09525cbd5abd734342893ca1c083f",
          "host": "1215168a4ecdfb434fd4d28056589059"
        }
      }
    },
    {
      "name": "vm-02",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
      "resourceStatus": {
        "physicalHostTopology": {
          "cluster": "europe-west1-cluster-jfhb",
          "block": "3e3056e23cf91a5cb4a8621b6a52c100",
          "subBlock": "1fc18636cbd4abd623553784ca2c174e",
          "host": "2326279b5ecdfc545fd5e39167698168"
        }
      }
    },
    ...
  ]
}

インスタンスのリストを絞り込む場合は、フィルタ 式を filterクエリ パラメータで編集します。

メタデータキーをクエリしてコンピューティング インスタンスのトポロジを表示する

physical_host_topology メタデータキーにクエリを実行して実行中のコンピューティング インスタンスの物理的なロケーションを表示するには、次のいずれかのオプションを選択します。

Linux インスタンス

  1. Linux コンピューティング インスタンスに接続します。

  2. Linux インスタンスから、 curl ツールを使用してクエリを作成します。Linux インスタンスで physical_host_topology メタデータキーにクエリを実行するには、次のコマンドを実行します。

    user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology
    

    出力は次のようになります。

    {
      "cluster": "europe-west1-cluster-jfhb",
      "block": "3e3056e23cf91a5cb4a8621b6a52c100",
      "subBlock": "1fc18636cbd4abd623553784ca2c174e",
      "host": "2326279b5ecdfc545fd5e39167698168"
    }
    

Windows インスタンス

  1. Windows コンピューティング インスタンスに接続します。

  2. Windows インスタンスから、 Invoke-RestMethod コマンドを使用してクエリを作成します。 Windows インスタンスで physical_host_topology メタデータキーにクエリを実行するには、次のコマンドを実行します。

    PS C:\> 
    $value = (Invoke-RestMethod `
            -Headers @{'Metadata-Flavor' = 'Google'} `
            -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology")
    $value
    

    出力は次のようになります。

    {
      "cluster": "europe-west1-cluster-jfhb",
      "block": "3e3056e23cf91a5cb4a8621b6a52c100",
      "subBlock": "1fc18636cbd4abd623553784ca2c174e",
      "host": "2326279b5ecdfc545fd5e39167698168"
    }
    

次のステップ