Crea instancias que usen la interfaz de red virtual de Compute Engine


La interfaz de red virtual de Compute Engine (conocida como gVNIC) está diseñada específicamente para su uso en Compute Engine. Esta interfaz proporciona una red de entrega más eficiente para enviar tráfico desde y hacia tus instancias de VM. Antes, las instancias de máquina virtual (VM) que se ejecutan en Compute Engine usaban una interfaz de red virtual basada en la especificación virtIO.

La interfaz de red virtual de Compute Engine se necesita para admitir mayores anchos de banda de red, como velocidades de 50 a 100 Gbps, que se pueden usar para cargas de trabajo distribuidas en instancias que tienen GPU adjuntas.

Para crear instancias de VM que usen la interfaz de red virtual de Compute Engine, realiza uno de los siguientes pasos:

Antes de comenzar

Limitaciones

La interfaz de red virtual de Compute Engine no es compatible con las instancias de VM que usan tipos de máquina con optimización de memoria.

Compatibilidad con el sistema operativo

Para obtener información sobre las imágenes que pertenecen al proyecto de imagen gvnic-vm-image-prod y están configuradas de modo que puedan usar la interfaz de red virtual de Compute Engine, consulta Detalles de los sistemas operativos.

Puedes usar cualquiera de estas imágenes para crear una instancia de VM que, de forma predeterminada, utilice la interfaz de red virtual de Compute Engine.

Crea una instancia de VM con imágenes preconfiguradas

Si quieres crear una instancia de VM con una imagen del proyecto de imagen gvnic-vm-image-prod, sigue los pasos para crear una instancia de VM y proporcionar el proyecto de imagen y la familia de imágenes.

Debian

Para crear una instancia de Debian, ejecuta el siguiente comando:

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

Reemplaza instance-name por el nombre de tu instancia.

Windows

  • Para crear una instancia de Windows 2019, ejecuta el siguiente comando:

    gcloud beta compute instances create instance-name \
            --image-project=gvnic-vm-image-prod \
            --image-family=windows-2019-gvnic
    
  • Para crear una instancia de Windows 2016, ejecuta el siguiente comando:

    gcloud beta compute instances create instance-name \
              --image-project=gvnic-vm-image-prod \
              --image-family=windows-2016-gvnic
    
  • Para crear una instancia de Windows 2012-r2, ejecuta el siguiente comando:

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

    Reemplaza instance-name por el nombre de tu instancia.

Instala de forma manual el controlador de red virtual de Compute Engine

Realiza estas acciones para crear una instancia de VM a partir de una imagen que no tiene instalado el controlador de red virtual de Compute Engine:

  1. Instala el controlador de red virtual de Compute Engine en la imagen.
  2. Usa la imagen, que ahora tiene instalado el controlador de red virtual de Compute Engine, para crear una instancia de VM.

Linux

Para poder instalar el controlador de red virtual de Compute Engine, primero debes instalar las versiones más recientes del encabezado y el controlador de kernel para tu sistema operativo. Si una instancia usa una interfaz de red virtual de Compute Engine sin un controlador de kernel, no tendrá conectividad de red interna ni externa, incluidos los protocolos SSH y RDP.

Para compilar y, luego, instalar el controlador de kernel desde la fuente, debes contar con un kernel compatible que tenga los encabezados instalados. El controlador de red virtual de Compute Engine admite la compilación de kernels de distribución principal y primordial para las versiones 3.10 y posteriores.

  1. Instala o actualiza el kernel y los encabezados de modo que tengas la versión 3.10 o una posterior. Para completar este paso, revisa la documentación de tu sistema operativo. El código fuente y los paquetes de controladores se pueden obtener en GitHub. Consulta GoogleCloudPlatform/compute-virtual-ethernet-linux.

  2. Usa tu imagen para crear y luego iniciar una instancia de VM.

  3. En esta instancia de VM, carga el controlador de kernel. Para cargar el controlador, ejecuta el siguiente comando:

    modprobe gve

    Con este comando, se carga el controlador hasta que reinicies el sistema o quites el controlador con el comando rmmod.

  4. Si quieres asegurarte de que el controlador se cargue de forma automática cuando se inicie el sistema, ejecuta uno de los siguientes comandos (opcional):

    • Para los sistemas operativos que usan systemd, ejecuta el siguiente comando:

      echo gve > /etc/modules-load.d/gve.conf
    • Para sistemas Debian, ejecuta el siguiente comando:

      echo gve >> /etc/modules
  5. Detén la instancia de VM.

  6. Crea una imagen desde el disco adjunto a la instancia de VM que acabas de detener.

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

    Reemplaza los siguientes elementos:

    • image-name es el nombre de la imagen que deseas crear. Esta imagen tiene instalado el controlador de red virtual de Compute Engine.
    • disk-name es el nombre del disco de arranque en la instancia de VM que acabas de detener.
  7. Usa la imagen que tiene instalado el controlador de red virtual de Compute Engine para crear y, luego, iniciar una instancia de VM.

Windows

  1. Usa tu imagen para crear y, luego, iniciar una instancia de VM.

  2. En esta instancia de VM, instala GooGet. Si quieres instalar GooGet, consulta la página sobre cómo descargar y, luego, instalar GooGet.

  3. Instala el controlador de gVNIC. Para instalar el controlador, ejecuta el siguiente comando en un mensaje de PowerShell elevado:

    googet install google-compute-engine-driver-gvnic
  4. Detén la instancia de VM.

  5. Crea una imagen desde el disco adjunto a la instancia de VM que acabas de detener.

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

    Reemplaza los siguientes elementos:

    • image-name es el nombre de la imagen que deseas crear. Esta imagen ahora tiene instalado el controlador de red virtual de Compute Engine.
    • disk-name es el nombre del disco de arranque en la instancia de VM que acabas de detener.
  6. Usa la imagen que tiene instalado el controlador de red virtual de Compute Engine para crear y, luego, iniciar una instancia de VM.

Verifica que la interfaz de red virtual de Compute Engine esté habilitada

Linux

Método 1

  1. En tu instancia de VM de Linux, ejecuta los siguientes comandos:

    sudo apt install pciutils
    lspci
    

    El resultado debe parecerse al siguiente:

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

Método 2

  1. Sigue las instrucciones de tu sistema operativo para descargar la herramienta de redes ethtool.

  2. Ejecuta el siguiente comando:

    sudo ethtool -i network-interface

    Reemplaza network-interface por el nombre de tu interfaz de red. Por ejemplo, eth0.

    El resultado debe parecerse al siguiente:

    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. En tu instancia de VM de Windows, abre el Administrador de dispositivos.
  2. En Adaptadores de red, deberías ver "Google Ethernet Adapter".

Soluciona problemas

No se inició la instancia de VM

  • Causa: El controlador de red virtual de Compute Engine no está habilitado en la imagen.

  • Diagnóstico: Verifica que la imagen tenga habilitada la interfaz de red virtual de Compute Engine. Para verificar, ejecuta el siguiente comando:

    gcloud beta compute images describe image-name

    Reemplaza image-name por el nombre de tu imagen.

    El resultado del comando debe mostrar “GVNIC” en guestOsFeatures.

  • Solución: Asegúrate de estar usando una imagen compatible y de haber configurado de manera correcta el controlador de gVNIC en tu imagen personalizada.

Se inició la instancia de VM, pero no se puede acceder a ella a través de la red

  • Causa: El controlador de red virtual de Compute Engine no se instaló ni cargó correctamente.

  • Diagnóstico: Para verificar que el controlador esté instalado y cargado, sigue estos pasos:

    Linux

    1. Verifica que el controlador esté instalado.

      modinfo gve

      El resultado debe parecerse al siguiente:

      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. Comprueba que el controlador esté cargado.

      lsmod | grep gve

      El resultado debe parecerse al siguiente:

      gve                    49152  0

    Windows

    1. Conéctate a la instancia a través de SAC.
    2. Accede a tu cuenta con tu nombre de usuario y tu contraseña.
    3. Desde el símbolo del sistema, ejecuta el siguiente comando:

      dism /online /get-drivers | findstr gvnic
    4. Revisa los resultados.

      • Si el controlador está instalado, debería aparecer Original File Name : gvnic.inf en el resultado.
      • Si el controlador no está instalado, no se mostrará ningún mensaje.
  • Solución: Si el controlador de red virtual de Compute Engine no está disponible, asegúrate de usar una imagen compatible o de haber configurado correctamente el controlador de la red virtual de Compute Engine en la imagen personalizada.

Próximos pasos