予約済みの容量ブロックに H4D クラスタを作成すると、クラスタを構成する VM の物理的な配置を確認できます。VM の構成を把握すると、次のことが可能になります。
- アプリケーションまたはワークロードの設計を調整して、ネットワーク レイテンシをさらに最小限に抑えます。特に、Cloud RDMA を活用するワークロードでは、この調整が重要です。
- 頻繁に通信する VM のネットワーク レイテンシやパフォーマンスの問題をトラブルシューティングします。
始める前に
VM トポロジ情報を表示するために必要な権限があることを確認します。
必要なロール
VM トポロジを表示するために必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、VM トポロジの表示に必要なすべての権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
VM トポロジを表示するには、次の権限が必要です。
- VM の詳細を表示する: プロジェクトに対する
compute.instances.get - VM のリストを表示する: プロジェクトに対する
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 の詳細を示すページが表示されます。デフォルトでは [詳細] タブが選択されています。
[基本情報] セクションで、[物理ホスト] フィールドの値を確認します。
Google Cloud CLI
実行中の VM の物理的な位置を表示するには、flatten=resourceStatus.physicalHostTopology を指定して gcloud compute instances describe コマンドを使用します。
次のように置き換えます。
VM_NAME: VM 名。ZONE: VM が存在するゾーン。
出力は次のようになります。
---
cluster: europe-west1-cluster-jfhb
block: 3e3056e23cf91a5cb4a8621b6a52c100
subBlock: 0fc09525cbd5abd734342893ca1c083f
host: 1215168a4ecdfb434fd4d28056589059
REST
実行中の VM の物理的な位置を表示するには、次のいずれかの GET リクエストを行います。リクエストを行う場合は、fields クエリ パラメータを含め、VM の name、machineType、physicalHostTopology フィールドのみを表示するように指定する必要があります。また、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
- Linux VM に接続します。
- 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
- Windows VM に接続します。
- 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"
}