このドキュメントでは、実行中の Compute Engine インスタンスのトポロジを表示する方法について説明します。コンピューティング インスタンスを作成して起動すると、ゾーン内の物理的な場所を確認して、クラスタのトポロジを把握できます。この情報は、次のことに役立ちます。
ジョブの整理: ワークロードの設計を調整して、たとえば、 通信量の多いタスクを物理的に最も近いコンピューティング インスタンスに配置できます。
問題のトラブルシューティング: 特定のコンピューティング インスタンスが予期せず離れた場所に配置されている場合は、ネットワーク レイテンシやパフォーマンス の問題を調査できます。
プロジェクトで実行されているコンピューティング インスタンスを確認するには、 コンピューティング インスタンスのリストを表示します。
制限事項
次の要件を 1 つ以上満たすコンピューティング インスタンスのトポロジのみを表示できます。
コンピューティング インスタンスは、次のいずれかのマシンタイプを使用します。
A4X Max
A4X
A4
A3 Ultra
A3 Mega
A3 High(8 個の GPU)
H4D
コンピューティング インスタンスは、 コンパクト プレースメント ポリシーを指定します。
コンピューティング インスタンスは、 高スループット(
HIGH_THROUGHPUT)タイプの ワークロード ポリシーを指定するマネージド インスタンス グループ(MIG)の一部です。
コンピューティング インスタンスのトポロジについて
各コンピューティング インスタンスは、サーバー
ブロックにある物理サーバー( ホスト)で実行されます。各ブロックはクラスタに属し、クラスタはゾーン内のデータセンターに存在します。Cloud de Confiance 特定の要件を満たすコンピューティングインスタンスを表示すると、同じ要件を満たす他のコンピューティングインスタンスとの関係でトポロジを把握できます。具体的には、各コンピューティング インスタンスの physicalHostTopology
フィールドで次のサブフィールドを確認することで、コンピューティング インスタンスの物理的な場所を把握できます。
クラスタ(
cluster): コンピューティング インスタンスが存在するクラスタのグローバル名。 クラスタは、複数のブロックにまたがることができ、単一のリソースプールとして連携する複数のホストの高レベルの論理グループです。ブロック(
block): コンピューティング インスタンスが存在するブロックの組織固有の ID。 ブロックは、グループ化された複数のホストのコレクションです。同じブロック内のコンピューティング インスタンスでは、ネットワーク レイテンシが低くなります。サブブロック(
subBlock): コンピューティング インスタンスが存在するサブブロックの組織固有の ID。 サブブロックは、ブロック内の物理的な細分化であり、単一の物理エンクロージャ内のホストをグループ化します。同じサブブロック内のコンピューティング インスタンスでは、同じブロック内のコンピューティング インスタンスよりもネットワーク レイテンシが低くなります。ホスト(
host): コンピューティング インスタンスが存在するホストの組織固有の ID。 ホストは、コンピューティング インスタンスが実行される単一の物理サーバーです。各ホストには、独自の物理 vCPU、メモリ、ストレージ、ネットワーク インターフェース カード(NIC)があります。隣接するホストのコンピューティング インスタンスでは、可能な限り低いネットワーク レイテンシが発生します。
2 つの実行中のコンピューティング インスタンスが共有するサブフィールドが多いほど、物理的に近くなります。この情報は、ネットワーク レイテンシを最小限に抑えるようにジョブを整理したり、より復元力の高いシステムを設計したりすることで、ワークロードを最適化するのに役立ちます。
始める前に
-
まだ設定していない場合は、認証を設定します。認証では、 Cloud de Confiance by S3NS サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
コンソールを使用してサービスと API にアクセスする場合、認証を設定する必要はありません。 Cloud de Confiance Cloud de Confiance by S3NS
gcloud
-
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。 ログイン後、 初期化するには、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
-
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、 gcloud CLI に指定した認証情報を使用します。
詳細については、 REST を使用して認証する 認証ドキュメントの Cloud de Confiance をご覧ください。
必要なロール
コンピューティング インスタンスのトポロジを確認するために必要な権限を取得するには、プロジェクトに対するCompute 閲覧者 (roles/compute.viewer)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには コンピューティングインスタンスのトポロジを確認するために必要な権限が含まれています。必要とされる正確な権限については、必要な権限セクションを開いてご確認ください。
必要な権限
コンピューティング インスタンスのトポロジを確認するには、次の権限が必要です。
-
コンピューティング インスタンスの詳細を表示する:
compute.instances.getプロジェクトに対する -
コンピューティング インスタンスのリストを表示する:
compute.instances.listプロジェクトに対する
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
コンピューティング インスタンスのトポロジを確認する
実行中のコンピューティング インスタンスのトポロジを確認するには、次のいずれかの方法を使用します。
コンソール、gcloud CLI、または REST を使用してコンピューティング インスタンスのトポロジを確認する Cloud de Confiance
複数のコンピューティング インスタンスのトポロジを同時に表示するには、REST API を使用します。または、次のオプションのいずれかを選択します。
コンソール
Cloud de Confiance コンソールで、[VM インスタンス] ページに移動します。
[名前] 列で、詳細を表示するコンピューティング インスタンスの名前をクリックします。インスタンスの詳細を示すページが表示され、[詳細] タブが選択されます。
[基本情報] セクションで、[物理ホスト] フィールドの値を確認します。
gcloud
実行中のコンピューティング インスタンスのトポロジを表示するには、
gcloud compute instances describe コマンド
を --flatten=resourceStatus.physicalHostTopology フラグとともに使用します。
gcloud compute instances describe INSTANCE_NAME \
--flatten=resourceStatus.physicalHostTopology \
--zone=ZONE
次のように置き換えます。
INSTANCE_NAME: コンピューティング インスタンス名。ZONE: コンピューティング インスタンスが存在するゾーン。
出力は次のようになります。
---
block: 3e3056e23cf91a5cb4a8621b6a52c100
cluster: europe-west1-cluster-jfhb
host: 1215168a4ecdfb434fd4d28056589059
subBlock: 0fc09525cbd5abd734342893ca1c083f
REST
実行中のコンピューティング インスタンスのトポロジを表示するには、次のいずれかの GET
リクエストを行います。リクエストを行う場合は、fields クエリ パラメータを含めて、コンピューティング
インスタンスのname、machineType、physicalHostTopology
フィールドのみを表示するように指定する必要があります。また、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: コンピューティング インスタンスが存在するゾーン。
出力は次のようになります。次の例では、コンピューティング インスタンス vm-01 と vm-02 は同じブロックに配置されています。
{
"items": [
{
"name": "vm-01",
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
"resourceStatus": {
"physicalHostTopology": {
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"cluster": "europe-west1-cluster-jfhb",
"host": "1215168a4ecdfb434fd4d28056589059",
"subBlock": "0fc09525cbd5abd734342893ca1c083f"
}
}
},
{
"name": "vm-02",
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/europe-west1-b/machineTypes/a3-ultragpu-8g",
"resourceStatus": {
"physicalHostTopology": {
"block": "3e3056e23cf91a5cb4a8621b6a52c100",
"cluster": "europe-west1-cluster-jfhb",
"host": "2326279b5ecdfc545fd5e39167698168",
"subBlock": "1fc18636cbd4abd623553784ca2c174e"
}
}
},
...
]
}
コンピューティング インスタンスのリストを絞り込む場合は、フィルタ
式を
filter クエリ パラメータで編集します。
メタデータキーにクエリを実行してコンピューティング インスタンスのトポロジを確認する
physical_host_topology メタデータキーにクエリを実行して、実行中のコンピューティング
インスタンスのトポロジを表示するには、次のいずれかのオプションを選択します。
Linux インスタンス
Linux インスタンスに接続します。
physical_host_topologyメタデータキーにcurlクエリを実行します。user@myinst:~$ curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology出力は次のようになります。
{ "block": "3e3056e23cf91a5cb4a8621b6a52c100", "cluster": "europe-west1-cluster-jfhb", "host": "2326279b5ecdfc545fd5e39167698168", "subBlock": "1fc18636cbd4abd623553784ca2c174e" }
Windows インスタンス
Windows インスタンスに接続します。
Invoke-RestMethodコマンドを使用して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出力は次のようになります。
{ "block": "3e3056e23cf91a5cb4a8621b6a52c100", "cluster": "europe-west1-cluster-jfhb", "host": "2326279b5ecdfc545fd5e39167698168", "subBlock": "1fc18636cbd4abd623553784ca2c174e" }
次のステップ
コンピューティング インスタンスの ホストイベントの詳細を確認する。