H4D クラスタ トポロジを表示する

予約済みの容量ブロックに H4D クラスタを作成すると、クラスタを構成する VM の物理的な配置を確認できます。VM の構成を把握すると、次のことができます。

  • ネットワーク レイテンシをさらに最小限に抑えるように、アプリケーションまたはワークロードの設計を調整する。(特に、Cloud RDMA を活用するワークロードの場合)
  • 頻繁に通信する VM のネットワーク レイテンシやパフォーマンスの問題をトラブルシューティングする。

始める前に

VM トポロジ情報を表示するために必要な権限があることを確認します。

必要なロール

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

この事前定義ロールには、VM トポロジの表示に必要なすべての権限が含まれています。必要な権限を正確に確認するには、[必要な権限] セクションを開いてください。

VM トポロジを表示するには、次の権限が必要です。

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

VM のトポロジについて

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

  • cluster: クラスタのグローバル名。
  • block: VM が配置されている予約済みブロックの組織固有の ID。
  • sub-block: VM が配置されているサブブロックの組織固有の ID。
  • host: VM が実行されているホストの組織固有の ID。

これらの用語の定義については、クラスタの用語をご覧ください。

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

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

VM のトポロジを表示する

複数の実行中の VM の物理的なロケーションを確認するには、次のいずれかのオプションを選択します。

コンソール

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

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

  • [名前] 列で、VM の名前をクリックして詳細を表示します。VM の詳細を示すページが表示されます。デフォルトでは [詳細] タブが選択されます。

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

Google Cloud CLI

実行中の VM の物理的なロケーションを表示するには、flatten=resourceStatus.physicalHostTopologygcloud compute instances describe コマンドを使用します。

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

  • VM_NAME: VM 名。
  • ZONE: VM が存在するゾーン

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

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

REST

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

  • すべてのゾーンの VM のリストを表示するには、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
  • 特定のゾーンにある VM のリストを表示するには、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: VM が存在するプロジェクトの ID。* ZONE: VM が存在するゾーン。

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

{
  "items": [
    {
      "name": "vm-01",
      "machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west4-b/machineTypes/h4d-highmem-192-lssd",
      "resourceStatus": {
        "physicalHostTopology": {
          "cluster": "europe-west4-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/h4d-highmem-192-lssd",
      "resourceStatus": {
        "physicalHostTopology": {
          "cluster": "europe-west4-cluster-jfhb",
          "block": "3e3056e23cf91a5cb4a8621b6a52c100",
          "subBlock": "1fc18636cbd4abd623553784ca2c174e",
          "host": "2326279b5ecdfc545fd5e39167698168"
        }
      }
    },
    ...
  ]
}

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

メタデータキーをクエリして VM のトポロジを表示する

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

Linux VM

  1. Linux VM に接続します
  2. Linux VM から、curl ツールを使用してクエリを作成します。Linux VM で physical_host_topology メタデータキーにクエリを実行するには、次のコマンドを実行します。
curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology

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

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

Windows VM が必要。

  1. Windows VM に接続します
  2. Windows VM から、Invoke-RestMethod を使用してクエリを作成します。Windows VM で physical_host_topology メタデータキーにクエリを実行するには、次のコマンドを実行します。
$value = (Invoke-RestMethod `
  -Headers @{'Metadata-Flavor' = 'Google'} `
  -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology")
$value

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

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

次のステップ