Como criar instâncias de VM que usam a interface de rede gVNIC

A interface de rede virtual gVNIC foi projetada especificamente para uso no Compute Engine e permite redes de largura mais altas, oferecendo 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).

Para criar instâncias de VM que usam a interface de rede gVNIC, siga uma das etapas abaixo:

Antes de começar

Limitações

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

Suporte ao sistema operacional

As imagens a seguir pertencem ao projeto gvnic-vm-image-prod e estão configuradas para usar a interface de rede gVNIC:

  • 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

É possível usar qualquer uma dessas imagens para criar uma instância de VM que, por padrão, use a interface de rede virtual gVNIC.

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

em que [INSTANCE_NAME] é o 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
    

    em que [INSTANCE_NAME] é o nome da instância.

Como instalar manualmente o driver da gVNIC

Para criar uma instância de VM com base em uma imagem que não tenha o driver da gVNIC instalado, você precisa:

  1. instale o driver da gVNIC na imagem;
  2. usar a imagem, com o driver da gVNIC instalado, para criar uma instância de VM.

Linux

Antes de instalar o driver da gVNIC, 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 gVNIC 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 da gVNIC 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. Pare 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
    

    Em que:

    • [DISK_NAME] é o nome do disco de inicialização na instância de VM que você acabou de parar;
    • [IMAGE_NAME] é o nome da imagem que você quer criar. Ela agora tem os drivers da gVNIC instalados.
  7. Use a imagem, que tem os drivers da gVNIC instalados, 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. Pare 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
    

    Em que:

    • [DISK_NAME] é o nome do disco de inicialização na instância de VM que você acabou de parar;
    • [IMAGE_NAME] é o nome da imagem que você quer criar. Ela agora tem os drivers da gVNIC instalados.
  6. Use a imagem, que tem os drivers da gVNIC instalados, para criar e iniciar uma instância de VM.

Como verificar se a interface de rede gVNIC 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 este comando:

     sudo ethtool -i [NETWORK_INTERFACE]
    

    em que [NETWORK_INTERFACE] é o nome da interface de rede. 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 com um dispositivo gVNIC

  • Causa: a gVNIC não está ativada na imagem.

  • Diagnóstico: verifique se a gVNIC está ativada na imagem. Execute o seguinte comando para verificar isso:

    gcloud beta compute images describe [IMAGE_NAME]
    

    em que [IMAGE_NAME] é o 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 com um dispositivo gVNIC, mas não pode ser acessada pela rede

  • Causa: o driver da gVNIC 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 da gVNIC não estiver disponível, verifique se você está usando uma imagem com suporte ou se configurou o driver da gVNIC 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