Cómo crear instancias de VM que usen la interfaz de red gVNIC

La interfaz de red virtual gVNIC se diseñó de forma exclusiva para su uso en Compute Engine. Permite un ancho de banda de red mayor gracias a su red de entrega más eficiente para el tráfico desde y hacia tus instancias de VM. Primero las instancias de máquina virtual (VM) que se ejecutan en Compute Engine usan una interfaz de red virtual basada en la especificación virtIO.

Para crear instancias de VM que usen la interfaz de red gVNIC, puedes realizar uno de los siguientes pasos:

Antes de comenzar

Limitaciones

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

Compatibilidad con el sistema operativo

Las siguientes imágenes pertenecen al proyecto de imagen gvnic-vm-image-prod y están configuradas para usar la interfaz de red 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

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

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

[INSTANCE_NAME] es el nombre de la 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
    
  • Para crear una instancia de Windows 2008-r2, ejecuta el siguiente comando:

    gcloud beta compute instances create [INSTANCE_NAME] \
        --image-project=gvnic-vm-image-prod \
        --image-family=windows-2008-r2-gvnic
    

    [INSTANCE_NAME] es el nombre de la instancia.

Instalación manual del controlador de gVNIC

Para crear una instancia de VM a partir de una imagen que no tiene instalado el controlador de gVNIC, debes seguir estos pasos:

  1. Instala el controlador de gVNIC en la imagen.
  2. Usa la imagen, con el controlador de gVNIC instalado, para crear una instancia de VM.

Linux

Antes de instalar el controlador de gVNIC, debes instalar las versiones más recientes del encabezado y el controlador de kernel para tu sistema operativo. Una instancia que usa una interfaz gVNIC 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 gVNIC 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. (Opcional) Si quieres asegurarte de que el controlador se cargue de forma automática cuando se inicie el sistema, ejecuta uno de los siguientes comandos:

    • 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
    

    Esta es una explicación de los parámetros del ejemplo anterior:

    • [DISK_NAME] es el nombre del disco de arranque en la instancia de VM que acabas de detener.
    • [IMAGE_NAME] es el nombre de la imagen que deseas crear. Esta imagen ahora tiene instalados los controladores de gVNIC.
  7. Usa la imagen, que tiene los controladores de gVNIC instalados, 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
    

    Esta es una explicación de los parámetros del ejemplo anterior:

    • [DISK_NAME] es el nombre del disco de arranque en la instancia de VM que acabas de detener.
    • [IMAGE_NAME] es el nombre de la imagen que deseas crear. Esta imagen ahora tiene instalados los controladores de gVNIC.
  6. Usa la imagen, que tiene los controladores de gVNIC instalados, para crear y, luego, iniciar una instancia de VM.

Verifica que la interfaz de red de gVNIC esté habilitada

Linux

Método 1

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

     sudo apt-get 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 comando siguiente:

     sudo ethtool -i [NETWORK_INTERFACE]
    

    [NETWORK_INTERFACE] es el nombre de la 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"

Solución de problemas

La instancia de VM no se inició con un dispositivo gVNIC

  • Causa: gVNIC no está habilitado en la imagen.

  • Diagnóstico: comprueba que la imagen tenga gVNIC habilitado. Para verificar esto, ejecuta el siguiente comando:

    gcloud beta compute images describe [IMAGE_NAME]
    

    [IMAGE_NAME] es el nombre de la 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.

La instancia de VM se inició con un dispositivo gVNIC, pero no es accesible a través de la red

  • Causa: el controlador de gVNIC no se instaló ni se cargó de manera correcta.

  • 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 gVNIC no está disponible, asegúrate de estar usando una imagen compatible y de haber realizado de forma correcta la configuración del controlador de gVNIC en tu imagen personalizada.

Qué sigue

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Compute Engine