Google Virtual NIC (gVNIC) ist eine virtuelle Netzwerkschnittstelle, die speziell für Compute Engine entwickelt wurde. gVNIC ist eine Alternative zum virtIO-basierten Ethernet-Treiber.
Als Netzwerkschnittstelle zur nächsten Generation, die VirtIO erfolgreich ist, ersetzt gVNIC VirtIO-Net als einzige unterstützte Netzwerkschnittstelle in Compute Engine für alle neuen Maschinentypen (Generation 3 und höher). Neuere Maschinenserien und Netzwerkfunktionen erfordern gVNIC anstelle von VirtIO. Die Verwendung von gVNIC als moderne E/A-Schnittstelle mit Compute Engine-VMs bietet folgende Vorteile:
- Bietet eine bessere Leistung.
- Verbessern Sie die Konsistenz, indem Sie Noisy-Neighbor-Probleme reduzieren.
- Einführung neuer Netzwerkfunktionen, die über VirtIO hinausgehen
gVNIC wird auf allen Maschinenfamilien, Maschinentypen und Generierungen unterstützt und empfohlen.
gVNIC ist erforderlich, um die folgenden maximalen Bandbreitenraten zu erreichen:
- 50 bis 200 Gbit/s Bandbreite mit VMs, die pro VM-Stufe_1-Netzwerkleistung unterstützen.
- 50 bis 1.800 Gbit/s Bandbreite mit VMs mit angehängten GPUs.
Sie müssen gVNIC als Netzwerkschnittstelle für Confidential VM-Instanzen, Maschinen-VMs der dritten Generation oder höher und VMs verwenden, die auf der Arm-CPU-Plattform ausgeführt werden.
Vorbereitung
- Wenn Sie gVNIC mit Windows Server 2022- oder Windows 11-VMs verwenden, aktualisieren Sie den gVNIC-Treiber auf die GooGet-Paketversion
1.0.0@45
oder höher, um den Netzwerkdurchsatz zu verbessern. Weitere Informationen finden Sie unter bekannte Probleme. -
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.
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.
- Das Betriebssystem-Image enthält nicht den gVNIC-Treiber.
- Das Betriebssystem-Image enthält nicht die neueste gVNIC-Treiberversion
- Informationen zu Linux-VMs finden Sie unter Linux-Kernel-Treiber für virtuelles Compute Engine-Ethernet.
- Informationen zu VMs, die auf FreeBSD ausgeführt werden, finden Sie unter FreeBSD-Treiber für virtuelles Compute Engine-Ethernet
- Informationen zu Windows-VMs finden Sie unter Windows-Treiber für virtuelles Compute Engine-Ethernet.
- Large Receive Offload (LRO) wird nicht unterstützt. Generic Receive Offload (GRO) ist für VMs, die gVNIC verwenden, standardmäßig aktiviert.
- Große Sendungsauslagerung Version 2 (LSOV2) wird auf Windows 11- oder Windows Server 2022-VMs nicht unterstützt. gVNIC-Treiberversionen
1.0.0@45
und spätere Versionen deaktivieren LSOV2. Informationen zum Prüfen und Aktualisieren des gVNIC-Treibers einer VM unter Microsoft Windows finden Sie unter bekannte Probleme. - Wählen Sie ein öffentliches Betriebssystem-Image aus, das gVNIC unterstützt, oder erstellen Sie ein benutzerdefiniertes Image, das für die Verwendung von gVNIC getaggt ist.
- Erstellen Sie eine VM mit dem öffentlichen oder benutzerdefinierten Betriebssystem-Image. Konfigurieren Sie während der VM-Erstellung die Netzwerkschnittstelle für die Verwendung von gVNIC.
- Prüfen, ob gVNIC aktiviert ist
Wählen Sie ein Betriebssystem-Image oder eine Imagefamilie aus, die gVNIC unterstützt. Weitere Informationen finden Sie unter Details zu Betriebssystemen.
Erstellen Sie mithilfe des im vorherigen Schritt ausgewählten Betriebssystem-Images oder der Image-Familie ein benutzerdefiniertes Betriebssystem-Image und taggen Sie es mit
GVNIC
. Verwenden Sie zum Erstellen des benutzerdefinierten Betriebssystem-Image den Befehlgcloud compute images create
. Mit dem folgenden Befehl wird beispielsweise ein benutzerdefiniertes Betriebssystem-Image erstellt, das gVNIC unterstützt und auf einem bestimmten Betriebssystem-Image basiert.gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=GVNIC
Ersetzen Sie dabei Folgendes:
IMAGE_NAME
: Der Name des Images, das Sie erstellen möchten.SOURCE_IMAGE
: ein bestimmtes Betriebssystem-Image, das gVNIC unterstützt, z. B.rocky-linux-8-optimized-gcp-v20220719
.Wenn Sie das neueste Betriebssystem-Image in einer Image-Familie verwenden möchten, ersetzen Sie das Flag
--source-image
durch das Flag--source-image-family
und legen Sie dessen Wert auf eine Image-Familie fest, die gVNIC unterstützt. Beispiel:--source-image-family=rocky-linux-8-optimized-gcp
.SOURCE_IMAGE_PROJECT
ist der Name des Projekts, das das Quell-Betriebssystem-Image oder die Image-Familie enthält.
Beispiel
Führen Sie den folgenden Befehl aus, um ein Rocky Linux 8-Image, optimiert für dGoogle Cloud-Betriebssystem-Image, mit dem neuesten Betriebssystem-Image aus der Compute Engine-Image-Familie
rocky-linux-8-optimized-gcp
zu erstellen:gcloud compute images create IMAGE_NAME \ --source-image-family=rocky-linux-8-optimized-gcp \ --source-image-project=rocky-linux-cloud \ --guest-os-features=GVNIC
Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.
Wählen Sie ein Betriebssystem-Imageoder eine Imagefamilie aus, die gVNIC unterstützt. Weitere Informationen finden Sie unter Details zu Betriebssystemen.
Erstellen Sie mithilfe des im vorherigen Schritt ausgewählten Betriebssystem-Images oder der Image-Familie ein Betriebssystem-Image und taggen Sie es mit
GVNIC
. Erstellen Sie das Betriebssystem-Image mit der Methodeimages.insert
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name":"IMAGE_NAME", "sourceImage":"SOURCE_IMAGE_URI", "guestOsFeatures":[ { "type":"GVNIC" } ] }
Ersetzen Sie dabei Folgendes:
PROJECT_ID
: ID des Projekts, in dem das neue Image erstellt werden sollIMAGE_NAME
: Name für das benutzerdefinierte ImageSOURCE_IMAGE_URI
: Der URI für das spezifische Betriebssystem-Image oder die Image-Familie, die Sie verwenden möchten.Beispiele:
- Spezifisches Betriebssystem-Image:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
- Imagefamilie:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
Wenn Sie eine Image-Familie angeben, erstellt Compute Engine eine VM aus dem neuesten nicht verworfenen Betriebssystem-Image in dieser Familie. Weitere Informationen zur Verwendung von Image-Familien finden Sie unter Best Practices für Image-Familien.
- Spezifisches Betriebssystem-Image:
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Klicken Sie auf den Namen Ihrer VM-Instanz.
Wählen Sie die Zone aus, in der die VM erstellt werden soll.
Klicken Sie im Abschnitt Bootlaufwerk auf Ändern.
Führen Sie im Bereich Bootlaufwerk auf dem Tab Benutzerdefinierte Images die folgenden Schritte aus:
- Wählen Sie das Quellprojekt aus, das das zuvor erstellte Betriebssystem-Image enthält.
- Wählen Sie das Bild aus dem Drop-down-Menü Bild aus.
- Klicken Sie auf Auswählen.
Wenn Sie gVNIC als Netzwerkschnittstelle festlegen möchten, maximieren Sie den Abschnitt Erweiterte Optionen und gehen Sie dann so vor:
- Maximieren Sie den Bereich Netzwerk.
- Wählen Sie für Netzwerkkarte die Option
gVNIC
aus.
Nehmen Sie bei Bedarf weitere VM-Anpassungen vor.
Klicken Sie auf Erstellen, um die VM-Instanz zu erstellen.
Erstellen Sie die VM mit dem Befehl
gcloud compute instances create
. Geben Sie für das Bootlaufwerk das zuvor erstellte benutzerdefinierte Betriebssystem-Image an. Legen Sie für die Netzwerkschnittstelle den Wert des Flagsnic-type
aufGVNIC
fest.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
Ersetzen Sie dabei Folgendes:
VM_NAME
ist der Name der neuen VM.ZONE
ist die Zone, in der die VM erstellt werden soll.MACHINE_TYPE
: der Maschinentyp, der beim Erstellen der VM-Instanz verwendet werden soll. Wenn Sie keinen Maschinentyp angeben, wird standardmäßign1-standard-1
verwendet.IMAGE_NAME
ist das Betriebssystem-Image, das im vorherigen Schritt erstellt wurde.YOUR_IMAGE_PROJECT
ist der Name Ihres Projekts, das das Betriebssystem-Image enthält.
Optional: Prüfen Sie, ob Compute Engine die VM erstellt und
nicType
aufGVNIC
gesetzt hat.gcloud compute instances describe VM_NAME \ --zone=ZONE
Ersetzen Sie dabei Folgendes:
VM_NAME
ist der Name der VM.ZONE
: die Zone, in der Sie die VM erstellt haben.
Beispiel
Führen Sie den folgenden Befehl aus, um eine Rocky Linux 8-VM mit dem Maschinentyp
n1-standard-1
in Zoneus-west1-b
mit einem Betriebssystem-Image namensmy-gvnic-rocky8
im Projektmy-project-12345
zu erstellen: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
Wichtige Punkte
Das Flag
--network-interface
hat Flags auf Unterebene wie die folgenden:--address
: VM eine IP-Adresse zuweisen--network
: Das Netzwerk, zu dem die Schnittstelle gehört--network-tier
: Die Netzwerkebene der Schnittstelle--subnet
: Das Subnetz, zu dem die Schnittstelle gehört. Wenn auch--network
angegeben ist, muss das Subnetz Teil des angegebenen Netzwerks sein.--private-network-ip
: Geben Sie die RFC 1918-IP-Adresse an, die der VM zugewiesen werden soll.
Eine vollständige Liste finden Sie unter Flag
--network-interface
.- Geben Sie für das Bootlaufwerk das zuvor erstellte benutzerdefinierte Betriebssystem-Image an.
- Legen Sie für die Netzwerkschnittstelle den Wert des Felds
nicType
aufGVNIC
fest. PROJECT_ID
ist die ID des Projekts, in dem die VM erstellt werden soll.ZONE
ist die Zone, in der die VM erstellt werden soll.VM_NAME
ist der Name der neuen VM.NETWORK
: URL der Netzwerkressource für diese VM. Wenn weder das Netzwerk noch das Subnetzwerk angegeben ist, wird das Standardnetzwerkglobal/networks/default
verwendet.SUBNET_NAME
ist der Name des Subnetzes. Das Netzwerk wird aus dem angegebenen Subnetz abgeleitet. Dieses Feld ist optional.YOUR_IMAGE_PROJECT
ist der Name Ihres Projekts, das das Betriebssystem-Image enthält.IMAGE_NAME
ist das Betriebssystem-Image, das im vorherigen Schritt erstellt wurde.- Öffnen Sie auf Ihrer VM-Instanz unter Windows den Geräte-Manager.
- Unter "Netzwerkadapter" sollten Sie diesen Eintrag finden:
"Google Ethernet Adapter"
- Stellen Sie eine Verbindung zur Instanz her.
- Zusätzlichen nichtflüchtigen Speicher zur neuen Instanz hinzufügen
- Netzwerkleistung pro VM-Tier_1 konfigurieren.
- MTU-Einstellung eines VPC-Netzwerks ändern.
- Mehr über Jumbo Frames erfahren
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Preise
Die aktuellen Preise für Netzwerke der Stufe 1 finden Sie auf der Seite der Preise für VM-Instanzen.
Eine Liste der zusätzlichen Methoden, Preisinformationen zu erhalten, finden Sie unter Compute Engine-Preise.
Betriebssystemunterstützung
In Compute Engine können Sie gVNIC für alle unterstützten öffentlichen Betriebssystem-Images verwenden. Sie können den gVNIC-Treiber in folgenden Fällen manuell installieren:
Informationen zu den unterstützten Betriebssystemen finden Sie auf dem Tab Unterstützte Schnittstellen für Betriebssysteme. Auf dem Tab Netzwerkfunktionen finden Sie Informationen zur Unterstützung von Netzwerkfunktionen.
Verwendung auf nicht unterstützten Betriebssystemen
Für Betriebssystem-Images, die gVNIC unterstützen, aber nicht die neueste Version des gVNIC-Treibers enthalten, können Sie die neueste Treiberversion von GitHub herunterladen.
Sie können die neueste Version des gVNIC-Treibers manuell auf Linux- oder Windows-VMs konfigurieren und installieren.
Nachdem Sie das Betriebssystem in Ihrer VM für die Verwendung von gVNIC aktualisiert haben, erstellen Sie ein benutzerdefiniertes Betriebssystem-Image basierend auf diesem Betriebssystem-Image. Sie können dann das benutzerdefinierte Betriebssystem-Image verwenden, um weitere VMs mit gVNIC unter diesem Betriebssystem zu erstellen. Weitere Informationen zum Erstellen von VMs mit einem benutzerdefinierten Betriebssystem-Image finden Sie auf dieser Seite unter Benutzerdefiniertes Betriebssystem-Image erstellen, das gVNIC unterstützt.
So konfigurieren und installieren Sie manuell die neueste Version des gVNIC-Treibers.
Beschränkungen
Übersicht über die Verwendung von gVNIC mit Compute Engine-VMs
Führen Sie folgende Schritte aus, um eine VM mit gVNIC zu erstellen:
Falls Probleme auftreten, lesen Sie den Abschnitt Fehlerbehebung bei Google Virtual NIC.
Benutzerdefiniertes Betriebssystem-Image erstellen, das gVNIC unterstützt
Sie können das Betriebssystem-Image entweder mit der Google Cloud CLI oder mit REST erstellen. Ausführliche Informationen und Best Practices zum Erstellen benutzerdefinierter Betriebssystem-Images finden Sie unter Benutzerdefinierte Betriebssystem-Images erstellen.
gcloud
REST
VM mit gVNIC-Unterstützung erstellen
Sie können eine VM mit einem der Unterstützten öffentlichen Betriebssystem-Images oder mit einem benutzerdefiniertes Betriebssystem-Image erstellen, das Sie mithilfe der Anleitung unter Benutzerdefiniertes Betriebssystem-Image erstellen, das gVNIC unterstützt, erstellt haben.
Optional können Sie DPDK auf der VM aktivieren, um eine schnellere Netzwerkpaketverarbeitung, eine niedrige Latenz und eine konsistente Leistung zu erreichen.
Bei VMs, die mehrere Netzwerkschnittstellen (NICs) unterstützen, können NICs verschiedener Typen an die VM angeschlossen werden, da die Schnittstellenunterstützung pro NIC konfiguriert wird. Diese Konfiguration wird zwar unterstützt, wir empfehlen sie jedoch nicht. Achten Sie bei VMs, die mehrere NICs unterstützen, darauf, beim Erstellen der VM für jede Netzwerkschnittstelle
nic-type=GVNIC
anzugeben.VM mit einem öffentlichen Betriebssystem-Image erstellen
Folgen Sie der Anleitung unter VMs und Container mit hoher Bandbreitenkonfiguration erstellen, um eine VM mit einem öffentlichen Betriebssystem-Image zu erstellen, das gVNIC unterstützt.
VM mit dem benutzerdefinierten Betriebssystem-Image erstellen
Wenn Sie kein öffentliches Betriebssystem-Image verwenden, das gVNIC unterstützt, müssen Sie zuerst ein benutzerdefiniertes Betriebssystem-Image erstellen, das gVNIC unterstützt. Anschließend verwenden Sie dieses benutzerdefinierte Betriebssystem-Image, um eine VM mit der Google Cloud Console, der Google Cloud CLI oder REST zu erstellen.
Console
gcloud
REST
Erstellen Sie die VM mit der Methode
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 } ] }
Ersetzen Sie dabei Folgendes:
Prüfen, ob gVNIC aktiviert ist
Linux
Mit dem
lshw
-Tool können Sie detaillierte Informationen zur Hardwarekonfiguration der virtuellen Maschine extrahieren.Öffnen Sie zum Installieren des
lshw
-Tools auf Ihrer Linux-VM-Instanz eine SSH-Verbindung zur VM und führen Sie dann den folgenden Befehl aus:sudo apt-get install lshw -y
Führen Sie den folgenden Befehl aus, um festzustellen, ob die VM die gVNIC-Netzwerkschnittstelle verwendet:
sudo lshw -class network
Die Ausgabe sollte in etwa so aussehen:
*-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
Fehlerbehebung
Informationen zur Fehlerbehebung für gVNIC finden Sie unter Fehlerbehebung bei Google Virtual NIC.
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-12-03 (UTC).
-