Ver a topologia de uma instância de computação

Neste documento, explicamos como ver a localização física, também conhecida como topologia, das suas instâncias do Compute Engine em uma zona. Para conferir a topologia de um cluster no Cluster Director, consulte Ver topologia do cluster.

Depois de criar instâncias A4X Max, A4X, A4, A3 Ultra, A3 Mega e A3 High (8 GPUs) ou instâncias de computação que especificam uma política de posicionamento compacto ou uma política de carga de trabalho, é possível conferir o local físico das instâncias de computação em relação umas às outras. Quando você conhece a proximidade das instâncias de computação, é possível ajustar o aplicativo ou o design da carga de trabalho para executar jobs sensíveis à latência nas instâncias de computação mais próximas umas das outras. Para todos os outros tipos de instâncias de computação, é possível conferir o ID do host em que elas são executadas depois de expor o ID do host.

Antes de começar

  • Revise a terminologia da topologia de instâncias de computação.
  • Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console Google Cloud para acessar os serviços e as APIs Google Cloud , não é necessário configurar a autenticação.

    gcloud

    No console do Google Cloud , ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a CLI do Google Cloud.

      Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.

    Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Funções exigidas

Para receber as permissões necessárias para visualizar a topologia da instância de computação, peça ao administrador para conceder a você o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para visualizar a topologia da instância de computação. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para conferir a topologia da instância de computação:

  • Para conferir os detalhes de uma instância de computação: compute.instances.get no projeto
  • Para conferir uma lista de instâncias de computação: compute.instances.list no projeto

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Entender a topologia da instância de computação

Para entender a localização física de uma instância de computação em um cluster, verifique o campo Host físico no console do Google Cloud . Se você usa a CLI gcloud, a API Compute Engine ou uma consulta de chave de metadados, verifique o campo physicalHostTopology. Esses campos contêm os seguintes subcampos:

  • cluster: o nome global do cluster.

  • block: o ID específico da organização do bloco reservado em que a instância está localizada.

  • sub-block: o ID específico da organização do subbloco em que a instância está localizada.

  • host: o ID específico da organização do host em que a instância é executada.

Para entender a proximidade da instância, compare os valores dos campos Host físico ou physicalHostTopology entre as instâncias de computação. Quanto mais subcampos as instâncias de computação compartilharem, mais próximas elas estarão.

Também é possível ver a topologia de uma reserva em que as instâncias de computação são criadas. Os campos physicalHostTopology de uma reserva e uma instância mostram os mesmos campos block e cluster. Por exemplo, ao visualizar um bloco reservado específico, é possível conferir o nome e o subbloco de todas as instâncias de computação implantadas no bloco. Para mais informações sobre a topologia de uma reserva, consulte Ver a topologia de uma reserva.

Ver a topologia da instância de computação

Para conferir o local físico de várias instâncias de computação em execução ao mesmo tempo, use a API REST. Caso contrário, selecione uma destas opções:

Console

  1. No console do Google Cloud , acesse a página Instâncias de VM.

    Acessar instâncias de VM

  2. Na coluna Nome, clique no nome da instância de computação que você quer consultar. Uma página com os detalhes da instância de computação vai aparecer, e a guia Detalhes será selecionada.

  3. Na seção Informações básicas, verifique o valor do campo Host físico.

gcloud

Para conferir o local físico de uma instância de computação em execução, use o comando gcloud compute instances describe com a flag --flatten=resourceStatus.physicalHostTopology:

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

Substitua:

  • INSTANCE_NAME: o nome da instância de computação.

  • ZONE: a zona em que a instância de computação está.

O resultado será o seguinte:

  • Se você puder ver o ID do cluster, do bloco, do subbloco e do host de uma instância de computação, a saída será semelhante a esta:

    ---
    cluster: europe-west1-cluster-jfhb
    block: 3e3056e23cf91a5cb4a8621b6a52c100
    subBlock: 0fc09525cbd5abd734342893ca1c083f
    host: 1215168a4ecdfb434fd4d28056589059
    
  • Se você só puder ver o ID do host depois de expô-lo, a saída será semelhante a esta:

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

REST

Para conferir o local físico das instâncias de computação em execução, faça uma das seguintes solicitações GET. Ao fazer uma solicitação, inclua o parâmetro de consulta fields e especifique para mostrar apenas os campos name, machineType e physicalHostTopology de uma instância de computação. Também é necessário incluir o parâmetro de consulta filter e especificar para listar apenas instâncias de computação em execução.

  • Para conferir uma lista das suas instâncias em todas as zonas: 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 conferir uma lista das suas instâncias em uma zona específica: 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
    

Substitua:

  • PROJECT_ID: o ID do projeto em que as instâncias de computação existem.

  • ZONE: a zona em que as instâncias de computação estão.

O resultado será o seguinte:

  • Se você puder ver o ID do cluster, do bloco, do subbloco e do host das instâncias de computação, a saída será semelhante a esta:

    {
      "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"
            }
          }
        },
        ...
      ]
    }
    
  • Se você só puder ver o ID das instâncias de computação do host depois de expô-lo, a saída será semelhante a esta:

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

Se quiser refinar sua lista de instâncias de computação, edite a expressão de filtro no parâmetro de consulta filter.

Ver a topologia da instância de computação com uma consulta de chave de metadados

Para conferir o local físico de uma instância de computação em execução com uma consulta à chave de metadados physical_host_topology, selecione uma das seguintes opções:

Instâncias do Linux

  1. Conecte-se à instância de computação do Linux.

  2. Na instância do Linux, crie uma consulta usando a ferramenta curl. Para consultar a chave de metadados physical_host_topology em instâncias do Linux, execute o seguinte comando:

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

    O resultado será o seguinte:

    • Se você puder ver o ID do cluster, do bloco, do sub-bloco e do host de uma instância de computação, a saída será semelhante a esta:

      {
        "cluster": "europe-west1-cluster-jfhb",
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "subBlock": "0fc09525cbd5abd734342893ca1c083f",
        "host": "1215168a4ecdfb434fd4d28056589059"
      }
      
    • Se você só puder ver o ID do host depois de expô-lo, a saída será semelhante a esta:

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

Instâncias do Windows

  1. Conecte-se à instância de computação do Windows.

  2. Na instância do Windows, crie uma consulta com o comando Invoke-RestMethod. Para consultar a chave de metadados physical_host_topology em instâncias do Windows, execute o seguinte comando:

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

    O resultado será o seguinte:

    • Se você puder ver o ID do cluster, do bloco, do sub-bloco e do host de uma instância de computação, a saída será semelhante a esta:

      {
        "cluster": "europe-west1-cluster-jfhb",
        "block": "3e3056e23cf91a5cb4a8621b6a52c100",
        "subBlock": "0fc09525cbd5abd734342893ca1c083f",
        "host": "1215168a4ecdfb434fd4d28056589059"
      }
      
    • Se você só puder ver o ID do host depois de expô-lo, a saída será semelhante a esta:

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

A seguir