Cómo ver la topología de instancias de Compute Engine

En este documento, se explica cómo ver la topología de tus instancias de Compute Engine en ejecución. Después de crear y, luego, iniciar instancias de procesamiento, puedes ver su ubicación física en una zona para comprender la topología de tu clúster. Esta información te ayuda a hacer lo siguiente:

  • Organiza los trabajos: Puedes ajustar el diseño de tu carga de trabajo para, por ejemplo, colocar las tareas que requieren mucha comunicación en las instancias de procesamiento más cercanas físicamente.

  • Soluciona problemas: Puedes investigar problemas de latencia o rendimiento de la red si instancias de procesamiento específicas están ubicadas inesperadamente lejos unas de otras.

Para verificar qué instancias de procesamiento se ejecutan en tu proyecto, consulta una lista de las instancias de procesamiento.

Limitaciones

Solo puedes ver la topología de las instancias de procesamiento que cumplen con uno o más de los siguientes requisitos:

Información sobre la topología de las instancias de procesamiento

Cada instancia de procesamiento se ejecuta en un servidor físico, un host, que se encuentra en un bloque de servidores. Cada bloque pertenece a un clúster, que reside en un centro de datos dentro de unaCloud de Confiance zona. Cuando ves instancias de procesamiento que cumplen con requisitos específicos, puedes comprender su topología en relación con otras instancias de procesamiento que cumplen con los mismos requisitos. Específicamente, puedes comprender la ubicación física de tus instancias de procesamiento verificando los siguientes subcampos en el campo physicalHostTopology de cada instancia de procesamiento:

  • Clúster (cluster): Es el nombre global del clúster en el que existe tu instancia de procesamiento. Un clúster es una agrupación lógica de alto nivel de varios hosts, que puede abarcar varios bloques y que funcionan en conjunto como un solo grupo de recursos.

  • Bloque (block): Es el ID específico de la organización del bloque en el que existe tu instancia de procesamiento. Un bloque es una colección de varios hosts agrupados. Las instancias de procesamiento del mismo bloque experimentan una latencia de red baja.

  • Sub-block (subBlock): Es el ID específico de la organización del subbloque en el que existe tu instancia de procesamiento. Un subbloque es una subdivisión física dentro de un bloque que agrupa hosts dentro de un solo gabinete físico. Las instancias de procesamiento en el mismo subbloque experimentan una latencia de red más baja que las instancias de procesamiento en el mismo bloque.

  • Host (host): Es el ID específico de la organización del host en el que existe tu instancia de procesamiento. Un host es un solo servidor físico en el que se ejecutan tus instancias de procesamiento. Cada host tiene su propia CPU virtual, memoria, almacenamiento y tarjeta de interfaz de red (NIC) físicos. Las instancias de procesamiento en hosts adyacentes experimentan la menor latencia de red posible.

Cuantos más subcampos compartan dos instancias de procesamiento en ejecución, más cerca estarán físicamente entre sí. Esta información te ayuda a optimizar tus cargas de trabajo organizando tus trabajos para que puedas minimizar la latencia de la red o diseñando sistemas más resilientes.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los servicios y las APIs de Cloud de Confiance by S3NS . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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 Cloud de Confiance para acceder a los servicios y las APIs de Cloud de Confiance by S3NS , no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init
  • Configura una región y una zona predeterminadas.
  • 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 y, luego, accede a 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 Cloud de Confiance .

Roles obligatorios

Para obtener los permisos que necesitas para verificar la topología de tus instancias de procesamiento, pídele a tu administrador que te otorgue el rol de IAM de Visualizador de Compute (roles/compute.viewer) en el 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 verificar la topología de tus instancias de procesamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para verificar la topología de tus instancias 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: compute.instances.list en el proyecto

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

Verifica la topología de la instancia de procesamiento

Para verificar la topología de tus instancias de procesamiento en ejecución, usa uno de los siguientes métodos:

Verifica la topología de la instancia de procesamiento con la consola de Cloud de Confiance , gcloud CLI o REST

Para ver la topología de varias instancias de procesamiento de forma simultánea, usa la API de REST. De lo contrario, selecciona una de las siguientes opciones:

Console

  1. En la consola de Cloud de Confiance , 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 de la que deseas ver los detalles. Aparecerá una página con los detalles de la instancia 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 topología 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:

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

REST

Para ver la topología 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 al siguiente. En el siguiente ejemplo, las instancias de procesamiento vm-01 y vm-02 se encuentran en el mismo bloque.

{
  "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"
        }
      }
    },
    ...
  ]
}

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

Verifica la topología de la instancia de procesamiento consultando la clave de metadatos

Para ver la topología de una instancia de procesamiento en ejecución consultando la clave de metadatos physical_host_topology, selecciona una de las siguientes opciones:

Instancias de Linux

  1. Conéctate a tu instancia de Linux.

  2. Consulta la clave de metadatos physical_host_topology con curl:

    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:

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

Instancias de Windows

  1. Conéctate a tu instancia de Windows.

  2. Consulta la clave de metadatos physical_host_topology con el comando Invoke-RestMethod:

    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:

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

¿Qué sigue?