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.
Como la interfaz de red de última generación que sucede a VirtIO, gVNIC reemplaza VirtIO-Net como la única interfaz de red compatible en Compute Engine para todos los tipos de máquinas nuevos (generación 3 y posteriores). Las series de máquinas y las funciones de redes más nuevas requieren gVNIC en lugar de VirtIO. El consumo de gVNIC como interfaz de E/S moderna con VMs de Compute Engine ofrece las siguientes ventajas:
- Proporciona un mejor rendimiento.
- Mejora la coherencia mediante la reducción de los problemas de vecinos ruidosos.
- Presenta nuevas capacidades de red más allá de las que VirtIO es capaz de usar.
gVNIC es compatible y recomendado en todas las familias de máquinas, los tipos de máquinas y las generaciones.
Se necesita gVNIC para alcanzar las siguientes tasas de ancho de banda máximas:
- Ancho de banda de 50 a 200 Gbps con VMs compatibles con el rendimiento de las herramientas de redes del nivel 1 de VM.
- Ancho de banda de 50 a 1,800 Gbps con VMs que tienen GPU conectadas.
Debes usar gVNIC como interfaz de red para instancias de Confidential VM, VMs de series de máquinas de tercera generación o posterior y VMs que se ejecutan en la plataforma de CPU Arm.
Antes de comenzar
- Si usas gVNIC con las VMs de Windows Server 2022 o Windows 11, actualiza el controlador de gVNIC a la versión del paquete GooGet
1.0.0@45
o posterior para mejorar la capacidad de procesamiento de las redes. Para obtener más información, consulta los problemas conocidos. -
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- La imagen de SO no incluye el controlador gVNIC
- La imagen de SO no tiene la última versión del controlador gVNIC
- Para las VMs de Linux, consulta Virtual Ethernet de Compute Engine del controlador de kernel de Linux.
- Para las VMs que se ejecutan en FreeBSD, consulta Controlador de FreeBSD de Ethernet virtual de Compute Engine.
- Para las VMs de Windows, consulta Controlador de Windows para Ethernet virtual de Compute Engine.
- Hasta 200 Gbps de ancho de banda de red cuando se instala en una instancia de Windows que está configurada para usar redes Tier_1 y gVNIC.
- Compatibilidad con marcos jumbo, excepto en N4.
- Elige una imagen de SO pública que admita gVNIC o crea una imagen de SO personalizada que esté etiquetada para usar gVNIC.
- Crea una VM con la imagen de SO pública o personalizada. Durante su creación, configura la interfaz de red para que use gVNIC.
- Verifica que gVNIC esté habilitado.
Selecciona una imagen o familia de imágenes de SO que admita gVNIC. Para obtener más información, consulta Detalles de los sistemas operativos.
Usa la imagen o la familia de imágenes de SO seleccionada en el paso anterior y crea una imagen de SO personalizada y etiquétala con
GVNIC
. Para crear la imagen de SO personalizada, usa el comandogcloud compute images create
. Por ejemplo, el siguiente comando crea una imagen de SO personalizada que admite gVNIC y que se basa en una imagen de SO específica.gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=GVNIC
Reemplaza lo siguiente:
IMAGE_NAME
: el nombre de la imagen que deseas crearSOURCE_IMAGE
: una imagen de SO específica que admite gVNIC, por ejemplo:rocky-linux-8-optimized-gcp-v20220719
Si deseas usar la imagen de SO más reciente en una familia de imágenes, reemplaza la marca
--source-image
por la marca--source-image-family
y configura su valor en una familia de imágenes que admita gVNIC. Por ejemplo:--source-image-family=rocky-linux-8-optimized-gcp
SOURCE_IMAGE_PROJECT
: el nombre del proyecto que contiene la imagen o la familia de imágenes de SO de origen
Ejemplo
Para crear una imagen de SO de Rocky Linux 8 optimizada para Google Cloud con la imagen de SO más reciente de la familia de imágenes
rocky-linux-8-optimized-gcp
de Compute Engine, ejecuta el siguiente comando:gcloud compute images create IMAGE_NAME \ --source-image-family=rocky-linux-8-optimized-gcp \ --source-image-project=rocky-linux-cloud \ --guest-os-features=GVNIC
Para obtener más información sobre el balanceo de cargas, consulta Prácticas recomendadas para las familias de imágenes.
Selecciona una imagen o familia de imágenes de SO que admita gVNIC. Para obtener más información, consulta Detalles de los sistemas operativos.
Usa la imagen o la familia de imágenes de SO seleccionada en el paso anterior y crea una imagen de SO y etiquétala con
GVNIC
. Para crear la imagen de SO, usa el métodoimages.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name":"IMAGE_NAME", "sourceImage":"SOURCE_IMAGE_URI", "guestOsFeatures":[ { "type":"GVNIC" } ] }
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto en el que se creará la imagen nuevaIMAGE_NAME
: un nombre para la imagen personalizadaSOURCE_IMAGE_URI
: el URI de la imagen o familia de imágenes de SO específica que deseas usarPor ejemplo:
- Imagen de SO específica:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
- Familia de imágenes:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
Cuando especificas una familia de imágenes, Compute Engine crea una VM a partir de la imagen de SO no obsoleta más reciente de esa familia. Para obtener más información sobre el balanceo de cargas, consulta Prácticas recomendadas para las familias de imágenes.
- Imagen de SO específica:
En la consola de Google Cloud, ve a la página Crea una instancia.
Haz clic en el nombre de la instancia de VM.
Selecciona la Zona en la que crearás la VM.
En la sección Disco de arranque, haz clic en Cambiar.
En el panel Disco de arranque, en la pestaña Imágenes personalizadas, completa lo siguiente:
- Elige el Proyecto de origen que contiene la imagen de SO que creaste antes.
- Selecciona la imagen del menú desplegable Imagen.
- Haz clic en Seleccionar.
Para configurar gVNIC como la interfaz de red, expande la sección Opciones avanzadas y, luego, haz lo siguiente:
- Expande la sección Herramientas de redes.
- En Tarjeta de interfaz de red, selecciona
gVNIC
.
Realiza personalizaciones de VM adicionales, según sea necesario.
Haz clic en Crear para crear la instancia de VM.
Crea la VM mediante el comando
gcloud compute instances create
. Para el disco de arranque, especifica la imagen de SO personalizada que creaste antes. En la interfaz de red, establece el valor de la marcanic-type
enGVNIC
.gcloud compute instances create VM_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --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
: la zona en la que se creará la VM.MACHINE_TYPE
: el tipo de máquina que se usará cuando se cree la instancia de VM. Si no especificas un tipo de máquina, el valor predeterminado esn1-standard-1
.IMAGE_NAME
: es la imagen de SO que se creó en el paso anterior.YOUR_IMAGE_PROJECT
: es el nombre de tu proyecto que contiene la imagen de SO.
Opcional: Verifica que Compute Engine haya creado la VM y que
nicType
esté configurado comoGVNIC
.gcloud compute instances describe VM_NAME \ --zone=ZONE
Reemplaza lo siguiente:
VM_NAME
: El nombre de la VMZONE
: Es la zona en la que creaste la VM.
Ejemplo
Para crear una VM de Rocky Linux 8 con un tipo de máquina
n1-standard-1
en la zonaus-west1-b
mediante una imagen de SO llamadamy-gvnic-rocky8
que esté en el proyectomy-project-12345
, ejecuta el siguiente comando:gcloud compute instances create my-rocky-linux-vm \ --zone=us-west1-b \ --image=my-gvnic-rocky8 \ --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
: Asigna una dirección IP a la VM--network
: La red de la que formará parte la interfaz--network-tier
: El nivel de red de la interfaz--subnet
: La subred de la que formará parte la interfaz. Si también se especifica--network
, la subred debe ser parte de la red especificada.--private-network-ip
: Especifica la IP RFC 1918 para asignar a la VM.
Para obtener una lista completa, consulta la marca
--network-interface
.- Para el disco de arranque, especifica la imagen de SO personalizada que creaste antes.
- En la interfaz de red, establece el valor del campo
nicType
enGVNIC
. PROJECT_ID
: es el ID del proyecto en el que se creará la VM.ZONE
: 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 redglobal/networks/default
predeterminada.SUBNET_NAME
: Es el nombre de la subred. La red se infiere de la subred especificada. Este paso es opcional,YOUR_IMAGE_PROJECT
: es el nombre de tu proyecto que contiene la imagen de SO.IMAGE_NAME
: es la imagen de SO que se creó en el paso anterior.- En tu instancia de VM de Windows, abre el Administrador de dispositivos.
- En Adaptadores de red, deberías ver
"Google Ethernet Adapter"
. - Conéctate a tu instancia.
- Agrega discos persistentes a tu instancia nueva.
- Configura el rendimiento de redes Tier_1 por VM
- Cambia la configuración de MTU de una red de VPC.
- Obtén información sobre los marcos jumbo.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Precios
Para ver los precios más recientes de las redes Tier_1, consulta la página de precios de instancias de VM.
Si deseas obtener una lista de los métodos adicionales que se pueden usar para encontrar información sobre precios, consulta los precios de Compute Engine.
Compatibilidad con el sistema operativo
En Compute Engine, puedes elegir usar gVNIC en cualquier imagen de sistema operativo (SO) pública compatible. Puedes instalar el controlador de gVNIC de forma manual en estos casos:
Para conocer los sistemas operativos compatibles, consulta la pestaña Interfaces compatibles de un sistema operativo. Consulta también la pestaña Funciones de redes para obtener información sobre las funciones de redes.
Uso en sistemas operativos no compatibles
Para las imágenes de SO que admiten gVNIC, pero no incluyen la versión más reciente del controlador de gVNIC, puedes descargar la última versión del controlador desde GitHub.
Puedes configurar e instalar la versión más reciente del controlador de gVNIC de forma manual en las VMs de Linux o Windows.
Después de actualizar el sistema operativo en tu VM para usar gVNIC, crea una imagen de SO personalizada basada en esa imagen de SO. Luego, puedes usar la imagen de SO personalizada para crear VMs adicionales que usen gVNIC en ese sistema operativo. Para obtener más información sobre cómo crear VMs con una imagen de SO personalizada, consulta Crea una imagen de SO personalizada que admita gVNIC en esta página.
Usa los siguientes procedimientos para configurar y, luego, instalar de forma manual la última versión del controlador de gVNIC.
Actualiza al controlador de gVNIC más reciente para Windows
Una versión actualizada del controlador de gVNIC para Windows ofrece un mejor rendimiento de la red. Cuando se instala en una instancia de procesamiento que usa una tercera generación o una serie de máquinas compatible con versiones posteriores, el controlador proporciona las siguientes mejoras:
Para usar la versión actualizada del controlador gVNIC, en una ventana de PowerShell, ejecuta el comando
googet
para actualizarlo. El comando enumera todas las actualizaciones disponibles. Ingresay
cuando se te solicite el controlador de gVNIC.googet update
Después de instalar y configurar Windows para usar la versión actualizada del controlador de gVNIC, puedes configurar los marcos jumbo para lograr una capacidad de procesamiento óptima. Para obtener más información, consulta Unidad de transmisión máxima.
Descripción general del uso de gVNIC con VMs de Compute Engine
Para crear una VM que use gVNIC, completa los siguientes pasos:
Si tienes algún problema, consulta Soluciona problemas de la NIC virtual de Google.
Crea una imagen de SO personalizada que admita gVNIC
Puedes crear la imagen de SO con Google Cloud CLI o REST. Si deseas obtener información detallada y prácticas recomendadas para crear imágenes de SO personalizadas, consulta Crea imágenes de SO personalizadas.
gcloud
REST
Crea una VM con compatibilidad con gVNIC
Puedes crear una VM mediante una de las imágenes de SO públicas compatibles o usar una imagen de SO personalizada que creaste mediante los pasos que se indican en Crea una imagen de SO personalizada que admita gVNIC.
De manera opcional, puedes habilitar el DPDK en la VM para obtener un procesamiento de paquetes de red más rápido, una latencia baja y un rendimiento coherente.
En el caso de las VMs que admiten varias interfaces de red (NIC), puedes tener NIC de diferentes tipos conectadas a la VM, ya que la compatibilidad con la interfaz se configura por NIC. Si bien esta configuración es compatible, no la recomendamos. En el caso de las VMs que admiten varias NIC, asegúrate de especificar
nic-type=GVNIC
para cada interfaz de red cuando crees la VM.Crea una VM con una imagen de SO pública
Para crear una VM con una imagen de SO pública compatible con gVNIC, sigue las instrucciones en Crea VMs y contenedores con una configuración de ancho de banda alto.
Crea una VM con una imagen de SO personalizada
Si no usas una imagen de SO pública que admita gVNIC, primero debes crear una imagen de SO personalizada que admita gVNIC. Luego, usa esa imagen de SO personalizada para crear una VM mediante la consola de Google Cloud, Google Cloud CLI o REST.
Console
gcloud
REST
Crea la VM mediante el método
instances.insert
.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_NAME" }, "boot":true } ] }
Reemplaza lo siguiente:
Verifica que gVNIC esté habilitado
Linux
Puedes usar la herramienta
lshw
para extraer información detallada sobre la configuración de hardware de la máquina virtual.Para instalar la herramienta de
lshw
en tu instancia de VM de Linux, abre una conexión SSH a la VM y, luego, ejecuta el siguiente comando:sudo apt-get install lshw -y
Para determinar si la VM usa la interfaz de red gVNIC, ejecuta el siguiente comando:
sudo lshw -class network
El resultado se ve de la manera siguiente:
*-network description: Ethernet interface product: Compute Engine Virtual Ethernet [gVNIC] vendor: Google, Inc. physical id: 3 bus info: pci@0000:00:03.0 logical name: ens3 version: 00 serial: 42:01:0a:80:00:6f width: 32 bits clock: 33MHz capabilities: msix bus_master cap_list ethernet physical configuration: autonegotiation=off broadcast=yes driver=gve driverversion=1.0.0 duplex=full ip=10.128.0.111 latency=0 link=yes multicast=yes port=twisted pair resources: irq:11 memory:c0203000-c0203fff memory:c0200000-c02000ff memory:c0100000-c01fffff
Windows
Soluciona problemas
Para solucionar problemas de gVNIC, consulta Soluciona problemas de NIC virtual de Google.
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-12-22 (UTC)
-