Cómo ver la topología de una instancia de procesamiento

En este documento, se explica cómo ver la ubicación física, también conocida como topología, de tus instancias de Compute Engine en una zona. Para ver la topología de un clúster en Cluster Director, consulta Cómo ver la topología del clúster.

Después de crear instancias de A4X Max, A4X, A4, A3 Ultra, A3 Mega y A3 High (8 GPUs), o bien instancias de procesamiento que especifican una política de posición compacta o una política de carga de trabajo, puedes ver la ubicación física de tus instancias de procesamiento en relación con las demás. Cuando conoces la proximidad de tus instancias de procesamiento, puedes ajustar el diseño de tu aplicación o carga de trabajo para ejecutar trabajos sensibles a la latencia en las instancias de procesamiento que estén más cerca entre sí. En el caso de todos los demás tipos de instancias de procesamiento, puedes ver el ID del host en el que se ejecutan después de exponer el ID del host.

Antes de comenzar

  • Revisa la terminología de la topología de instancias de procesamiento.
  • Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:

    Console

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud , no necesitas configurar la autenticación.

    gcloud

    En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

    REST

    Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

      Instala Google Cloud CLI.

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para ver la topología de la instancia de procesamiento, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) (roles/compute.instanceAdmin.v1) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para ver la topología de la instancia de procesamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para ver la topología de la instancia de procesamiento:

  • Para ver los detalles de una instancia de procesamiento: compute.instances.get en el proyecto
  • Para ver una lista de instancias de procesamiento, usa compute.instances.list en el proyecto.

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Comprende la topología de las instancias de procesamiento

Para comprender la ubicación física de una instancia de procesamiento en un clúster, consulta el campo Host físico en la consola de Google Cloud . Si usas gcloud CLI, la API de Compute Engine o una consulta de claves de metadatos, verifica el campo physicalHostTopology. Estos campos contienen los siguientes subcampos:

  • cluster: Es el nombre global del clúster.

  • block: Es el ID específico de la organización del bloque reservado en el que se encuentra la instancia.

  • sub-block: Es el ID específico de la organización del subbloque en el que se encuentra la instancia.

  • host: Es el ID específico de la organización del host en el que se ejecuta la instancia.

Para comprender la proximidad de las instancias, compara los valores de los campos Host físico o physicalHostTopology entre las instancias de procesamiento. Cuantos más subcampos compartan las instancias de procesamiento, más cerca estarán entre sí.

También puedes ver la topología de una reserva en la que se crean las instancias de procesamiento. Los campos physicalHostTopology de una reserva y una instancia muestran los mismos campos block y cluster. Por ejemplo, cuando ves un bloque reservado específico, puedes ver el nombre y el subbloque de todas las instancias de procesamiento que se implementan en el bloque. Para obtener más información sobre la topología de una reserva, consulta Cómo ver la topología de una reserva.

Cómo ver la topología de una instancia de procesamiento

Para ver la ubicación física de varias instancias de procesamiento en ejecución a la vez, usa la API de REST. De lo contrario, selecciona cualquiera de las siguientes opciones:

Console

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. En la columna Nombre, haz clic en el nombre de la instancia de procesamiento cuyos detalles deseas ver. Aparecerá una página con los detalles de la instancia de procesamiento y se seleccionará la pestaña Detalles.

  3. En la sección Información básica, verifica el valor del campo Host físico.

gcloud

Para ver la ubicación física de una instancia de procesamiento en ejecución, usa el comando gcloud compute instances describe con la marca --flatten=resourceStatus.physicalHostTopology:

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

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.

  • ZONE: Es la zona en la que existe la instancia de procesamiento.

El resultado es similar a lo siguiente:

  • Si puedes ver el ID del clúster, el bloque, el subbloque y el host de una instancia de procesamiento, el resultado será similar al siguiente:

    ---
    cluster: europe-west1-cluster-jfhb
    block: 3e3056e23cf91a5cb4a8621b6a52c100
    subBlock: 0fc09525cbd5abd734342893ca1c083f
    host: 1215168a4ecdfb434fd4d28056589059
    
  • Si solo puedes ver el ID del host después de exponerlo, el resultado es similar al siguiente:

    ---
    cluster: null
    block: null
    subBlock: null
    host: 1215168a4ecdfb434fd4d28056589059
    

REST

Para ver la ubicación física de tus instancias de procesamiento en ejecución, realiza una de las siguientes solicitudes GET. Cuando realices una solicitud, debes incluir el parámetro de búsqueda fields y especificar que solo se muestren los campos name, machineType y physicalHostTopology de una instancia de procesamiento. También debes incluir el parámetro de consulta filter y especificar que solo se listen las instancias de procesamiento en ejecución.

  • Para ver una lista de tus instancias en todas las zonas, usa el método 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
    
  • Para ver una lista de tus instancias en una zona específica, usa el método 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
    

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que existen las instancias de procesamiento.

  • ZONE: Es la zona en la que existen las instancias de procesamiento.

El resultado es similar a lo siguiente:

  • Si puedes ver el ID del clúster, el bloque, el subbloque y el host de tus instancias de procesamiento, el resultado será similar al siguiente:

    {
      "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"
            }
          }
        },
        ...
      ]
    }
    
  • Si solo puedes ver el ID de tus instancias de procesamiento del host después de exponerlo, el resultado será similar al siguiente:

    {
      "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": null,
              "block": null,
              "subBlock": null,
              "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": null,
              "block": null,
              "subBlock": null,
              "host": "2326279b5ecdfc545fd5e39167698168"
            }
          }
        },
        ...
      ]
    }
    

Si deseas definir mejor tu lista de instancias de procesamiento, edita la expresión de filtro en el parámetro de consulta filter.

Cómo ver la topología de la instancia de procesamiento con una consulta de clave de metadatos

Para ver la ubicación física de una instancia de procesamiento en ejecución con una consulta a la clave de metadatos physical_host_topology, selecciona una de las siguientes opciones:

Instancias de Linux

  1. Conéctate a tu instancia de procesamiento de Linux.

  2. Desde tu instancia de Linux, crea una consulta con la herramienta de curl. Para consultar la clave de metadatos physical_host_topology en instancias de Linux, ejecuta el siguiente comando:

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

    El resultado es similar a lo siguiente:

    • Si puedes ver el ID del clúster, el bloque, el subbloque y el host de una instancia de procesamiento, el resultado será similar al siguiente:

      {
        "cluster": "europe-west1-cluster-jfhb",
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "subBlock": "0fc09525cbd5abd734342893ca1c083f",
        "host": "1215168a4ecdfb434fd4d28056589059"
      }
      
    • Si solo puedes ver el ID del host después de exponerlo, el resultado será similar al siguiente:

      {
        "cluster": null,
        "block": null,
        "subBlock": null,
        "host": "1215168a4ecdfb434fd4d28056589059"
      }
      

Instancias de Windows

  1. Conéctate a tu instancia de procesamiento de Windows.

  2. Desde tu instancia de Windows, crea una consulta con el comando Invoke-RestMethod. Para consultar la clave de metadatos physical_host_topology en instancias de Windows, ejecuta el siguiente comando:

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

    El resultado es similar a lo siguiente:

    • Si puedes ver el ID del clúster, el bloque, el subbloque y el host de una instancia de procesamiento, el resultado será similar al siguiente:

      {
        "cluster": "europe-west1-cluster-jfhb",
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "subBlock": "0fc09525cbd5abd734342893ca1c083f",
        "host": "1215168a4ecdfb434fd4d28056589059"
      }
      
    • Si solo puedes ver el ID del host después de exponerlo, el resultado será similar al siguiente:

      {
        "cluster": null,
        "block": null,
        "subBlock": null,
        "host": "1215168a4ecdfb434fd4d28056589059"
      }
      

¿Qué sigue?