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 a la versión 3.10 o 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"

¿Qué sigue?