Ver la topología de clúster de H4D

Después de crear un clúster H4D en bloques de capacidad reservados, puedes ver la disposición física de las VMs que componen el clúster. Si conoces la disposición de tus VMs, puedes hacer lo siguiente:

  • Ajusta el diseño de tu aplicación o carga de trabajo para minimizar aún más la latencia de red, especialmente en las cargas de trabajo que utilizan Cloud RDMA.
  • Soluciona problemas de latencia o rendimiento de la red de las VMs que se comunican con frecuencia.

Antes de empezar

Asegúrate de que tienes los permisos necesarios para ver la información de la topología de la VM.

Roles obligatorios

Para obtener los permisos que necesitas para ver la topología de las VMs, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) en tu proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene todos los permisos necesarios para ver la topología de las máquinas virtuales. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Para ver la topología de las VMs, se necesitan los siguientes permisos:

  • Para ver los detalles de una VM, compute.instances.get en el proyecto
  • Para ver una lista de las VMs: compute.instances.list en el proyecto

Información sobre la topología de las VMs

Cuando ves los detalles de una VM en ejecución, puedes obtener información sobre su ubicación física en un clúster consultando el campo Host físico (en la consola), el campo physicalHostTopology (en la CLI de Google Cloud) o la API de Compute Engine, o bien consultando la clave de metadatos. Google Cloud Estos campos contienen los siguientes subcampos:

  • cluster: el nombre global del clúster.
  • block: ID específico de la organización del bloque reservado en el que se encuentra la VM.
  • sub-block: ID específico de la organización del subbloque en el que se encuentra la VM.
  • host: el ID específico de la organización del host en el que se ejecuta la VM.

Para ver las definiciones de estos términos, consulta Terminología de clústeres.

Para saber lo cerca que están las máquinas virtuales entre sí, compara los valores de los campos Host físico o physicalHostTopology entre las máquinas virtuales. Cuantos más subcampos compartan las VMs, más cerca estarán físicamente.

También puedes ver la topología de una reserva en la que se crean las VMs. Los campos physicalHostTopology de una reserva y una VM muestran los mismos campos block y cluster. Cuando ve un bloque reservado específico, puede ver el nombre y el subbloque de todas las máquinas virtuales que se han implementado en el bloque. Para obtener más información sobre la topología de una reserva, consulta Ver la topología de una reserva.

Ver la topología de las VMs

Para ver la ubicación física de varias máquinas virtuales en ejecución, selecciona una de las siguientes opciones:

Consola

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

    Ir a instancias de VM

  • En la columna Nombre, haz clic en el nombre de la máquina virtual para ver sus detalles. Aparecerá una página con los detalles de la VM. La pestaña Detalles está seleccionada de forma predeterminada.

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

Google Cloud CLI

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

Haz los cambios siguientes:

  • VM_NAME: el nombre de la VM.
  • ZONE: la zona en la que se encuentra la máquina virtual.

El resultado debería ser similar al siguiente:

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

REST

Para ver la ubicación física de las máquinas virtuales en ejecución, haz una de las siguientes solicitudes GET. Cuando hagas una solicitud, debes incluir el parámetro de consulta fields y especificar que solo se muestren los campos name, machineType y physicalHostTopology de una VM. También debe incluir el parámetro de consulta filter y especificar que solo se listen las máquinas virtuales en ejecución.

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 VMs 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

Sustituye lo siguiente: * PROJECT_ID: el ID del proyecto en el que se encuentran las VMs. * ZONE: la zona en la que se encuentran las VMs.

El resultado debería ser similar al siguiente:

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

Si quiere acotar la lista de máquinas virtuales, edite la expresión de filtro en el parámetro de consulta filter.

Ver la topología de las VMs consultando la clave de metadatos

Para ver la ubicación física de una VM en ejecución consultando la clave de metadatos physical_host_topology, selecciona una de las siguientes opciones:

Máquinas virtuales Linux

  1. Conéctate a tu máquina virtual Linux.
  2. En tu VM de Linux, crea una consulta con la herramienta curl. Para consultar la clave de metadatos physical_host_topology en VMs Linux, ejecuta el siguiente comando:
curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology

El resultado debería ser similar al siguiente:

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

Máquinas virtuales de Windows

  1. Conéctate a tu VM de Windows.
  2. En tu VM de Windows, crea una consulta con Invoke-RestMethod. Para consultar la clave de metadatos physical_host_topology en máquinas virtuales Windows, ejecuta el siguiente comando:
$value = (Invoke-RestMethod `
  -Headers @{'Metadata-Flavor' = 'Google'} `
  -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/physical_host_topology")
$value

El resultado debería ser similar al siguiente:

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

Siguientes pasos