查看计算实例的拓扑

本文档介绍了如何查看在预留容量块上运行的 A4X Max、A4X、A4、A3 Ultra、A3 Mega 和 A3 High(8 个 GPU)实例的物理位置。 创建 A4X Max、A4X、A4、A3 Ultra、A3 Mega 和 A3 High(8 个 GPU)实例后,您可以查看它们的排列方式,以验证哪些 Compute Engine 实例彼此最靠近。了解实例的邻近性后,您可以执行以下操作:

  • 调整应用或工作负载设计,以进一步缩短网络延迟时间。

  • 排查经常通信的计算实例的网络延迟或性能问题(如果它们意外地相距很远)。

如需查看 Cluster Director 中集群的拓扑,请参阅 查看集群拓扑

如果您使用的是 通用 GPU,则不支持 physicalHostTopology 元数据。请改为执行以下操作来查看实例拓扑:

  • 使用布置政策进行验证:检查 紧凑布置政策 的状态,以验证实例是否已成功共置。
  • 查看实例可用区 :拓扑主要在可用区级而非块或子块级进行管理。您可以查看实例的可用区,以了解它们的大致位置。

准备工作

  • 查看 AI Hypercomputer 功能中使用的术语
  • 选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    gcloud

    安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI。 登录后, 运行以下命令来初始化 Google Cloud CLI:

    gcloud init

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的 凭证。

      安装 Google Cloud CLI,然后 使用联合身份登录 gcloud CLI

    如需了解详情,请参阅 身份验证文档 中的 Google Cloud 使用 REST 时进行身份验证。

所需角色

如需获得查看计算实例拓扑所需的权限,请让您的管理员为您授予项目的Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含 查看计算实例拓扑所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需查看计算实例拓扑,您需要具备以下权限:

  • 如需查看实例的详细信息: compute.instances.get 项目的
  • 如需查看实例列表: compute.instances.list 项目的

您也可以使用自定义角色或其他预定义角色来获取这些权限。

了解计算实例拓扑

当您查看使用 集群式 GPU 机器系列的运行中计算实例的详细信息时,可以通过检查 物理主机 字段 (对于 Google Cloud 控制台)或 physicalHostTopology 字段(对于 gcloud CLI、Compute Engine API 或通过 查询元数据键)来了解 其在集群中的物理位置。这些字段包含以下子字段:

  • cluster:集群的全局名称。

  • block:实例所在的预留块的组织专用 ID。

  • sub-block:实例所在的子块的组织专用 ID。

  • host:实例在其上运行的主机的组织专用 ID。

如需了解实例的邻近性,请比较实例之间的物理主机physicalHostTopology 字段的值。实例共享的子字段越多,它们在物理位置上就越靠近。

您还可以查看在其中创建计算实例的预留的拓扑。预留和实例的 physicalHostTopology 字段显示相同的 blockcluster 字段。例如,当您查看特定的预留块时,可以查看部署在该块中的所有实例的名称和子块。如需详细了解预留的 拓扑,请参阅 查看预留的拓扑

查看计算实例拓扑

如需一次查看多个运行中计算实例的物理位置,请使用 REST API。否则,请选择以下任一选项:

控制台

  1. 在 Google Cloud 控制台中,前往虚拟机实例页面。

    转到虚拟机实例

  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"
    }
    

后续步骤