Visualizza la topologia delle istanze Compute Engine

Questo documento spiega come visualizzare la topologia delle istanze Compute Engine in esecuzione. Dopo aver creato e avviato le istanze di calcolo, puoi visualizzarne la posizione fisica in una zona per comprendere la topologia del cluster. Queste informazioni ti aiutano a:

  • Organizza i job: puoi modificare la progettazione del workload per, ad esempio, inserire le attività che richiedono molte comunicazioni nelle istanze di computing fisicamente più vicine.

  • Risoluzione dei problemi: puoi analizzare la latenza o i problemi di prestazioni della rete se istanze di computing specifiche si trovano in posizioni inaspettatamente distanti tra loro.

Per verificare quali istanze di Compute sono in esecuzione nel tuo progetto, visualizza un elenco delle istanze di Compute.

Limitazioni

Puoi visualizzare la topologia solo delle istanze di computing che soddisfano uno o più dei seguenti requisiti:

Informazioni sulla topologia delle istanze di computing

Ogni istanza di computing viene eseguita su un server fisico, un host, che si trova su un blocco di server. Ogni blocco appartiene a un cluster, che si trova in un data center all'interno di una zonaGoogle Cloud . Quando visualizzi le istanze di calcolo che soddisfano requisiti specifici, puoi comprenderne la topologia in relazione ad altre istanze di calcolo che soddisfano gli stessi requisiti. In particolare, puoi comprendere la posizione fisica delle tue istanze di computing controllando i seguenti campi secondari nel campo physicalHostTopology di ogni istanza di computing:

  • Cluster (cluster): il nome globale del cluster in cui esiste l'istanza di computing. Un cluster è un raggruppamento logico di alto livello di più host, che possono estendersi su più blocchi, che funzionano insieme come un unico pool di risorse.

  • Blocco (block): l'ID specifico dell'organizzazione del blocco in cui esiste l'istanza di computing. Un blocco è una raccolta di più host raggruppati insieme. Le istanze di computing nello stesso blocco presentano una bassa latenza di rete.

  • Sub-block (subBlock): l'ID specifico dell'organizzazione del sub-block in cui esiste l'istanza di computing. Un sottoblocco è una suddivisione fisica in un blocco, che raggruppa gli host all'interno di un unico contenitore fisico. Le istanze di Compute nello stesso blocco secondario presentano una latenza di rete inferiore rispetto alle istanze di Compute nello stesso blocco.

  • Host (host): l'ID specifico dell'organizzazione dell'host in cui esiste l'istanza di computing. Un host è un singolo server fisico su cui vengono eseguite le tue istanze di calcolo. Ogni host ha la propria vCPU fisica, memoria, spazio di archiviazione e scheda di interfaccia di rete (NIC). Le istanze di calcolo negli host adiacenti presentano la latenza di rete più bassa possibile.

Più campi secondari condividono due istanze di calcolo in esecuzione, più sono fisicamente vicine tra loro. Queste informazioni ti aiutano a ottimizzare i tuoi carichi di lavoro organizzando i job in modo da ridurre al minimo la latenza di rete o progettando sistemi più resilienti.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  • Imposta una regione e una zona predefinite.
  • REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI.

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per verificare la topologia delle istanze di computing, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore Compute (roles/compute.viewer) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per verificare la topologia delle istanze di computing. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per verificare la topologia delle istanze di computing sono necessarie le seguenti autorizzazioni:

  • Per visualizzare i dettagli di un'istanza di computing: compute.instances.get sul progetto
  • Per visualizzare un elenco di istanze di Compute: compute.instances.list sul progetto

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Verifica la topologia dell'istanza di computing

Per verificare la topologia delle istanze di computing in esecuzione, utilizza uno dei seguenti metodi:

Verifica la topologia dell'istanza di computing utilizzando la console Google Cloud , gcloud CLI o REST.

Per visualizzare la topologia di più istanze di computing contemporaneamente, utilizza l'API REST. In caso contrario, seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sul nome dell'istanza di Compute di cui vuoi visualizzare i dettagli. Viene visualizzata una pagina con i dettagli dell'istanza e viene selezionata la scheda Dettagli.

  3. Nella sezione Informazioni di base, controlla il valore del campo Host fisico.

gcloud

Per visualizzare la topologia di un'istanza di computing in esecuzione, utilizza il comando gcloud compute instances describe con il flag --flatten=resourceStatus.physicalHostTopology:

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza di computing.

  • ZONE: la zona in cui esiste l'istanza di computing.

L'output è simile al seguente:

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

REST

Per visualizzare la topologia delle istanze di computing in esecuzione, esegui una delle seguenti richieste GET. Quando effettui una richiesta, devi includere il parametro di query fields e specificare di mostrare solo i campi name, machineType e physicalHostTopology di un'istanza di Compute. Devi anche includere il parametro di query filter e specificare di elencare solo le istanze di compute in esecuzione.

  • Per visualizzare un elenco delle tue istanze in tutte le zone: metodo 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
    
  • Per visualizzare un elenco delle tue istanze in una zona specifica: metodo 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
    

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui esistono le istanze di computing.

  • ZONE: la zona in cui esistono le istanze di computing.

L'output è simile al seguente. Nell'esempio seguente, le istanze di computing vm-01 e vm-02 si trovano nello stesso blocco.

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

Se vuoi perfezionare l'elenco delle istanze di Compute, modifica l'espressione di filtro nel parametro di query filter.

Verifica la topologia dell'istanza di computing eseguendo query sulla chiave dei metadati

Per visualizzare la topologia di un'istanza di computing in esecuzione eseguendo una query sulla chiave di metadati physical_host_topology, seleziona una delle seguenti opzioni:

Istanze Linux

  1. Connettiti all'istanza Linux.

  2. Esegui una query sulla chiave dei metadati physical_host_topology utilizzando curl:

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

    L'output è simile al seguente:

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

Istanze Windows

  1. Connettiti all'istanza Windows.

  2. Esegui una query sulla chiave dei metadati physical_host_topology utilizzando il 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
    

    L'output è simile al seguente:

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

Passaggi successivi