Usa la NIC virtual de Google

La NIC virtual de Google (gVNIC) es una interfaz de red virtual diseñada específicamente para Compute Engine. gVNIC es una alternativa al controlador de Ethernet basado en VirtIO.

En Compute Engine, puedes configurar gVNIC en cualquier imagen pública compatible. De forma alternativa, se puede compilar e instalar el controlador de Linux desde la fuente.

La gVNIC es necesaria 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 VM que tienen GPU adjuntas. Además, gVNIC es necesaria cuando se trabaja con algunas formas de VM diseñadas para lograr un rendimiento óptimo cuando se usan VM.

Antes de comenzar

Compatibilidad con el sistema operativo

Para obtener una lista de los sistemas operativos compatibles, consulta Detalles de los sistemas operativos.

Uso en sistemas operativos no compatibles

Si deseas usar gVNIC en un sistema operativo que actualmente no es compatible, puedes configurar e instalar gVNIC de forma manual con los siguientes procedimientos:

Limitaciones

Descripción general

Para crear una VM que use gVNIC, completa los siguientes pasos:

  1. Crea una imagen personalizada que esté etiquetada para usar gVNIC
  2. Crea una VM con tu imagen personalizada
  3. Verifica que gVNIC esté habilitado

Si tienes algún problema, consulta Soluciona problemas de la NIC virtual de Google.

Crea una imagen personalizada

Puedes crear la imagen con la herramienta de línea de comandos gcloud o la API de Compute Engine.

gcloud

  1. Selecciona una imagen o familia de imágenes que admita gVNIC. Para obtener más información, consulta Detalles de los sistemas operativos.

  2. Usa la imagen o familia de imágenes seleccionada en el paso anterior y crea una imagen y etiquétala con GVNIC. Para crear la imagen, usa el comando gcloud compute images create.

    gcloud compute images create IMAGE_NAME \
        [--source-image-family=SOURCE_IMAGE_FAMILY | --source-image=SOURCE_IMAGE] \
        --source-image-project=SOURCE_IMAGE_PROJECT \
        --guest-os-features=GVNIC
    

    Reemplaza lo siguiente:

    • IMAGE_NAME es el nombre de la imagen que deseas crear.
    • SOURCE_IMAGE o SOURCE_IMAGE_FAMILY: Especifica una de las siguientes opciones:
      • SOURCE_IMAGE: Es la versión requerida de una imagen pública. Por ejemplo, --image rhel-8-v20210122.
      • SOURCE_IMAGE_FAMILY: Es una familia de imágenes. Esto crea la VM a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas --image-family rhel-8, Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes de RHEL 8.
    • SOURCE_IMAGE_PROJECT: es el nombre del proyecto que contiene la imagen de origen.

    Ejemplo

    Para crear una imagen de RHEL 8 con la imagen más reciente de la familia de imágenes rhel-8 de Compute Engine, ejecuta el siguiente comando:

    gcloud compute images create IMAGE_NAME \
        --source-image-family=rhel-8 \
        --source-image-project=rhel-cloud \
        --guest-os-features=GVNIC
    

    Reemplaza IMAGE_NAME por el nombre de tu imagen.

API

  1. Selecciona una imagen o familia de imágenes que admita gVNIC. Para obtener más información, consulta Detalles de los sistemas operativos.

  2. Usa la imagen o familia de imágenes seleccionada en el paso anterior y crea una imagen y etiquétala con GVNIC. Para crear la imagen, usa el método images.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images
    {
      "name":"IMAGE_NAME",
      "sourceImage":"projects/SOURCE_IMAGE_PROJECT/global/images/IMAGE",
      "guestOsFeatures":[
        {
          "type":"GVNIC"
        }
      ]
    }
    

    Reemplaza lo siguiente:

    • IMAGE_NAME es el nombre de la imagen que deseas crear.
    • IMAGE o IMAGE_FAMILY: Especifica una de las siguientes opciones:
      • IMAGE: Es la versión requerida de una imagen pública. Por ejemplo: "sourceImage": "projects/debian-cloud/global/images/rhel-8-v20210122".
      • IMAGE_FAMILY: Es una familia de imágenes. Esto crea la VM a partir de la imagen de SO no obsoleta más reciente. Por ejemplo, si especificas "sourceImage": "projects/debian-cloud/global/images/family/rhel-8", Compute Engine crea una VM a partir de la última versión de la imagen de SO en la familia de imágenes RHEL 8.
    • SOURCE_IMAGE_PROJECT: es el nombre del proyecto que contiene la imagen de origen.

Crea una VM con la imagen personalizada

Puedes crear las VM mediante la herramienta de línea de comandos de gcloud o la API de Compute Engine.

gcloud

  1. Usa la imagen personalizada para crear la VM. Para crear una VM, usa el comando gcloud compute instances create y especifica la marca --network-interface=nic-type=GVNIC.

    gcloud compute instances create VM_NAME \
        --zone=ZONE \
        --image=IMAGE_NAME \
        --image-project=YOUR_IMAGE_PROJECT \
        --network-interface=nic-type=GVNIC
    

    Reemplaza lo siguiente:

    • VM_NAME: es el nombre de la VM nueva.
    • ZONE: Es la zona en la que se creará la VM.
    • IMAGE_NAME: es la imagen que se creó en el paso anterior.
    • YOUR_IMAGE_PROJECT: es el nombre de tu proyecto que contiene la imagen.

    Ejemplo

    Para crear una VM de RHEL 8 en la zona us-west1-b mediante una imagen llamada my-rhel-8 que esté en mi proyecto my-project-12345, ejecuta el siguiente comando:

    gcloud compute instances create my-rhel-vm \
        --zone=us-west1-b \
        --image=my-rhel-8 \
        --image-project=my-project-12345 \
        --network-interface=nic-type=GVNIC
    

    Aspectos que debes tener en cuenta

    La marca --network-interface tiene marcas de subnivel como las siguientes:

    • --address
    • --network
    • --network-tier
    • --subnet
    • --private-network-ip

    Para obtener una lista completa, consulta la marca --network-interface.

  2. Verifica que Compute Engine haya creado la VM y que nicType is esté configurado como GVNIC.

    gcloud compute instances describe VM_NAME \
       --zone=ZONE
    

    Reemplaza lo siguiente:

    • VM_NAME: El nombre de la VM
    • ZONE: La zona en la que se crea la VM

API

  1. Usa la imagen personalizada para crear la VM. Para crear la VM, usa el método instances.insert a fin de crear una VM con una imagen que admita gVNIC y especifica el parámetro "nicType": "GVNIC".

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
      "name":"VM_NAME",
      "networkInterfaces":[
        {
          "network":"NETWORK",
          "nicType":"GVNIC",
          "subnet":"SUBNET_NAME"
        }
      ],
      "disks":[
        {
          "initializeParams":{
            "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE"
          },
          "boot":true
        }
      ]
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto en el que se creará la VM.
    • ZONE: Es la zona en la que se creará la VM.
    • VM_NAME: es el nombre de la VM nueva.
    • NETWORK: Es la URL del recurso de red para esta VM. Si no se especifican la red ni la subred, se usa la red global/networks/default predeterminada.
    • IMAGE_NAME: es la imagen que se creó en el paso anterior.
    • YOUR_IMAGE_PROJECT: es el nombre de tu proyecto que contiene la imagen.
    • SUBNET_NAME: Es el nombre de la subred. La red se infiere de la subred especificada. Este paso es opcional,

Verifica que gVNIC esté habilitado

Linux

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

sudo lshw -class network

El resultado se parece al siguiente:

*-network
   description: Ethernet interface
   product: Compute Engine Virtual Ethernet [gVNIC]
   vendor: Google, Inc.
   physical id: 4
   bus info: pci@0000:00:04.0
   logical name: eth0
   version: 00
   serial: 42:01:0a:8a:00:04
   width: 32 bits
   clock: 33MHz
   capabilities: msix bus_master cap_list ethernet physical
   configuration: broadcast=yes driver=gve driverversion=1.0.0 ip=10.138.0.4 latency=0 link=yes multicast=yes
   resources: irq:11 memory:c0102000-c0102fff memory:c0101000-c010103f memory:c0000000-c00fffff

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

Para solucionar problemas de gVNIC, consulta Soluciona problemas de NIC virtual de Google.

¿Qué sigue?