Como criar instâncias que usam a interface de rede virtual do Compute Engine

A interface de rede virtual do Compute Engine, também conhecida como gVNIC, foi desenvolvida especificamente para uso no Compute Engine. A interface de rede virtual do Compute Engine fornece uma rede de entrega mais eficiente para enviar tráfego de e para suas instâncias de VM. Antes, as instâncias de máquina virtual (VM, na sigla em inglês) executadas no Compute Engine usavam uma interface de rede virtual com base na especificação virtIO (em inglês).

A interface de rede virtual do Compute Engine é necessária para suportar larguras de banda de rede mais altas, como aquelas com velocidades de 50-100 Gbps, que podem ser usadas para cargas de trabalho distribuídas em instâncias que tenham GPUs anexadas.

Para criar instâncias de VM que usam a interface de rede virtual do Compute Engine, conclua uma das seguintes etapas:

Antes de começar

Limitações

A interface de rede virtual do Compute Engine não é compatível com instâncias de VM que usam tipos de máquina com otimização de memória.

Compatibilidade com sistemas operacionais

As imagens a seguir pertencem ao projeto de imagem gvnic-vm-image-prod e estão configuradas para usar a interface de rede virtual do Compute Engine:

  • Debian 9 - debian-9-gvnic
  • Windows
    • Windows Server 2019 - windows-2019-gvnic
    • Windows Server 2016 - windows-2016-gvnic
    • Windows Server 2012 R2 - windows-2012-r2-gvnic
    • Windows Server 2008 R2 - windows-2008-r2-gvnic

Você pode usar qualquer uma dessas imagens para criar uma instância de VM que, por padrão, usa a interface de rede virtual do Compute Engine.

Como criar uma instância de VM usando imagens pré-configuradas

Para criar uma instância de VM usando uma imagem do projeto gvnic-vm-image-prod, siga as etapas para criar uma instância de VM e especifique o projeto e a família de imagens.

Debian

Para criar uma instância do Debian, execute o seguinte comando:

gcloud beta compute instances create instance-name \
      --image-project=gvnic-vm-image-prod \
      --image-family=debian-9-gvnic

Substitua instance-name pelo nome da instância.

Windows

  • Para criar uma instância do Windows 2019, execute o seguinte comando:

    gcloud beta compute instances create instance-name \
            --image-project=gvnic-vm-image-prod \
            --image-family=windows-2019-gvnic
    
  • Para criar uma instância do Windows 2016, execute o seguinte comando:

    gcloud beta compute instances create instance-name \
              --image-project=gvnic-vm-image-prod \
              --image-family=windows-2016-gvnic
    
  • Para criar uma instância do Windows 2012-r2, execute o seguinte comando:

    gcloud beta compute instances create instance-name \
              --image-project=gvnic-vm-image-prod \
              --image-family=windows-2012-r2-gvnic
    
  • Para criar uma instância do Windows 2008-r2, execute o seguinte comando:

    gcloud beta compute instances create instance-name \
            --image-project=gvnic-vm-image-prod \
            --image-family=windows-2008-r2-gvnic
    

    Substitua instance-name pelo nome da instância.

Como instalar manualmente o driver de rede virtual do Compute Engine

Para criar uma instância de VM a partir de uma imagem que não tem o driver de rede virtual do Compute Engine instalado, você precisa:

  1. instalar o driver de rede virtual do Compute Engine na imagem.
  2. Usar a imagem, que agora tem o driver de rede virtual do Compute Engine instalado, para criar uma instância de VM.

Linux

Antes de instalar o driver de rede virtual do Compute Engine, instale as versões mais recentes do driver e do cabeçalho do kernel de acordo com seu sistema operacional. Uma instância que usa uma interface de rede virtual do Compute Engine sem um driver de kernel não terá conectividade de rede interna ou externa, incluindo SSH e RDP.

Para criar e instalar o driver de kernel do código-fonte, você precisa ter um kernel compatível com os cabeçalhos instalados. O driver de rede virtual do Compute Engine permite a criação com kernels de distribuição importantes e de linha principal para as versões 3.10 e posteriores.

  1. Instale ou atualize o kernel e os cabeçalhos para a versão 3.10 ou posterior. Para concluir esta etapa, consulte a documentação do seu sistema operacional. O código-fonte e os pacotes de drivers podem ser obtidos no GitHub, consulte GoogleCloudPlatform/compute-virtual-ethernet-linux (em inglês).

  2. Use sua imagem para criar e iniciar uma instância de VM.

  3. Nessa instância de VM, carregue o driver de kernel. Para carregar o driver, execute o comando a seguir:

    modprobe gve

    Esse comando carrega o driver até que você reinicialize o sistema ou remova o driver usando o comando rmmod.

  4. (Opcional) Para garantir que o driver seja carregado automaticamente quando o sistema é inicializado, execute um dos comandos a seguir:

    • Para sistemas operacionais que usam systemd, execute o comando a seguir:

      echo gve > /etc/modules-load.d/gve.conf
    • Para sistemas Debian, execute o seguinte comando:

      echo gve >> /etc/modules
  5. Interrompa a instância de VM.

  6. Crie uma imagem do disco que está anexado à instância da VM que você acabou de parar.

    gcloud beta compute images create image-name\
            --source-disk disk-name \
            --guest-os-features=GVNIC
    

    Substitua:

    • image-name: o nome da imagem que você quer criar. Esta imagem tem o driver de rede virtual do Compute Engine instalado.
    • disk-name: o nome do disco de inicialização na instância da VM que você acabou de interromper.
  7. Use a imagem, que tem o driver de rede virtual do Compute Engine instalado, para criar e iniciar uma instância de VM.

Windows

  1. Use sua imagem para criar e iniciar uma instância de VM.

  2. Nessa instância de VM, instale o GooGet. Para instalar o GooGet, consulte Fazer o download e instalar o GooGet (em inglês).

  3. Instale o driver da gVNIC. Para instalá-lo, execute o seguinte comando em um prompt elevado do PowerShell:

    googet install google-compute-engine-driver-gvnic
  4. Interrompa a instância de VM.

  5. Crie uma imagem do disco que está anexado à instância da VM que você acabou de parar.

    gcloud beta compute images create image-name\
            --source-disk disk-name \
            --guest-os-features=GVNIC
    

    Substitua:

    • image-name: o nome da imagem que você quer criar. Esta imagem agora tem o driver de rede virtual do Compute Engine instalado.
    • disk-name: o nome do disco de inicialização na instância da VM que você acabou de interromper.
  6. Use a imagem, que tem o driver de rede virtual do Compute Engine instalado, para criar e iniciar uma instância de VM.

Como verificar se a interface de rede virtual do Compute Engine está ativada

Linux

Método 1

  1. Na instância de VM do Linux, execute os seguintes comandos:

    sudo apt-get install pciutils
    lspci
    

    A saída será semelhante a esta:

    00:04.0 Ethernet controller: Google, XXX. Device 0042

Método 2

  1. Siga as instruções do seu sistema operacional para fazer o download da ferramenta de utilitário de rede ethtool.

  2. Execute o seguinte comando:

    sudo ethtool -i network-interface

    Substitua network-interface pelo nome de sua interface de rede. Por exemplo, eth0.

    A saída será semelhante a esta:

    driver: gve
    version: 1.0.0
    firmware-version:
    expansion-rom-version:
    bus-info: 0000:00:04.0
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: no
    supports-priv-flags: no

Windows

  1. Na instância de VM do Windows, abra o Gerenciador de dispositivos.
  2. Em "Adaptadores de rede", você verá: "Google Ethernet Adapter"

Solução de problemas

A instância de VM não foi inicializada

  • Causa: o driver de rede virtual do Compute Engine não está ativado na imagem.

  • Diagnóstico: verifique se a imagem tem a interface de rede virtual do Compute Engine ativada. Execute o seguinte comando para verificar isso:

    gcloud beta compute images describe image-name

    Substitua image-name pelo nome da imagem.

    A saída do comando deve mostrar "GVNIC" em guestOsFeatures.

  • Resolução: verifique se você está usando uma imagem com suporte ou se configurou o driver da gVNIC corretamente na imagem personalizada.

A instância de VM foi inicializada, mas não pode ser acessada pela rede

  • Causa: o driver de rede virtual do Compute Engine não foi instalado e carregado.

  • Diagnóstico: para verificar se o driver foi instalado e carregado, siga estas etapas:

    Linux

    1. Verifique se o driver foi instalado.

      modinfo gve

      A saída será semelhante a esta:

      filename:       /lib/modules/4.15.0-1036-gcp/updates/dkms/gve.ko
      version:        1.0.0
      license:        Dual MIT/GPL
      description:    gVNIC Driver
      author:         Google, XXX.
      srcversion:     5FEFB9DD945EB2DEC94EE09
      alias:          pci:v00001AE0d00000042sv*sd*bc*sc*i*
      depends:
      retpoline:      Y
      name:           gve
      vermagic:       4.15.0-1036-gcp SMP mod_unload
      
    2. Verifique se o driver foi carregado.

      lsmod | grep gve

      A saída será semelhante a esta:

      gve                    49152  0

    Windows

    1. Conecte-se à instância por meio do SAC.
    2. Faça login com seu nome de usuário e senha.
    3. No prompt de comando, execute o seguinte comando:

      dism /online /get-drivers | findstr gvnic
    4. Analise o resultado.

      • Se o driver estiver instalado, você verá o texto Original File Name : gvnic.inf na saída.
      • Caso contrário, nenhuma mensagem será retornada.
  • Resolução: se o driver de rede virtual do Compute Engine não estiver disponível, verifique se você está usando uma imagem com suporte ou se configurou o driver de rede virtual do Compute Engine corretamente na imagem personalizada.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine